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

Commit 0a17923e authored by Xiang Wang's avatar Xiang Wang
Browse files

Rename `optedIn` to `overridden` for game modes

Bug: b/243448953
Test: atest --test-mapping
      services/core/java/com/android/server/app:presubmit
Change-Id: I3a57e004d05a059491850eed1bcc67897860162d
parent 30adb922
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -845,7 +845,7 @@ package android.app {
    method public int getActiveGameMode();
    method @NonNull public int[] getAvailableGameModes();
    method @Nullable public android.app.GameModeConfiguration getGameModeConfiguration(int);
    method @NonNull public int[] getOptedInGameModes();
    method @NonNull public int[] getOverriddenGameModes();
    method public boolean isDownscalingAllowed();
    method public boolean isFpsOverrideAllowed();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
@@ -860,7 +860,7 @@ package android.app {
    method @NonNull public android.app.GameModeInfo.Builder setDownscalingAllowed(boolean);
    method @NonNull public android.app.GameModeInfo.Builder setFpsOverrideAllowed(boolean);
    method @NonNull public android.app.GameModeInfo.Builder setGameModeConfiguration(int, @NonNull android.app.GameModeConfiguration);
    method @NonNull public android.app.GameModeInfo.Builder setOptedInGameModes(@NonNull int[]);
    method @NonNull public android.app.GameModeInfo.Builder setOverriddenGameModes(@NonNull int[]);
  }
  public abstract class InstantAppResolverService extends android.app.Service {
+17 −17
Original line number Diff line number Diff line
@@ -87,12 +87,12 @@ public final class GameModeInfo implements Parcelable {
        }

        /**
         * Sets the opted-in game modes.
         * Sets the overridden game modes.
         */
        @NonNull
        public GameModeInfo.Builder setOptedInGameModes(
                @NonNull @GameManager.GameMode int[] optedInGameModes) {
            mOptedInGameModes = optedInGameModes;
        public GameModeInfo.Builder setOverriddenGameModes(
                @NonNull @GameManager.GameMode int[] overriddenGameModes) {
            mOverriddenGameModes = overriddenGameModes;
            return this;
        }

@@ -140,12 +140,12 @@ public final class GameModeInfo implements Parcelable {
         */
        @NonNull
        public GameModeInfo build() {
            return new GameModeInfo(mActiveGameMode, mAvailableGameModes, mOptedInGameModes,
            return new GameModeInfo(mActiveGameMode, mAvailableGameModes, mOverriddenGameModes,
                    mIsDownscalingAllowed, mIsFpsOverrideAllowed, mConfigMap);
        }

        private @GameManager.GameMode int[] mAvailableGameModes = new int[]{};
        private @GameManager.GameMode int[] mOptedInGameModes = new int[]{};
        private @GameManager.GameMode int[] mOverriddenGameModes = new int[]{};
        private @GameManager.GameMode int mActiveGameMode;
        private boolean mIsDownscalingAllowed;
        private boolean mIsFpsOverrideAllowed;
@@ -164,11 +164,11 @@ public final class GameModeInfo implements Parcelable {

    private GameModeInfo(@GameManager.GameMode int activeGameMode,
            @NonNull @GameManager.GameMode int[] availableGameModes,
            @NonNull @GameManager.GameMode int[] optedInGameModes, boolean isDownscalingAllowed,
            @NonNull @GameManager.GameMode int[] overriddenGameModes, boolean isDownscalingAllowed,
            boolean isFpsOverrideAllowed, @NonNull Map<Integer, GameModeConfiguration> configMap) {
        mActiveGameMode = activeGameMode;
        mAvailableGameModes = Arrays.copyOf(availableGameModes, availableGameModes.length);
        mOptedInGameModes = Arrays.copyOf(optedInGameModes, optedInGameModes.length);
        mOverriddenGameModes = Arrays.copyOf(overriddenGameModes, overriddenGameModes.length);
        mIsDownscalingAllowed = isDownscalingAllowed;
        mIsFpsOverrideAllowed = isFpsOverrideAllowed;
        mConfigMap = configMap;
@@ -179,7 +179,7 @@ public final class GameModeInfo implements Parcelable {
    public GameModeInfo(Parcel in) {
        mActiveGameMode = in.readInt();
        mAvailableGameModes = in.createIntArray();
        mOptedInGameModes = in.createIntArray();
        mOverriddenGameModes = in.createIntArray();
        mIsDownscalingAllowed = in.readBoolean();
        mIsFpsOverrideAllowed = in.readBoolean();
        mConfigMap = new ArrayMap<>();
@@ -198,8 +198,8 @@ public final class GameModeInfo implements Parcelable {
     * Gets the collection of {@link GameManager.GameMode} that can be applied to the game.
     * <p>
     * Available games include all game modes that are either supported by the OEM in device
     * config, or opted in by the game developers in game mode config XML, plus the default enabled
     * modes for any game including {@link GameManager#GAME_MODE_STANDARD} and
     * config, or overridden by the game developers in game mode config XML, plus the default
     * enabled modes for any game including {@link GameManager#GAME_MODE_STANDARD} and
     * {@link GameManager#GAME_MODE_CUSTOM}.
     * <p>
     * Also see {@link GameModeInfo}.
@@ -210,19 +210,19 @@ public final class GameModeInfo implements Parcelable {
    }

    /**
     * Gets the collection of {@link GameManager.GameMode} that are opted in by the game.
     * Gets the collection of {@link GameManager.GameMode} that are overridden by the game.
     * <p>
     * Also see {@link GameModeInfo}.
     */
    @NonNull
    public @GameManager.GameMode int[] getOptedInGameModes() {
        return Arrays.copyOf(mOptedInGameModes, mOptedInGameModes.length);
    public @GameManager.GameMode int[] getOverriddenGameModes() {
        return Arrays.copyOf(mOverriddenGameModes, mOverriddenGameModes.length);
    }

    /**
     * Gets the current game mode configuration of a game mode.
     * <p>
     * The game mode can be null if it's opted in by the game itself, or not configured in device
     * The game mode can be null if it's overridden by the game itself, or not configured in device
     * config nor set by the user as custom game mode configuration.
     */
    public @Nullable GameModeConfiguration getGameModeConfiguration(
@@ -250,7 +250,7 @@ public final class GameModeInfo implements Parcelable {


    private final @GameManager.GameMode int[] mAvailableGameModes;
    private final @GameManager.GameMode int[] mOptedInGameModes;
    private final @GameManager.GameMode int[] mOverriddenGameModes;
    private final @GameManager.GameMode int mActiveGameMode;
    private final boolean mIsDownscalingAllowed;
    private final boolean mIsFpsOverrideAllowed;
@@ -265,7 +265,7 @@ public final class GameModeInfo implements Parcelable {
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        dest.writeInt(mActiveGameMode);
        dest.writeIntArray(mAvailableGameModes);
        dest.writeIntArray(mOptedInGameModes);
        dest.writeIntArray(mOverriddenGameModes);
        dest.writeBoolean(mIsDownscalingAllowed);
        dest.writeBoolean(mIsFpsOverrideAllowed);
        dest.writeMap(mConfigMap);
+5 −5
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ public class GameModeInfoTest {
        int[] availableGameModes =
                new int[]{GameManager.GAME_MODE_STANDARD, GameManager.GAME_MODE_PERFORMANCE,
                        GameManager.GAME_MODE_BATTERY, GameManager.GAME_MODE_CUSTOM};
        int[] optedInGameModes = new int[]{GameManager.GAME_MODE_PERFORMANCE};
        int[] overriddenGameModes = new int[]{GameManager.GAME_MODE_PERFORMANCE};
        GameModeConfiguration batteryConfig = new GameModeConfiguration
                .Builder().setFpsOverride(40).setScalingFactor(0.5f).build();
        GameModeConfiguration performanceConfig = new GameModeConfiguration
@@ -51,7 +51,7 @@ public class GameModeInfoTest {
        GameModeInfo gameModeInfo = new GameModeInfo.Builder()
                .setActiveGameMode(activeGameMode)
                .setAvailableGameModes(availableGameModes)
                .setOptedInGameModes(optedInGameModes)
                .setOverriddenGameModes(overriddenGameModes)
                .setDownscalingAllowed(true)
                .setFpsOverrideAllowed(false)
                .setGameModeConfiguration(GameManager.GAME_MODE_BATTERY, batteryConfig)
@@ -59,7 +59,7 @@ public class GameModeInfoTest {
                .build();

        assertArrayEquals(availableGameModes, gameModeInfo.getAvailableGameModes());
        assertArrayEquals(optedInGameModes, gameModeInfo.getOptedInGameModes());
        assertArrayEquals(overriddenGameModes, gameModeInfo.getOverriddenGameModes());
        assertEquals(activeGameMode, gameModeInfo.getActiveGameMode());
        assertTrue(gameModeInfo.isDownscalingAllowed());
        assertFalse(gameModeInfo.isFpsOverrideAllowed());
@@ -75,8 +75,8 @@ public class GameModeInfoTest {
        assertEquals(gameModeInfo.getActiveGameMode(), newGameModeInfo.getActiveGameMode());
        assertArrayEquals(gameModeInfo.getAvailableGameModes(),
                newGameModeInfo.getAvailableGameModes());
        assertArrayEquals(gameModeInfo.getOptedInGameModes(),
                newGameModeInfo.getOptedInGameModes());
        assertArrayEquals(gameModeInfo.getOverriddenGameModes(),
                newGameModeInfo.getOverriddenGameModes());
        assertTrue(newGameModeInfo.isDownscalingAllowed());
        assertFalse(newGameModeInfo.isFpsOverrideAllowed());
        assertEquals(performanceConfig,
+26 −26
Original line number Diff line number Diff line
@@ -516,8 +516,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
        private final ArrayMap<Integer, GameModeConfiguration> mModeConfigs = new ArrayMap<>();
        // if adding new properties or make any of the below overridable, the method
        // copyAndApplyOverride should be updated accordingly
        private boolean mPerfModeOptedIn = false;
        private boolean mBatteryModeOptedIn = false;
        private boolean mPerfModeOverridden = false;
        private boolean mBatteryModeOverridden = false;
        private boolean mAllowDownscale = true;
        private boolean mAllowAngle = true;
        private boolean mAllowFpsOverride = true;
@@ -534,8 +534,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
                        PackageManager.GET_META_DATA, userId);
                if (!parseInterventionFromXml(packageManager, ai, packageName)
                            && ai.metaData != null) {
                    mPerfModeOptedIn = ai.metaData.getBoolean(METADATA_PERFORMANCE_MODE_ENABLE);
                    mBatteryModeOptedIn = ai.metaData.getBoolean(METADATA_BATTERY_MODE_ENABLE);
                    mPerfModeOverridden = ai.metaData.getBoolean(METADATA_PERFORMANCE_MODE_ENABLE);
                    mBatteryModeOverridden = ai.metaData.getBoolean(METADATA_BATTERY_MODE_ENABLE);
                    mAllowDownscale = ai.metaData.getBoolean(METADATA_WM_ALLOW_DOWNSCALE, true);
                    mAllowAngle = ai.metaData.getBoolean(METADATA_ANGLE_ALLOW_ANGLE, true);
                }
@@ -587,9 +587,9 @@ public final class GameManagerService extends IGameManagerService.Stub {
                    } else {
                        final TypedArray array = resources.obtainAttributes(attributeSet,
                                com.android.internal.R.styleable.GameModeConfig);
                        mPerfModeOptedIn = array.getBoolean(
                        mPerfModeOverridden = array.getBoolean(
                                GameModeConfig_supportsPerformanceGameMode, false);
                        mBatteryModeOptedIn = array.getBoolean(
                        mBatteryModeOverridden = array.getBoolean(
                                GameModeConfig_supportsBatteryGameMode,
                                false);
                        mAllowDownscale = array.getBoolean(GameModeConfig_allowGameDownscaling,
@@ -602,8 +602,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
                }
            } catch (NameNotFoundException | XmlPullParserException | IOException ex) {
                // set flag back to default values when parsing fails
                mPerfModeOptedIn = false;
                mBatteryModeOptedIn = false;
                mPerfModeOverridden = false;
                mBatteryModeOverridden = false;
                mAllowDownscale = true;
                mAllowAngle = true;
                mAllowFpsOverride = true;
@@ -659,8 +659,8 @@ public final class GameManagerService extends IGameManagerService.Stub {

            GameModeConfiguration(KeyValueListParser parser) {
                mGameMode = parser.getInt(MODE_KEY, GameManager.GAME_MODE_UNSUPPORTED);
                // isGameModeOptedIn() returns if an app will handle all of the changes necessary
                // for a particular game mode. If so, the Android framework (i.e.
                // willGamePerformOptimizations() returns if an app will handle all of the changes
                // necessary for a particular game mode. If so, the Android framework (i.e.
                // GameManagerService) will not do anything for the app (like window scaling or
                // using ANGLE).
                mScaling = !mAllowDownscale || willGamePerformOptimizations(mGameMode)
@@ -767,8 +767,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
         * "com.android.app.gamemode.battery.enabled" with a value of "true"
         */
        public boolean willGamePerformOptimizations(@GameMode int gameMode) {
            return (mBatteryModeOptedIn && gameMode == GameManager.GAME_MODE_BATTERY)
                    || (mPerfModeOptedIn && gameMode == GameManager.GAME_MODE_PERFORMANCE);
            return (mBatteryModeOverridden && gameMode == GameManager.GAME_MODE_BATTERY)
                    || (mPerfModeOverridden && gameMode == GameManager.GAME_MODE_PERFORMANCE);
        }

        private int getAvailableGameModesBitfield() {
@@ -779,10 +779,10 @@ public final class GameManagerService extends IGameManagerService.Stub {
                    field |= modeToBitmask(mode);
                }
            }
            if (mBatteryModeOptedIn) {
            if (mBatteryModeOverridden) {
                field |= modeToBitmask(GameManager.GAME_MODE_BATTERY);
            }
            if (mPerfModeOptedIn) {
            if (mPerfModeOverridden) {
                field |= modeToBitmask(GameManager.GAME_MODE_PERFORMANCE);
            }
            return field;
@@ -806,14 +806,14 @@ public final class GameManagerService extends IGameManagerService.Stub {
        }

        /**
         * Get an array of a package's opted-in game modes.
         * Get an array of a package's overridden game modes.
         */
        public @GameMode int[] getOptedInGameModes() {
            if (mBatteryModeOptedIn && mPerfModeOptedIn) {
        public @GameMode int[] getOverriddenGameModes() {
            if (mBatteryModeOverridden && mPerfModeOverridden) {
                return new int[]{GameManager.GAME_MODE_BATTERY, GameManager.GAME_MODE_PERFORMANCE};
            } else if (mBatteryModeOptedIn) {
            } else if (mBatteryModeOverridden) {
                return new int[]{GameManager.GAME_MODE_BATTERY};
            } else if (mPerfModeOptedIn) {
            } else if (mPerfModeOverridden) {
                return new int[]{GameManager.GAME_MODE_PERFORMANCE};
            } else {
                return new int[]{};
@@ -856,18 +856,18 @@ public final class GameManagerService extends IGameManagerService.Stub {

        public boolean isActive() {
            synchronized (mModeConfigLock) {
                return mModeConfigs.size() > 0 || mBatteryModeOptedIn || mPerfModeOptedIn;
                return mModeConfigs.size() > 0 || mBatteryModeOverridden || mPerfModeOverridden;
            }
        }

        GamePackageConfiguration copyAndApplyOverride(GamePackageConfiguration overrideConfig) {
            GamePackageConfiguration copy = new GamePackageConfiguration(mPackageName);
            // if a game mode is overridden, we treat it with the highest priority and reset any
            // opt-in game modes so that interventions are always executed.
            copy.mPerfModeOptedIn = mPerfModeOptedIn && !(overrideConfig != null
            // overridden game modes so that interventions are always executed.
            copy.mPerfModeOverridden = mPerfModeOverridden && !(overrideConfig != null
                    && overrideConfig.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE)
                    != null);
            copy.mBatteryModeOptedIn = mBatteryModeOptedIn && !(overrideConfig != null
            copy.mBatteryModeOverridden = mBatteryModeOverridden && !(overrideConfig != null
                    && overrideConfig.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY)
                    != null);

@@ -1084,12 +1084,12 @@ public final class GameManagerService extends IGameManagerService.Stub {
        final @GameMode int activeGameMode = getGameModeFromSettingsUnchecked(packageName, userId);
        final GamePackageConfiguration config = getConfig(packageName, userId);
        if (config != null) {
            final @GameMode int[] optedInGameModes = config.getOptedInGameModes();
            final @GameMode int[] overriddenGameModes = config.getOverriddenGameModes();
            final @GameMode int[] availableGameModes = config.getAvailableGameModes();
            GameModeInfo.Builder gameModeInfoBuilder = new GameModeInfo.Builder()
                    .setActiveGameMode(activeGameMode)
                    .setAvailableGameModes(availableGameModes)
                    .setOptedInGameModes(optedInGameModes)
                    .setOverriddenGameModes(overriddenGameModes)
                    .setDownscalingAllowed(config.mAllowDownscale)
                    .setFpsOverrideAllowed(config.mAllowFpsOverride);
            for (int gameMode : availableGameModes) {
@@ -2016,7 +2016,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
                if (atomTag == FrameworkStatsLog.GAME_MODE_INFO) {
                    data.add(
                            FrameworkStatsLog.buildStatsEvent(FrameworkStatsLog.GAME_MODE_INFO, uid,
                                    gameModesToStatsdGameModes(config.getOptedInGameModes()),
                                    gameModesToStatsdGameModes(config.getOverriddenGameModes()),
                                    gameModesToStatsdGameModes(config.getAvailableGameModes())));
                } else if (atomTag == FrameworkStatsLog.GAME_MODE_CONFIGURATION) {
                    for (int gameMode : config.getAvailableGameModes()) {
+26 −26
Original line number Diff line number Diff line
@@ -645,15 +645,15 @@ public class GameManagerServiceTests {
        }
    }

    private void checkReportedOptedInGameModes(GameManagerService gameManagerService,
            int... requiredOptedInModes) {
        Arrays.sort(requiredOptedInModes);
        // check GetModeInfo.getOptedInGameModes
    private void checkReportedOverriddenGameModes(GameManagerService gameManagerService,
            int... requiredOverriddenModes) {
        Arrays.sort(requiredOverriddenModes);
        // check GetModeInfo.getOverriddenGameModes
        GameModeInfo info = gameManagerService.getGameModeInfo(mPackageName, USER_ID_1);
        assertNotNull(info);
        int[] optedInModes = info.getOptedInGameModes();
        Arrays.sort(optedInModes);
        assertArrayEquals(requiredOptedInModes, optedInModes);
        int[] overriddenModes = info.getOverriddenGameModes();
        Arrays.sort(overriddenModes);
        assertArrayEquals(requiredOverriddenModes, overriddenModes);
    }

    private void checkDownscaling(GameManagerService gameManagerService,
@@ -695,7 +695,7 @@ public class GameManagerServiceTests {
        assertEquals(fps, config.getGameModeConfiguration(gameMode).getFps());
    }

    private boolean checkOptedIn(GameManagerService gameManagerService, int gameMode) {
    private boolean checkOverridden(GameManagerService gameManagerService, int gameMode) {
        GameManagerService.GamePackageConfiguration config =
                gameManagerService.getConfig(mPackageName, USER_ID_1);
        return config.willGamePerformOptimizations(gameMode);
@@ -868,8 +868,8 @@ public class GameManagerServiceTests {
                mTestLooper.getLooper());
        startUser(gameManagerService, USER_ID_1);

        assertFalse(checkOptedIn(gameManagerService, GameManager.GAME_MODE_PERFORMANCE));
        assertFalse(checkOptedIn(gameManagerService, GameManager.GAME_MODE_BATTERY));
        assertFalse(checkOverridden(gameManagerService, GameManager.GAME_MODE_PERFORMANCE));
        assertFalse(checkOverridden(gameManagerService, GameManager.GAME_MODE_BATTERY));
        checkFps(gameManagerService, GameManager.GAME_MODE_PERFORMANCE, 0);

        gameManagerService.setGameModeConfigOverride(mPackageName, USER_ID_1, 3, "40",
@@ -882,9 +882,9 @@ public class GameManagerServiceTests {
        mockInterventionsDisabledAllOptInFromXml();
        gameManagerService.updateConfigsForUser(USER_ID_1, false, mPackageName);

        assertTrue(checkOptedIn(gameManagerService, GameManager.GAME_MODE_PERFORMANCE));
        assertTrue(checkOverridden(gameManagerService, GameManager.GAME_MODE_PERFORMANCE));
        // opt-in is still false for battery mode as override exists
        assertFalse(checkOptedIn(gameManagerService, GameManager.GAME_MODE_BATTERY));
        assertFalse(checkOverridden(gameManagerService, GameManager.GAME_MODE_BATTERY));
    }

    /**
@@ -1308,7 +1308,7 @@ public class GameManagerServiceTests {
        checkReportedAvailableGameModes(gameManagerService, GameManager.GAME_MODE_PERFORMANCE,
                GameManager.GAME_MODE_BATTERY, GameManager.GAME_MODE_STANDARD,
                GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService);
        checkReportedOverriddenGameModes(gameManagerService);

        assertEquals(new GameModeConfiguration.Builder()
                .setFpsOverride(30)
@@ -1335,7 +1335,7 @@ public class GameManagerServiceTests {
        checkReportedAvailableGameModes(gameManagerService,
                GameManager.GAME_MODE_BATTERY, GameManager.GAME_MODE_STANDARD,
                GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService);
        checkReportedOverriddenGameModes(gameManagerService);

        assertNotNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
@@ -1355,7 +1355,7 @@ public class GameManagerServiceTests {
        checkReportedAvailableGameModes(gameManagerService,
                GameManager.GAME_MODE_PERFORMANCE, GameManager.GAME_MODE_STANDARD,
                GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService);
        checkReportedOverriddenGameModes(gameManagerService);

        assertNotNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
@@ -1380,7 +1380,7 @@ public class GameManagerServiceTests {
    }

    @Test
    public void testGetGameModeInfoWithAllGameModesOptedIn_noDeviceConfig()
    public void testGetGameModeInfoWithAllGameModesOverridden_noDeviceConfig()
            throws Exception {
        mockModifyGameModeGranted();
        mockInterventionsEnabledAllOptInFromXml();
@@ -1388,14 +1388,14 @@ public class GameManagerServiceTests {
        GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1);
        GameModeInfo gameModeInfo = gameManagerService.getGameModeInfo(mPackageName, USER_ID_1);
        assertEquals(GameManager.GAME_MODE_STANDARD, gameModeInfo.getActiveGameMode());
        verifyAllModesOptedInAndInterventionsAvailable(gameManagerService, gameModeInfo);
        verifyAllModesOverriddenAndInterventionsAvailable(gameManagerService, gameModeInfo);

        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
    }

    @Test
    public void testGetGameModeInfoWithAllGameModesOptedIn_allDeviceConfig()
    public void testGetGameModeInfoWithAllGameModesOverridden_allDeviceConfig()
            throws Exception {
        mockModifyGameModeGranted();
        mockInterventionsEnabledAllOptInFromXml();
@@ -1403,26 +1403,26 @@ public class GameManagerServiceTests {
        GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1);
        GameModeInfo gameModeInfo = gameManagerService.getGameModeInfo(mPackageName, USER_ID_1);
        assertEquals(GameManager.GAME_MODE_STANDARD, gameModeInfo.getActiveGameMode());
        verifyAllModesOptedInAndInterventionsAvailable(gameManagerService, gameModeInfo);
        verifyAllModesOverriddenAndInterventionsAvailable(gameManagerService, gameModeInfo);

        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
    }

    private void verifyAllModesOptedInAndInterventionsAvailable(
    private void verifyAllModesOverriddenAndInterventionsAvailable(
            GameManagerService gameManagerService,
            GameModeInfo gameModeInfo) {
        checkReportedAvailableGameModes(gameManagerService,
                GameManager.GAME_MODE_PERFORMANCE, GameManager.GAME_MODE_BATTERY,
                GameManager.GAME_MODE_STANDARD, GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService,
        checkReportedOverriddenGameModes(gameManagerService,
                GameManager.GAME_MODE_PERFORMANCE, GameManager.GAME_MODE_BATTERY);
        assertTrue(gameModeInfo.isFpsOverrideAllowed());
        assertTrue(gameModeInfo.isDownscalingAllowed());
    }

    @Test
    public void testGetGameModeInfoWithBatteryModeOptedIn_withBatteryDeviceConfig()
    public void testGetGameModeInfoWithBatteryModeOverridden_withBatteryDeviceConfig()
            throws Exception {
        mockModifyGameModeGranted();
        mockInterventionsEnabledBatteryOptInFromXml();
@@ -1433,14 +1433,14 @@ public class GameManagerServiceTests {

        checkReportedAvailableGameModes(gameManagerService, GameManager.GAME_MODE_BATTERY,
                GameManager.GAME_MODE_STANDARD, GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService, GameManager.GAME_MODE_BATTERY);
        checkReportedOverriddenGameModes(gameManagerService, GameManager.GAME_MODE_BATTERY);

        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
    }

    @Test
    public void testGetGameModeInfoWithPerformanceModeOptedIn_withAllDeviceConfig()
    public void testGetGameModeInfoWithPerformanceModeOverridden_withAllDeviceConfig()
            throws Exception {
        mockModifyGameModeGranted();
        mockInterventionsEnabledPerformanceOptInFromXml();
@@ -1452,7 +1452,7 @@ public class GameManagerServiceTests {
        checkReportedAvailableGameModes(gameManagerService, GameManager.GAME_MODE_PERFORMANCE,
                GameManager.GAME_MODE_BATTERY, GameManager.GAME_MODE_STANDARD,
                GameManager.GAME_MODE_CUSTOM);
        checkReportedOptedInGameModes(gameManagerService, GameManager.GAME_MODE_PERFORMANCE);
        checkReportedOverriddenGameModes(gameManagerService, GameManager.GAME_MODE_PERFORMANCE);

        assertNotNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_BATTERY));
        assertNull(gameModeInfo.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
@@ -1953,7 +1953,7 @@ public class GameManagerServiceTests {
    }

    @Test
    public void testResetInterventions_onGameModeOptedIn() throws Exception {
    public void testResetInterventions_onGameModeOverridden() throws Exception {
        mockModifyGameModeGranted();
        String configStringBefore =
                "mode=2,downscaleFactor=1.0,fps=90";