mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
add action menu icon option to toggle message bookmark
This commit is contained in:
@@ -327,6 +327,7 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
menu.findItem(R.id.menu_context_edit).setVisible(false);
|
||||
menu.findItem(R.id.menu_context_reply_privately).setVisible(false);
|
||||
menu.findItem(R.id.menu_add_to_home_screen).setVisible(false);
|
||||
menu.findItem(R.id.menu_toggle_save).setVisible(false);
|
||||
} else {
|
||||
DcMsg messageRecord = messageRecords.iterator().next();
|
||||
DcChat chat = getListAdapter().getChat();
|
||||
@@ -339,6 +340,9 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
boolean showReplyPrivately = chat.isMultiUser() && !messageRecord.isOutgoing() && canReply;
|
||||
menu.findItem(R.id.menu_context_reply_privately).setVisible(showReplyPrivately);
|
||||
menu.findItem(R.id.menu_add_to_home_screen).setVisible(messageRecord.getType() == DcMsg.DC_MSG_WEBXDC);
|
||||
|
||||
menu.findItem(R.id.menu_toggle_save).setVisible(messageRecord.canSave() && !chat.isSelfTalk());
|
||||
menu.findItem(R.id.menu_toggle_save).setIcon(messageRecord.getSavedMsgId() == 0 ? R.drawable.baseline_bookmark_24 : R.drawable.baseline_bookmark_border_24);
|
||||
}
|
||||
|
||||
// if one of the selected items cannot be saved, disable saving.
|
||||
@@ -496,6 +500,15 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void handleToggleSave(final Set<DcMsg> messageRecords) {
|
||||
DcMsg msg = getSelectedMessageRecord(messageRecords);
|
||||
if (msg.getSavedMsgId() != 0) {
|
||||
dcContext.deleteMsgs(new int[]{msg.getSavedMsgId()});
|
||||
} else {
|
||||
dcContext.saveMsgs(new int[]{msg.getId()});
|
||||
}
|
||||
}
|
||||
|
||||
private void reloadList() {
|
||||
reloadList(false);
|
||||
}
|
||||
@@ -988,9 +1001,12 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
} else if (itemId == R.id.menu_resend) {
|
||||
handleResendMessage(getListAdapter().getSelectedItems());
|
||||
return true;
|
||||
} else if (itemId == R.id.menu_toggle_save) {
|
||||
handleToggleSave(getListAdapter().getSelectedItems());
|
||||
actionMode.finish();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -27,6 +27,7 @@ public class ConversationAdaptiveActionsToolbar extends Toolbar {
|
||||
private static final int ID_ACTION_2 = R.id.menu_context_copy;
|
||||
private static final int ID_ACTION_3 = R.id.menu_context_share;
|
||||
private static final int ID_ACTION_4 = R.id.menu_context_forward;
|
||||
private static final int ID_ACTION_5 = R.id.menu_toggle_save;
|
||||
|
||||
private final int maxShown;
|
||||
|
||||
@@ -79,7 +80,8 @@ public class ConversationAdaptiveActionsToolbar extends Toolbar {
|
||||
boolean showAsAction = item.getItemId() == ID_ACTION_1
|
||||
|| item.getItemId() == ID_ACTION_2
|
||||
|| item.getItemId() == ID_ACTION_3
|
||||
|| item.getItemId() == ID_ACTION_4;
|
||||
|| item.getItemId() == ID_ACTION_4
|
||||
|| item.getItemId() == ID_ACTION_5;
|
||||
|
||||
if (showAsAction && item.isVisible() && nItemsToShow > 0) {
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
|
||||
Reference in New Issue
Block a user