diff options
Diffstat (limited to 'src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java')
-rw-r--r-- | src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java b/src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java index 659310c258..489408d481 100644 --- a/src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java +++ b/src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java @@ -55,8 +55,8 @@ import java.util.Set; */ public class GameDriverAppPreferenceController extends BasePreferenceController implements Preference.OnPreferenceChangeListener, - GameDriverContentObserver.OnGameDriverContentChangedListener, LifecycleObserver, - OnStart, OnStop { + GameDriverContentObserver.OnGameDriverContentChangedListener, LifecycleObserver, + OnStart, OnStop { private final Context mContext; private final ContentResolver mContentResolver; @@ -64,12 +64,14 @@ public class GameDriverAppPreferenceController extends BasePreferenceController private final String mPreferenceTitle; private final String mPreferenceDefault; private final String mPreferenceGameDriver; + private final String mPreferencePrereleaseDriver; private final String mPreferenceSystem; @VisibleForTesting GameDriverContentObserver mGameDriverContentObserver; private final List<AppInfo> mAppInfos; private final Set<String> mDevOptInApps; + private final Set<String> mDevPrereleaseOptInApps; private final Set<String> mDevOptOutApps; private PreferenceGroup mPreferenceGroup; @@ -88,6 +90,8 @@ public class GameDriverAppPreferenceController extends BasePreferenceController mPreferenceDefault = resources.getString(R.string.game_driver_app_preference_default); mPreferenceGameDriver = resources.getString(R.string.game_driver_app_preference_game_driver); + mPreferencePrereleaseDriver = + resources.getString(R.string.game_driver_app_preference_prerelease_driver); mPreferenceSystem = resources.getString(R.string.game_driver_app_preference_system); // TODO: Move this task to background if there's potential ANR/Jank. @@ -96,6 +100,8 @@ public class GameDriverAppPreferenceController extends BasePreferenceController mDevOptInApps = getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS); + mDevPrereleaseOptInApps = getGlobalSettingsString( + mContentResolver, Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS); mDevOptOutApps = getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS); } @@ -103,9 +109,9 @@ public class GameDriverAppPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { return DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext) - && (Settings.Global.getInt(mContentResolver, - Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT) - != GAME_DRIVER_OFF) + && (Settings.Global.getInt(mContentResolver, + Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT) + != GAME_DRIVER_OFF) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @@ -113,7 +119,7 @@ public class GameDriverAppPreferenceController extends BasePreferenceController @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mPreferenceGroup = (PreferenceGroup) screen.findPreference(getPreferenceKey()); + mPreferenceGroup = screen.findPreference(getPreferenceKey()); final Context context = mPreferenceGroup.getContext(); for (AppInfo appInfo : mAppInfos) { @@ -134,15 +140,7 @@ public class GameDriverAppPreferenceController extends BasePreferenceController @Override public void updateState(Preference preference) { - // This is a workaround, because PreferenceGroup.setVisible is not applied to the - // preferences inside the group. - final boolean isGroupAvailable = isAvailable(); - final PreferenceGroup group = (PreferenceGroup) preference; - for (int idx = 0; idx < group.getPreferenceCount(); idx++) { - final Preference pref = group.getPreference(idx); - pref.setVisible(isGroupAvailable); - } - preference.setVisible(isGroupAvailable); + preference.setVisible(isAvailable()); } @Override @@ -155,21 +153,31 @@ public class GameDriverAppPreferenceController extends BasePreferenceController // opt-in and opt-out apps. Then set the new summary text. if (value.equals(mPreferenceSystem)) { mDevOptInApps.remove(packageName); + mDevPrereleaseOptInApps.remove(packageName); mDevOptOutApps.add(packageName); } else if (value.equals(mPreferenceGameDriver)) { mDevOptInApps.add(packageName); + mDevPrereleaseOptInApps.remove(packageName); + mDevOptOutApps.remove(packageName); + } else if (value.equals(mPreferencePrereleaseDriver)) { + mDevOptInApps.remove(packageName); + mDevPrereleaseOptInApps.add(packageName); mDevOptOutApps.remove(packageName); } else { mDevOptInApps.remove(packageName); + mDevPrereleaseOptInApps.remove(packageName); mDevOptOutApps.remove(packageName); } listPref.setValue(value); listPref.setSummary(value); - // Push the updated Sets for opt-in and opt-out apps to - // corresponding Settings.Global.GAME_DRIVER_OPT_(IN|OUT)_APPS + // Push the updated Sets for stable/prerelease opt-in and opt-out apps to + // corresponding Settings.Global.GAME_DRIVER(_PRERELEASE)?_OPT_(IN|OUT)_APPS Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS, String.join(",", mDevOptInApps)); + Settings.Global.putString(mContentResolver, + Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS, + String.join(",", mDevPrereleaseOptInApps)); Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS, String.join(",", mDevOptOutApps)); @@ -187,6 +195,7 @@ public class GameDriverAppPreferenceController extends BasePreferenceController info = applicationInfo; label = packageManager.getApplicationLabel(applicationInfo).toString(); } + final ApplicationInfo info; final String label; } @@ -240,10 +249,13 @@ public class GameDriverAppPreferenceController extends BasePreferenceController listPreference.setEntryValues(mEntryList); // Initialize preference default and summary with the opt in/out choices - // from Settings.Global.GAME_DRIVER_OPT_(IN|OUT)_APPS + // from Settings.Global.GAME_DRIVER(_PRERELEASE)?_OPT_(IN|OUT)_APPS if (mDevOptOutApps.contains(packageName)) { listPreference.setValue(mPreferenceSystem); listPreference.setSummary(mPreferenceSystem); + } else if (mDevPrereleaseOptInApps.contains(packageName)) { + listPreference.setValue(mPreferencePrereleaseDriver); + listPreference.setSummary(mPreferencePrereleaseDriver); } else if (mDevOptInApps.contains(packageName)) { listPreference.setValue(mPreferenceGameDriver); listPreference.setSummary(mPreferenceGameDriver); |