Loading services/core/java/com/android/server/app/GameManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -338,7 +338,18 @@ public final class GameManagerService extends IGameManagerService.Stub { + " and userId " + userId); break; } if (mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)) { mHandler.removeMessages(CANCEL_GAME_LOADING_MODE); } mPowerManagerInternal.setPowerMode(Mode.GAME_LOADING, isLoading); if (isLoading) { int loadingBoostDuration = getLoadingBoostDuration(packageName, userId); loadingBoostDuration = loadingBoostDuration > 0 ? loadingBoostDuration : LOADING_BOOST_MAX_DURATION; mHandler.sendMessageDelayed( mHandler.obtainMessage(CANCEL_GAME_LOADING_MODE), loadingBoostDuration); } } break; } Loading services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +55 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.app; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.server.app.GameManagerService.CANCEL_GAME_LOADING_MODE; import static com.android.server.app.GameManagerService.WRITE_SETTINGS; import static org.junit.Assert.assertArrayEquals; Loading Loading @@ -1454,35 +1455,78 @@ public class GameManagerServiceTests { verify(mMockPowerManager, never()).setPowerMode(anyInt(), anyBoolean()); } private void setGameState(boolean isLoading) { @Test public void testSetGameStateLoading_withNoDeviceConfig() { mockDeviceConfigNone(); mockModifyGameModeGranted(); GameManagerService gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper()); startUser(gameManagerService, USER_ID_1); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); int testMode = GameState.MODE_NONE; assertEquals(gameManagerService.getGameMode(mPackageName, USER_ID_1), GameManager.GAME_MODE_PERFORMANCE); int testMode = GameState.MODE_GAMEPLAY_INTERRUPTIBLE; int testLabel = 99; int testQuality = 123; GameState gameState = new GameState(isLoading, testMode, testLabel, testQuality); assertEquals(isLoading, gameState.isLoading()); GameState gameState = new GameState(true, testMode, testLabel, testQuality); assertEquals(testMode, gameState.getMode()); assertEquals(testLabel, gameState.getLabel()); assertEquals(testQuality, gameState.getQuality()); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, isLoading); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, true); reset(mMockPowerManager); assertTrue( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); verify(mMockPowerManager, never()).setPowerMode(Mode.GAME_LOADING, false); mTestLooper.moveTimeForward(GameManagerService.LOADING_BOOST_MAX_DURATION); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); } @Test public void testSetGameStateLoading() { setGameState(true); public void testSetGameStateLoading_withDeviceConfig() { String configString = "mode=2,loadingBoost=2000"; when(DeviceConfig.getProperty(anyString(), anyString())) .thenReturn(configString); mockModifyGameModeGranted(); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); GameState gameState = new GameState(true, GameState.MODE_GAMEPLAY_INTERRUPTIBLE, 99, 123); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, true); verify(mMockPowerManager, never()).setPowerMode(Mode.GAME_LOADING, false); reset(mMockPowerManager); assertTrue( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); mTestLooper.moveTimeForward(2000); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); } @Test public void testSetGameStateNotLoading() { setGameState(false); mockDeviceConfigNone(); mockModifyGameModeGranted(); GameManagerService gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper()); startUser(gameManagerService, USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); int testMode = GameState.MODE_GAMEPLAY_UNINTERRUPTIBLE; int testLabel = 99; int testQuality = 123; GameState gameState = new GameState(false, testMode, testLabel, testQuality); assertFalse(gameState.isLoading()); assertEquals(testMode, gameState.getMode()); assertEquals(testLabel, gameState.getLabel()); assertEquals(testQuality, gameState.getQuality()); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); assertFalse( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); } private List<String> readGameModeInterventionList() throws Exception { Loading Loading
services/core/java/com/android/server/app/GameManagerService.java +11 −0 Original line number Diff line number Diff line Loading @@ -338,7 +338,18 @@ public final class GameManagerService extends IGameManagerService.Stub { + " and userId " + userId); break; } if (mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)) { mHandler.removeMessages(CANCEL_GAME_LOADING_MODE); } mPowerManagerInternal.setPowerMode(Mode.GAME_LOADING, isLoading); if (isLoading) { int loadingBoostDuration = getLoadingBoostDuration(packageName, userId); loadingBoostDuration = loadingBoostDuration > 0 ? loadingBoostDuration : LOADING_BOOST_MAX_DURATION; mHandler.sendMessageDelayed( mHandler.obtainMessage(CANCEL_GAME_LOADING_MODE), loadingBoostDuration); } } break; } Loading
services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +55 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.app; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.server.app.GameManagerService.CANCEL_GAME_LOADING_MODE; import static com.android.server.app.GameManagerService.WRITE_SETTINGS; import static org.junit.Assert.assertArrayEquals; Loading Loading @@ -1454,35 +1455,78 @@ public class GameManagerServiceTests { verify(mMockPowerManager, never()).setPowerMode(anyInt(), anyBoolean()); } private void setGameState(boolean isLoading) { @Test public void testSetGameStateLoading_withNoDeviceConfig() { mockDeviceConfigNone(); mockModifyGameModeGranted(); GameManagerService gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper()); startUser(gameManagerService, USER_ID_1); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); int testMode = GameState.MODE_NONE; assertEquals(gameManagerService.getGameMode(mPackageName, USER_ID_1), GameManager.GAME_MODE_PERFORMANCE); int testMode = GameState.MODE_GAMEPLAY_INTERRUPTIBLE; int testLabel = 99; int testQuality = 123; GameState gameState = new GameState(isLoading, testMode, testLabel, testQuality); assertEquals(isLoading, gameState.isLoading()); GameState gameState = new GameState(true, testMode, testLabel, testQuality); assertEquals(testMode, gameState.getMode()); assertEquals(testLabel, gameState.getLabel()); assertEquals(testQuality, gameState.getQuality()); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, isLoading); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, true); reset(mMockPowerManager); assertTrue( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); verify(mMockPowerManager, never()).setPowerMode(Mode.GAME_LOADING, false); mTestLooper.moveTimeForward(GameManagerService.LOADING_BOOST_MAX_DURATION); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); } @Test public void testSetGameStateLoading() { setGameState(true); public void testSetGameStateLoading_withDeviceConfig() { String configString = "mode=2,loadingBoost=2000"; when(DeviceConfig.getProperty(anyString(), anyString())) .thenReturn(configString); mockModifyGameModeGranted(); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); GameState gameState = new GameState(true, GameState.MODE_GAMEPLAY_INTERRUPTIBLE, 99, 123); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, true); verify(mMockPowerManager, never()).setPowerMode(Mode.GAME_LOADING, false); reset(mMockPowerManager); assertTrue( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); mTestLooper.moveTimeForward(2000); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); } @Test public void testSetGameStateNotLoading() { setGameState(false); mockDeviceConfigNone(); mockModifyGameModeGranted(); GameManagerService gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper()); startUser(gameManagerService, USER_ID_1); gameManagerService.setGameMode( mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1); int testMode = GameState.MODE_GAMEPLAY_UNINTERRUPTIBLE; int testLabel = 99; int testQuality = 123; GameState gameState = new GameState(false, testMode, testLabel, testQuality); assertFalse(gameState.isLoading()); assertEquals(testMode, gameState.getMode()); assertEquals(testLabel, gameState.getLabel()); assertEquals(testQuality, gameState.getQuality()); gameManagerService.setGameState(mPackageName, gameState, USER_ID_1); mTestLooper.dispatchAll(); verify(mMockPowerManager, times(1)).setPowerMode(Mode.GAME_LOADING, false); assertFalse( gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); } private List<String> readGameModeInterventionList() throws Exception { Loading