Loading services/core/java/com/android/server/app/GameManagerService.java +19 −13 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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()); } /** Loading services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +6 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
services/core/java/com/android/server/app/GameManagerService.java +19 −13 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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()); } /** Loading
services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +6 −2 Original line number Diff line number Diff line Loading @@ -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); Loading