Merge "Game Driver: Add UI support for prerelease Game Driver" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-06-13 15:38:54 +00:00
committed by Android (Google) Code Review
3 changed files with 49 additions and 8 deletions

View File

@@ -10648,12 +10648,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>

View File

@@ -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);

View File

@@ -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");