mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 03:25:34 +00:00 
			
		
		
		
	allow replying to replies
This commit is contained in:
		
							parent
							
								
									463be0ec2e
								
							
						
					
					
						commit
						786c567cca
					
				| @ -174,7 +174,7 @@ public class RepliesFragment extends Fragment { | ||||
|     } | ||||
| 
 | ||||
|     private void setupToolbar() { | ||||
|         binding.toolbar.setTitle("Replies"); | ||||
|         binding.toolbar.setTitle(R.string.title_replies); | ||||
|         binding.toolbar.setNavigationIcon(R.drawable.ic_round_arrow_back_24); | ||||
|         binding.toolbar.setNavigationOnClickListener(v -> { | ||||
|             final FragmentManager fragmentManager = getParentFragmentManager(); | ||||
| @ -187,7 +187,16 @@ public class RepliesFragment extends Fragment { | ||||
|         if (context == null) return; | ||||
|         commentsAdapter = new CommentsAdapter(currentUserId, | ||||
|                                               true, | ||||
|                                               Helper.getCommentCallback(context, getViewLifecycleOwner(), getNavController(), viewModel, null)); | ||||
|                                               Helper.getCommentCallback(context, | ||||
|                                                       getViewLifecycleOwner(), | ||||
|                                                       getNavController(), | ||||
|                                                       viewModel, | ||||
|                                                       (comment, focusInput) -> { | ||||
|                                                            viewModel.setReplyTo(comment); | ||||
|                                                            binding.commentText.setText(String.format("@%s ", comment.getUser().getUsername())); | ||||
|                                                            if (focusInput) Utils.showKeyboard(binding.commentText); | ||||
|                                                            return null; | ||||
|                                                       })); | ||||
|         binding.comments.setAdapter(commentsAdapter); | ||||
|         final Resource<List<Comment>> listResource = viewModel.getReplyList().getValue(); | ||||
|         commentsAdapter.submitList(listResource != null ? listResource.data : Collections.emptyList()); | ||||
|  | ||||
| @ -54,7 +54,7 @@ public class CommentsViewerViewModel extends ViewModel { | ||||
|     private String postId; | ||||
|     private String rootCursor; | ||||
|     private boolean rootHasNext = true; | ||||
|     private Comment repliesParent; | ||||
|     private Comment repliesParent, replyTo; | ||||
|     private String repliesCursor; | ||||
|     private boolean repliesHasNext = true; | ||||
|     private final CommentService commentService; | ||||
| @ -153,6 +153,11 @@ public class CommentsViewerViewModel extends ViewModel { | ||||
|         return repliesParent; | ||||
|     } | ||||
| 
 | ||||
|     @Nullable | ||||
|     public void setReplyTo(final Comment replyTo) { | ||||
|         this.replyTo = replyTo; | ||||
|     } | ||||
| 
 | ||||
|     public LiveData<Resource<List<Comment>>> getRootList() { | ||||
|         return rootList; | ||||
|     } | ||||
| @ -297,6 +302,7 @@ public class CommentsViewerViewModel extends ViewModel { | ||||
|         if (comment == null) return; | ||||
|         if (repliesParent == null || !Objects.equals(repliesParent.getPk(), comment.getPk())) { | ||||
|             repliesParent = comment; | ||||
|             replyTo = comment; | ||||
|             prevReplies = null; | ||||
|             prevRepliesCursor = null; | ||||
|             prevRepliesHasNext = true; | ||||
| @ -368,8 +374,8 @@ public class CommentsViewerViewModel extends ViewModel { | ||||
|                                               final boolean isReply) { | ||||
|         final MutableLiveData<Resource<Object>> data = new MutableLiveData<>(Resource.loading(null)); | ||||
|         String replyToId = null; | ||||
|         if (isReply && repliesParent != null) { | ||||
|             replyToId = repliesParent.getPk(); | ||||
|         if (isReply && replyTo != null) { | ||||
|             replyToId = replyTo.getPk(); | ||||
|         } | ||||
|         if (isReply && replyToId == null) { | ||||
|             data.postValue(Resource.error(null, null)); | ||||
| @ -399,10 +405,9 @@ public class CommentsViewerViewModel extends ViewModel { | ||||
|         final List<Comment> list = getPrevList(isReply ? replyList : rootList); | ||||
|         final ImmutableList.Builder<Comment> builder = ImmutableList.builder(); | ||||
|         if (isReply) { | ||||
|             // in a reply list the first comment is the parent comment | ||||
|             builder.add(list.get(0)) | ||||
|                    .add(comment) | ||||
|                    .addAll(list.subList(1, list.size())); | ||||
|             // replies are added to the bottom of the list to preserve chronological order | ||||
|             builder.addAll(list) | ||||
|                    .add(comment); | ||||
|         } else { | ||||
|             builder.add(comment) | ||||
|                    .addAll(list); | ||||
|  | ||||
| @ -22,6 +22,7 @@ | ||||
|     <string name="title_favorites">Favorites</string> | ||||
|     <string name="title_discover">Discover</string> | ||||
|     <string name="title_comments">Comments</string> | ||||
|     <string name="title_replies">Replies</string> | ||||
|     <string name="title_notifications">Activity</string> | ||||
|     <string name="update_check">Check for updates at startup</string> | ||||
|     <string name="flag_secure">Block screenshots & app preview</string> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user