diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java index 9f9f82b31..663d81a75 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 a1a301cab..1ca8a19a7 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 bf7f2ac5e..d42119d15 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,