summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Susla <eugenesusla@google.com>2020-11-12 12:11:50 -0800
committerEugene Susla <eugenesusla@google.com>2020-11-16 23:46:02 +0000
commit3a45464a8bfce70390ce773d2747990734e69d96 (patch)
treed271ce5ae1d69b59b01158a541e33d9cda3a2c51
parent8ef96a21e2e31396c4154f58569315de1ac9f5c5 (diff)
downloadPackageInstaller-3a45464a8bfce70390ce773d2747990734e69d96.tar.gz
Make auto revoke toggle disabled(instead of invisible) for exempted services
We need to support a use case of app sending the user to the auto revoke exemption flow even in the case when the app is already exempted due to one of the exempted service category. For this we need to make sure the user isn't confused when asked to flip a toggle that isn't present. Making it disabled instead, will inform the user that it's already exempted without allowing t user to unexempt it. Test: manual Bug: 172886604 Change-Id: I2ec0ea30bab1a8bae0937fa3226c011c7cf465bd (cherry picked from commit c88faed3aaa7f697b7bf1426fed8883f042ddc9b)
-rw-r--r--src/com/android/permissioncontroller/permission/model/livedatatypes/AutoRevokeState.kt4
-rw-r--r--src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt1
-rw-r--r--src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java3
-rw-r--r--src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java5
4 files changed, 6 insertions, 7 deletions
diff --git a/src/com/android/permissioncontroller/permission/model/livedatatypes/AutoRevokeState.kt b/src/com/android/permissioncontroller/permission/model/livedatatypes/AutoRevokeState.kt
index b0422f748..3ed6d3cfc 100644
--- a/src/com/android/permissioncontroller/permission/model/livedatatypes/AutoRevokeState.kt
+++ b/src/com/android/permissioncontroller/permission/model/livedatatypes/AutoRevokeState.kt
@@ -33,7 +33,7 @@ class AutoRevokeState(
) {
/**
- * If the auto revoke switch should be shown.
+ * If the auto revoke switch should be provided for the user to control.
*/
- val shouldShowSwitch = revocableGroupNames.isNotEmpty()
+ val shouldAllowUserToggle = revocableGroupNames.isNotEmpty()
}
diff --git a/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt b/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt
index e03d18d2d..eb117c2e3 100644
--- a/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt
+++ b/src/com/android/permissioncontroller/permission/service/AutoRevokePermissions.kt
@@ -506,7 +506,6 @@ suspend fun isPackageAutoRevokeExempt(
.getInitializedValue()
if (whitelistAppOpMode == MODE_DEFAULT) {
// Initial state - whitelist not explicitly overridden by either user or installer
-
if (DEBUG_OVERRIDE_THRESHOLDS) {
// Suppress exemptions to allow debugging
return false
diff --git a/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java b/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
index cd8c27f5c..9c526d7df 100644
--- a/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
+++ b/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
@@ -348,7 +348,7 @@ public final class AppPermissionGroupsFragment extends SettingsWithLargeHeader {
AUTO_REVOKE_SWITCH_KEY);
Preference autoRevokeSummary = autoRevokeCategory.findPreference(AUTO_REVOKE_SUMMARY_KEY);
- if (!state.isEnabledGlobal() || !state.getShouldShowSwitch()) {
+ if (!state.isEnabledGlobal()) {
autoRevokeCategory.setVisible(false);
autoRevokeSwitch.setVisible(false);
autoRevokeSummary.setVisible(false);
@@ -357,6 +357,7 @@ public final class AppPermissionGroupsFragment extends SettingsWithLargeHeader {
autoRevokeCategory.setVisible(true);
autoRevokeSwitch.setVisible(true);
autoRevokeSummary.setVisible(true);
+ autoRevokeSwitch.setEnabled(state.getShouldAllowUserToggle());
autoRevokeSwitch.setChecked(state.isEnabledForApp());
List<String> groupLabels = new ArrayList<>();
diff --git a/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java b/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
index 6de804109..9b143bf7b 100644
--- a/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
+++ b/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
@@ -23,7 +23,6 @@ import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
@@ -54,7 +53,6 @@ import com.android.permissioncontroller.permission.model.livedatatypes.AutoRevok
import com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity;
import com.android.permissioncontroller.permission.ui.model.AppPermissionGroupsViewModel;
import com.android.permissioncontroller.permission.ui.model.AppPermissionGroupsViewModelFactory;
-import com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity;
import com.android.permissioncontroller.permission.utils.KotlinUtils;
import com.android.permissioncontroller.permission.utils.LocationUtils;
import com.android.permissioncontroller.permission.utils.SafetyNetLogger;
@@ -420,11 +418,12 @@ public final class AppPermissionsFragment extends SettingsWithHeader
if (state == null || autoRevokeSwitch == null) {
return;
}
- if (!state.isEnabledGlobal() || !state.getShouldShowSwitch()) {
+ if (!state.isEnabledGlobal()) {
autoRevokeSwitch.setVisible(false);
return;
}
autoRevokeSwitch.setVisible(true);
+ autoRevokeSwitch.setEnabled(state.getShouldAllowUserToggle());
autoRevokeSwitch.setChecked(state.isEnabledForApp());
}