kz_educa/lib/utils/notifications.dart

174 lines
11 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tzdata;
import 'dart:math';
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
final List<String> motivationalMessages = [
'🚀 Hoje é um ótimo dia para investir no seu futuro! Abra o KzEduca e avance mais um passo.',
'💡 Lembre-se: cada poupança de hoje é um sonho realizado amanhã!',
'🌱 Cresça financeiramente! Que tal aprender algo novo no KzEduca agora?',
'🏆 Desafie-se a economizar mais hoje. Seu eu do futuro agradece!',
'📈 Pequenas ações diárias constroem grandes conquistas. Continue com o KzEduca!',
'💪 Você está no caminho certo para o sucesso financeiro!',
'✨ O segredo do progresso é começar. Que tal uma lição rápida no KzEduca?',
'🎯 Foque nos seus objetivos e não desista. O KzEduca está com você!',
'🧠 Aprender sobre dinheiro é investir em você mesmo. Continue evoluindo!',
'🔥 Não deixe para amanhã o que pode economizar hoje. Abra o KzEduca!',
'A sua disciplina financeira hoje é a sua liberdade amanhã. Continue assim!',
'Cada cêntimo guardado é um passo mais perto dos seus sonhos.',
'O sucesso financeiro não é magia, é consistência. Mantenha o foco!',
'Não se trata de quanto você ganha, mas de como você gasta. O KzEduca ajuda-te a gastar com sabedoria.',
'Aprender a gerir o seu dinheiro é o melhor investimento que pode fazer. Vamos lá!',
'Pequenas poupanças, grandes resultados. É o efeito bola de neve!',
'A sabedoria financeira começa com um clique. Abra o KzEduca e aprenda algo novo.',
'Não espere a oportunidade perfeita, crie-a. Comece a construir o seu futuro agora.',
'Os seus objetivos financeiros são alcançáveis. Acredite no processo e no KzEduca.',
'Controle suas finanças e controle sua vida. Você tem esse poder!',
'A paciência é um ativo valioso. Deixe o seu dinheiro crescer com o tempo.',
'Economizar é uma escolha que muda o seu destino. Faça a escolha certa hoje.',
'O seu futuro financeiro é escrito por você. Qual é o próximo capítulo?',
'Um orçamento é a sua ferramenta para o sucesso. Revise-o hoje!',
'Não compre o que não precisa. A verdadeira riqueza está em viver com menos.',
'Mantenha a sua motivação alta. Cada passo conta para a sua jornada financeira.',
'Aprender sobre investimentos pode ser divertido. Explore o KzEduca!',
'A liberdade financeira é um estado de espírito, e uma meta alcançável. Comece agora!',
'Uma lição por dia afasta as dívidas para longe. O KzEduca está aqui para isso.',
'O dinheiro é uma ferramenta, não um fim. Use-o com propósito!',
'Poupar não é privação, é a preparação para o que realmente importa.',
'A sua ambição é o seu motor. Direcione-a para os seus objetivos financeiros.',
'Não tenha medo de começar do zero. O KzEduca te dará as bases.',
'A gratidão transforma o que temos em suficiente. Seja grato e gaste com consciência.',
'O progresso é feito um passo de cada vez. Hoje é o seu dia para progredir!',
'Invista na sua mente, e seu dinheiro seguirá. Aprenda algo novo agora.',
'Pague-se primeiro. Guarde uma parte dos seus ganhos antes de gastar.',
'A sua jornada financeira é única. Seja paciente consigo mesmo.',
'Finanças pessoais são um mar de oportunidades. Mergulhe e explore!',
'Aprender a dizer não a pequenas despesas é dizer sim aos seus grandes sonhos.',
'Crie um plano financeiro e trabalhe nele. O sucesso é planeado.',
'Não se compare aos outros. A sua corrida é apenas sua.',
'O dinheiro não pode comprar felicidade, mas pode comprar paz de espírito. Invista nela!',
'O futuro pertence a quem acredita na beleza dos seus sonhos. Planeie o seu futuro financeiro.',
'Seja o mestre das suas finanças, não o escravo delas.',
'Cada decisão financeira conta. Tome-as com sabedoria.',
'A melhor altura para começar a poupar foi ontem. A segunda melhor é hoje!',
'O seu valor não está na sua conta bancária, mas na sua disciplina e sabedoria.',
'Construir riqueza é uma maratona, não uma corrida. Celebre cada quilómetro.',
'Deixe o seu dinheiro trabalhar para você. Descubra os segredos dos investimentos!',
'A vida é uma jornada. Suas finanças são o seu mapa. Revise sua rota.',
'Não espere o milagre, seja o milagre. Aja agora e transforme sua vida financeira.',
'Aprender é o primeiro passo para a mudança. Mude sua vida com o KzEduca!',
'A sua renda é o seu poder. A sua poupança é a sua força. Use ambas com inteligência.',
'O sucesso não é sorte, é o resultado de escolhas inteligentes. Faça a sua escolha agora.',
'O futuro financeiro que você quer, é o que você constrói hoje.',
'Aprender sobre dinheiro é um superpoder. Use o seu superpoder!',
'A sua conta bancária é o reflexo dos seus hábitos. Crie bons hábitos!',
'O primeiro passo para alcançar seus objetivos é acreditar que eles são possíveis.',
'Você é mais forte do que as suas desculpas. Poupe agora!',
'A sua liberdade começa onde o seu medo de falhar acaba.',
'Não gaste dinheiro para impressionar os outros. Viva a sua verdade financeira.',
'Poupe não porque precisa, mas porque quer. Quer a sua liberdade.',
'A sua mentalidade de riqueza é mais importante que o seu salário.',
'O caminho para a riqueza é um caminho de autoconhecimento.',
'Controle suas finanças e ganhe tempo para o que realmente importa.',
'Seja o capitão do seu navio financeiro. Trace a sua rota com sabedoria.',
'A educação financeira é a chave que abre todas as portas.',
'A sua perseverança é o seu maior trunfo. Não desista dos seus objetivos.',
'O sucesso financeiro é a soma de pequenos esforços repetidos diariamente.',
'Não se preocupe em ser perfeito, preocupe-se em ser consistente.',
'Invista em si mesmo. O conhecimento é a única coisa que ninguém pode tirar de você.',
'A sua história de sucesso financeiro começa com a primeira poupança.',
'Aja hoje, viva a vida que sonha amanhã.',
'O dinheiro é uma ferramenta para viver a vida que você quer. Aprenda a usá-la.',
'O medo de falhar paralisa. A ação liberta. Comece agora!',
'A sua jornada financeira é uma aventura. Divirta-se a cada passo.',
'O seu futuro financeiro é uma tela em branco. Pinte o que você quer ver.',
'A liberdade não é de graça, mas o KzEduca está aqui para te ajudar a conquistá-la.',
'Não pague pelos erros, aprenda com eles. As lições financeiras valem ouro.',
'A sua saúde financeira afeta a sua vida inteira. Cuide dela.',
'O sucesso é a progressão constante, não a perfeição instantânea.',
'Poupe de forma inteligente, não apenas de forma difícil.',
'Os seus sonhos são o combustível. A sua disciplina é o motor.',
'O KzEduca é o seu guia para uma vida financeira melhor. Confie no processo!',
'Aprender a investir é plantar árvores que darão sombra amanhã.',
'O controlo financeiro é a base para a paz interior.',
'Não subestime o poder de uma pequena mudança de hábito. Mude agora!',
'A sua vida financeira é o resultado de pequenas decisões. Tome boas decisões hoje.',
'O dinheiro não pode comprar tempo, mas pode dar-lhe a liberdade de usá-lo.',
'Uma vida financeiramente estável é uma vida com menos stress. Lute por isso!',
'A sua educação financeira é a sua herança. Construa-a com sabedoria.',
'O KzEduca é o seu parceiro na jornada para a liberdade financeira.',
'Não desista dos seus sonhos. O caminho pode ser longo, mas a recompensa vale a pena.',
'O melhor investimento que pode fazer é em você mesmo.',
'A disciplina é a ponte entre os seus objetivos e a realização deles.',
'A sua atitude em relação ao dinheiro determina a sua riqueza. Mude a sua atitude!',
'Aprenda a fazer do seu dinheiro um aliado, não um inimigo.',
'O sucesso financeiro está diretamente ligado ao seu conhecimento.',
'Um passo de cada vez. A maratona financeira começa com um único passo.',
'O KzEduca é o seu mapa do tesouro. Siga-o e encontre sua riqueza.',
'Aprenda a fazer do seu dinheiro um aliado, não um inimigo.',
'Não espere o amanhã. O futuro é construído com as escolhas de hoje.',
'A riqueza não é apenas ter dinheiro, mas ter tempo e liberdade.',
'Acredite no seu potencial. Você pode conquistar os seus objetivos financeiros.',
'O KzEduca é o seu ponto de partida para uma vida financeira mais próspera.',
'A sua jornada para a riqueza começa com uma mentalidade de abundância.',
'Aprenda a valorizar o seu dinheiro. Ele é a sua liberdade.',
'O sucesso financeiro é a recompensa por um trabalho bem feito. Continue assim!'
];
String getRandomMotivation() {
motivationalMessages.shuffle();
return motivationalMessages.first;
}
Future<void> initializeNotifications() async {
tzdata.initializeTimeZones();
const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher');
// CORREÇÃO: Usa a variável corretamente chamada 'initializationSettings'
const InitializationSettings initializationSettings = InitializationSettings(android: initializationSettingsAndroid);
await flutterLocalNotificationsPlugin.initialize(initializationSettings);
}
// Nova função para agendar uma notificação diária em um horário aleatório
Future<void> scheduleDailyRandomMotivationNotification() async {
await initializeNotifications();
final now = DateTime.now();
// Gerar um horário aleatório entre 9h e 21h (21 - 9 = 12 horas de intervalo)
final random = Random();
final randomHour = 9 + random.nextInt(13); // Horas de 9 a 21
final randomMinute = random.nextInt(60); // Minutos de 0 a 59
// Criar a data agendada com o horário aleatório
var scheduledDate = DateTime(now.year, now.month, now.day, randomHour, randomMinute);
// Se o horário agendado já passou para o dia de hoje, agenda para amanhã
if (scheduledDate.isBefore(now)) {
scheduledDate = scheduledDate.add(const Duration(days: 1));
}
final tz.TZDateTime tzScheduledDate = tz.TZDateTime.from(scheduledDate, tz.local);
await flutterLocalNotificationsPlugin.zonedSchedule(
0, // ID da notificação. Usar um ID fixo para substituir a notificação anterior.
'KzEduca',
getRandomMotivation(),
tzScheduledDate,
const NotificationDetails(
android: AndroidNotificationDetails(
'motivation_channel',
'Motivação',
channelDescription: 'Notificações diárias de motivação do KzEduca',
importance: Importance.max,
priority: Priority.high,
icon: '@mipmap/ic_launcher',
),
),
androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle,
// Propriedade removida para evitar o erro de API.
matchDateTimeComponents: DateTimeComponents.time, // Repete a cada dia no mesmo horário agendado
);
}