summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/development/gamedriver/GameDriverEnableForAllAppsPreferenceController.java64
-rw-r--r--src/com/android/settings/development/gamedriver/GameDriverGlobalSwitchBarController.java4
2 files changed, 48 insertions, 20 deletions
diff --git a/src/com/android/settings/development/gamedriver/GameDriverEnableForAllAppsPreferenceController.java b/src/com/android/settings/development/gamedriver/GameDriverEnableForAllAppsPreferenceController.java
index dd48f6946f..290e4b2a1d 100644
--- a/src/com/android/settings/development/gamedriver/GameDriverEnableForAllAppsPreferenceController.java
+++ b/src/com/android/settings/development/gamedriver/GameDriverEnableForAllAppsPreferenceController.java
@@ -18,15 +18,17 @@ package com.android.settings.development.gamedriver;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.res.Resources;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -43,19 +45,30 @@ public class GameDriverEnableForAllAppsPreferenceController extends BasePreferen
public static final int GAME_DRIVER_DEFAULT = 0;
public static final int GAME_DRIVER_ALL_APPS = 1;
- public static final int GAME_DRIVER_OFF = 2;
+ public static final int GAME_DRIVER_PRERELEASE_ALL_APPS = 2;
+ public static final int GAME_DRIVER_OFF = 3;
private final Context mContext;
private final ContentResolver mContentResolver;
+ private final String mPreferenceDefault;
+ private final String mPreferenceGameDriver;
+ private final String mPreferencePrereleaseDriver;
@VisibleForTesting
GameDriverContentObserver mGameDriverContentObserver;
- private SwitchPreference mPreference;
+ private ListPreference mPreference;
public GameDriverEnableForAllAppsPreferenceController(Context context, String key) {
super(context, key);
mContext = context;
mContentResolver = context.getContentResolver();
+
+ final Resources resources = context.getResources();
+ 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);
mGameDriverContentObserver =
new GameDriverContentObserver(new Handler(Looper.getMainLooper()), this);
}
@@ -89,31 +102,44 @@ public class GameDriverEnableForAllAppsPreferenceController extends BasePreferen
@Override
public void updateState(Preference preference) {
- final SwitchPreference switchPreference = (SwitchPreference) preference;
- switchPreference.setVisible(isAvailable());
- switchPreference.setChecked(
- Settings.Global.getInt(
- mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT)
- == GAME_DRIVER_ALL_APPS);
+ final ListPreference listPref = (ListPreference) preference;
+ listPref.setVisible(isAvailable());
+ final int currentChoice = Settings.Global.getInt(
+ mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT);
+ if (currentChoice == GAME_DRIVER_ALL_APPS) {
+ listPref.setValue(mPreferenceGameDriver);
+ listPref.setSummary(mPreferenceGameDriver);
+ } else if (currentChoice == GAME_DRIVER_PRERELEASE_ALL_APPS) {
+ listPref.setValue(mPreferencePrereleaseDriver);
+ listPref.setSummary(mPreferencePrereleaseDriver);
+ } else {
+ listPref.setValue(mPreferenceDefault);
+ listPref.setSummary(mPreferenceDefault);
+ }
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
- final boolean isChecked = (boolean) newValue;
- final int gameDriver = Settings.Global.getInt(
+ final ListPreference listPref = (ListPreference) preference;
+ final String value = newValue.toString();
+ final int currentChoice = Settings.Global.getInt(
mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT);
-
- if (isChecked && gameDriver == GAME_DRIVER_ALL_APPS) {
- return true;
+ final int userChoice;
+ if (value.equals(mPreferenceGameDriver)) {
+ userChoice = GAME_DRIVER_ALL_APPS;
+ } else if (value.equals(mPreferencePrereleaseDriver)) {
+ userChoice = GAME_DRIVER_PRERELEASE_ALL_APPS;
+ } else {
+ userChoice = GAME_DRIVER_DEFAULT;
}
+ listPref.setValue(value);
+ listPref.setSummary(value);
- if (!isChecked && (gameDriver == GAME_DRIVER_DEFAULT || gameDriver == GAME_DRIVER_OFF)) {
- return true;
+ if (userChoice != currentChoice) {
+ Settings.Global.putInt(
+ mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS, userChoice);
}
- Settings.Global.putInt(mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS,
- isChecked ? GAME_DRIVER_ALL_APPS : GAME_DRIVER_DEFAULT);
-
return true;
}
diff --git a/src/com/android/settings/development/gamedriver/GameDriverGlobalSwitchBarController.java b/src/com/android/settings/development/gamedriver/GameDriverGlobalSwitchBarController.java
index d84c28f3f5..15f71e0375 100644
--- a/src/com/android/settings/development/gamedriver/GameDriverGlobalSwitchBarController.java
+++ b/src/com/android/settings/development/gamedriver/GameDriverGlobalSwitchBarController.java
@@ -19,6 +19,7 @@ package com.android.settings.development.gamedriver;
import static com.android.settings.development.gamedriver.GameDriverEnableForAllAppsPreferenceController.GAME_DRIVER_ALL_APPS;
import static com.android.settings.development.gamedriver.GameDriverEnableForAllAppsPreferenceController.GAME_DRIVER_DEFAULT;
import static com.android.settings.development.gamedriver.GameDriverEnableForAllAppsPreferenceController.GAME_DRIVER_OFF;
+import static com.android.settings.development.gamedriver.GameDriverEnableForAllAppsPreferenceController.GAME_DRIVER_PRERELEASE_ALL_APPS;
import android.content.ContentResolver;
import android.content.Context;
@@ -83,7 +84,8 @@ public class GameDriverGlobalSwitchBarController
mContentResolver, Settings.Global.GAME_DRIVER_ALL_APPS, GAME_DRIVER_DEFAULT);
if (isChecked
- && (gameDriver == GAME_DRIVER_DEFAULT || gameDriver == GAME_DRIVER_ALL_APPS)) {
+ && (gameDriver == GAME_DRIVER_DEFAULT || gameDriver == GAME_DRIVER_ALL_APPS
+ || gameDriver == GAME_DRIVER_PRERELEASE_ALL_APPS)) {
return true;
}