From f263b7333a31027986845d82d93fa07e3b740661 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Wed, 9 Dec 2020 14:34:48 -0500 Subject: [PATCH] For issue #16847 Show the autoplay icon in the toolbar --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 5 +++++ .../org/mozilla/fenix/browser/BaseBrowserFragment.kt | 12 ++++++++++++ .../fenix/components/toolbar/BrowserToolbarView.kt | 3 ++- .../fenix/components/toolbar/ToolbarIntegration.kt | 5 +++++ .../SitePermissionsManagePhoneFeatureFragment.kt | 2 ++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index c0e043e5a..b604402d0 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 22db706ba..f8b771579 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 aa240d151..2726180e9 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 6416797f9..b07f53636 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 5acba52b3..2644e8ac9 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) {