Browse Source

Merge pull request #373 from Leptopoda/cleanup/type_inference

neon: cleanup notifications logic
pull/384/head
Nikolas Rimikis 1 year ago committed by GitHub
parent
commit
55789579ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 43
      packages/neon/neon/lib/src/app.dart

43
packages/neon/neon/lib/src/app.dart

@ -113,34 +113,39 @@ class _NeonAppState extends State<NeonApp> with WidgetsBindingObserver, tray.Tra
if (account == null) { if (account == null) {
return; return;
} }
final app = Provider.of<Iterable<AppImplementation>>(context, listen: false).find('notifications');
if (app != null) {
await _accountsBloc.getAppsBlocFor(account).getAppBloc<NotificationsBlocInterface>(app).refresh();
}
};
Global.onPushNotificationClicked = (final pushNotificationWithAccountID) async {
final allAppImplementations = Provider.of<Iterable<AppImplementation>>(context, listen: false); final allAppImplementations = Provider.of<Iterable<AppImplementation>>(context, listen: false);
final app = allAppImplementations.find('notifications') as NotificationsAppInterface?;
final app = (pushNotificationWithAccountID.subject.app != null if (app == null) {
? allAppImplementations.find(pushNotificationWithAccountID.subject.app!) return;
: null) ?? }
allAppImplementations.find('notifications');
await _accountsBloc.getAppsBlocFor(account).getAppBloc<NotificationsBlocInterface>(app).refresh();
};
Global.onPushNotificationClicked = (final pushNotificationWithAccountID) async {
final account = _accountsBloc.accounts.value.find(pushNotificationWithAccountID.accountID); final account = _accountsBloc.accounts.value.find(pushNotificationWithAccountID.accountID);
if (account == null) { if (account == null) {
return; return;
} }
_accountsBloc.setActiveAccount(account); _accountsBloc.setActiveAccount(account);
if (app != null) {
if (app.id != 'notifications') { final allAppImplementations = Provider.of<Iterable<AppImplementation>>(context, listen: false);
_accountsBloc
.getAppsBlocFor(account) final notificationsApp = allAppImplementations.find('notifications') as NotificationsAppInterface?;
.getAppBloc<NotificationsBlocInterface>(app) if (notificationsApp != null) {
.deleteNotification(pushNotificationWithAccountID.subject.nid!); _accountsBloc
} .getAppsBlocFor(account)
await _openAppFromExternal(account, app.id); .getAppBloc<NotificationsBlocInterface>(notificationsApp)
.deleteNotification(pushNotificationWithAccountID.subject.nid!);
} }
final app = allAppImplementations.find(pushNotificationWithAccountID.subject.app!) ?? notificationsApp;
if (app == null) {
return;
}
await _openAppFromExternal(account, app.id);
}; };
final details = await localNotificationsPlugin.getNotificationAppLaunchDetails(); final details = await localNotificationsPlugin.getNotificationAppLaunchDetails();

Loading…
Cancel
Save