From 6530a45eb9b2bc8b60497d47600b7b233762dc6d Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Thu, 23 Jul 2020 12:12:22 -0400 Subject: [PATCH] For issue #11676: Features phone that doesn't a site permission exception shouldn't be shown (#12855) exception shouldn't be shown --- .../settings/quicksettings/ext/PhoneFeatureExt.kt | 10 +++++++++- .../quicksettings/ext/PhoneFeatureExtKtTest.kt | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExt.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExt.kt index 0958209f8..4169e1eb6 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExt.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExt.kt @@ -17,7 +17,15 @@ import org.mozilla.fenix.utils.Settings fun PhoneFeature.shouldBeVisible( sitePermissions: SitePermissions?, settings: Settings -) = getStatus(sitePermissions, settings) != SitePermissions.Status.NO_DECISION +): Boolean { + // We have to check if the site have a site permission exception, + // if it doesn't the feature shouldn't be visible + return if (sitePermissions == null) { + false + } else { + getStatus(sitePermissions, settings) != SitePermissions.Status.NO_DECISION + } +} /** * Common [PhoneFeature] extensions used for **quicksettings**. diff --git a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExtKtTest.kt b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExtKtTest.kt index 834b88431..73d80f8ad 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExtKtTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ext/PhoneFeatureExtKtTest.kt @@ -27,6 +27,8 @@ class PhoneFeatureExtKtTest { assertFalse(PhoneFeature.CAMERA.shouldBeVisible(noDecisionForPermission, mockk())) assertTrue(PhoneFeature.CAMERA.shouldBeVisible(userAllowedPermission, mockk())) assertTrue(PhoneFeature.CAMERA.shouldBeVisible(userBlockedPermission, mockk())) + // The site doesn't have a site permission exception + assertFalse(PhoneFeature.CAMERA.shouldBeVisible(null, mockk())) } @Test