From 5b2417826ea242d7fbff7ef4cfe19bc121c91ed8 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Sun, 7 Apr 2019 17:21:19 -0400 Subject: [PATCH] Closes #1429: Updated site permissions ui for MVP --- CHANGELOG.md | 1 + .../mozilla/fenix/browser/BrowserFragment.kt | 7 +-- .../fenix/settings/SitePermissionsFragment.kt | 44 ------------------- .../java/org/mozilla/fenix/utils/Settings.kt | 36 +++------------ .../res/xml/site_permissions_preferences.xml | 44 ++++--------------- 5 files changed, 16 insertions(+), 116 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8cd690ea..0f52e3075 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,4 +18,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - #627 - Sets engine preferred color scheme based on light/dark theme - #904 - Added tab counter in browser toolbar ### Changed +- #1429 - Updated site permissions ui for MVP ### Removed \ No newline at end of file diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 58ffc82d1..ab29e1654 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -457,11 +457,8 @@ class BrowserFragment : Fragment(), BackHandler { private fun assignSitePermissionsRules() { val settings = Settings.getInstance(requireContext()) - val rules: SitePermissionsRules = if (settings.shouldRecommendedSettingsBeActivated) { - settings.getSitePermissionsRecommendedSettingsRules() - } else { - settings.getSitePermissionsCustomSettingsRules() - } + val rules: SitePermissionsRules = settings.getSitePermissionsCustomSettingsRules() + sitePermissionsFeature.withFeature { it.sitePermissionsRules = rules } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SitePermissionsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SitePermissionsFragment.kt index e7df0a4f9..7bfe62aa2 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SitePermissionsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SitePermissionsFragment.kt @@ -5,7 +5,6 @@ package org.mozilla.fenix.settings import android.os.Bundle -import android.preference.PreferenceManager import androidx.appcompat.app.AppCompatActivity import androidx.navigation.Navigation import androidx.preference.Preference @@ -21,10 +20,6 @@ import org.mozilla.fenix.utils.Settings @SuppressWarnings("TooManyFunctions") class SitePermissionsFragment : PreferenceFragmentCompat() { - private lateinit var categoryPhoneFeatures: Preference - private lateinit var radioRecommendSettings: RadioButtonPreference - private lateinit var radioCustomSettings: RadioButtonPreference - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) (activity as AppCompatActivity).supportActionBar?.show() @@ -41,49 +36,10 @@ class SitePermissionsFragment : PreferenceFragmentCompat() { private fun setupPreferences() { - bindRadioRecommendedSettings() - - bindRadioCustomSettings() - bindCategoryPhoneFeatures() - - setupRadioGroups() - } - - private fun setupRadioGroups() { - radioRecommendSettings.addToRadioGroup(radioCustomSettings) - radioCustomSettings.addToRadioGroup(radioRecommendSettings) - } - - private fun bindRadioCustomSettings() { - val keyCustomSettings = getString(R.string.pref_key_custom_settings) - radioCustomSettings = requireNotNull(findPreference(keyCustomSettings)) - - radioCustomSettings.onClickListener { - categoryPhoneFeatures.isVisible = true - } - } - - private fun bindRadioRecommendedSettings() { - val keyRecommendSettings = getString(R.string.pref_key_recommended_settings) - radioRecommendSettings = requireNotNull(findPreference(keyRecommendSettings)) - - radioRecommendSettings.onClickListener { - categoryPhoneFeatures.isVisible = false - } } private fun bindCategoryPhoneFeatures() { - val keyCategoryPhoneFeatures = getString(R.string.pref_key_category_phone_feature) - - categoryPhoneFeatures = requireNotNull(findPreference(keyCategoryPhoneFeatures)) - - val isCategoryActivate = PreferenceManager.getDefaultSharedPreferences(requireContext()) - .getBoolean(radioCustomSettings.key, false) - if (isCategoryActivate) { - categoryPhoneFeatures.isVisible = true - } - val settings = Settings.getInstance(requireContext()) val cameraAction = settings diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index e7e460dd2..8e5379b72 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -55,9 +55,6 @@ 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) - val shouldUseLightTheme: Boolean get() = preferences.getBoolean( appContext.getPreferenceKey(R.string.pref_key_light_theme), @@ -117,12 +114,8 @@ class Settings private constructor(context: Context) { } fun getSitePermissionsPhoneFeatureCameraAction(): SitePermissionsRules.Action { - return if (shouldRecommendedSettingsBeActivated) { - getSitePermissionsRecommendedSettingsRules().camera - } else { - preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_camera), 1) - .toSitePermissionsRulesAction() - } + return preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_camera), 1) + .toSitePermissionsRulesAction() } fun setSitePermissionsPhoneFeatureMicrophoneAction(action: SitePermissionsRules.Action) { @@ -132,12 +125,8 @@ class Settings private constructor(context: Context) { } fun getSitePermissionsPhoneFeatureMicrophoneAction(): SitePermissionsRules.Action { - return if (shouldRecommendedSettingsBeActivated) { - getSitePermissionsRecommendedSettingsRules().microphone - } else { - preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_microphone), 1) + return preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_microphone), 1) .toSitePermissionsRulesAction() - } } fun setSitePermissionsPhoneFeatureNotificationAction(action: SitePermissionsRules.Action) { @@ -147,12 +136,8 @@ class Settings private constructor(context: Context) { } fun getSitePermissionsPhoneFeatureNotificationAction(): SitePermissionsRules.Action { - return if (shouldRecommendedSettingsBeActivated) { - getSitePermissionsRecommendedSettingsRules().notification - } else { - return preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_notification), 1) + return preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_notification), 1) .toSitePermissionsRulesAction() - } } fun setSitePermissionsPhoneFeatureLocation(action: SitePermissionsRules.Action) { @@ -162,21 +147,10 @@ class Settings private constructor(context: Context) { } fun getSitePermissionsPhoneFeatureLocation(): SitePermissionsRules.Action { - return if (shouldRecommendedSettingsBeActivated) { - getSitePermissionsRecommendedSettingsRules().location - } else { - preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_location), 1) + return preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_phone_feature_location), 1) .toSitePermissionsRulesAction() - } } - fun getSitePermissionsRecommendedSettingsRules() = SitePermissionsRules( - camera = SitePermissionsRules.Action.ASK_TO_ALLOW, - notification = SitePermissionsRules.Action.ASK_TO_ALLOW, - location = SitePermissionsRules.Action.ASK_TO_ALLOW, - microphone = SitePermissionsRules.Action.ASK_TO_ALLOW - ) - fun getSitePermissionsCustomSettingsRules(): SitePermissionsRules { return SitePermissionsRules( notification = getSitePermissionsPhoneFeatureNotificationAction(), diff --git a/app/src/main/res/xml/site_permissions_preferences.xml b/app/src/main/res/xml/site_permissions_preferences.xml index 819da8aa0..d2073fddd 100644 --- a/app/src/main/res/xml/site_permissions_preferences.xml +++ b/app/src/main/res/xml/site_permissions_preferences.xml @@ -3,62 +3,34 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - - + xmlns:android="http://schemas.android.com/apk/res/android"> + android:icon="@drawable/ic_internet" + android:key="@string/pref_key_show_site_exceptions" + android:title="@string/preference_exceptions"/> - - - - - - - - - - - - - \ No newline at end of file