Hide managed profile entry in secondary users

Bug: 18132630
Change-Id: I0395373ac6f088f8fc880110c740cb5f05827901
diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
index a3eabb8..e0ac56c 100644
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -80,6 +80,7 @@
     final PackageManager mPm;
     final UserManager mUm;
     final int mMyUserId;
+    final boolean mHideManagedProfiles;
 
     OnRefreshUiListener mRefreshUiListener;
 
@@ -744,6 +745,7 @@
         mPm = mApplicationContext.getPackageManager();
         mUm = (UserManager)mApplicationContext.getSystemService(Context.USER_SERVICE);
         mMyUserId = UserHandle.myUserId();
+        mHideManagedProfiles = mMyUserId != UserHandle.USER_OWNER;
         mResumed = false;
         mBackgroundThread = new HandlerThread("RunningState:Background");
         mBackgroundThread.start();
@@ -828,6 +830,12 @@
         MergedItem userItem = userItems.get(newItem.mUserId);
         boolean first = userItem == null || userItem.mCurSeq != mSequence;
         if (first) {
+            UserState userState = mUsers.get(newItem.mUserId);
+            UserInfo info = userState != null
+                    ? userState.mInfo : mUm.getUserInfo(newItem.mUserId);
+            if (mHideManagedProfiles && info.isManagedProfile()) {
+                return;
+            }
             if (userItem == null) {
                 userItem = new MergedItem(newItem.mUserId);
                 userItems.put(newItem.mUserId, userItem);
@@ -835,9 +843,8 @@
                 userItem.mChildren.clear();
             }
             userItem.mCurSeq = mSequence;
-            if ((userItem.mUser=mUsers.get(newItem.mUserId)) == null) {
+            if (userState == null) {
                 userItem.mUser = new UserState();
-                UserInfo info = mUm.getUserInfo(newItem.mUserId);
                 userItem.mUser.mInfo = info;
                 userItem.mUser.mIcon = Utils.getUserIcon(context, mUm, info);
                 userItem.mUser.mLabel = Utils.getUserLabel(context, info);