Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0de0d5be authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents e78e4dc6 240760c5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -10648,12 +10648,15 @@
    <string name="game_driver_app_preference_default">Default</string>
    <!-- The game driver value for Game Driver app preference [CHAR LIMIT=50] -->
    <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] -->
    <string name="game_driver_app_preference_system">System Graphics Driver</string>
    <!-- All the values for Game Driver app preference [CHAR LIMIT=50] -->
    <string-array name="game_driver_app_preference_values">
        <item>@string/game_driver_app_preference_default</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>
    </string-array>
+22 −3
Original line number Diff line number Diff line
@@ -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);
    }
@@ -147,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));

@@ -233,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);
+24 −5
Original line number Diff line number Diff line
@@ -56,7 +56,8 @@ public class GameDriverAppPreferenceControllerTest {

    private static final int DEFAULT = 0;
    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_PKG_NAME = "testPkg";

@@ -181,7 +182,7 @@ public class GameDriverAppPreferenceControllerTest {

    @Test
    public void createPreference_configGAME_DRIVER_shouldSetGameDriverAttributes() {
        loadConfig(TEST_PKG_NAME, "");
        loadConfig(TEST_PKG_NAME, "", "");
        final ListPreference preference =
                mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);

@@ -195,9 +196,25 @@ public class GameDriverAppPreferenceControllerTest {
        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
    public void createPreference_configSystem_shouldSetSystemAttributes() {
        loadConfig("", TEST_PKG_NAME);
        loadConfig("", "", TEST_PKG_NAME);
        final ListPreference preference =
                mController.createListPreference(mContext, TEST_PKG_NAME, TEST_APP_NAME);

@@ -274,10 +291,12 @@ public class GameDriverAppPreferenceControllerTest {
        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_PRERELEASE_OPT_IN_APPS, prereleaseOptIn);
        Settings.Global.putString(mResolver, Settings.Global.GAME_DRIVER_OPT_OUT_APPS, optOut);

        mController = new GameDriverAppPreferenceController(mContext, "testKey");