[cr144][Android] New arg hierarchicalMenuController at AppMenu.ctor

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/828199472d91584dcdc29b5d85587bfe3326df42

	flyout: AppMenu: Implement FlyoutHandler for AppMenu

	This CL implements flyoutHandler for app menu so that flyout can be used
	to display submenus in app menu.

	Because we want to use `AnchoredPopupWindow` for the flyout popups but
	also use `PopupWindow` for the main menu, we create a wrapper type
	`AppMenuPopup` and provide a common interface so that
	`HierarchicalMenuController` can control both.

	This change is behind the flag #submenus-in-app-menu, and there should
	be no functional change with this CL if the flag is disabled.

	Demo: http://screencast/cast/NTM4MTIzMDUzNDA2NjE3NnxmOGJhODgyYS1iMQ

	Bug: 438629323
	Change-Id: I26327b1b0806b173936c6edd66ca7f0b4411076e
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7058413
This commit is contained in:
AlexeyBarabash
2025-12-20 23:56:19 +00:00
committed by Claudio DeSouza
parent a651899f33
commit 94ff42e57f
2 changed files with 12 additions and 4 deletions
@@ -16,6 +16,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.SysUtils;
import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.ui.appmenu.internal.R;
import org.chromium.ui.hierarchicalmenu.HierarchicalMenuController;
@NullMarked
class BraveAppMenu extends BraveAppMenuDummySuper {
@@ -23,8 +24,11 @@ class BraveAppMenu extends BraveAppMenuDummySuper {
private static int sMenuHeight;
private static int sNegativeVerticalOffsetNotTopAnchored;
BraveAppMenu(AppMenuHandlerImpl handler, Resources res) {
super(handler, res);
BraveAppMenu(
AppMenuHandlerImpl handler,
Resources res,
HierarchicalMenuController hierarchicalMenuController) {
super(handler, res, hierarchicalMenuController);
final float scale = res.getDisplayMetrics().density;
sNegativeVerticalOffsetNotTopAnchored =
@@ -8,6 +8,7 @@ package org.chromium.chrome.browser.ui.appmenu;
import android.content.res.Resources;
import org.chromium.build.annotations.NullMarked;
import org.chromium.ui.hierarchicalmenu.HierarchicalMenuController;
/*
* This is dummy super class for BraveAppMenu.
@@ -15,8 +16,11 @@ import org.chromium.build.annotations.NullMarked;
*/
@NullMarked
class BraveAppMenuDummySuper extends AppMenu {
BraveAppMenuDummySuper(AppMenuHandlerImpl handler, Resources res) {
super(handler, res);
BraveAppMenuDummySuper(
AppMenuHandlerImpl handler,
Resources res,
HierarchicalMenuController hierarchicalMenuController) {
super(handler, res, hierarchicalMenuController);
assert false : "This class usage should be removed in the bytecode!";
}