Adding TaskOverlayFactory to extend the TaskView behavior

Change-Id: I52e1a8b55174055268c8b0ef8c4336609d4d2a79
This commit is contained in:
Sunny Goyal
2018-01-25 12:46:14 -08:00
parent 82d010f0d2
commit 0ea5006cba
4 changed files with 86 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources>
<string name="task_overlay_factory_class" translatable="false"></string>
</resources>

View File

@@ -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() { }
}
}

View File

@@ -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();
}

View File

@@ -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);
}