Check if it's game package before updating configs am: 8e04d2c100
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20228874 Change-Id: Ib3d7fc95a78afbf9ca1bc21ec180f6697a6983d3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -333,7 +333,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
removeMessages(POPULATE_GAME_MODE_SETTINGS, msg.obj);
|
removeMessages(POPULATE_GAME_MODE_SETTINGS, msg.obj);
|
||||||
final int userId = (int) msg.obj;
|
final int userId = (int) msg.obj;
|
||||||
final String[] packageNames = getInstalledGamePackageNames(userId);
|
final String[] packageNames = getInstalledGamePackageNames(userId);
|
||||||
updateConfigsForUser(userId, packageNames);
|
updateConfigsForUser(userId, false /*checkGamePackage*/, packageNames);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SET_GAME_STATE: {
|
case SET_GAME_STATE: {
|
||||||
@@ -402,7 +402,8 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
@Override
|
@Override
|
||||||
public void onPropertiesChanged(Properties properties) {
|
public void onPropertiesChanged(Properties properties) {
|
||||||
final String[] packageNames = properties.getKeyset().toArray(new String[0]);
|
final String[] packageNames = properties.getKeyset().toArray(new String[0]);
|
||||||
updateConfigsForUser(ActivityManager.getCurrentUser(), packageNames);
|
updateConfigsForUser(ActivityManager.getCurrentUser(), true /*checkGamePackage*/,
|
||||||
|
packageNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -717,7 +718,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
mFps = fpsStr;
|
mFps = fpsStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValid() {
|
public boolean isActive() {
|
||||||
return (mGameMode == GameManager.GAME_MODE_STANDARD
|
return (mGameMode == GameManager.GAME_MODE_STANDARD
|
||||||
|| mGameMode == GameManager.GAME_MODE_PERFORMANCE
|
|| mGameMode == GameManager.GAME_MODE_PERFORMANCE
|
||||||
|| mGameMode == GameManager.GAME_MODE_BATTERY)
|
|| mGameMode == GameManager.GAME_MODE_BATTERY)
|
||||||
@@ -809,15 +810,15 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
* Insert a new GameModeConfiguration
|
* Insert a new GameModeConfiguration
|
||||||
*/
|
*/
|
||||||
public void addModeConfig(GameModeConfiguration config) {
|
public void addModeConfig(GameModeConfiguration config) {
|
||||||
if (config.isValid()) {
|
if (config.isActive()) {
|
||||||
mModeConfigs.put(config.getGameMode(), config);
|
mModeConfigs.put(config.getGameMode(), config);
|
||||||
} else {
|
} else {
|
||||||
Slog.w(TAG, "Invalid game mode config for "
|
Slog.w(TAG, "Attempt to add inactive game mode config for "
|
||||||
+ mPackageName + ":" + config.toString());
|
+ mPackageName + ":" + config.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValid() {
|
public boolean isActive() {
|
||||||
return mModeConfigs.size() > 0 || mBatteryModeOptedIn || mPerfModeOptedIn;
|
return mModeConfigs.size() > 0 || mBatteryModeOptedIn || mPerfModeOptedIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1569,20 +1570,27 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateConfigsForUser(@UserIdInt int userId, String... packageNames) {
|
void updateConfigsForUser(@UserIdInt int userId, boolean checkGamePackage,
|
||||||
|
String... packageNames) {
|
||||||
|
if (checkGamePackage) {
|
||||||
|
packageNames = Arrays.stream(packageNames).filter(
|
||||||
|
p -> isPackageGame(p, userId)).toArray(String[]::new);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
synchronized (mDeviceConfigLock) {
|
synchronized (mDeviceConfigLock) {
|
||||||
for (final String packageName : packageNames) {
|
for (final String packageName : packageNames) {
|
||||||
final GamePackageConfiguration config =
|
final GamePackageConfiguration config =
|
||||||
new GamePackageConfiguration(packageName, userId);
|
new GamePackageConfiguration(packageName, userId);
|
||||||
if (config.isValid()) {
|
if (config.isActive()) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.i(TAG, "Adding config: " + config.toString());
|
Slog.i(TAG, "Adding config: " + config.toString());
|
||||||
}
|
}
|
||||||
mConfigs.put(packageName, config);
|
mConfigs.put(packageName, config);
|
||||||
} else {
|
} else {
|
||||||
Slog.w(TAG, "Invalid package config for "
|
if (DEBUG) {
|
||||||
|
Slog.w(TAG, "Inactive package config for "
|
||||||
+ config.getPackageName() + ":" + config.toString());
|
+ config.getPackageName() + ":" + config.toString());
|
||||||
|
}
|
||||||
mConfigs.remove(packageName);
|
mConfigs.remove(packageName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1760,7 +1768,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
|
|||||||
}
|
}
|
||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case ACTION_PACKAGE_ADDED:
|
case ACTION_PACKAGE_ADDED:
|
||||||
updateConfigsForUser(userId, packageName);
|
updateConfigsForUser(userId, true /*checkGamePackage*/, packageName);
|
||||||
break;
|
break;
|
||||||
case ACTION_PACKAGE_REMOVED:
|
case ACTION_PACKAGE_REMOVED:
|
||||||
disableCompatScale(packageName);
|
disableCompatScale(packageName);
|
||||||
|
|||||||
@@ -450,13 +450,13 @@ public class GameManagerServiceTests {
|
|||||||
|
|
||||||
|
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
mockModifyGameModeGranted();
|
mockModifyGameModeGranted();
|
||||||
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
|
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
|
||||||
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
||||||
// We need to make sure the mode is supported before setting it.
|
// We need to make sure the mode is supported before setting it.
|
||||||
mockDeviceConfigAll();
|
mockDeviceConfigAll();
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_1);
|
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_1);
|
||||||
assertEquals(GameManager.GAME_MODE_STANDARD,
|
assertEquals(GameManager.GAME_MODE_STANDARD,
|
||||||
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
||||||
@@ -534,8 +534,8 @@ public class GameManagerServiceTests {
|
|||||||
|
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
startUser(gameManagerService, USER_ID_2);
|
startUser(gameManagerService, USER_ID_2);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_2, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_2, true, mPackageName);
|
||||||
|
|
||||||
// Set User 1 to Standard
|
// Set User 1 to Standard
|
||||||
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_1);
|
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_1);
|
||||||
@@ -563,7 +563,7 @@ public class GameManagerServiceTests {
|
|||||||
if (gameManagerService == null) {
|
if (gameManagerService == null) {
|
||||||
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
}
|
}
|
||||||
ArraySet<Integer> reportedModes = new ArraySet<>();
|
ArraySet<Integer> reportedModes = new ArraySet<>();
|
||||||
int[] modes = gameManagerService.getAvailableGameModes(mPackageName);
|
int[] modes = gameManagerService.getAvailableGameModes(mPackageName);
|
||||||
@@ -582,7 +582,7 @@ public class GameManagerServiceTests {
|
|||||||
if (gameManagerService == null) {
|
if (gameManagerService == null) {
|
||||||
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
}
|
}
|
||||||
GameManagerService.GamePackageConfiguration config =
|
GameManagerService.GamePackageConfiguration config =
|
||||||
gameManagerService.getConfig(mPackageName);
|
gameManagerService.getConfig(mPackageName);
|
||||||
@@ -591,7 +591,7 @@ public class GameManagerServiceTests {
|
|||||||
|
|
||||||
private void checkAngleEnabled(GameManagerService gameManagerService, int gameMode,
|
private void checkAngleEnabled(GameManagerService gameManagerService, int gameMode,
|
||||||
boolean angleEnabled) {
|
boolean angleEnabled) {
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
|
|
||||||
// Validate GamePackageConfiguration returns the correct value.
|
// Validate GamePackageConfiguration returns the correct value.
|
||||||
GameManagerService.GamePackageConfiguration config =
|
GameManagerService.GamePackageConfiguration config =
|
||||||
@@ -604,7 +604,7 @@ public class GameManagerServiceTests {
|
|||||||
|
|
||||||
private void checkLoadingBoost(GameManagerService gameManagerService, int gameMode,
|
private void checkLoadingBoost(GameManagerService gameManagerService, int gameMode,
|
||||||
int loadingBoost) {
|
int loadingBoost) {
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
|
|
||||||
// Validate GamePackageConfiguration returns the correct value.
|
// Validate GamePackageConfiguration returns the correct value.
|
||||||
GameManagerService.GamePackageConfiguration config =
|
GameManagerService.GamePackageConfiguration config =
|
||||||
@@ -621,7 +621,7 @@ public class GameManagerServiceTests {
|
|||||||
if (gameManagerService == null) {
|
if (gameManagerService == null) {
|
||||||
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
gameManagerService = new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
}
|
}
|
||||||
GameManagerService.GamePackageConfiguration config =
|
GameManagerService.GamePackageConfiguration config =
|
||||||
gameManagerService.getConfig(mPackageName);
|
gameManagerService.getConfig(mPackageName);
|
||||||
@@ -1091,7 +1091,7 @@ public class GameManagerServiceTests {
|
|||||||
GameManagerService gameManagerService =
|
GameManagerService gameManagerService =
|
||||||
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
GameManagerService.GamePackageConfiguration config =
|
GameManagerService.GamePackageConfiguration config =
|
||||||
gameManagerService.getConfig(mPackageName);
|
gameManagerService.getConfig(mPackageName);
|
||||||
assertNull(config.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
|
assertNull(config.getGameModeConfiguration(GameManager.GAME_MODE_PERFORMANCE));
|
||||||
@@ -1109,7 +1109,7 @@ public class GameManagerServiceTests {
|
|||||||
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1);
|
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
|
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
|
||||||
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
||||||
}
|
}
|
||||||
@@ -1126,7 +1126,7 @@ public class GameManagerServiceTests {
|
|||||||
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_BATTERY, USER_ID_1);
|
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_BATTERY, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
assertEquals(GameManager.GAME_MODE_STANDARD,
|
assertEquals(GameManager.GAME_MODE_STANDARD,
|
||||||
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
||||||
}
|
}
|
||||||
@@ -1143,7 +1143,7 @@ public class GameManagerServiceTests {
|
|||||||
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
new GameManagerService(mMockContext, mTestLooper.getLooper());
|
||||||
startUser(gameManagerService, USER_ID_1);
|
startUser(gameManagerService, USER_ID_1);
|
||||||
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_UNSUPPORTED, USER_ID_1);
|
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_UNSUPPORTED, USER_ID_1);
|
||||||
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
|
gameManagerService.updateConfigsForUser(USER_ID_1, true, mPackageName);
|
||||||
assertEquals(GameManager.GAME_MODE_STANDARD,
|
assertEquals(GameManager.GAME_MODE_STANDARD,
|
||||||
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
gameManagerService.getGameMode(mPackageName, USER_ID_1));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user