From 6ff98ce2c89f94d47566de3426567748fad97814 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Wed, 10 Jun 2015 10:18:22 -0400 Subject: Fix work apps showing as not installed for owner Bug: 21717956 Change-Id: Ia00537f3b50f958a2e35094abf1bfc73dc1f79af --- .../settingslib/applications/ApplicationsState.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'packages/SettingsLib/src') diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index b5e53c0..6561512 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -784,6 +784,21 @@ public class ApplicationsState { numDone++; getEntryLocked(info); } + if (userId != 0 && mEntriesMap.indexOfKey(0) >= 0) { + // If this app is for a profile and we are on the owner, remove + // the owner entry if it isn't installed. This will prevent + // duplicates of work only apps showing up as 'not installed + // for this user'. + // Note: This depends on us traversing the users in order, which + // happens because of the way we generate the list in + // doResumeIfNeededLocked. + AppEntry entry = mEntriesMap.get(0).get(info.packageName); + if (entry != null && + (entry.info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) { + mEntriesMap.get(0).remove(info.packageName); + mAppEntries.remove(entry); + } + } } if (DEBUG_LOCKING) Log.v(TAG, "MSG_LOAD_ENTRIES releasing lock"); } -- cgit v1.1