Merge "Game Driver: Add UI support for prerelease Game Driver" into qt-dev am: 0de0d5be39
am: a05cb731e7
am: 9dd8ac1751
Change-Id: I115e563987fde5e3027f87f40e08be13de0dea3c
This commit is contained in:
@@ -10656,12 +10656,15 @@
|
|||||||
<string name="game_driver_app_preference_default">Default</string>
|
<string name="game_driver_app_preference_default">Default</string>
|
||||||
<!-- The game driver value for Game Driver app preference [CHAR LIMIT=50] -->
|
<!-- The game driver value for Game Driver app preference [CHAR LIMIT=50] -->
|
||||||
<string name="game_driver_app_preference_game_driver">Game Driver</string>
|
<string name="game_driver_app_preference_game_driver">Game Driver</string>
|
||||||
|
<!-- The game driver value for Prerelease Game Driver app preference [CHAR LIMIT=50] -->
|
||||||
|
<string name="game_driver_app_preference_prerelease_driver">Prerelease Driver</string>
|
||||||
<!-- The system value for Game Driver app preference [CHAR LIMIT=50] -->
|
<!-- The system value for Game Driver app preference [CHAR LIMIT=50] -->
|
||||||
<string name="game_driver_app_preference_system">System Graphics Driver</string>
|
<string name="game_driver_app_preference_system">System Graphics Driver</string>
|
||||||
<!-- All the values for Game Driver app preference [CHAR LIMIT=50] -->
|
<!-- All the values for Game Driver app preference [CHAR LIMIT=50] -->
|
||||||
<string-array name="game_driver_app_preference_values">
|
<string-array name="game_driver_app_preference_values">
|
||||||
<item>@string/game_driver_app_preference_default</item>
|
<item>@string/game_driver_app_preference_default</item>
|
||||||
<item>@string/game_driver_app_preference_game_driver</item>
|
<item>@string/game_driver_app_preference_game_driver</item>
|
||||||
|
<item>@string/game_driver_app_preference_prerelease_driver</item>
|
||||||
<item>@string/game_driver_app_preference_system</item>
|
<item>@string/game_driver_app_preference_system</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
@@ -64,12 +64,14 @@ public class GameDriverAppPreferenceController extends BasePreferenceController
|
|||||||
private final String mPreferenceTitle;
|
private final String mPreferenceTitle;
|
||||||
private final String mPreferenceDefault;
|
private final String mPreferenceDefault;
|
||||||
private final String mPreferenceGameDriver;
|
private final String mPreferenceGameDriver;
|
||||||
|
private final String mPreferencePrereleaseDriver;
|
||||||
private final String mPreferenceSystem;
|
private final String mPreferenceSystem;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
GameDriverContentObserver mGameDriverContentObserver;
|
GameDriverContentObserver mGameDriverContentObserver;
|
||||||
|
|
||||||
private final List<AppInfo> mAppInfos;
|
private final List<AppInfo> mAppInfos;
|
||||||
private final Set<String> mDevOptInApps;
|
private final Set<String> mDevOptInApps;
|
||||||
|
private final Set<String> mDevPrereleaseOptInApps;
|
||||||
private final Set<String> mDevOptOutApps;
|
private final Set<String> mDevOptOutApps;
|
||||||
|
|
||||||
private PreferenceGroup mPreferenceGroup;
|
private PreferenceGroup mPreferenceGroup;
|
||||||
@@ -88,6 +90,8 @@ public class GameDriverAppPreferenceController extends BasePreferenceController
|
|||||||
mPreferenceDefault = resources.getString(R.string.game_driver_app_preference_default);
|
mPreferenceDefault = resources.getString(R.string.game_driver_app_preference_default);
|
||||||
mPreferenceGameDriver =
|
mPreferenceGameDriver =
|
||||||
resources.getString(R.string.game_driver_app_preference_game_driver);
|
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);
|
mPreferenceSystem = resources.getString(R.string.game_driver_app_preference_system);
|
||||||
|
|
||||||
// TODO: Move this task to background if there's potential ANR/Jank.
|
// TODO: Move this task to background if there's potential ANR/Jank.
|
||||||
@@ -96,6 +100,8 @@ public class GameDriverAppPreferenceController extends BasePreferenceController
|
|||||||
|
|
||||||
mDevOptInApps =
|
mDevOptInApps =
|
||||||
getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS);
|
getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS);
|
||||||
|
mDevPrereleaseOptInApps = getGlobalSettingsString(
|
||||||
|
mContentResolver, Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS);
|
||||||
mDevOptOutApps =
|
mDevOptOutApps =
|
||||||
getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS);
|
getGlobalSettingsString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS);
|
||||||
}
|
}
|
||||||
@@ -147,21 +153,31 @@ public class GameDriverAppPreferenceController extends BasePreferenceController
|
|||||||
// opt-in and opt-out apps. Then set the new summary text.
|
// opt-in and opt-out apps. Then set the new summary text.
|
||||||
if (value.equals(mPreferenceSystem)) {
|
if (value.equals(mPreferenceSystem)) {
|
||||||
mDevOptInApps.remove(packageName);
|
mDevOptInApps.remove(packageName);
|
||||||
|
mDevPrereleaseOptInApps.remove(packageName);
|
||||||
mDevOptOutApps.add(packageName);
|
mDevOptOutApps.add(packageName);
|
||||||
} else if (value.equals(mPreferenceGameDriver)) {
|
} else if (value.equals(mPreferenceGameDriver)) {
|
||||||
mDevOptInApps.add(packageName);
|
mDevOptInApps.add(packageName);
|
||||||
|
mDevPrereleaseOptInApps.remove(packageName);
|
||||||
|
mDevOptOutApps.remove(packageName);
|
||||||
|
} else if (value.equals(mPreferencePrereleaseDriver)) {
|
||||||
|
mDevOptInApps.remove(packageName);
|
||||||
|
mDevPrereleaseOptInApps.add(packageName);
|
||||||
mDevOptOutApps.remove(packageName);
|
mDevOptOutApps.remove(packageName);
|
||||||
} else {
|
} else {
|
||||||
mDevOptInApps.remove(packageName);
|
mDevOptInApps.remove(packageName);
|
||||||
|
mDevPrereleaseOptInApps.remove(packageName);
|
||||||
mDevOptOutApps.remove(packageName);
|
mDevOptOutApps.remove(packageName);
|
||||||
}
|
}
|
||||||
listPref.setValue(value);
|
listPref.setValue(value);
|
||||||
listPref.setSummary(value);
|
listPref.setSummary(value);
|
||||||
|
|
||||||
// Push the updated Sets for opt-in and opt-out apps to
|
// Push the updated Sets for stable/prerelease opt-in and opt-out apps to
|
||||||
// corresponding Settings.Global.GAME_DRIVER_OPT_(IN|OUT)_APPS
|
// corresponding Settings.Global.GAME_DRIVER(_PRERELEASE)?_OPT_(IN|OUT)_APPS
|
||||||
Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS,
|
Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS,
|
||||||
String.join(",", mDevOptInApps));
|
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,
|
Settings.Global.putString(mContentResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS,
|
||||||
String.join(",", mDevOptOutApps));
|
String.join(",", mDevOptOutApps));
|
||||||
|
|
||||||
@@ -233,10 +249,13 @@ public class GameDriverAppPreferenceController extends BasePreferenceController
|
|||||||
listPreference.setEntryValues(mEntryList);
|
listPreference.setEntryValues(mEntryList);
|
||||||
|
|
||||||
// Initialize preference default and summary with the opt in/out choices
|
// 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)) {
|
if (mDevOptOutApps.contains(packageName)) {
|
||||||
listPreference.setValue(mPreferenceSystem);
|
listPreference.setValue(mPreferenceSystem);
|
||||||
listPreference.setSummary(mPreferenceSystem);
|
listPreference.setSummary(mPreferenceSystem);
|
||||||
|
} else if (mDevPrereleaseOptInApps.contains(packageName)) {
|
||||||
|
listPreference.setValue(mPreferencePrereleaseDriver);
|
||||||
|
listPreference.setSummary(mPreferencePrereleaseDriver);
|
||||||
} else if (mDevOptInApps.contains(packageName)) {
|
} else if (mDevOptInApps.contains(packageName)) {
|
||||||
listPreference.setValue(mPreferenceGameDriver);
|
listPreference.setValue(mPreferenceGameDriver);
|
||||||
listPreference.setSummary(mPreferenceGameDriver);
|
listPreference.setSummary(mPreferenceGameDriver);
|
||||||
|
@@ -56,7 +56,8 @@ public class GameDriverAppPreferenceControllerTest {
|
|||||||
|
|
||||||
private static final int DEFAULT = 0;
|
private static final int DEFAULT = 0;
|
||||||
private static final int GAME_DRIVER = 1;
|
private static final int GAME_DRIVER = 1;
|
||||||
private static final int SYSTEM = 2;
|
private static final int PRERELEASE_DRIVER = 2;
|
||||||
|
private static final int SYSTEM = 3;
|
||||||
private static final String TEST_APP_NAME = "testApp";
|
private static final String TEST_APP_NAME = "testApp";
|
||||||
private static final String TEST_PKG_NAME = "testPkg";
|
private static final String TEST_PKG_NAME = "testPkg";
|
||||||
|
|
||||||
@@ -181,7 +182,7 @@ public class GameDriverAppPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createPreference_configGAME_DRIVER_shouldSetGameDriverAttributes() {
|
public void createPreference_configGAME_DRIVER_shouldSetGameDriverAttributes() {
|
||||||
loadConfig(TEST_PKG_NAME, "");
|
loadConfig(TEST_PKG_NAME, "", "");
|
||||||
final ListPreference preference =
|
final ListPreference preference =
|
||||||
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
|
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
|
||||||
|
|
||||||
@@ -195,9 +196,25 @@ public class GameDriverAppPreferenceControllerTest {
|
|||||||
assertThat(preference.getSummary()).isEqualTo(mValueList[GAME_DRIVER]);
|
assertThat(preference.getSummary()).isEqualTo(mValueList[GAME_DRIVER]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createPreference_configPRERELEASE_DRIVER_shouldSetPrereleaseDriverAttributes() {
|
||||||
|
loadConfig("", TEST_PKG_NAME, "");
|
||||||
|
final ListPreference preference =
|
||||||
|
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
|
||||||
|
|
||||||
|
assertThat(preference.getKey()).isEqualTo(TEST_PKG_NAME);
|
||||||
|
assertThat(preference.getTitle()).isEqualTo(TEST_APP_NAME);
|
||||||
|
assertThat(preference.getDialogTitle()).isEqualTo(mDialogTitle);
|
||||||
|
assertThat(preference.getEntries()).isEqualTo(mValueList);
|
||||||
|
assertThat(preference.getEntryValues()).isEqualTo(mValueList);
|
||||||
|
assertThat(preference.getEntry()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
|
||||||
|
assertThat(preference.getValue()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
|
||||||
|
assertThat(preference.getSummary()).isEqualTo(mValueList[PRERELEASE_DRIVER]);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createPreference_configSystem_shouldSetSystemAttributes() {
|
public void createPreference_configSystem_shouldSetSystemAttributes() {
|
||||||
loadConfig("", TEST_PKG_NAME);
|
loadConfig("", "", TEST_PKG_NAME);
|
||||||
final ListPreference preference =
|
final ListPreference preference =
|
||||||
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
|
mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);
|
||||||
|
|
||||||
@@ -274,10 +291,12 @@ public class GameDriverAppPreferenceControllerTest {
|
|||||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadDefaultConfig() { loadConfig("", ""); }
|
private void loadDefaultConfig() { loadConfig("", "", ""); }
|
||||||
|
|
||||||
private void loadConfig(String optIn, String optOut) {
|
private void loadConfig(String optIn, String prereleaseOptIn, String optOut) {
|
||||||
Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS, optIn);
|
Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_IN_APPS, optIn);
|
||||||
|
Settings.Global.putString(
|
||||||
|
mResolver, Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS, prereleaseOptIn);
|
||||||
Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS, optOut);
|
Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS, optOut);
|
||||||
|
|
||||||
mController = new GameDriverAppPreferenceController(mContext, "testKey");
|
mController = new GameDriverAppPreferenceController(mContext, "testKey");
|
||||||
|
Reference in New Issue
Block a user