diff --git a/catalog/java/io/material/catalog/menu/MenuMainDemoFragment.java b/catalog/java/io/material/catalog/menu/MenuMainDemoFragment.java index fb0f471fc..953d41f1a 100644 --- a/catalog/java/io/material/catalog/menu/MenuMainDemoFragment.java +++ b/catalog/java/io/material/catalog/menu/MenuMainDemoFragment.java @@ -36,6 +36,7 @@ import android.text.style.BackgroundColorSpan; import android.util.TypedValue; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -90,7 +91,7 @@ public class MenuMainDemoFragment extends DemoFragment { iconMenuButton.setOnClickListener(v -> showMenu(v, R.menu.menu_with_icons)); TextView contextMenuTextView = view.findViewById(R.id.context_menu_tv); - registerForContextMenu(contextMenuTextView); + setupContextMenuWithKeyboard(contextMenuTextView); Button listPopupWindowButton = view.findViewById(R.id.list_popup_window); ListPopupWindow listPopupWindow = initializeListPopupMenu(listPopupWindowButton); @@ -99,6 +100,20 @@ public class MenuMainDemoFragment extends DemoFragment { return view; } + private void setupContextMenuWithKeyboard(View view) { + registerForContextMenu(view); + view.setOnKeyListener( + (v, keyCode, event) -> { + if (event.getAction() == KeyEvent.ACTION_DOWN + && event.isCtrlPressed() + && (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER)) { + v.showContextMenu(); + return true; + } + return false; + }); + } + @SuppressWarnings("RestrictTo") private void showMenu(View v, @MenuRes int menuRes) { PopupMenu popup = new PopupMenu(getContext(), v); diff --git a/catalog/java/io/material/catalog/menu/res/values/strings.xml b/catalog/java/io/material/catalog/menu/res/values/strings.xml index 8f7e3f9b0..6dbad944e 100644 --- a/catalog/java/io/material/catalog/menu/res/values/strings.xml +++ b/catalog/java/io/material/catalog/menu/res/values/strings.xml @@ -31,7 +31,7 @@ - This TextView opens a context menu when long pressed or by pressing Enter on a keyboard. + This TextView opens a context menu when long pressed or by pressing Ctrl + Enter on a keyboard. \n\nIt provides actions that affect the selected content or context frame. Highlight