Adapt delete button code to fit with other changes.
This commit is contained in:
committed by
Jannis Mattheis
parent
f49900e0ef
commit
48c2806d12
@@ -92,7 +92,8 @@ public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.
|
||||
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
|
||||
@@ -129,6 +130,6 @@ public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.
|
||||
}
|
||||
|
||||
public interface Delete {
|
||||
void delete(Message message);
|
||||
void delete(int position, Message message, boolean listAnimation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,8 @@ public class MessagesActivity extends AppCompatActivity
|
||||
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);
|
||||
@@ -364,12 +365,14 @@ public class MessagesActivity extends AppCompatActivity
|
||||
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();
|
||||
}
|
||||
@@ -447,7 +450,7 @@ public class MessagesActivity extends AppCompatActivity
|
||||
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
|
||||
|
||||
@@ -86,13 +86,13 @@ class MessageStateHolder {
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user