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

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

Merge "Refactor getNewGameMode()" into tm-dev

parents 6fbd9e77 607e7c2f
Loading
Loading
Loading
Loading
+16 −30
Original line number Diff line number Diff line
@@ -1320,15 +1320,26 @@ public final class GameManagerService extends IGameManagerService.Stub {
        // Make sure after resetting the game mode is still supported.
        // If not, set the game mode to standard
        int gameMode = getGameMode(packageName, userId);
        int newGameMode = gameMode;

        GamePackageConfiguration config = null;
        synchronized (mOverrideConfigLock) {
            config = mOverrideConfigs.get(packageName);
        }
        if (config == null) {
            synchronized (mDeviceConfigLock) {
                config = mConfigs.get(packageName);
            }
        }
        final int newGameMode = getNewGameMode(gameMode, config);
        if (gameMode != newGameMode) {
            setGameMode(packageName, GameManager.GAME_MODE_STANDARD, userId);
            return;
        }
        setGameMode(packageName, gameMode, userId);
    }

    private int getNewGameMode(int gameMode, GamePackageConfiguration config) {
        int newGameMode = gameMode;
        if (config != null) {
            int modesBitfield = config.getAvailableGameModesBitfield();
            // Remove UNSUPPORTED to simplify the logic here, since we really just
@@ -1350,11 +1361,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
            // UNSUPPORTED, then set to UNSUPPORTED
            newGameMode = GameManager.GAME_MODE_UNSUPPORTED;
        }
        if (gameMode != newGameMode) {
            setGameMode(packageName, GameManager.GAME_MODE_STANDARD, userId);
            return;
        }
        setGameMode(packageName, gameMode, userId);
        return newGameMode;
    }

    /**
@@ -1412,7 +1419,6 @@ public final class GameManagerService extends IGameManagerService.Stub {
            }
            for (final String packageName : packageNames) {
                int gameMode = getGameMode(packageName, userId);
                int newGameMode = gameMode;
                // Make sure the user settings and package configs don't conflict.
                // I.e. the user setting is set to a mode that no longer available due to
                // config/manifest changes.
@@ -1421,27 +1427,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
                synchronized (mDeviceConfigLock) {
                    config = mConfigs.get(packageName);
                }
                if (config != null) {
                    int modesBitfield = config.getAvailableGameModesBitfield();
                    // Remove UNSUPPORTED to simplify the logic here, since we really just
                    // want to check if we support selectable game modes
                    modesBitfield &= ~modeToBitmask(GameManager.GAME_MODE_UNSUPPORTED);
                    if (!bitFieldContainsModeBitmask(modesBitfield, gameMode)) {
                        if (bitFieldContainsModeBitmask(modesBitfield,
                                GameManager.GAME_MODE_STANDARD)) {
                            // If the current set mode isn't supported,
                            // but we support STANDARD, then set the mode to STANDARD.
                            newGameMode = GameManager.GAME_MODE_STANDARD;
                        } else {
                            // If we don't support any game modes, then set to UNSUPPORTED
                            newGameMode = GameManager.GAME_MODE_UNSUPPORTED;
                        }
                    }
                } else if (gameMode != GameManager.GAME_MODE_UNSUPPORTED) {
                    // If we have no config for the package, but the configured mode is not
                    // UNSUPPORTED, then set to UNSUPPORTED
                    newGameMode = GameManager.GAME_MODE_UNSUPPORTED;
                }
                final int newGameMode = getNewGameMode(gameMode, config);
                if (newGameMode != gameMode) {
                    setGameMode(packageName, newGameMode, userId);
                }