Skip to content

Commit

Permalink
Adapt delete button code to fit with other changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
leopoldsedev committed Feb 15, 2020
1 parent 79319af commit ba7dc18
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,8 @@ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
message.message.getDate() != null
? Utils.dateToRelative(message.message.getDate())
: "?");
holder.delete.setOnClickListener((ignored) -> delete.delete(message.message));
holder.delete.setOnClickListener(
(ignored) -> delete.delete(holder.getAdapterPosition(), message.message, false));
}

@Override
Expand Down Expand Up @@ -129,6 +130,6 @@ static class ViewHolder extends RecyclerView.ViewHolder {
}

public interface Delete {
void delete(Message message);
void delete(int position, Message message, boolean listAnimation);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,8 @@ protected void onCreate(Bundle savedInstanceState) {
new DividerItemDecoration(
messagesView.getContext(), layoutManager.getOrientation());
ListMessageAdapter adapter =
new ListMessageAdapter(this, settings, picasso, emptyList(), this::delete);
new ListMessageAdapter(
this, settings, picasso, emptyList(), this::scheduleDeletion);

messagesView.addItemDecoration(dividerItemDecoration);
messagesView.setHasFixedSize(true);
Expand Down Expand Up @@ -364,12 +365,14 @@ protected void onDestroy() {
picasso.shutdown();
}

private void scheduleDeletion(int position, Message message) {
private void scheduleDeletion(int position, Message message, boolean listAnimation) {
ListMessageAdapter adapter = (ListMessageAdapter) messagesView.getAdapter();

messages.deleteLocal(message);
adapter.setItems(messages.get(appId));
adapter.notifyItemRemoved(position);

if (listAnimation) adapter.notifyItemRemoved(position);
else adapter.notifyDataSetChanged();

showDeletionSnackbar();
}
Expand Down Expand Up @@ -447,7 +450,7 @@ public boolean onMove(
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
MessageWithImage message = adapter.getItems().get(position);
scheduleDeletion(position, message.message);
scheduleDeletion(position, message.message, true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,13 @@ synchronized void deleteMessage(Message message) {

if (allMessages.loaded) {
int allPosition = allMessages.messages.indexOf(message);
allMessages.messages.remove(allPosition);
if (allPosition != -1) allMessages.messages.remove(allPosition);
pendingDeletedAllPosition = allPosition;
}

if (appMessages.loaded) {
int appPosition = appMessages.messages.indexOf(message);
appMessages.messages.remove(appPosition);
if (appPosition != -1) appMessages.messages.remove(appPosition);
pendingDeletedAppPosition = appPosition;
}

Expand Down

0 comments on commit ba7dc18

Please sign in to comment.