fix clear notifications crash (#458)

main
Konrad Pozniak 7 years ago committed by GitHub
parent 10313951be
commit e3fe9819bf
  1. 8
      app/src/main/java/com/keylesspalace/tusky/MainActivity.java
  2. 10
      app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java
  3. 20
      app/src/main/java/com/keylesspalace/tusky/util/NotificationManager.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

@ -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);

@ -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();
android.app.NotificationManager manager = (android.app.NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
//noinspection ConstantConditions
manager.cancel(NotificationPullJobCreator.NOTIFY_ID);
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);
}
}
private static boolean filterNotification(SharedPreferences preferences,

Loading…
Cancel
Save