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
|
message.message.getDate() != null
|
||||||
? Utils.dateToRelative(message.message.getDate())
|
? 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
|
@Override
|
||||||
@@ -129,6 +130,6 @@ public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.
|
|||||||
}
|
}
|
||||||
|
|
||||||
public interface Delete {
|
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(
|
new DividerItemDecoration(
|
||||||
messagesView.getContext(), layoutManager.getOrientation());
|
messagesView.getContext(), layoutManager.getOrientation());
|
||||||
ListMessageAdapter adapter =
|
ListMessageAdapter adapter =
|
||||||
new ListMessageAdapter(this, settings, picasso, emptyList(), this::delete);
|
new ListMessageAdapter(
|
||||||
|
this, settings, picasso, emptyList(), this::scheduleDeletion);
|
||||||
|
|
||||||
messagesView.addItemDecoration(dividerItemDecoration);
|
messagesView.addItemDecoration(dividerItemDecoration);
|
||||||
messagesView.setHasFixedSize(true);
|
messagesView.setHasFixedSize(true);
|
||||||
@@ -364,12 +365,14 @@ public class MessagesActivity extends AppCompatActivity
|
|||||||
picasso.shutdown();
|
picasso.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scheduleDeletion(int position, Message message) {
|
private void scheduleDeletion(int position, Message message, boolean listAnimation) {
|
||||||
ListMessageAdapter adapter = (ListMessageAdapter) messagesView.getAdapter();
|
ListMessageAdapter adapter = (ListMessageAdapter) messagesView.getAdapter();
|
||||||
|
|
||||||
messages.deleteLocal(message);
|
messages.deleteLocal(message);
|
||||||
adapter.setItems(messages.get(appId));
|
adapter.setItems(messages.get(appId));
|
||||||
adapter.notifyItemRemoved(position);
|
|
||||||
|
if (listAnimation) adapter.notifyItemRemoved(position);
|
||||||
|
else adapter.notifyDataSetChanged();
|
||||||
|
|
||||||
showDeletionSnackbar();
|
showDeletionSnackbar();
|
||||||
}
|
}
|
||||||
@@ -447,7 +450,7 @@ public class MessagesActivity extends AppCompatActivity
|
|||||||
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
|
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
|
||||||
int position = viewHolder.getAdapterPosition();
|
int position = viewHolder.getAdapterPosition();
|
||||||
MessageWithImage message = adapter.getItems().get(position);
|
MessageWithImage message = adapter.getItems().get(position);
|
||||||
scheduleDeletion(position, message.message);
|
scheduleDeletion(position, message.message, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -86,13 +86,13 @@ class MessageStateHolder {
|
|||||||
|
|
||||||
if (allMessages.loaded) {
|
if (allMessages.loaded) {
|
||||||
int allPosition = allMessages.messages.indexOf(message);
|
int allPosition = allMessages.messages.indexOf(message);
|
||||||
allMessages.messages.remove(allPosition);
|
if (allPosition != -1) allMessages.messages.remove(allPosition);
|
||||||
pendingDeletedAllPosition = allPosition;
|
pendingDeletedAllPosition = allPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appMessages.loaded) {
|
if (appMessages.loaded) {
|
||||||
int appPosition = appMessages.messages.indexOf(message);
|
int appPosition = appMessages.messages.indexOf(message);
|
||||||
appMessages.messages.remove(appPosition);
|
if (appPosition != -1) appMessages.messages.remove(appPosition);
|
||||||
pendingDeletedAppPosition = appPosition;
|
pendingDeletedAppPosition = appPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user