From 6c0773ec7dc7f6a024b9dde5641fd442cb4a7cc1 Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Wed, 26 Aug 2015 17:52:48 -0700 Subject: Removing profile's pinned apps upon a profile removal. Bug: 20024603 Change-Id: I4b17bffe202d3f4cf211b3289ee021c4ec16e91f --- .../systemui/statusbar/phone/NavigationBarApps.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java index 4c1aab988f23..adcec986d465 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarApps.java @@ -87,6 +87,9 @@ class NavigationBarApps extends LinearLayout { if (Intent.ACTION_USER_SWITCHED.equals(action)) { int currentUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1); onUserSwitched(currentUserId); + } else if (Intent.ACTION_MANAGED_PROFILE_REMOVED.equals(action)) { + UserHandle removedProfile = intent.getParcelableExtra(Intent.EXTRA_USER); + onManagedProfileRemoved(removedProfile); } } }; @@ -205,6 +208,7 @@ class NavigationBarApps extends LinearLayout { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_USER_SWITCHED); + filter.addAction(Intent.ACTION_MANAGED_PROFILE_REMOVED); mContext.registerReceiver(mBroadcastReceiver, filter); mAppPackageMonitor.register(mContext, null, UserHandle.ALL, true); @@ -571,4 +575,17 @@ class NavigationBarApps extends LinearLayout { sAppsModel.setCurrentUser(currentUserId); recreateAppButtons(); } + + private void onManagedProfileRemoved(UserHandle removedProfile) { + boolean removedApps = false; + for(int i = sAppsModel.getAppCount() - 1; i >= 0; --i) { + AppInfo appInfo = sAppsModel.getApp(i); + if (!appInfo.getUser().equals(removedProfile)) continue; + + removeViewAt(i); + sAppsModel.removeApp(i); + removedApps = true; + } + if (removedApps) sAppsModel.savePrefs(); + } } -- cgit v1.2.3-59-g8ed1b