[fenix] For issue https://github.com/mozilla-mobile/fenix/issues/16847 Show the autoplay icon in the toolbar

pull/600/head
Arturo Mejia 4 years ago
parent b5fccc3989
commit 9a3a4faf12

@ -41,4 +41,9 @@ object FeatureFlags {
* Enables the new MediaSession API. * Enables the new MediaSession API.
*/ */
val newMediaSessionApi = Config.channel.isNightlyOrDebug val newMediaSessionApi = Config.channel.isNightlyOrDebug
/**
* Enabled showing site permission indicators in the toolbars.
*/
val permissionIndicatorsToolbar = Config.channel.isNightlyOrDebug
} }

@ -126,6 +126,8 @@ import org.mozilla.fenix.wifi.SitePermissionsWifiIntegration
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
import mozilla.components.feature.media.fullscreen.MediaFullscreenOrientationFeature import mozilla.components.feature.media.fullscreen.MediaFullscreenOrientationFeature
import org.mozilla.fenix.FeatureFlags.newMediaSessionApi import org.mozilla.fenix.FeatureFlags.newMediaSessionApi
import org.mozilla.fenix.settings.PhoneFeature
import org.mozilla.fenix.settings.quicksettings.QuickSettingsSheetDialogFragmentDirections
/** /**
* Base fragment extended by [BrowserFragment]. * Base fragment extended by [BrowserFragment].
@ -367,6 +369,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler,
showQuickSettingsDialog() showQuickSettingsDialog()
} }
browserToolbarView.view.display.setOnPermissionIndicatorClickedListener {
navigateToAutoplaySetting()
}
browserToolbarView.view.display.setOnTrackingProtectionClickedListener { browserToolbarView.view.display.setOnTrackingProtectionClickedListener {
context.metrics.track(Event.TrackingProtectionIconPressed) context.metrics.track(Event.TrackingProtectionIconPressed)
showTrackingProtectionPanel() showTrackingProtectionPanel()
@ -1282,4 +1288,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler,
browserToolbarView.setScrollFlags(enabled) browserToolbarView.setScrollFlags(enabled)
} }
} }
private fun navigateToAutoplaySetting() {
val directions = QuickSettingsSheetDialogFragmentDirections
.actionGlobalSitePermissionsManagePhoneFeature(PhoneFeature.AUTOPLAY_AUDIBLE)
findNavController().navigate(directions)
}
} }

@ -151,7 +151,8 @@ class BrowserToolbarView(
menu = primaryTextColor, menu = primaryTextColor,
hint = secondaryTextColor, hint = secondaryTextColor,
separator = separatorColor, separator = separatorColor,
trackingProtection = primaryTextColor trackingProtection = primaryTextColor,
permissionHighlights = primaryTextColor
) )
display.hint = context.getString(R.string.search_hint) display.hint = context.getString(R.string.search_hint)

@ -24,6 +24,7 @@ import mozilla.components.feature.toolbar.ToolbarPresenter
import mozilla.components.lib.publicsuffixlist.PublicSuffixList import mozilla.components.lib.publicsuffixlist.PublicSuffixList
import mozilla.components.support.base.feature.LifecycleAwareFeature import mozilla.components.support.base.feature.LifecycleAwareFeature
import mozilla.components.support.ktx.android.view.hideKeyboard import mozilla.components.support.ktx.android.view.hideKeyboard
import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings 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 = toolbar.display.displayIndicatorSeparator =
context.settings().shouldUseTrackingProtection context.settings().shouldUseTrackingProtection

@ -28,6 +28,7 @@ import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.AS
import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.BLOCKED import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.BLOCKED
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
@ -213,6 +214,7 @@ class SitePermissionsManagePhoneFeatureFragment : Fragment() {
requireComponents.analytics.metrics.track(Event.AutoPlaySettingChanged(setting)) requireComponents.analytics.metrics.track(Event.AutoPlaySettingChanged(setting))
settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_AUDIBLE, audible) settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_AUDIBLE, audible)
settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_INAUDIBLE, inaudible) settings.setSitePermissionsPhoneFeatureAction(AUTOPLAY_INAUDIBLE, inaudible)
context?.components?.useCases?.sessionUseCases?.reload?.invoke()
} }
private fun bindBlockedByAndroidContainer(rootView: View) { private fun bindBlockedByAndroidContainer(rootView: View) {

Loading…
Cancel
Save