1
0
Fork 0

Closes #1166: Added behavior for site permissions recommended settings.

master
Arturo Mejia 2019-03-28 14:29:03 -04:00 committed by Jeff Boek
parent 22fcea344f
commit 289785be90
2 changed files with 27 additions and 0 deletions

View File

@ -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
}

View File

@ -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))