Hide RESTRICTED bucket from list when off.

Hide the RESTRICTED bucket from the standby list if it's been disabled
since developers won't be able to use it.

Bug: 155670438
Test: manual check toggling settings value
Change-Id: I0e31764ce7f1ccb108905aa2f2be1c61405f1726
diff --git a/src/com/android/settings/fuelgauge/InactiveApps.java b/src/com/android/settings/fuelgauge/InactiveApps.java
index a5056a9..aaee2b3 100644
--- a/src/com/android/settings/fuelgauge/InactiveApps.java
+++ b/src/com/android/settings/fuelgauge/InactiveApps.java
@@ -32,6 +32,7 @@
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.text.TextUtils;
 
 import androidx.preference.ListPreference;
@@ -41,15 +42,19 @@
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 
+import java.util.Arrays;
 import java.util.List;
 
 public class InactiveApps extends SettingsPreferenceFragment
         implements Preference.OnPreferenceChangeListener {
 
-    private static final CharSequence[] SETTABLE_BUCKETS_NAMES =
+    private static final CharSequence[] FULL_SETTABLE_BUCKETS_NAMES =
             {"ACTIVE", "WORKING_SET", "FREQUENT", "RARE", "RESTRICTED"};
 
-    private static final CharSequence[] SETTABLE_BUCKETS_VALUES = {
+    private static final CharSequence[] REDUCED_SETTABLE_BUCKETS_NAMES =
+            Arrays.copyOfRange(FULL_SETTABLE_BUCKETS_NAMES, 0, 4);
+
+    private static final CharSequence[] FULL_SETTABLE_BUCKETS_VALUES = {
             Integer.toString(STANDBY_BUCKET_ACTIVE),
             Integer.toString(STANDBY_BUCKET_WORKING_SET),
             Integer.toString(STANDBY_BUCKET_FREQUENT),
@@ -57,6 +62,9 @@
             Integer.toString(STANDBY_BUCKET_RESTRICTED)
     };
 
+    private static final CharSequence[] REDUCED_SETTABLE_BUCKETS_VALUES =
+            Arrays.copyOfRange(FULL_SETTABLE_BUCKETS_VALUES, 0, 4);
+
     private UsageStatsManager mUsageStats;
 
     @Override
@@ -86,6 +94,13 @@
         final Context context = getActivity();
         final PackageManager pm = context.getPackageManager();
         final String settingsPackage = context.getPackageName();
+        final boolean allowRestrictedBucket = Settings.Global.getInt(getContentResolver(),
+                Settings.Global.ENABLE_RESTRICTED_BUCKET,
+                Settings.Global.DEFAULT_ENABLE_RESTRICTED_BUCKET) == 1;
+        final CharSequence[] bucketNames = allowRestrictedBucket
+                ? FULL_SETTABLE_BUCKETS_NAMES : REDUCED_SETTABLE_BUCKETS_NAMES;
+        final CharSequence[] bucketValues = allowRestrictedBucket
+                ? FULL_SETTABLE_BUCKETS_VALUES : REDUCED_SETTABLE_BUCKETS_VALUES;
 
         Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
         launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
@@ -96,8 +111,8 @@
             p.setTitle(app.loadLabel(pm));
             p.setIcon(app.loadIcon(pm));
             p.setKey(packageName);
-            p.setEntries(SETTABLE_BUCKETS_NAMES);
-            p.setEntryValues(SETTABLE_BUCKETS_VALUES);
+            p.setEntries(bucketNames);
+            p.setEntryValues(bucketValues);
             updateSummary(p);
             // Don't allow Settings to change its own standby bucket.
             if (TextUtils.equals(packageName, settingsPackage)) {