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

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

Merge "Apply interventions directly if the current game mode is CUSTOM"

parents 16ec882a cca55377
Loading
Loading
Loading
Loading
+19 −13
Original line number Diff line number Diff line
@@ -1388,10 +1388,26 @@ public final class GameManagerService extends IGameManagerService.Stub {
                configOverride = new GamePackageConfiguration(packageName);
                settings.setConfigOverride(packageName, configOverride);
            }

        }
        GamePackageConfiguration.GameModeConfiguration internalConfig =
                configOverride.getOrAddDefaultGameModeConfiguration(GameManager.GAME_MODE_CUSTOM);
        final float scalingValueFrom = internalConfig.getScaling();
        final int fpsValueFrom = internalConfig.getFps();
        internalConfig.updateFromPublicGameModeConfig(gameModeConfig);

        sendUserMessage(userId, WRITE_SETTINGS, EVENT_UPDATE_CUSTOM_GAME_MODE_CONFIG,
                WRITE_DELAY_MILLIS);
        sendUserMessage(userId, WRITE_GAME_MODE_INTERVENTION_LIST_FILE,
                EVENT_UPDATE_CUSTOM_GAME_MODE_CONFIG, WRITE_DELAY_MILLIS /*delayMillis*/);

        final int gameMode = getGameMode(packageName, userId);
        if (gameMode == GameManager.GAME_MODE_CUSTOM) {
            updateInterventions(packageName, gameMode, userId);
        }
        Slog.i(TAG, "Updated custom game mode config for package: " + packageName
                + " with FPS=" + internalConfig.getFps() + ";Scaling="
                + internalConfig.getScaling() + " under user " + userId);

        int gameUid = -1;
        try {
            gameUid = mPackageManager.getPackageUidAsUser(packageName, userId);
@@ -1400,18 +1416,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
        }
        FrameworkStatsLog.write(FrameworkStatsLog.GAME_MODE_CONFIGURATION_CHANGED, gameUid,
                Binder.getCallingUid(), gameModeToStatsdGameMode(GameManager.GAME_MODE_CUSTOM),
                internalConfig.getScaling(), gameModeConfig.getScalingFactor(),
                internalConfig.getFps(), gameModeConfig.getFpsOverride());
        internalConfig.updateFromPublicGameModeConfig(gameModeConfig);

        Slog.i(TAG, "Updated custom game mode config for package: " + packageName
                + " with FPS=" + internalConfig.getFps() + ";Scaling="
                + internalConfig.getScaling() + " under user " + userId);

        sendUserMessage(userId, WRITE_SETTINGS, EVENT_UPDATE_CUSTOM_GAME_MODE_CONFIG,
                WRITE_DELAY_MILLIS);
        sendUserMessage(userId, WRITE_GAME_MODE_INTERVENTION_LIST_FILE,
                EVENT_UPDATE_CUSTOM_GAME_MODE_CONFIG, WRITE_DELAY_MILLIS /*delayMillis*/);
                scalingValueFrom, gameModeConfig.getScalingFactor(),
                fpsValueFrom, gameModeConfig.getFpsOverride());
    }

    /**
+6 −2
Original line number Diff line number Diff line
@@ -1884,16 +1884,20 @@ public class GameManagerServiceTests {
    @Test
    public void testUpdateCustomGameModeConfiguration() throws InterruptedException {
        mockModifyGameModeGranted();
        GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1);
        GameManagerService gameManagerService = Mockito.spy(createServiceAndStartUser(USER_ID_1));
        gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_CUSTOM, USER_ID_1);
        gameManagerService.updateCustomGameModeConfiguration(mPackageName,
                new GameModeConfiguration.Builder().setScalingFactor(0.35f).setFpsOverride(
                        60).build(),
                USER_ID_1);

        assertTrue(gameManagerService.mHandler.hasEqualMessages(WRITE_SETTINGS, USER_ID_1));
        assertTrue(
                gameManagerService.mHandler.hasEqualMessages(WRITE_GAME_MODE_INTERVENTION_LIST_FILE,
                        USER_ID_1));
        Mockito.verify(gameManagerService).setOverrideFrameRate(
                ArgumentMatchers.eq(DEFAULT_PACKAGE_UID),
                ArgumentMatchers.eq(60.0f));
        checkFps(gameManagerService, GameManager.GAME_MODE_CUSTOM, 60);

        GameManagerService.GamePackageConfiguration pkgConfig = gameManagerService.getConfig(
                mPackageName, USER_ID_1);