Loading services/core/java/com/android/server/app/GameManagerService.java +18 −8 Original line number Diff line number Diff line Loading @@ -361,6 +361,14 @@ public final class GameManagerService extends IGameManagerService.Stub { case POPULATE_GAME_MODE_SETTINGS: { removeEqualMessages(POPULATE_GAME_MODE_SETTINGS, msg.obj); final int userId = (int) msg.obj; synchronized (mLock) { if (!mSettings.containsKey(userId)) { GameManagerSettings userSettings = new GameManagerSettings( Environment.getDataSystemDeDirectory(userId)); mSettings.put(userId, userSettings); userSettings.readPersistentDataLocked(); } } final String[] packageNames = getInstalledGamePackageNames(userId); updateConfigsForUser(userId, false /*checkGamePackage*/, packageNames); break; Loading Loading @@ -990,8 +998,7 @@ public final class GameManagerService extends IGameManagerService.Stub { @Override public void onUserStarting(@NonNull TargetUser user) { Slog.d(TAG, "Starting user " + user.getUserIdentifier()); mService.onUserStarting(user, Environment.getDataSystemDeDirectory(user.getUserIdentifier())); mService.onUserStarting(user, /*settingDataDirOverride*/ null); } @Override Loading Loading @@ -1596,15 +1603,18 @@ public final class GameManagerService extends IGameManagerService.Stub { } } void onUserStarting(@NonNull TargetUser user, File settingDataDir) { void onUserStarting(@NonNull TargetUser user, File settingDataDirOverride) { final int userId = user.getUserIdentifier(); if (settingDataDirOverride != null) { synchronized (mLock) { if (!mSettings.containsKey(userId)) { GameManagerSettings userSettings = new GameManagerSettings(settingDataDir); GameManagerSettings userSettings = new GameManagerSettings( settingDataDirOverride); mSettings.put(userId, userSettings); userSettings.readPersistentDataLocked(); } } } sendUserMessage(userId, POPULATE_GAME_MODE_SETTINGS, EVENT_ON_USER_STARTING, 0 /*delayMillis*/); Loading services/core/java/com/android/server/app/GameManagerSettings.java +1 −4 Original line number Diff line number Diff line Loading @@ -221,9 +221,7 @@ public class GameManagerSettings { return false; } try { final FileInputStream str = mSettingsFile.openRead(); try (FileInputStream str = mSettingsFile.openRead()) { final TypedXmlPullParser parser = Xml.resolvePullParser(str); int type; while ((type = parser.next()) != XmlPullParser.START_TAG Loading Loading @@ -251,7 +249,6 @@ public class GameManagerSettings { + type); } } str.close(); } catch (XmlPullParserException | java.io.IOException e) { Slog.wtf(TAG, "Error reading game manager settings", e); return false; Loading services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java +4 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,10 @@ public class GameManagerServiceSettingsTests { deleteFolder(InstrumentationRegistry.getTargetContext().getFilesDir()); } static { System.loadLibrary("servicestestjni"); } @Test public void testReadGameServiceSettings() { writeOldFiles(); Loading Loading
services/core/java/com/android/server/app/GameManagerService.java +18 −8 Original line number Diff line number Diff line Loading @@ -361,6 +361,14 @@ public final class GameManagerService extends IGameManagerService.Stub { case POPULATE_GAME_MODE_SETTINGS: { removeEqualMessages(POPULATE_GAME_MODE_SETTINGS, msg.obj); final int userId = (int) msg.obj; synchronized (mLock) { if (!mSettings.containsKey(userId)) { GameManagerSettings userSettings = new GameManagerSettings( Environment.getDataSystemDeDirectory(userId)); mSettings.put(userId, userSettings); userSettings.readPersistentDataLocked(); } } final String[] packageNames = getInstalledGamePackageNames(userId); updateConfigsForUser(userId, false /*checkGamePackage*/, packageNames); break; Loading Loading @@ -990,8 +998,7 @@ public final class GameManagerService extends IGameManagerService.Stub { @Override public void onUserStarting(@NonNull TargetUser user) { Slog.d(TAG, "Starting user " + user.getUserIdentifier()); mService.onUserStarting(user, Environment.getDataSystemDeDirectory(user.getUserIdentifier())); mService.onUserStarting(user, /*settingDataDirOverride*/ null); } @Override Loading Loading @@ -1596,15 +1603,18 @@ public final class GameManagerService extends IGameManagerService.Stub { } } void onUserStarting(@NonNull TargetUser user, File settingDataDir) { void onUserStarting(@NonNull TargetUser user, File settingDataDirOverride) { final int userId = user.getUserIdentifier(); if (settingDataDirOverride != null) { synchronized (mLock) { if (!mSettings.containsKey(userId)) { GameManagerSettings userSettings = new GameManagerSettings(settingDataDir); GameManagerSettings userSettings = new GameManagerSettings( settingDataDirOverride); mSettings.put(userId, userSettings); userSettings.readPersistentDataLocked(); } } } sendUserMessage(userId, POPULATE_GAME_MODE_SETTINGS, EVENT_ON_USER_STARTING, 0 /*delayMillis*/); Loading
services/core/java/com/android/server/app/GameManagerSettings.java +1 −4 Original line number Diff line number Diff line Loading @@ -221,9 +221,7 @@ public class GameManagerSettings { return false; } try { final FileInputStream str = mSettingsFile.openRead(); try (FileInputStream str = mSettingsFile.openRead()) { final TypedXmlPullParser parser = Xml.resolvePullParser(str); int type; while ((type = parser.next()) != XmlPullParser.START_TAG Loading Loading @@ -251,7 +249,6 @@ public class GameManagerSettings { + type); } } str.close(); } catch (XmlPullParserException | java.io.IOException e) { Slog.wtf(TAG, "Error reading game manager settings", e); return false; Loading
services/tests/servicestests/src/com/android/server/app/GameManagerServiceSettingsTests.java +4 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,10 @@ public class GameManagerServiceSettingsTests { deleteFolder(InstrumentationRegistry.getTargetContext().getFilesDir()); } static { System.loadLibrary("servicestestjni"); } @Test public void testReadGameServiceSettings() { writeOldFiles(); Loading