Set default metadata/XML/attribute set value before parsing
Make sure all game mode and game intervention allow flags are set properly before parsing from metadata, xml file and attribute set. Bug: 243455130 Test: atest GameManagerServiceTests Change-Id: I0e9c484fe73141521da42e57c60e6bf722d9744a Merged-In: I0e9c484fe73141521da42e57c60e6bf722d9744a
This commit is contained in:
@@ -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<Integer, GameModeConfiguration> 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user