summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java')
-rw-r--r--src/com/android/settings/development/gamedriver/GameDriverAppPreferenceController.java48
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);