|
1 | 1 | import 'package:flutter/cupertino.dart'; |
2 | 2 | import 'package:flutter/material.dart'; |
| 3 | +import 'package:flutter/rendering.dart'; |
3 | 4 | import 'package:flutter_local_notifications/flutter_local_notifications.dart'; |
4 | 5 | import 'package:flutter_login_page/Model/Talk.dart'; |
5 | 6 | import 'package:flutter_login_page/Notification/notification_data.dart'; |
@@ -95,47 +96,53 @@ class _NotificationPageState extends State<NotificationPage> { |
95 | 96 | } |
96 | 97 |
|
97 | 98 | //create a notification |
98 | | - Future<void> createTalkNotification(Time timeTalk,Day dayTalk,String titleTalk,String descriptionTalk) async{ |
99 | | - |
100 | | - final title = titleTalk; |
101 | | - final time = timeTalk; |
102 | | - final day = dayTalk; |
103 | | - final description = 'Day: Hour: '; |
| 99 | + Future<void> createTalkNotification( Talk talk/*Time timeTalk,Day dayTalk,String titleTalk,String descriptionTalk*/) async{ |
104 | 100 |
|
| 101 | + final title = talk.name; |
| 102 | + final description = weakToString(talk.dateInitial.weekday.toString()) + " " + |
| 103 | + talk.dateInitial.day.toString() + " " + monthToString(talk.dateInitial.month.toString()) + " - " + |
| 104 | + hourToString(talk.dateInitial.hour.toString())+ "h" + minToString(talk.dateFinal.minute.toString()); |
| 105 | + final oldTime= talk.dateInitial; |
| 106 | + final newTime= talk.dateInitial.subtract(new Duration(minutes: 15)); |
| 107 | + final time = Time(newTime.hour,newTime.minute); |
| 108 | + final day= Day(talk.dateInitial.day); |
105 | 109 |
|
106 | 110 | final notificationData = new NotificationData(title, description,time,day); //todo change to weekly |
107 | | - if(notificationData != null){ |
108 | | - print('nulo'); |
| 111 | + |
| 112 | + //reset time bc idk if the element is passed by reference |
| 113 | + talk.dateInitial = oldTime; |
| 114 | + |
| 115 | + if(notificationData != null) { |
109 | 116 | final notificationList = await _notificationPlugin.getScheduleNotifications(); |
110 | | - int id =0; |
111 | | - for(var i=0; i< 100; i++){ |
112 | | - bool exists =_notificationPlugin.checkIfIdExists(notificationList,i); |
113 | | - if(!exists){ |
114 | | - id=i; |
115 | | - } |
| 117 | + int id = talk.id; |
| 118 | + bool exists = _notificationPlugin.checkIfIdExists(notificationList, id); |
| 119 | + if (exists) { |
| 120 | + return "cant create noptification"; |
116 | 121 | } |
| 122 | + } |
117 | 123 | await _notificationPlugin.showWeeklyAtDayTime( |
118 | 124 | notificationData.time, |
119 | 125 | notificationData.day, |
120 | | - id, |
| 126 | + talk.id, |
121 | 127 | notificationData.title, |
122 | 128 | notificationData.description |
123 | 129 | ); |
124 | 130 | refreshNotification(); |
125 | 131 | } |
126 | 132 |
|
127 | | - } |
128 | | - |
129 | 133 | //generate all talk notifications |
130 | 134 | void generateAllNotifications() { |
131 | 135 | int i=0; |
132 | 136 | widget.talkList.forEach((element) =>({ |
133 | 137 | if(element.selected && element.notify){ |
| 138 | + //todo |
134 | 139 | //element.dateInitial.subtract(new Duration(minutes: 15)) //convert time //esta linguagem e so autista... |
135 | | - _notificationPlugin.showWeeklyAtDayTime(Time(element.dateInitial.hour, element.dateInitial.minute),Day(element.dateInitial.day),element.id, element.name, |
| 140 | + _notificationPlugin.showWeeklyAtDayTime( |
| 141 | + Time(element.dateInitial.hour, element.dateInitial.minute), //time |
| 142 | + Day(element.dateInitial.day),element.id, //day |
| 143 | + element.name, //id |
136 | 144 | (weakToString(element.dateInitial.weekday.toString()) +" "+ element.dateInitial.day.toString() + " " +monthToString(element.dateInitial.month.toString()) + " - " + hourToString(element.dateInitial.hour.toString()) + "h" + minToString(element.dateInitial.minute.toString()) )) |
137 | 145 | } |
138 | | - //createTalkNotification(Time(element.dateInitial.hour, element.dateInitial.minute), Day(element.dateInitial.day), element.name, element.information) |
139 | 146 | } |
140 | 147 | )); |
141 | 148 | } |
|
0 commit comments