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);
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#FFFFFF" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M17,3L7,3c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3L19,5c0,-1.1 -0.9,-2 -2,-2zM17,18l-5,-2.18L7,18L7,5h10v13z"/>
|
||||
|
||||
</vector>
|
||||
@@ -5,6 +5,11 @@
|
||||
android:icon="@drawable/ic_create_white_24dp"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item android:title="@string/save"
|
||||
android:id="@+id/menu_toggle_save"
|
||||
android:icon="@drawable/baseline_bookmark_24"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item android:title="@string/menu_copy_text_to_clipboard"
|
||||
android:id="@+id/menu_context_copy"
|
||||
android:icon="?menu_copy_icon"
|
||||
|
||||
Reference in New Issue
Block a user