diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 10c674713152ada1db33edb8b19b59f727570efa..478d7d07cb96a806a630878da5abf6e3f740cb55 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -62,6 +62,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; +import androidx.core.content.pm.ShortcutInfoCompat; +import androidx.core.content.pm.ShortcutManagerCompat; import androidx.core.view.inputmethod.InputConnectionCompat; import androidx.core.view.inputmethod.InputContentInfoCompat; import androidx.databinding.DataBindingUtil; @@ -1757,6 +1759,9 @@ public class ConversationFragment extends XmppFragment case R.id.action_toggle_pinned: togglePinned(); break; + case R.id.action_add_shortcut: + addShortcut(); + break; case R.id.action_refresh_feature_discovery: refreshFeatureDiscovery(); break; @@ -1826,6 +1831,11 @@ public class ConversationFragment extends XmppFragment } } + private void addShortcut() { + ShortcutInfoCompat info = activity.xmppConnectionService.getShortcutService().getShortcutInfoCompat(conversation.getContact()); + ShortcutManagerCompat.requestPinShortcut(activity, info, null); + } + private void togglePinned() { final boolean pinned = conversation.getBooleanAttribute(Conversation.ATTRIBUTE_PINNED_ON_TOP, false); diff --git a/src/main/res/menu/fragment_conversation.xml b/src/main/res/menu/fragment_conversation.xml index cf4044d25b8e3d882a462456fed4055d9541c3cc..253a65673cbde364b2b0a0cf9b8b86e0e5912144 100644 --- a/src/main/res/menu/fragment_conversation.xml +++ b/src/main/res/menu/fragment_conversation.xml @@ -131,6 +131,12 @@ android:title="@string/add_to_favorites" app:showAsAction="never" /> + +