Closes #1166: Added behavior for site permissions recommended settings.
parent
22fcea344f
commit
289785be90
|
@ -31,6 +31,8 @@ import mozilla.components.feature.session.SessionFeature
|
|||
import mozilla.components.feature.session.SessionUseCases
|
||||
import mozilla.components.feature.session.ThumbnailsFeature
|
||||
import mozilla.components.feature.sitepermissions.SitePermissionsFeature
|
||||
import mozilla.components.feature.sitepermissions.SitePermissionsRules
|
||||
import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.ASK_TO_ALLOW
|
||||
import mozilla.components.support.base.feature.BackHandler
|
||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||
import mozilla.components.support.ktx.android.view.enterToImmersiveMode
|
||||
|
@ -56,6 +58,7 @@ import org.mozilla.fenix.ext.share
|
|||
import org.mozilla.fenix.mvi.ActionBusFactory
|
||||
import org.mozilla.fenix.mvi.getAutoDisposeObservable
|
||||
import org.mozilla.fenix.quickactionsheet.QuickActionSheet
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
|
||||
class BrowserFragment : Fragment(), BackHandler {
|
||||
private lateinit var toolbarComponent: ToolbarComponent
|
||||
|
@ -258,6 +261,8 @@ class BrowserFragment : Fragment(), BackHandler {
|
|||
is SearchAction.ToolbarMenuItemTapped -> handleToolbarItemInteraction(it)
|
||||
}
|
||||
}
|
||||
|
||||
assignSitePermissionsRules()
|
||||
}
|
||||
|
||||
override fun onBackPressed(): Boolean {
|
||||
|
@ -335,6 +340,25 @@ class BrowserFragment : Fragment(), BackHandler {
|
|||
}
|
||||
}
|
||||
|
||||
private fun assignSitePermissionsRules() {
|
||||
val settings = Settings.getInstance(requireContext())
|
||||
|
||||
val recommendedSettings = SitePermissionsRules(
|
||||
camera = ASK_TO_ALLOW,
|
||||
notification = ASK_TO_ALLOW,
|
||||
location = ASK_TO_ALLOW,
|
||||
microphone = ASK_TO_ALLOW
|
||||
)
|
||||
val rules: SitePermissionsRules? = if (settings.shouldRecommendedSettingsBeActivated) {
|
||||
recommendedSettings
|
||||
} else {
|
||||
null
|
||||
}
|
||||
sitePermissionsFeature.withFeature {
|
||||
it.sitePermissionsRules = rules
|
||||
}
|
||||
}
|
||||
|
||||
object Do {
|
||||
inline infix fun <reified T> exhaustive(any: T?) = any
|
||||
}
|
||||
|
|
|
@ -50,6 +50,9 @@ class Settings private constructor(context: Context) {
|
|||
val shouldAutoBounceQuickActionSheet: Boolean
|
||||
get() = autoBounceQuickActionSheetCount < autoBounceMaximumCount
|
||||
|
||||
val shouldRecommendedSettingsBeActivated: Boolean
|
||||
get() = preferences.getBoolean(appContext.getPreferenceKey(R.string.pref_key_recommended_settings), true)
|
||||
|
||||
private val autoBounceQuickActionSheetCount: Int
|
||||
get() = (preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_bounce_quick_action), 0))
|
||||
|
||||
|
|
Loading…
Reference in New Issue