From 3204223af779c7b66c27d05f84c0ae82336f0a17 Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Wed, 15 Nov 2017 21:18:35 +0100 Subject: [PATCH] fix clear notifications crash (#458) --- .../com/keylesspalace/tusky/MainActivity.java | 8 ++++++++ .../tusky/fragment/NotificationsFragment.java | 10 ---------- .../tusky/util/NotificationManager.java | 18 ++++++++++-------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java index 9f9f82b3..663d81a7 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java @@ -156,6 +156,10 @@ public class MainActivity extends BaseActivity implements ActionButtonActivity { viewPager.setCurrentItem(tab.getPosition()); tintTab(tab, true); + + if(tab.getPosition() == 1) { + NotificationManager.clearNotifications(MainActivity.this); + } } @Override @@ -210,6 +214,10 @@ public class MainActivity extends BaseActivity implements ActionButtonActivity { .putBoolean("refreshProfileHeader", false) .apply(); } + + if(viewPager.getCurrentItem() == 1) { + NotificationManager.clearNotifications(this); + } } @Override diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java index a1a301ca..1ca8a19a 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java @@ -250,16 +250,6 @@ public class NotificationsFragment extends SFragment implements super.onDestroyView(); } - @Override - public void setUserVisibleHint(boolean isVisibleToUser) { - super.setUserVisibleHint(isVisibleToUser); - if (isVisibleToUser) { - //noinspection ConstantConditions - ((NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE)) - .cancel(NotificationPullJobCreator.NOTIFY_ID); - } - } - @Override public void onRefresh() { sendFetchNotificationsRequest(null, topId, FetchEnd.TOP, -1); diff --git a/app/src/main/java/com/keylesspalace/tusky/util/NotificationManager.java b/app/src/main/java/com/keylesspalace/tusky/util/NotificationManager.java index bf7f2ac5..d42119d1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/util/NotificationManager.java +++ b/app/src/main/java/com/keylesspalace/tusky/util/NotificationManager.java @@ -210,15 +210,17 @@ public class NotificationManager { } } - public static void clearNotifications(Context context) { - SharedPreferences notificationPreferences = - context.getSharedPreferences("Notifications", Context.MODE_PRIVATE); - notificationPreferences.edit().putString("current", "[]").apply(); + public static void clearNotifications(@Nullable Context context) { + if(context != null) { + SharedPreferences notificationPreferences = + context.getSharedPreferences("Notifications", Context.MODE_PRIVATE); + notificationPreferences.edit().putString("current", "[]").apply(); - android.app.NotificationManager manager = (android.app.NotificationManager) - context.getSystemService(Context.NOTIFICATION_SERVICE); - //noinspection ConstantConditions - manager.cancel(NotificationPullJobCreator.NOTIFY_ID); + android.app.NotificationManager manager = (android.app.NotificationManager) + context.getSystemService(Context.NOTIFICATION_SERVICE); + //noinspection ConstantConditions + manager.cancel(NotificationPullJobCreator.NOTIFY_ID); + } } private static boolean filterNotification(SharedPreferences preferences,