diff --git a/services/core/java/com/android/server/app/GameManagerService.java b/services/core/java/com/android/server/app/GameManagerService.java index dd73cbed06d90..15c569e246f7c 100644 --- a/services/core/java/com/android/server/app/GameManagerService.java +++ b/services/core/java/com/android/server/app/GameManagerService.java @@ -554,31 +554,24 @@ public final class GameManagerService extends IGameManagerService.Stub { private static final String GAME_MODE_CONFIG_NODE_NAME = "game-mode-config"; private final String mPackageName; private final ArrayMap mModeConfigs; - private boolean mPerfModeOptedIn; - private boolean mBatteryModeOptedIn; - private boolean mAllowDownscale; - private boolean mAllowAngle; - private boolean mAllowFpsOverride; + private boolean mPerfModeOptedIn = false; + private boolean mBatteryModeOptedIn = false; + private boolean mAllowDownscale = true; + private boolean mAllowAngle = true; + private boolean mAllowFpsOverride = true; GamePackageConfiguration(String packageName, int userId) { mPackageName = packageName; mModeConfigs = new ArrayMap<>(); + try { final ApplicationInfo ai = mPackageManager.getApplicationInfoAsUser(packageName, PackageManager.GET_META_DATA, userId); - if (!parseInterventionFromXml(ai, packageName)) { - if (ai.metaData != null) { - mPerfModeOptedIn = ai.metaData.getBoolean(METADATA_PERFORMANCE_MODE_ENABLE); - mBatteryModeOptedIn = 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); - } else { - mPerfModeOptedIn = false; - mBatteryModeOptedIn = false; - mAllowDownscale = true; - mAllowAngle = true; - mAllowFpsOverride = true; - } + if (!parseInterventionFromXml(ai, packageName) && ai.metaData != null) { + mPerfModeOptedIn = ai.metaData.getBoolean(METADATA_PERFORMANCE_MODE_ENABLE); + mBatteryModeOptedIn = 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); } } catch (NameNotFoundException e) { // Not all packages are installed, hence ignore those that are not installed yet. @@ -641,6 +634,12 @@ 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; + mAllowDownscale = true; + mAllowAngle = true; + mAllowFpsOverride = true; Slog.e(TAG, "Error while parsing XML meta-data for " + METADATA_GAME_MODE_CONFIG); }