|
|
|
|
@@ -150,7 +150,6 @@ import org.whispersystems.libsignal.util.guava.Optional;
|
|
|
|
|
import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
@@ -1079,37 +1078,37 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
|
|
|
|
|
|
|
|
|
if (!conversation.getThreadRecord().isArchived()) {
|
|
|
|
|
if (conversation.getThreadRecord().isRead()) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unread_24, R.string.ConversationListFragment_unread, () -> handleMarkAsUnread(id)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unread_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unread, 1), () -> handleMarkAsUnread(id)));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_read_24, R.string.ConversationListFragment_read, () -> handleMarkAsRead(id)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_read_24, getResources().getQuantityString(R.plurals.ConversationListFragment_read, 1), () -> handleMarkAsRead(id)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (conversation.getThreadRecord().isPinned()) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unpin_24, R.string.ConversationListFragment_unpin, () -> handleUnpin(id)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unpin_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unpin, 1), () -> handleUnpin(id)));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_pin_24, R.string.ConversationListFragment_pin, () -> handlePin(Collections.singleton(conversation))));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_pin_24, getResources().getQuantityString(R.plurals.ConversationListFragment_pin, 1), () -> handlePin(Collections.singleton(conversation))));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (conversation.getThreadRecord().getRecipient().live().get().isMuted()) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unmute_24, R.string.ConversationListFragment_unmute, () -> handleUnmute(Collections.singleton(conversation))));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unmute_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unmute, 1), () -> handleUnmute(Collections.singleton(conversation))));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_mute_24, R.string.ConversationListFragment_mute, () -> handleMute(Collections.singleton(conversation))));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_mute_24, getResources().getQuantityString(R.plurals.ConversationListFragment_mute, 1), () -> handleMute(Collections.singleton(conversation))));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_select_24, R.string.ConversationListFragment_select, () -> {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_select_24, getString(R.string.ConversationListFragment_select), () -> {
|
|
|
|
|
defaultAdapter.initializeBatchMode(true);
|
|
|
|
|
defaultAdapter.toggleConversationInBatchSet(conversation);
|
|
|
|
|
startActionMode();
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
if (conversation.getThreadRecord().isArchived()) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unarchive_24, R.string.ConversationListFragment_unarchive, () -> handleArchive(id, false)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unarchive_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unarchive, 1), () -> handleArchive(id, false)));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_archive_24, R.string.ConversationListFragment_archive, () -> handleArchive(id, false)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_archive_24, getResources().getQuantityString(R.plurals.ConversationListFragment_archive, 1), () -> handleArchive(id, false)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_delete_24, R.string.ConversationListFragment_delete, () -> handleDelete(id)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_delete_24, getResources().getQuantityString(R.plurals.ConversationListFragment_delete, 1), () -> handleDelete(id)));
|
|
|
|
|
|
|
|
|
|
new SignalContextMenu.Builder(view, list)
|
|
|
|
|
.offsetX(ViewUtil.dpToPx(12))
|
|
|
|
|
@@ -1186,33 +1185,33 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
|
|
|
|
List<ActionItem> items = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
if (hasUnread) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_read_24, R.string.ConversationListFragment_read, () -> handleMarkAsRead(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_read_24, getResources().getQuantityString(R.plurals.ConversationListFragment_read, count), () -> handleMarkAsRead(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unread_24, R.string.ConversationListFragment_unread, () -> handleMarkAsUnread(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unread_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unread, count), () -> handleMarkAsUnread(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!isArchived() && hasUnpinned && canPin) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_pin_24, R.string.ConversationListFragment_pin, () -> handlePin(defaultAdapter.getBatchSelection())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_pin_24, getResources().getQuantityString(R.plurals.ConversationListFragment_pin, count), () -> handlePin(defaultAdapter.getBatchSelection())));
|
|
|
|
|
} else if (!isArchived() && !hasUnpinned) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unpin_24, R.string.ConversationListFragment_unpin, () -> handleUnpin(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unpin_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unpin, count), () -> handleUnpin(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isArchived()) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unarchive_24, R.string.ConversationListFragment_unarchive, () -> handleArchive(defaultAdapter.getBatchSelectionIds(), true)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unarchive_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unarchive, count), () -> handleArchive(defaultAdapter.getBatchSelectionIds(), true)));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_archive_24, R.string.ConversationListFragment_archive, () -> handleArchive(defaultAdapter.getBatchSelectionIds(), true)));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_archive_24, getResources().getQuantityString(R.plurals.ConversationListFragment_archive, count), () -> handleArchive(defaultAdapter.getBatchSelectionIds(), true)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_delete_24, R.string.ConversationListFragment_delete, () -> handleDelete(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_delete_24, getResources().getQuantityString(R.plurals.ConversationListFragment_delete, count), () -> handleDelete(defaultAdapter.getBatchSelectionIds())));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (hasUnmuted) {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_mute_24, R.string.ConversationListFragment_mute, () -> handleMute(defaultAdapter.getBatchSelection())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_mute_24, getResources().getQuantityString(R.plurals.ConversationListFragment_mute, count), () -> handleMute(defaultAdapter.getBatchSelection())));
|
|
|
|
|
} else {
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unmute_24, R.string.ConversationListFragment_unmute, () -> handleUnmute(defaultAdapter.getBatchSelection())));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_unmute_24, getResources().getQuantityString(R.plurals.ConversationListFragment_unmute, count), () -> handleUnmute(defaultAdapter.getBatchSelection())));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_select_24, R.string.ConversationListFragment_select_all, this::handleSelectAllThreads));
|
|
|
|
|
items.add(new ActionItem(R.drawable.ic_select_24, getString(R.string.ConversationListFragment_select_all), this::handleSelectAllThreads));
|
|
|
|
|
|
|
|
|
|
bottomActionBar.setItems(items);
|
|
|
|
|
}
|
|
|
|
|
|