commit 87e88b0e3a86ad1c258bfc99aeb231bfa76d11da parent 6b2bebcddd3fbecb908ea483b6a92adb3d9b0c69 Author: rmalicdem <rmalicdem@mozilla.com> Date: Mon, 6 Oct 2025 21:28:17 +0000 Bug 1992595 - Don't highlight homepage menu button if notifications only contains open in app r=android-reviewers,skhan Differential Revision: https://phabricator.services.mozilla.com/D267631 Diffstat:
2 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt @@ -60,6 +60,7 @@ import org.mozilla.fenix.browser.browsingmode.BrowsingMode.Private import org.mozilla.fenix.components.AppStore import org.mozilla.fenix.components.UseCases import org.mozilla.fenix.components.appstate.AppAction.SearchAction.SearchStarted +import org.mozilla.fenix.components.appstate.SupportedMenuNotifications import org.mozilla.fenix.components.menu.MenuAccessPoint import org.mozilla.fenix.components.toolbar.BrowserToolbarEnvironment import org.mozilla.fenix.ext.isTallWindow @@ -502,12 +503,16 @@ class BrowserToolbarMiddleware( ) } - HomeToolbarAction.Menu -> ActionButtonRes( - drawableResId = iconsR.drawable.mozac_ic_ellipsis_vertical_24, - contentDescription = R.string.content_description_menu, - highlighted = appStore.state.supportedMenuNotifications.isNotEmpty(), - onClick = MenuClicked(source), - ) + HomeToolbarAction.Menu -> { + val highlighted = appStore.state.supportedMenuNotifications + .any { it != SupportedMenuNotifications.OpenInApp } + ActionButtonRes( + drawableResId = iconsR.drawable.mozac_ic_ellipsis_vertical_24, + contentDescription = R.string.content_description_menu, + highlighted = highlighted, + onClick = MenuClicked(source), + ) + } HomeToolbarAction.FakeBookmark -> ActionButtonRes( drawableResId = iconsR.drawable.mozac_ic_bookmark_24, diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt @@ -797,6 +797,21 @@ class BrowserToolbarMiddlewareTest { assertEquals(expectedMenuButton(), updatedMenuButton) } + @Test + fun `GIVEN the open in app is highlighted THEN menu button is not highlighted`() = runTest { + val appStore = AppStore( + initialState = AppState( + supportedMenuNotifications = setOf(SupportedMenuNotifications.OpenInApp), + ), + ) + val middleware = BrowserToolbarMiddleware(appStore, browserStore, mockk(), mockk()) + val toolbarStore = buildStore(middleware) + + mainLooperRule.idle() + val menuButton = toolbarStore.state.displayState.browserActionsEnd[1] as ActionButtonRes + assertEquals(expectedMenuButton(false), menuButton) + } + private fun buildStore( middleware: BrowserToolbarMiddleware, context: Context = testContext,