diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt index 5d55bea76..ad4ed00bb 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt @@ -92,6 +92,7 @@ class BrowserToolbarView( with(container.context) { val sessionManager = components.core.sessionManager + val isPinningSupported = components.useCases.webAppUseCases.isPinningSupported() if (toolbarPosition == ToolbarPosition.TOP) { val offsetChangedListener = @@ -173,7 +174,8 @@ class BrowserToolbarView( lifecycleOwner = lifecycleOwner, sessionManager = sessionManager, store = components.core.store, - bookmarksStorage = bookmarkStorage + bookmarksStorage = bookmarkStorage, + isPinningSupported = isPinningSupported ) view.display.setMenuDismissAction { view.invalidateActions() diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index ed5da2094..1acb62d24 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -50,7 +50,8 @@ class DefaultToolbarMenu( shouldReverseItems: Boolean, private val onItemTapped: (ToolbarMenu.Item) -> Unit = {}, private val lifecycleOwner: LifecycleOwner, - private val bookmarksStorage: BookmarksStorage + private val bookmarksStorage: BookmarksStorage, + val isPinningSupported: Boolean ) : ToolbarMenu { private var currentUrlIsBookmarked = false @@ -153,11 +154,11 @@ class DefaultToolbarMenu( // Predicates that need to be repeatedly called as the session changes private fun canAddToHomescreen(): Boolean = - session != null && context.components.useCases.webAppUseCases.isPinningSupported() && + session != null && isPinningSupported && !context.components.useCases.webAppUseCases.isInstallable() private fun canInstall(): Boolean = - session != null && context.components.useCases.webAppUseCases.isPinningSupported() && + session != null && isPinningSupported && context.components.useCases.webAppUseCases.isInstallable() private fun shouldShowOpenInApp(): Boolean = session?.let { session ->