Merge "Hide unused app toggle if no revocable permissions" into sc-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/HibernationSettingStateLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/HibernationSettingStateLiveData.kt
index bb49e15..1868687 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/data/HibernationSettingStateLiveData.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/data/HibernationSettingStateLiveData.kt
@@ -27,7 +27,6 @@
 import com.android.permissioncontroller.permission.model.livedatatypes.HibernationSettingState
 import com.android.permissioncontroller.hibernation.ExemptServicesLiveData
 import com.android.permissioncontroller.hibernation.HibernationEnabledLiveData
-import com.android.permissioncontroller.hibernation.isHibernationEnabled
 import com.android.permissioncontroller.hibernation.isHibernationJobEnabled
 import com.android.permissioncontroller.hibernation.isPackageHibernationExemptByUser
 import com.android.permissioncontroller.hibernation.isPackageHibernationExemptBySystem
@@ -102,8 +101,7 @@
             }
         }
 
-        postValue(HibernationSettingState(isHibernationJobEnabled(), canHibernate, revocableGroups,
-            isHibernationEnabled() || revocableGroups.isNotEmpty()))
+        postValue(HibernationSettingState(isHibernationJobEnabled(), canHibernate, revocableGroups))
     }
 
     override fun onOpChanged(op: String?, packageName: String?) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/HibernationSettingState.kt b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/HibernationSettingState.kt
index 636f199..69bbdce 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/HibernationSettingState.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/model/livedatatypes/HibernationSettingState.kt
@@ -25,12 +25,9 @@
  * @param revocableGroupNames A list of which permission groups of this package are eligible for
  * auto-revoke. A permission group is auto-revocable if it does not contain a default granted
  * permission.
- * @param shouldAllowUserToggle If the hibernation/auto-revoke switch should be provided for the
- * user to control.
  */
 data class HibernationSettingState(
     val isEnabledGlobal: Boolean,
     val isEnabledForApp: Boolean,
-    val revocableGroupNames: List<String>,
-    val shouldAllowUserToggle: Boolean
+    val revocableGroupNames: List<String>
 )
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
index f2466a4..dfcb39c 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/AppPermissionGroupsFragment.java
@@ -551,7 +551,7 @@
         Preference autoRevokeSummary = autoRevokeCategory.findPreference(
                 AUTO_REVOKE_SUMMARY_KEY);
 
-        if (!state.isEnabledGlobal()) {
+        if (!state.isEnabledGlobal() || state.getRevocableGroupNames().isEmpty()) {
             autoRevokeCategory.setVisible(false);
             autoRevokeSwitch.setVisible(false);
             autoRevokeSummary.setVisible(false);
@@ -560,7 +560,6 @@
         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/PermissionController/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
index 92f595e..2cd2773 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/television/AppPermissionsFragment.java
@@ -418,12 +418,11 @@
         if (state == null || autoRevokeSwitch == null) {
             return;
         }
-        if (!state.isEnabledGlobal()) {
+        if (!state.isEnabledGlobal() || state.getRevocableGroupNames().isEmpty()) {
             autoRevokeSwitch.setVisible(false);
             return;
         }
         autoRevokeSwitch.setVisible(true);
-        autoRevokeSwitch.setEnabled(state.getShouldAllowUserToggle());
         autoRevokeSwitch.setChecked(state.isEnabledForApp());
     }