From 0ea5006cbaa9a15ae333cc3e09b4e68ebbdc8dd2 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 25 Jan 2018 12:46:14 -0800 Subject: [PATCH] Adding TaskOverlayFactory to extend the TaskView behavior Change-Id: I52e1a8b55174055268c8b0ef8c4336609d4d2a79 --- quickstep/res/values/config.xml | 19 +++++++ .../android/quickstep/TaskOverlayFactory.java | 55 +++++++++++++++++++ .../android/quickstep/TaskThumbnailView.java | 11 +++- .../src/com/android/quickstep/TaskView.java | 2 + 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 quickstep/res/values/config.xml create mode 100644 quickstep/src/com/android/quickstep/TaskOverlayFactory.java diff --git a/quickstep/res/values/config.xml b/quickstep/res/values/config.xml new file mode 100644 index 0000000000..94211c62fe --- /dev/null +++ b/quickstep/res/values/config.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java new file mode 100644 index 0000000000..c2fb7beb7d --- /dev/null +++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.quickstep; + +import android.content.Context; +import android.graphics.Matrix; +import android.view.View; + +import com.android.launcher3.R; +import com.android.launcher3.Utilities; +import com.android.launcher3.util.Preconditions; +import com.android.systemui.shared.recents.model.ThumbnailData; + +/** + * Factory class to create and add an overlays on the TaskView + */ +public class TaskOverlayFactory { + + private static TaskOverlayFactory sInstance; + + public static TaskOverlayFactory get(Context context) { + Preconditions.assertUIThread(); + if (sInstance == null) { + sInstance = Utilities.getOverrideObject(TaskOverlayFactory.class, + context.getApplicationContext(), R.string.task_overlay_factory_class); + } + return sInstance; + } + + public TaskOverlay createOverlay(View thumbnailView) { + return new TaskOverlay(); + } + + public static class TaskOverlay { + + public void setTaskInfo(ThumbnailData thumbnail, Matrix matrix) { } + + public void reset() { } + + } +} diff --git a/quickstep/src/com/android/quickstep/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/TaskThumbnailView.java index eeaef09564..36a0601c82 100644 --- a/quickstep/src/com/android/quickstep/TaskThumbnailView.java +++ b/quickstep/src/com/android/quickstep/TaskThumbnailView.java @@ -28,7 +28,6 @@ import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; -import android.graphics.Rect; import android.graphics.Shader; import android.util.AttributeSet; import android.view.View; @@ -36,6 +35,7 @@ import android.view.View; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.R; +import com.android.quickstep.TaskOverlayFactory.TaskOverlay; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.ThumbnailData; @@ -49,6 +49,7 @@ public class TaskThumbnailView extends View { private final float mCornerRadius; private final float mFadeLength; + private final TaskOverlay mOverlay; private final Paint mPaint = new Paint(); private final Matrix mMatrix = new Matrix(); @@ -70,6 +71,11 @@ public class TaskThumbnailView extends View { super(context, attrs, defStyleAttr); mCornerRadius = getResources().getDimension(R.dimen.task_corner_radius); mFadeLength = getResources().getDimension(R.dimen.task_fade_length); + mOverlay = TaskOverlayFactory.get(context).createOverlay(this); + } + + public void bind() { + mOverlay.reset(); } /** @@ -89,6 +95,7 @@ public class TaskThumbnailView extends View { mBitmapShader = null; mThumbnailData = null; mPaint.setShader(null); + mOverlay.reset(); } updateThumbnailPaintFilter(); } @@ -173,6 +180,8 @@ public class TaskThumbnailView extends View { } mPaint.setShader(shader); } + + mOverlay.setTaskInfo(mThumbnailData, mMatrix); invalidate(); } diff --git a/quickstep/src/com/android/quickstep/TaskView.java b/quickstep/src/com/android/quickstep/TaskView.java index 0e999f8e31..46fcc724c5 100644 --- a/quickstep/src/com/android/quickstep/TaskView.java +++ b/quickstep/src/com/android/quickstep/TaskView.java @@ -36,6 +36,7 @@ import android.widget.ImageView; import com.android.launcher3.R; import com.android.quickstep.RecentsView.PageCallbacks; import com.android.quickstep.RecentsView.ScrollState; +import com.android.quickstep.TaskOverlayFactory.TaskOverlay; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task.TaskCallbacks; import com.android.systemui.shared.recents.model.ThumbnailData; @@ -113,6 +114,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback mTask.removeCallback(this); } mTask = task; + mSnapshotView.bind(); task.addCallback(this); }