Loading core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 { core/java/android/app/GameModeInfo.java +17 −17 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; Loading @@ -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<>(); Loading @@ -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}. Loading @@ -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( Loading Loading @@ -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; Loading @@ -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); Loading core/tests/GameManagerTests/src/android/app/GameModeInfoTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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()); Loading @@ -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, Loading services/core/java/com/android/server/app/GameManagerService.java +26 −26 Original line number Diff line number Diff line Loading @@ -524,8 +524,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; Loading @@ -542,8 +542,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); } Loading Loading @@ -595,9 +595,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, Loading @@ -610,8 +610,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; Loading Loading @@ -667,8 +667,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) Loading Loading @@ -775,8 +775,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() { Loading @@ -787,10 +787,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; Loading @@ -814,14 +814,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[]{}; Loading Loading @@ -864,18 +864,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); Loading Loading @@ -1092,12 +1092,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) { Loading Loading @@ -2059,7 +2059,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()) { Loading services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +26 −26 Original line number Diff line number Diff line Loading @@ -647,15 +647,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, Loading Loading @@ -697,7 +697,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); Loading Loading @@ -870,8 +870,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", Loading @@ -884,9 +884,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)); } /** Loading Loading @@ -1310,7 +1310,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) Loading @@ -1337,7 +1337,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)); Loading @@ -1357,7 +1357,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)); Loading @@ -1382,7 +1382,7 @@ public class GameManagerServiceTests { } @Test public void testGetGameModeInfoWithAllGameModesOptedIn_noDeviceConfig() public void testGetGameModeInfoWithAllGameModesOverridden_noDeviceConfig() throws Exception { mockModifyGameModeGranted(); mockInterventionsEnabledAllOptInFromXml(); Loading @@ -1390,14 +1390,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(); Loading @@ -1405,26 +1405,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(); Loading @@ -1435,14 +1435,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(); Loading @@ -1454,7 +1454,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)); Loading Loading @@ -1993,7 +1993,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"; Loading Loading
core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 {
core/java/android/app/GameModeInfo.java +17 −17 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; Loading @@ -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; Loading @@ -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<>(); Loading @@ -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}. Loading @@ -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( Loading Loading @@ -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; Loading @@ -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); Loading
core/tests/GameManagerTests/src/android/app/GameModeInfoTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) Loading @@ -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()); Loading @@ -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, Loading
services/core/java/com/android/server/app/GameManagerService.java +26 −26 Original line number Diff line number Diff line Loading @@ -524,8 +524,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; Loading @@ -542,8 +542,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); } Loading Loading @@ -595,9 +595,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, Loading @@ -610,8 +610,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; Loading Loading @@ -667,8 +667,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) Loading Loading @@ -775,8 +775,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() { Loading @@ -787,10 +787,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; Loading @@ -814,14 +814,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[]{}; Loading Loading @@ -864,18 +864,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); Loading Loading @@ -1092,12 +1092,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) { Loading Loading @@ -2059,7 +2059,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()) { Loading
services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +26 −26 Original line number Diff line number Diff line Loading @@ -647,15 +647,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, Loading Loading @@ -697,7 +697,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); Loading Loading @@ -870,8 +870,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", Loading @@ -884,9 +884,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)); } /** Loading Loading @@ -1310,7 +1310,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) Loading @@ -1337,7 +1337,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)); Loading @@ -1357,7 +1357,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)); Loading @@ -1382,7 +1382,7 @@ public class GameManagerServiceTests { } @Test public void testGetGameModeInfoWithAllGameModesOptedIn_noDeviceConfig() public void testGetGameModeInfoWithAllGameModesOverridden_noDeviceConfig() throws Exception { mockModifyGameModeGranted(); mockInterventionsEnabledAllOptInFromXml(); Loading @@ -1390,14 +1390,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(); Loading @@ -1405,26 +1405,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(); Loading @@ -1435,14 +1435,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(); Loading @@ -1454,7 +1454,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)); Loading Loading @@ -1993,7 +1993,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"; Loading