Loading packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +13 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.view.WindowManager; import android.view.WindowManager.KeyboardShortcutsReceiver; import android.view.WindowManagerGlobal; import android.view.accessibility.AccessibilityManager; import android.app.KeyguardManager; import com.android.internal.app.AssistUtils; import com.android.internal.os.BackgroundThread; Loading Loading @@ -124,6 +125,7 @@ public class SystemServicesProxy { AssistUtils mAssistUtils; WindowManager mWm; IWindowManager mIwm; KeyguardManager mKgm; UserManager mUm; Display mDisplay; String mRecentsPackage; Loading Loading @@ -212,6 +214,7 @@ public class SystemServicesProxy { mAssistUtils = new AssistUtils(context); mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mIwm = WindowManagerGlobal.getWindowManagerService(); mKgm = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); mUm = UserManager.get(context); mDisplay = mWm.getDefaultDisplay(); mRecentsPackage = context.getPackageName(); Loading Loading @@ -862,6 +865,16 @@ public class SystemServicesProxy { return label; } /** * Returns whether the provided {@param userId} is currently locked (and showing Keyguard). */ public boolean isDeviceLocked(int userId) { if (mKgm == null) { return false; } return mKgm.isDeviceLocked(userId); } /** Returns the package name of the home activity. */ public String getHomeActivityPackageName() { if (mPm == null) return null; Loading packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java +8 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.util.ArraySet; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import com.android.systemui.Prefs; Loading Loading @@ -130,6 +131,7 @@ public class RecentsTaskLoadPlan { SparseArray<Task.TaskKey> affiliatedTasks = new SparseArray<>(); SparseIntArray affiliatedTaskCounts = new SparseIntArray(); SparseBooleanArray lockedUsers = new SparseBooleanArray(); String dismissDescFormat = mContext.getString( R.string.accessibility_recents_item_will_be_dismissed); String appInfoDescFormat = mContext.getString( Loading Loading @@ -177,12 +179,17 @@ public class RecentsTaskLoadPlan { int backgroundColor = loader.getActivityBackgroundColor(t.taskDescription); boolean isSystemApp = (info != null) && ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0); if (lockedUsers.indexOfKey(t.userId) < 0) { lockedUsers.put(t.userId, Recents.getSystemServices().isDeviceLocked(t.userId)); } boolean isLocked = lockedUsers.get(t.userId); // Add the task to the stack Task task = new Task(taskKey, t.affiliatedTaskId, t.affiliatedTaskColor, icon, thumbnail, title, titleDescription, dismissDescription, appInfoDescription, activityColor, backgroundColor, isLaunchTarget, isStackTask, isSystemApp, t.isDockable, t.bounds, t.taskDescription, t.resizeMode, t.topActivity); t.isDockable, t.bounds, t.taskDescription, t.resizeMode, t.topActivity, isLocked); allTasks.add(task); affiliatedTaskCounts.put(taskKey.id, affiliatedTaskCounts.get(taskKey.id, 0) + 1); Loading packages/SystemUI/src/com/android/systemui/recents/model/Task.java +9 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,9 @@ public class Task { @ViewDebug.ExportedProperty(category="recents") public ComponentName topActivity; @ViewDebug.ExportedProperty(category="recents") public boolean isLocked; private ArrayList<TaskCallbacks> mCallbacks = new ArrayList<>(); public Task() { Loading @@ -200,7 +203,7 @@ public class Task { String appInfoDescription, int colorPrimary, int colorBackground, boolean isLaunchTarget, boolean isStackTask, boolean isSystemApp, boolean isDockable, Rect bounds, ActivityManager.TaskDescription taskDescription, int resizeMode, ComponentName topActivity) { int resizeMode, ComponentName topActivity, boolean isLocked) { boolean isInAffiliationGroup = (affiliationTaskId != key.id); boolean hasAffiliationGroupColor = isInAffiliationGroup && (affiliationColor != 0); this.key = key; Loading @@ -224,6 +227,7 @@ public class Task { this.isDockable = isDockable; this.resizeMode = resizeMode; this.topActivity = topActivity; this.isLocked = isLocked; } /** Loading @@ -250,6 +254,7 @@ public class Task { this.isSystemApp = o.isSystemApp; this.isDockable = o.isDockable; this.resizeMode = o.resizeMode; this.isLocked = o.isLocked; this.topActivity = o.topActivity; } Loading Loading @@ -355,6 +360,9 @@ public class Task { if (isFreeformTask()) { writer.print(" freeform=Y"); } if (isLocked) { writer.print(" locked=Y"); } writer.print(" "); writer.print(title); writer.println(); } Loading packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java +10 −1 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class TaskViewThumbnail extends View { private float mDimAlpha; private Matrix mScaleMatrix = new Matrix(); private Paint mDrawPaint = new Paint(); private Paint mLockedPaint = new Paint(); private Paint mBgFillPaint = new Paint(); private BitmapShader mBitmapShader; private LightingColorFilter mLightingColorFilter = new LightingColorFilter(0xffffffff, 0); Loading Loading @@ -102,6 +103,7 @@ public class TaskViewThumbnail extends View { mCornerRadius = getResources().getDimensionPixelSize( R.dimen.recents_task_view_rounded_corners_radius); mBgFillPaint.setColor(Color.WHITE); mLockedPaint.setColor(Color.WHITE); mFullscreenThumbnailScale = context.getResources().getFraction( com.android.internal.R.fraction.thumbnail_fullscreen_scale, 1, 1); } Loading Loading @@ -133,7 +135,11 @@ public class TaskViewThumbnail extends View { (int) (mThumbnailRect.width() * mThumbnailScale)); int thumbnailHeight = Math.min(viewHeight, (int) (mThumbnailRect.height() * mThumbnailScale)); if (mBitmapShader != null && thumbnailWidth > 0 && thumbnailHeight > 0) { if (mTask.isLocked) { canvas.drawRoundRect(0, 0, viewWidth, viewHeight, mCornerRadius, mCornerRadius, mLockedPaint); } else if (mBitmapShader != null && thumbnailWidth > 0 && thumbnailHeight > 0) { int topOffset = mTaskBar != null ? mTaskBar.getHeight() - mCornerRadius : 0; Loading Loading @@ -200,11 +206,13 @@ public class TaskViewThumbnail extends View { ColorMatrixColorFilter filter = new ColorMatrixColorFilter(TMP_FILTER_COLOR_MATRIX); mDrawPaint.setColorFilter(filter); mBgFillPaint.setColorFilter(filter); mLockedPaint.setColorFilter(filter); } else { mLightingColorFilter.setColorMultiply(Color.argb(255, mul, mul, mul)); mDrawPaint.setColorFilter(mLightingColorFilter); mDrawPaint.setColor(0xFFffffff); mBgFillPaint.setColorFilter(mLightingColorFilter); mLockedPaint.setColorFilter(mLightingColorFilter); } } else { int grey = mul; Loading Loading @@ -299,6 +307,7 @@ public class TaskViewThumbnail extends View { if (t.colorBackground != 0) { mBgFillPaint.setColor(t.colorBackground); } mLockedPaint.setColor(t.colorPrimary); } /** Loading Loading
packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +13 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.view.WindowManager; import android.view.WindowManager.KeyboardShortcutsReceiver; import android.view.WindowManagerGlobal; import android.view.accessibility.AccessibilityManager; import android.app.KeyguardManager; import com.android.internal.app.AssistUtils; import com.android.internal.os.BackgroundThread; Loading Loading @@ -124,6 +125,7 @@ public class SystemServicesProxy { AssistUtils mAssistUtils; WindowManager mWm; IWindowManager mIwm; KeyguardManager mKgm; UserManager mUm; Display mDisplay; String mRecentsPackage; Loading Loading @@ -212,6 +214,7 @@ public class SystemServicesProxy { mAssistUtils = new AssistUtils(context); mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mIwm = WindowManagerGlobal.getWindowManagerService(); mKgm = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); mUm = UserManager.get(context); mDisplay = mWm.getDefaultDisplay(); mRecentsPackage = context.getPackageName(); Loading Loading @@ -862,6 +865,16 @@ public class SystemServicesProxy { return label; } /** * Returns whether the provided {@param userId} is currently locked (and showing Keyguard). */ public boolean isDeviceLocked(int userId) { if (mKgm == null) { return false; } return mKgm.isDeviceLocked(userId); } /** Returns the package name of the home activity. */ public String getHomeActivityPackageName() { if (mPm == null) return null; Loading
packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoadPlan.java +8 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.util.ArraySet; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import com.android.systemui.Prefs; Loading Loading @@ -130,6 +131,7 @@ public class RecentsTaskLoadPlan { SparseArray<Task.TaskKey> affiliatedTasks = new SparseArray<>(); SparseIntArray affiliatedTaskCounts = new SparseIntArray(); SparseBooleanArray lockedUsers = new SparseBooleanArray(); String dismissDescFormat = mContext.getString( R.string.accessibility_recents_item_will_be_dismissed); String appInfoDescFormat = mContext.getString( Loading Loading @@ -177,12 +179,17 @@ public class RecentsTaskLoadPlan { int backgroundColor = loader.getActivityBackgroundColor(t.taskDescription); boolean isSystemApp = (info != null) && ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0); if (lockedUsers.indexOfKey(t.userId) < 0) { lockedUsers.put(t.userId, Recents.getSystemServices().isDeviceLocked(t.userId)); } boolean isLocked = lockedUsers.get(t.userId); // Add the task to the stack Task task = new Task(taskKey, t.affiliatedTaskId, t.affiliatedTaskColor, icon, thumbnail, title, titleDescription, dismissDescription, appInfoDescription, activityColor, backgroundColor, isLaunchTarget, isStackTask, isSystemApp, t.isDockable, t.bounds, t.taskDescription, t.resizeMode, t.topActivity); t.isDockable, t.bounds, t.taskDescription, t.resizeMode, t.topActivity, isLocked); allTasks.add(task); affiliatedTaskCounts.put(taskKey.id, affiliatedTaskCounts.get(taskKey.id, 0) + 1); Loading
packages/SystemUI/src/com/android/systemui/recents/model/Task.java +9 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,9 @@ public class Task { @ViewDebug.ExportedProperty(category="recents") public ComponentName topActivity; @ViewDebug.ExportedProperty(category="recents") public boolean isLocked; private ArrayList<TaskCallbacks> mCallbacks = new ArrayList<>(); public Task() { Loading @@ -200,7 +203,7 @@ public class Task { String appInfoDescription, int colorPrimary, int colorBackground, boolean isLaunchTarget, boolean isStackTask, boolean isSystemApp, boolean isDockable, Rect bounds, ActivityManager.TaskDescription taskDescription, int resizeMode, ComponentName topActivity) { int resizeMode, ComponentName topActivity, boolean isLocked) { boolean isInAffiliationGroup = (affiliationTaskId != key.id); boolean hasAffiliationGroupColor = isInAffiliationGroup && (affiliationColor != 0); this.key = key; Loading @@ -224,6 +227,7 @@ public class Task { this.isDockable = isDockable; this.resizeMode = resizeMode; this.topActivity = topActivity; this.isLocked = isLocked; } /** Loading @@ -250,6 +254,7 @@ public class Task { this.isSystemApp = o.isSystemApp; this.isDockable = o.isDockable; this.resizeMode = o.resizeMode; this.isLocked = o.isLocked; this.topActivity = o.topActivity; } Loading Loading @@ -355,6 +360,9 @@ public class Task { if (isFreeformTask()) { writer.print(" freeform=Y"); } if (isLocked) { writer.print(" locked=Y"); } writer.print(" "); writer.print(title); writer.println(); } Loading
packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java +10 −1 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ public class TaskViewThumbnail extends View { private float mDimAlpha; private Matrix mScaleMatrix = new Matrix(); private Paint mDrawPaint = new Paint(); private Paint mLockedPaint = new Paint(); private Paint mBgFillPaint = new Paint(); private BitmapShader mBitmapShader; private LightingColorFilter mLightingColorFilter = new LightingColorFilter(0xffffffff, 0); Loading Loading @@ -102,6 +103,7 @@ public class TaskViewThumbnail extends View { mCornerRadius = getResources().getDimensionPixelSize( R.dimen.recents_task_view_rounded_corners_radius); mBgFillPaint.setColor(Color.WHITE); mLockedPaint.setColor(Color.WHITE); mFullscreenThumbnailScale = context.getResources().getFraction( com.android.internal.R.fraction.thumbnail_fullscreen_scale, 1, 1); } Loading Loading @@ -133,7 +135,11 @@ public class TaskViewThumbnail extends View { (int) (mThumbnailRect.width() * mThumbnailScale)); int thumbnailHeight = Math.min(viewHeight, (int) (mThumbnailRect.height() * mThumbnailScale)); if (mBitmapShader != null && thumbnailWidth > 0 && thumbnailHeight > 0) { if (mTask.isLocked) { canvas.drawRoundRect(0, 0, viewWidth, viewHeight, mCornerRadius, mCornerRadius, mLockedPaint); } else if (mBitmapShader != null && thumbnailWidth > 0 && thumbnailHeight > 0) { int topOffset = mTaskBar != null ? mTaskBar.getHeight() - mCornerRadius : 0; Loading Loading @@ -200,11 +206,13 @@ public class TaskViewThumbnail extends View { ColorMatrixColorFilter filter = new ColorMatrixColorFilter(TMP_FILTER_COLOR_MATRIX); mDrawPaint.setColorFilter(filter); mBgFillPaint.setColorFilter(filter); mLockedPaint.setColorFilter(filter); } else { mLightingColorFilter.setColorMultiply(Color.argb(255, mul, mul, mul)); mDrawPaint.setColorFilter(mLightingColorFilter); mDrawPaint.setColor(0xFFffffff); mBgFillPaint.setColorFilter(mLightingColorFilter); mLockedPaint.setColorFilter(mLightingColorFilter); } } else { int grey = mul; Loading Loading @@ -299,6 +307,7 @@ public class TaskViewThumbnail extends View { if (t.colorBackground != 0) { mBgFillPaint.setColor(t.colorBackground); } mLockedPaint.setColor(t.colorPrimary); } /** Loading