diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index c0e043e5ad..b604402d00 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -41,4 +41,9 @@ object FeatureFlags { * Enables the new MediaSession API. */ val newMediaSessionApi = Config.channel.isNightlyOrDebug + + /** + * Enabled showing site permission indicators in the toolbars. + */ + val permissionIndicatorsToolbar = Config.channel.isNightlyOrDebug } diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 22db706bab..f8b7715791 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -126,6 +126,8 @@ import org.mozilla.fenix.wifi.SitePermissionsWifiIntegration import java.lang.ref.WeakReference import mozilla.components.feature.media.fullscreen.MediaFullscreenOrientationFeature import org.mozilla.fenix.FeatureFlags.newMediaSessionApi +import org.mozilla.fenix.settings.PhoneFeature +import org.mozilla.fenix.settings.quicksettings.QuickSettingsSheetDialogFragmentDirections /** * Base fragment extended by [BrowserFragment]. @@ -367,6 +369,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, showQuickSettingsDialog() } + browserToolbarView.view.display.setOnPermissionIndicatorClickedListener { + navigateToAutoplaySetting() + } + browserToolbarView.view.display.setOnTrackingProtectionClickedListener { context.metrics.track(Event.TrackingProtectionIconPressed) showTrackingProtectionPanel() @@ -1282,4 +1288,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, browserToolbarView.setScrollFlags(enabled) } } + + private fun navigateToAutoplaySetting() { + val directions = QuickSettingsSheetDialogFragmentDirections + .actionGlobalSitePermissionsManagePhoneFeature(PhoneFeature.AUTOPLAY_AUDIBLE) + findNavController().navigate(directions) + } } 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 aa240d1510..2726180e92 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 @@ -151,7 +151,8 @@ class BrowserToolbarView( menu = primaryTextColor, hint = secondaryTextColor, separator = separatorColor, - trackingProtection = primaryTextColor + trackingProtection = primaryTextColor, + permissionHighlights = primaryTextColor ) display.hint = context.getString(R.string.search_hint) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt index 6416797f94..b07f53636b 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt @@ -24,6 +24,7 @@ import mozilla.components.feature.toolbar.ToolbarPresenter import mozilla.components.lib.publicsuffixlist.PublicSuffixList import mozilla.components.support.base.feature.LifecycleAwareFeature import mozilla.components.support.ktx.android.view.hideKeyboard +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings @@ -128,6 +129,10 @@ class DefaultToolbarIntegration( ) } + if (FeatureFlags.permissionIndicatorsToolbar) { + toolbar.display.indicators += DisplayToolbar.Indicators.PERMISSION_HIGHLIGHTS + } + toolbar.display.displayIndicatorSeparator = context.settings().shouldUseTrackingProtection diff --git a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt index 5acba52b31..2644e8ac98 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt @@ -28,6 +28,7 @@ import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.AS import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.BLOCKED import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar @@ -213,6 +214,7 @@ class SitePermissionsManagePhoneFeatureFragment : Fragment() { requireComponents.analytics.metrics.track(Event.AutoPlaySettingChanged(setting)) settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_AUDIBLE, audible) settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_INAUDIBLE, inaudible) + context?.components?.useCases?.sessionUseCases?.reload?.invoke() } private fun bindBlockedByAndroidContainer(rootView: View) {