mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	Reset notification marker when clearing cache
This commit is contained in:
		
							parent
							
								
									bf0c44e905
								
							
						
					
					
						commit
						23cecbf3c4
					
				
					 2 changed files with 15 additions and 5 deletions
				
			
		| 
						 | 
					@ -140,6 +140,11 @@ public class CacheHelper {
 | 
				
			||||||
                                editor.putString(entry.getKey(), null);
 | 
					                                editor.putString(entry.getKey(), null);
 | 
				
			||||||
                                editor.apply();
 | 
					                                editor.apply();
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					                            //Delete last notification ref
 | 
				
			||||||
 | 
					                            if (entry.getKey().startsWith(context.getString(R.string.LAST_NOTIFICATION_ID) + cacheAccount.account.user_id + cacheAccount.account.instance) && !entry.getKey().endsWith(Timeline.TimeLineEnum.HOME.getValue())) {
 | 
				
			||||||
 | 
					                                editor.putString(entry.getKey(), null);
 | 
				
			||||||
 | 
					                                editor.apply();
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    } catch (DBException e) {
 | 
					                    } catch (DBException e) {
 | 
				
			||||||
                        e.printStackTrace();
 | 
					                        e.printStackTrace();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,6 @@ import com.bumptech.glide.request.target.CustomTarget;
 | 
				
			||||||
import com.bumptech.glide.request.target.Target;
 | 
					import com.bumptech.glide.request.target.Target;
 | 
				
			||||||
import com.bumptech.glide.request.transition.Transition;
 | 
					import com.bumptech.glide.request.transition.Transition;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
| 
						 | 
					@ -117,7 +116,7 @@ public class NotificationsHelper {
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        notifications.pagination = MastodonHelper.getPagination(notificationsResponse.headers());
 | 
					                        notifications.pagination = MastodonHelper.getPagination(notificationsResponse.headers());
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } catch (IOException e) {
 | 
					                } catch (Exception e) {
 | 
				
			||||||
                    e.printStackTrace();
 | 
					                    e.printStackTrace();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -145,19 +144,23 @@ public class NotificationsHelper {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void onRetrieveNotifications(Context context, Notifications newNotifications, final BaseAccount account) {
 | 
					    public static void onRetrieveNotifications(Context context, Notifications newNotifications, final BaseAccount account) {
 | 
				
			||||||
        List<Notification> notificationsReceived = newNotifications.notifications;
 | 
					        if (newNotifications == null || newNotifications.notifications == null || newNotifications.notifications.size() == 0 || account == null) {
 | 
				
			||||||
        if (notificationsReceived == null || notificationsReceived.size() == 0 || account == null)
 | 
					 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<Notification> notificationsReceived = newNotifications.notifications;
 | 
				
			||||||
        String key = account.user_id + "@" + account.instance;
 | 
					        String key = account.user_id + "@" + account.instance;
 | 
				
			||||||
        SharedPreferences prefs = PreferenceManager
 | 
					        SharedPreferences prefs = PreferenceManager
 | 
				
			||||||
                .getDefaultSharedPreferences(context);
 | 
					                .getDefaultSharedPreferences(context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        boolean notif_follow = prefs.getBoolean(context.getString(R.string.SET_NOTIF_FOLLOW), true);
 | 
					        boolean notif_follow = prefs.getBoolean(context.getString(R.string.SET_NOTIF_FOLLOW), true);
 | 
				
			||||||
        boolean notif_mention = prefs.getBoolean(context.getString(R.string.SET_NOTIF_MENTION), true);
 | 
					        boolean notif_mention = prefs.getBoolean(context.getString(R.string.SET_NOTIF_MENTION), true);
 | 
				
			||||||
        boolean notif_share = prefs.getBoolean(context.getString(R.string.SET_NOTIF_SHARE), true);
 | 
					        boolean notif_share = prefs.getBoolean(context.getString(R.string.SET_NOTIF_SHARE), true);
 | 
				
			||||||
        boolean notif_poll = prefs.getBoolean(context.getString(R.string.SET_NOTIF_POLL), true);
 | 
					        boolean notif_poll = prefs.getBoolean(context.getString(R.string.SET_NOTIF_POLL), true);
 | 
				
			||||||
        boolean notif_fav = prefs.getBoolean(context.getString(R.string.SET_NOTIF_FAVOURITE), true);
 | 
					        boolean notif_fav = prefs.getBoolean(context.getString(R.string.SET_NOTIF_FAVOURITE), true);
 | 
				
			||||||
        boolean notif_status = prefs.getBoolean(context.getString(R.string.SET_NOTIF_STATUS), true);
 | 
					        boolean notif_status = prefs.getBoolean(context.getString(R.string.SET_NOTIF_STATUS), true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        final String max_id = prefs.getString(context.getString(R.string.LAST_NOTIFICATION_ID) + key, null);
 | 
					        final String max_id = prefs.getString(context.getString(R.string.LAST_NOTIFICATION_ID) + key, null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        final List<Notification> notifications = new ArrayList<>();
 | 
					        final List<Notification> notifications = new ArrayList<>();
 | 
				
			||||||
        int pos = 0;
 | 
					        int pos = 0;
 | 
				
			||||||
        for (Notification notif : notificationsReceived) {
 | 
					        for (Notification notif : notificationsReceived) {
 | 
				
			||||||
| 
						 | 
					@ -166,8 +169,10 @@ public class NotificationsHelper {
 | 
				
			||||||
                pos++;
 | 
					                pos++;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (notifications.size() == 0)
 | 
					
 | 
				
			||||||
 | 
					        if (notifications.size() == 0) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        //No previous notifications in cache, so no notification will be sent
 | 
					        //No previous notifications in cache, so no notification will be sent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Notification notification : notifications) {
 | 
					        for (Notification notification : notifications) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue