summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Tryshev <vadimt@google.com>2018-10-19 18:49:24 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-10-19 18:49:24 +0000
commit3f007ce28612df18d13f4ef19adc2609750c20cc (patch)
treec7b8cd3e9a9b7eb5ed891e78fc48c39255f39733
parent30dfe8add3f114a0bfff8d1bbb5d88410f5436dd (diff)
parent0ca6c30bf022fda776abf913e0cf61c464c44601 (diff)
downloadandroid_packages_apps_Trebuchet-3f007ce28612df18d13f4ef19adc2609750c20cc.tar.gz
android_packages_apps_Trebuchet-3f007ce28612df18d13f4ef19adc2609750c20cc.tar.bz2
android_packages_apps_Trebuchet-3f007ce28612df18d13f4ef19adc2609750c20cc.zip
Merge "Enabling creating additional shortcuts by any launcher" into ub-launcher3-master
-rw-r--r--quickstep/src/com/android/quickstep/TaskOverlayFactory.java35
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskMenuView.java22
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskThumbnailView.java4
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskView.java21
4 files changed, 61 insertions, 21 deletions
diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
index 72895167f..59a937f4c 100644
--- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
+++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java
@@ -20,21 +20,34 @@ import android.content.Context;
import android.graphics.Matrix;
import android.view.View;
+import androidx.annotation.AnyThread;
+
+import com.android.launcher3.BaseActivity;
+import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.ResourceBasedOverride;
+import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;
-import androidx.annotation.AnyThread;
+import java.util.ArrayList;
+import java.util.List;
/**
* Factory class to create and add an overlays on the TaskView
*/
public class TaskOverlayFactory implements ResourceBasedOverride {
-
private static TaskOverlayFactory sInstance;
+ /** Note that these will be shown in order from top to bottom, if available for the task. */
+ private static final TaskSystemShortcut[] MENU_OPTIONS = new TaskSystemShortcut[]{
+ new TaskSystemShortcut.AppInfo(),
+ new TaskSystemShortcut.SplitScreen(),
+ new TaskSystemShortcut.Pin(),
+ new TaskSystemShortcut.Install(),
+ };
+
public static TaskOverlayFactory get(Context context) {
Preconditions.assertUIThread();
if (sInstance == null) {
@@ -55,9 +68,23 @@ public class TaskOverlayFactory implements ResourceBasedOverride {
public static class TaskOverlay {
- public void setTaskInfo(Task task, ThumbnailData thumbnail, Matrix matrix) { }
+ public void setTaskInfo(Task task, ThumbnailData thumbnail, Matrix matrix) {
+ }
- public void reset() { }
+ public void reset() {
+ }
+ public List<TaskSystemShortcut> getEnabledShortcuts(TaskView taskView) {
+ final ArrayList<TaskSystemShortcut> shortcuts = new ArrayList<>();
+ final BaseDraggingActivity activity = BaseActivity.fromContext(taskView.getContext());
+ for (TaskSystemShortcut menuOption : MENU_OPTIONS) {
+ View.OnClickListener onClickListener =
+ menuOption.getOnClickListener(activity, taskView);
+ if (onClickListener != null) {
+ shortcuts.add(menuOption);
+ }
+ }
+ return shortcuts;
+ }
}
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
index c4afad7c9..667165bf2 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
@@ -43,6 +43,8 @@ import com.android.quickstep.TaskSystemShortcut;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.views.IconView.OnScaleUpdateListener;
+import java.util.List;
+
/**
* Contains options for a recent task when long-pressing its icon.
*/
@@ -50,14 +52,6 @@ public class TaskMenuView extends AbstractFloatingView {
private static final Rect sTempRect = new Rect();
- /** Note that these will be shown in order from top to bottom, if available for the task. */
- public static final TaskSystemShortcut[] MENU_OPTIONS = new TaskSystemShortcut[] {
- new TaskSystemShortcut.AppInfo(),
- new TaskSystemShortcut.SplitScreen(),
- new TaskSystemShortcut.Pin(),
- new TaskSystemShortcut.Install(),
- };
-
private final OnScaleUpdateListener mTaskViewIconScaleListener = new OnScaleUpdateListener() {
@Override
public void onScaleUpdate(float scale) {
@@ -197,11 +191,13 @@ public class TaskMenuView extends AbstractFloatingView {
params.topMargin = (int) -mThumbnailTopMargin;
mTaskIcon.setLayoutParams(params);
- for (TaskSystemShortcut menuOption : MENU_OPTIONS) {
- OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, taskView);
- if (onClickListener != null) {
- addMenuOption(menuOption, onClickListener);
- }
+ final BaseDraggingActivity activity = BaseDraggingActivity.fromContext(getContext());
+ final List<TaskSystemShortcut> shortcuts =
+ taskView.getTaskOverlay().getEnabledShortcuts(taskView);
+ final int count = shortcuts.size();
+ for (int i = 0; i < count; ++i) {
+ final TaskSystemShortcut menuOption = shortcuts.get(i);
+ addMenuOption(menuOption, menuOption.getOnClickListener(activity, taskView));
}
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
index 7223f97f4..ce65de1e0 100644
--- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -173,6 +173,10 @@ public class TaskThumbnailView extends View {
return 0;
}
+ public TaskOverlay getTaskOverlay() {
+ return mOverlay;
+ }
+
@Override
protected void onDraw(Canvas canvas) {
drawOnCanvas(canvas, 0, 0, getMeasuredWidth(), getMeasuredHeight(), mCornerRadius);
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index c1424c475..56074f0f5 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -42,12 +42,12 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.FrameLayout;
import android.widget.Toast;
-import com.android.launcher3.BaseActivity;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
+import com.android.quickstep.TaskOverlayFactory;
import com.android.quickstep.TaskSystemShortcut;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.views.RecentsView.PageCallbacks;
@@ -56,8 +56,9 @@ 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;
import com.android.systemui.shared.system.ActivityManagerWrapper;
-
import com.android.systemui.shared.system.ActivityOptionsCompat;
+
+import java.util.List;
import java.util.function.Consumer;
/**
@@ -190,6 +191,10 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
return mIconView;
}
+ public TaskOverlayFactory.TaskOverlay getTaskOverlay() {
+ return mSnapshotView.getTaskOverlay();
+ }
+
public void launchTask(boolean animate) {
launchTask(animate, (result) -> {
if (!result) {
@@ -384,7 +389,11 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
final Context context = getContext();
final BaseDraggingActivity activity = fromContext(context);
- for (TaskSystemShortcut menuOption : TaskMenuView.MENU_OPTIONS) {
+ final List<TaskSystemShortcut> shortcuts =
+ mSnapshotView.getTaskOverlay().getEnabledShortcuts(this);
+ final int count = shortcuts.size();
+ for (int i = 0; i < count; ++i) {
+ final TaskSystemShortcut menuOption = shortcuts.get(i);
OnClickListener onClickListener = menuOption.getOnClickListener(activity, this);
if (onClickListener != null) {
info.addAction(menuOption.createAccessibilityAction(context));
@@ -407,7 +416,11 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
return true;
}
- for (TaskSystemShortcut menuOption : TaskMenuView.MENU_OPTIONS) {
+ final List<TaskSystemShortcut> shortcuts =
+ mSnapshotView.getTaskOverlay().getEnabledShortcuts(this);
+ final int count = shortcuts.size();
+ for (int i = 0; i < count; ++i) {
+ final TaskSystemShortcut menuOption = shortcuts.get(i);
if (menuOption.hasHandlerForAction(action)) {
OnClickListener onClickListener = menuOption.getOnClickListener(
fromContext(getContext()), this);