Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Notifications not received [#92](https://github.com/rokmetro/neom-app/issues/92)
- Group UI Fixes [#89](https://github.com/rokmetro/neom-app/issues/89)
- Remove the option to add past events to groups [#87](https://github.com/rokmetro/neom-app/issues/87)
- Remove notification topics dependence on device storage [#100](https://github.com/rokmetro/neom-app/issues/100)
### Changed
- Allow attachments with messages in conversations [#85](https://github.com/rokmetro/neom-app/issues/85)

Expand Down
3 changes: 1 addition & 2 deletions lib/service/Auth2.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:illinois/model/Auth2.dart';
import 'package:illinois/service/Config.dart';
import 'package:illinois/service/FirebaseMessaging.dart';
import 'package:illinois/service/FlexUI.dart';
import 'package:illinois/service/Storage.dart';
import 'package:path/path.dart';
Expand Down Expand Up @@ -214,7 +213,7 @@ class Auth2 extends rokwire.Auth2 {
profile: Storage().userProfile,
includedFoodTypes: Storage().includedFoodTypesPrefs,
excludedFoodIngredients: Storage().excludedFoodIngredientsPrefs,
settings: FirebaseMessaging.storedSettings,
// settings: FirebaseMessaging.storedSettings,
);

// iCard
Expand Down
59 changes: 31 additions & 28 deletions lib/service/FirebaseMessaging.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import 'dart:async';
import 'dart:math';
import 'dart:ui';
import 'package:flutter/foundation.dart';
// import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:illinois/service/FlexUI.dart';
import 'package:rokwire_plugin/model/auth2.dart';
import 'package:illinois/model/sport/SportDetails.dart';
Expand All @@ -32,7 +31,6 @@ import 'package:rokwire_plugin/service/log.dart';
import 'package:rokwire_plugin/service/notification_service.dart';
import 'package:rokwire_plugin/service/service.dart';
import 'package:illinois/service/Sports.dart';
import 'package:illinois/service/Storage.dart';
import 'package:rokwire_plugin/utils/utils.dart';


Expand Down Expand Up @@ -130,8 +128,8 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio

// Settings entry : topic name
static const Map<String, String> _notifySettingTopics = {
'event_reminders' : 'event_reminders',
'dining_specials' : 'dinning_specials',
_eventRemindersUpdatesNotificationSetting : _eventRemindersUpdatesNotificationSetting,
_diningSpecialsUpdatesNotificationSetting : _diningSpecialsUpdatesNotificationSetting,
_groupUpdatesPostsNotificationSetting : _groupUpdatesPostsNotificationSetting,
_groupUpdatesInvitationsNotificationSetting : _groupUpdatesInvitationsNotificationSetting,
_groupUpdatesEventsNotificationSetting : _groupUpdatesEventsNotificationSetting,
Expand All @@ -140,21 +138,21 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio
};

// Settings entry : setting name (User.prefs.setting name)
static const Map<String, String> _notifySettingNames = {
_eventRemindersUpdatesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.event_reminders.enabled',
_diningSpecialsUpdatesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.dining_specials.enabled',
_groupUpdatesPostsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.posts.enabled',
_groupUpdatesPollsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.polls.enabled',
_groupUpdatesMessagesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.messages.enabled',
_groupUpdatesInvitationsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.invitations.enabled',
_groupUpdatesEventsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.events.enabled',
_athleticsUpdatesStartNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.start.enabled',
_athleticsUpdatesEndNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.end.enabled',
_athleticsUpdatesNewsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.news.enabled',
_athleticsUpdatesNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.main.notifications.enabled',
_groupUpdatesNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.group.main.notifications.enabled',
_pauseNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.notifications.enabled',
};
// static const Map<String, String> _notifySettingNames = {
// _eventRemindersUpdatesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.event_reminders.enabled',
// _diningSpecialsUpdatesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.dining_specials.enabled',
// _groupUpdatesPostsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.posts.enabled',
// _groupUpdatesPollsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.polls.enabled',
// _groupUpdatesMessagesNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.messages.enabled',
// _groupUpdatesInvitationsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.invitations.enabled',
// _groupUpdatesEventsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.group.events.enabled',
// _athleticsUpdatesStartNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.start.enabled',
// _athleticsUpdatesEndNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.end.enabled',
// _athleticsUpdatesNewsNotificationSetting : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.news.enabled',
// _athleticsUpdatesNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.athletic_updates.main.notifications.enabled',
// _groupUpdatesNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.group.main.notifications.enabled',
// _pauseNotificationKey : 'edu.illinois.rokwire.settings.inbox.notification.notifications.enabled',
// };

static const Map<String, bool> _defaultNotificationSettings = {
_pauseNotificationKey : false
Expand Down Expand Up @@ -684,8 +682,8 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio

// Settings topics

bool? get notifyEventReminders { return _getNotifySetting('event_reminders'); }
set notifyEventReminders(bool? value) { _setNotifySetting('event_reminders', value); }
bool? get notifyEventReminders { return _getNotifySetting(_eventRemindersUpdatesNotificationSetting); }
set notifyEventReminders(bool? value) { _setNotifySetting(_eventRemindersUpdatesNotificationSetting, value); }

bool? get notifyAthleticsUpdates { return _getNotifySetting(_athleticsUpdatesNotificationKey); }
set notifyAthleticsUpdates(bool? value) { _setNotifySetting(_athleticsUpdatesNotificationKey, value); }
Expand Down Expand Up @@ -717,12 +715,12 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio
bool? get notifyGroupEventsUpdates { return _getNotifySetting(_groupUpdatesEventsNotificationSetting); }
set notifyGroupEventsUpdates(bool? value) { _setNotifySetting(_groupUpdatesEventsNotificationSetting, value); }

bool? get notifyDiningSpecials { return _getNotifySetting('dining_specials'); }
set notifyDiningSpecials(bool? value) { _setNotifySetting('dining_specials', value); }
bool? get notifyDiningSpecials { return _getNotifySetting(_diningSpecialsUpdatesNotificationSetting); }
set notifyDiningSpecials(bool? value) { _setNotifySetting(_diningSpecialsUpdatesNotificationSetting, value); }

set notificationsPaused(bool? value) {_setNotifySetting(_pauseNotificationKey, value);}

bool? get notificationsPaused {return _getStoredSetting(_pauseNotificationKey,);}
bool? get notificationsPaused => Inbox().userInfo?.notificationsDisabled;

bool get _notifySettingsAvailable {
return FlexUI().isNotificationsAvailable;
Expand All @@ -740,7 +738,7 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio

void _setNotifySetting(String name, bool? value) {
if (_notifySettingsAvailable && (_getNotifySetting(name) != value)) {
_storeSetting(name, value);
// _storeSetting(name, value);
NotificationService().notify(notifySettingUpdated, name);

if (name == _athleticsUpdatesNotificationKey) {
Expand Down Expand Up @@ -894,13 +892,15 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio
bool? _getStoredSetting(String name){
bool defaultValue = _defaultNotificationSettings[name] ?? true; //true by default
if(name == _pauseNotificationKey){ // settings depending on userInfo
if(Auth2().isLoggedIn && Inbox().userInfo != null){
// if(Auth2().isLoggedIn && Inbox().userInfo != null){
return Inbox().userInfo?.notificationsDisabled ?? false; //This is the only setting stored in the userInfo
}
// }
}
return Storage().getNotifySetting(_notifySettingNames[name] ?? name) ?? defaultValue;
return Inbox().userInfo?.topics?.contains(name) ?? defaultValue;
// return Storage().getNotifySetting(_notifySettingNames[name] ?? name) ?? defaultValue;
}

/*
void _storeSetting(String name, bool? value) {
Storage().setNotifySetting(_notifySettingNames[name] ?? name, value);
}
Expand Down Expand Up @@ -929,4 +929,7 @@ class FirebaseMessaging extends rokwire.FirebaseMessaging implements Notificatio

return subscribedTopics;
}
*/

Set<String?>? get currentTopics => Inbox().userInfo?.topics;
}
14 changes: 7 additions & 7 deletions lib/service/Storage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,13 @@ class Storage extends rokwire.Storage {

// Notifications

bool? getNotifySetting(String name) {
return getBoolWithName(name);
}
// bool? getNotifySetting(String name) {
// return getBoolWithName(name);
// }

void setNotifySetting(String name, bool? value) {
return setBoolWithName(name, value);
}
// void setNotifySetting(String name, bool? value) {
// return setBoolWithName(name, value);
// }

// Polls
static const String selectedPollTypeKey = 'selected_poll_type';
Expand Down Expand Up @@ -211,7 +211,7 @@ class Storage extends rokwire.Storage {
// static const String firebaseMessagingSubscriptionTopisKey = 'firebase_subscription_topis';
// Replacing "firebase_subscription_topis" with "firebase_messaging_subscription_topis" key ensures that
// all subsciptions will be applied again through Notifications BB APIs
@override String get inboxFirebaseMessagingSubscriptionTopicsKey => 'firebase_messaging_subscription_topis';
// @override String get inboxFirebaseMessagingSubscriptionTopicsKey => 'firebase_messaging_subscription_topis';

@override String get inboxFirebaseMessagingTokenKey => 'inbox_firebase_messaging_token';
@override String get inboxFirebaseMessagingUserIdKey => 'inbox_firebase_messaging_user_id';
Expand Down