mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 19:45:35 +00:00 
			
		
		
		
	Keep follow requests at top in notification viewer
This commit is contained in:
		
							parent
							
								
									46014928df
								
							
						
					
					
						commit
						e89cf7af46
					
				| @ -4,13 +4,19 @@ import android.view.LayoutInflater; | ||||
| import android.view.ViewGroup; | ||||
| 
 | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.recyclerview.widget.DiffUtil; | ||||
| import androidx.recyclerview.widget.ListAdapter; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import awais.instagrabber.adapters.viewholder.NotificationViewHolder; | ||||
| import awais.instagrabber.databinding.ItemNotificationBinding; | ||||
| import awais.instagrabber.interfaces.MentionClickListener; | ||||
| import awais.instagrabber.models.NotificationModel; | ||||
| import awais.instagrabber.models.enums.NotificationType; | ||||
| 
 | ||||
| public final class NotificationsAdapter extends ListAdapter<NotificationModel, NotificationViewHolder> { | ||||
|     private final OnNotificationClickListener notificationClickListener; | ||||
| @ -49,6 +55,36 @@ public final class NotificationsAdapter extends ListAdapter<NotificationModel, N | ||||
|         holder.bind(notificationModel, notificationClickListener); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void submitList(@Nullable final List<NotificationModel> list, @Nullable final Runnable commitCallback) { | ||||
|         if (list == null) { | ||||
|             super.submitList(null, commitCallback); | ||||
|             return; | ||||
|         } | ||||
|         super.submitList(sort(list), commitCallback); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void submitList(@Nullable final List<NotificationModel> list) { | ||||
|         if (list == null) { | ||||
|             super.submitList(null); | ||||
|             return; | ||||
|         } | ||||
|         super.submitList(sort(list)); | ||||
|     } | ||||
| 
 | ||||
|     private List<NotificationModel> sort(final List<NotificationModel> list) { | ||||
|         final List<NotificationModel> listCopy = new ArrayList<>(list); | ||||
|         Collections.sort(listCopy, (o1, o2) -> { | ||||
|             if (o1.getType() == o2.getType()) return 0; | ||||
|             // keep requests at top | ||||
|             if (o1.getType() == NotificationType.REQUEST) return -1; | ||||
|             if (o2.getType() == NotificationType.REQUEST) return 1; | ||||
|             return 0; | ||||
|         }); | ||||
|         return listCopy; | ||||
|     } | ||||
| 
 | ||||
|     public interface OnNotificationClickListener { | ||||
|         void onNotificationClick(final NotificationModel model); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user