File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed
core/java/com/android/internal/view/menu Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -873,15 +873,20 @@ public boolean performItemAction(MenuItem item, int flags) {
873873
874874 boolean invoked = itemImpl .invoke ();
875875
876+ final ActionProvider provider = item .getActionProvider ();
877+ final boolean providerHasSubMenu = provider != null && provider .hasSubMenu ();
876878 if (itemImpl .hasCollapsibleActionView ()) {
877879 invoked |= itemImpl .expandActionView ();
878880 if (invoked ) close (true );
879- } else if (item .hasSubMenu ()) {
881+ } else if (itemImpl .hasSubMenu () || providerHasSubMenu ) {
880882 close (false );
881883
882- final SubMenuBuilder subMenu = (SubMenuBuilder ) item .getSubMenu ();
883- final ActionProvider provider = item .getActionProvider ();
884- if (provider != null && provider .hasSubMenu ()) {
884+ if (!itemImpl .hasSubMenu ()) {
885+ itemImpl .setSubMenu (new SubMenuBuilder (getContext (), this , itemImpl ));
886+ }
887+
888+ final SubMenuBuilder subMenu = (SubMenuBuilder ) itemImpl .getSubMenu ();
889+ if (providerHasSubMenu ) {
885890 provider .onPrepareSubMenu (subMenu );
886891 }
887892 invoked |= dispatchSubMenuSelected (subMenu );
You can’t perform that action at this time.
0 commit comments