Loading packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +4 −1 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.ArraySet; import android.util.Log; import android.util.MutableBoolean; import android.util.Pair; Loading Loading @@ -154,7 +155,7 @@ public class SystemServicesProxy { /** Returns a list of the recents tasks */ public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId, boolean isTopTaskHome) { boolean isTopTaskHome, ArraySet<Integer> quietProfileIds) { if (mAm == null) return null; // If we are mocking, then create some recent tasks Loading Loading @@ -215,6 +216,8 @@ public class SystemServicesProxy { // tasks if it is not the first active task. boolean isExcluded = (t.baseIntent.getFlags() & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; // Filter out recent tasks from managed profiles which are in quiet mode. isExcluded |= quietProfileIds.contains(t.userId); if (isExcluded && (isTopTaskHome || !isFirstValidTask)) { iter.remove(); continue; Loading packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java +26 −1 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.systemui.recents.model; import android.app.ActivityManager; import android.content.Context; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.UserHandle; import android.os.UserManager; import android.util.ArraySet; import android.util.Log; import com.android.systemui.Prefs; import com.android.systemui.recents.Recents; Loading Loading @@ -66,20 +69,42 @@ public class RecentsTaskLoadPlan { List<ActivityManager.RecentTaskInfo> mRawTasks; TaskStack mStack; ArraySet<Integer> mCurrentQuietProfiles = new ArraySet<Integer>(); /** Package level ctor */ RecentsTaskLoadPlan(Context context) { mContext = context; } private void updateCurrentQuietProfilesCache(int currentUserId) { mCurrentQuietProfiles.clear(); if (currentUserId == UserHandle.USER_CURRENT) { currentUserId = ActivityManager.getCurrentUser(); } UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); List<UserInfo> profiles = userManager.getProfiles(currentUserId); if (profiles != null) { for (int i = 0; i < profiles.size(); i++) { UserInfo user = profiles.get(i); if (user.isManagedProfile() && user.isQuietModeEnabled()) { mCurrentQuietProfiles.add(user.id); } } } } /** * An optimization to preload the raw list of tasks. The raw tasks are saved in least-recent * to most-recent order. */ public synchronized void preloadRawTasks(boolean isTopTaskHome) { int currentUserId = UserHandle.USER_CURRENT; updateCurrentQuietProfilesCache(currentUserId); SystemServicesProxy ssp = Recents.getSystemServices(); mRawTasks = ssp.getRecentTasks(ActivityManager.getMaxRecentTasksStatic(), UserHandle.CURRENT.getIdentifier(), isTopTaskHome); currentUserId, isTopTaskHome, mCurrentQuietProfiles); // Since the raw tasks are given in most-recent to least-recent order, we need to reverse it Collections.reverse(mRawTasks); Loading Loading
packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +4 −1 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.ArraySet; import android.util.Log; import android.util.MutableBoolean; import android.util.Pair; Loading Loading @@ -154,7 +155,7 @@ public class SystemServicesProxy { /** Returns a list of the recents tasks */ public List<ActivityManager.RecentTaskInfo> getRecentTasks(int numLatestTasks, int userId, boolean isTopTaskHome) { boolean isTopTaskHome, ArraySet<Integer> quietProfileIds) { if (mAm == null) return null; // If we are mocking, then create some recent tasks Loading Loading @@ -215,6 +216,8 @@ public class SystemServicesProxy { // tasks if it is not the first active task. boolean isExcluded = (t.baseIntent.getFlags() & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; // Filter out recent tasks from managed profiles which are in quiet mode. isExcluded |= quietProfileIds.contains(t.userId); if (isExcluded && (isTopTaskHome || !isFirstValidTask)) { iter.remove(); continue; Loading
packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java +26 −1 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.systemui.recents.model; import android.app.ActivityManager; import android.content.Context; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.UserHandle; import android.os.UserManager; import android.util.ArraySet; import android.util.Log; import com.android.systemui.Prefs; import com.android.systemui.recents.Recents; Loading Loading @@ -66,20 +69,42 @@ public class RecentsTaskLoadPlan { List<ActivityManager.RecentTaskInfo> mRawTasks; TaskStack mStack; ArraySet<Integer> mCurrentQuietProfiles = new ArraySet<Integer>(); /** Package level ctor */ RecentsTaskLoadPlan(Context context) { mContext = context; } private void updateCurrentQuietProfilesCache(int currentUserId) { mCurrentQuietProfiles.clear(); if (currentUserId == UserHandle.USER_CURRENT) { currentUserId = ActivityManager.getCurrentUser(); } UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); List<UserInfo> profiles = userManager.getProfiles(currentUserId); if (profiles != null) { for (int i = 0; i < profiles.size(); i++) { UserInfo user = profiles.get(i); if (user.isManagedProfile() && user.isQuietModeEnabled()) { mCurrentQuietProfiles.add(user.id); } } } } /** * An optimization to preload the raw list of tasks. The raw tasks are saved in least-recent * to most-recent order. */ public synchronized void preloadRawTasks(boolean isTopTaskHome) { int currentUserId = UserHandle.USER_CURRENT; updateCurrentQuietProfilesCache(currentUserId); SystemServicesProxy ssp = Recents.getSystemServices(); mRawTasks = ssp.getRecentTasks(ActivityManager.getMaxRecentTasksStatic(), UserHandle.CURRENT.getIdentifier(), isTopTaskHome); currentUserId, isTopTaskHome, mCurrentQuietProfiles); // Since the raw tasks are given in most-recent to least-recent order, we need to reverse it Collections.reverse(mRawTasks); Loading