Loading packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +11 −6 Original line number Diff line number Diff line Loading @@ -484,8 +484,9 @@ public class ApplicationsState { if (DEBUG_LOCKING) Log.v(TAG, "getEntry about to acquire lock..."); synchronized (mEntriesMap) { AppEntry entry = null; if (mEntriesMap.contains(userId)) { entry = mEntriesMap.get(userId).get(packageName); HashMap<String, AppEntry> userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { entry = userEntriesMap.get(packageName); } if (entry == null) { ApplicationInfo info = getAppInfoLocked(packageName, userId); Loading Loading @@ -735,8 +736,9 @@ public class ApplicationsState { private AppEntry getEntryLocked(ApplicationInfo info) { int userId = UserHandle.getUserId(info.uid); AppEntry entry = null; if (mEntriesMap.contains(userId)) { entry = mEntriesMap.get(userId).get(info.packageName); HashMap<String, AppEntry> userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { entry = userEntriesMap.get(info.packageName); } if (DEBUG) { Log.i(TAG, "Looking up entry of pkg " + info.packageName + ": " + entry); Loading @@ -752,8 +754,11 @@ public class ApplicationsState { Log.i(TAG, "Creating AppEntry for " + info.packageName); } entry = new AppEntry(mContext, info, mCurId++); mEntriesMap.get(userId).put(info.packageName, entry); userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { userEntriesMap.put(info.packageName, entry); mAppEntries.add(entry); } } else if (entry.info != info) { entry.info = info; } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java +8 −5 Original line number Diff line number Diff line Loading @@ -804,7 +804,7 @@ public class ApplicationsStateRoboTest { } @Test public void getEntry_validUserId_shouldReturnEntry() { public void getEntry_hasCache_shouldReturnCacheEntry() { mApplicationsState.mEntriesMap.put(/* userId= */ 0, new HashMap<>()); addApp(PKG_1, /* id= */ 1); Loading @@ -813,10 +813,13 @@ public class ApplicationsStateRoboTest { } @Test public void getEntry_invalidUserId_shouldReturnNull() { mApplicationsState.mEntriesMap.put(/* userId= */ 0, new HashMap<>()); addApp(PKG_1, /* id= */ 1); public void getEntry_hasNoCache_shouldReturnEntry() { mApplicationsState.mEntriesMap.clear(); ApplicationInfo appInfo = createApplicationInfo(PKG_1, /* uid= */ 0); mApplicationsState.mApplications.add(appInfo); mApplicationsState.mSystemModules.put(PKG_1, /* value= */ false); assertThat(mApplicationsState.getEntry(PKG_1, /* userId= */ -1)).isNull(); assertThat(mApplicationsState.getEntry(PKG_1, /* userId= */ 0).info.packageName) .isEqualTo(PKG_1); } } Loading
packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +11 −6 Original line number Diff line number Diff line Loading @@ -484,8 +484,9 @@ public class ApplicationsState { if (DEBUG_LOCKING) Log.v(TAG, "getEntry about to acquire lock..."); synchronized (mEntriesMap) { AppEntry entry = null; if (mEntriesMap.contains(userId)) { entry = mEntriesMap.get(userId).get(packageName); HashMap<String, AppEntry> userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { entry = userEntriesMap.get(packageName); } if (entry == null) { ApplicationInfo info = getAppInfoLocked(packageName, userId); Loading Loading @@ -735,8 +736,9 @@ public class ApplicationsState { private AppEntry getEntryLocked(ApplicationInfo info) { int userId = UserHandle.getUserId(info.uid); AppEntry entry = null; if (mEntriesMap.contains(userId)) { entry = mEntriesMap.get(userId).get(info.packageName); HashMap<String, AppEntry> userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { entry = userEntriesMap.get(info.packageName); } if (DEBUG) { Log.i(TAG, "Looking up entry of pkg " + info.packageName + ": " + entry); Loading @@ -752,8 +754,11 @@ public class ApplicationsState { Log.i(TAG, "Creating AppEntry for " + info.packageName); } entry = new AppEntry(mContext, info, mCurId++); mEntriesMap.get(userId).put(info.packageName, entry); userEntriesMap = mEntriesMap.get(userId); if (userEntriesMap != null) { userEntriesMap.put(info.packageName, entry); mAppEntries.add(entry); } } else if (entry.info != info) { entry.info = info; } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/applications/ApplicationsStateRoboTest.java +8 −5 Original line number Diff line number Diff line Loading @@ -804,7 +804,7 @@ public class ApplicationsStateRoboTest { } @Test public void getEntry_validUserId_shouldReturnEntry() { public void getEntry_hasCache_shouldReturnCacheEntry() { mApplicationsState.mEntriesMap.put(/* userId= */ 0, new HashMap<>()); addApp(PKG_1, /* id= */ 1); Loading @@ -813,10 +813,13 @@ public class ApplicationsStateRoboTest { } @Test public void getEntry_invalidUserId_shouldReturnNull() { mApplicationsState.mEntriesMap.put(/* userId= */ 0, new HashMap<>()); addApp(PKG_1, /* id= */ 1); public void getEntry_hasNoCache_shouldReturnEntry() { mApplicationsState.mEntriesMap.clear(); ApplicationInfo appInfo = createApplicationInfo(PKG_1, /* uid= */ 0); mApplicationsState.mApplications.add(appInfo); mApplicationsState.mSystemModules.put(PKG_1, /* value= */ false); assertThat(mApplicationsState.getEntry(PKG_1, /* userId= */ -1)).isNull(); assertThat(mApplicationsState.getEntry(PKG_1, /* userId= */ 0).info.packageName) .isEqualTo(PKG_1); } }