summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2018-01-09 02:07:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-01-09 02:07:33 +0000
commit5cf0fbcfc55e66b6022a5957ecb8894a019e0309 (patch)
treea28c123fd2a4ad2d64dc45e72a0a8160f37168e8 /quickstep
parent228153d92ae68c82efd3fcad4ad3df6af7fc24a2 (diff)
parent0c52b56db9510dad99a367fbeafc2b87815cde2b (diff)
downloadandroid_packages_apps_Trebuchet-5cf0fbcfc55e66b6022a5957ecb8894a019e0309.tar.gz
android_packages_apps_Trebuchet-5cf0fbcfc55e66b6022a5957ecb8894a019e0309.tar.bz2
android_packages_apps_Trebuchet-5cf0fbcfc55e66b6022a5957ecb8894a019e0309.zip
Merge "Add onWidgetsBound() callback to TaskMenuView" into ub-launcher3-master
Diffstat (limited to 'quickstep')
-rw-r--r--quickstep/src/com/android/quickstep/TaskMenuView.java44
1 files changed, 34 insertions, 10 deletions
diff --git a/quickstep/src/com/android/quickstep/TaskMenuView.java b/quickstep/src/com/android/quickstep/TaskMenuView.java
index 70542c296..bf7537697 100644
--- a/quickstep/src/com/android/quickstep/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/TaskMenuView.java
@@ -25,7 +25,6 @@ import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
-import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewOutlineProvider;
@@ -61,6 +60,8 @@ public class TaskMenuView extends AbstractFloatingView {
private Launcher mLauncher;
private TextView mTaskIconAndName;
private AnimatorSet mOpenCloseAnimator;
+ private TaskView mTaskView;
+ private View mWidgetsOptionView;
public TaskMenuView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -130,8 +131,9 @@ public class TaskMenuView extends AbstractFloatingView {
return false;
}
mLauncher.getDragLayer().addView(this);
- addMenuOptions(taskView.getTask());
- orientAroundTaskView(taskView);
+ mTaskView = taskView;
+ addMenuOptions(mTaskView.getTask());
+ orientAroundTaskView(mTaskView);
post(this::animateOpen);
return true;
}
@@ -143,20 +145,27 @@ public class TaskMenuView extends AbstractFloatingView {
mTaskIconAndName.setCompoundDrawables(null, icon, null, null);
mTaskIconAndName.setText(TaskUtils.getTitle(mLauncher, task));
- LayoutInflater inflater = mLauncher.getLayoutInflater();
for (TaskSystemShortcut menuOption : MENU_OPTIONS) {
OnClickListener onClickListener = menuOption.getOnClickListener(mLauncher, task);
if (onClickListener != null) {
- DeepShortcutView menuOptionView = (DeepShortcutView) inflater.inflate(
- R.layout.system_shortcut, this, false);
- menuOptionView.getIconView().setBackgroundResource(menuOption.iconResId);
- menuOptionView.getBubbleText().setText(menuOption.labelResId);
- menuOptionView.setOnClickListener(onClickListener);
- addView(menuOptionView);
+ addMenuOption(menuOption, onClickListener);
}
}
}
+ private void addMenuOption(TaskSystemShortcut menuOption, OnClickListener onClickListener) {
+ DeepShortcutView menuOptionView = (DeepShortcutView) mLauncher.getLayoutInflater().inflate(
+ R.layout.system_shortcut, this, false);
+ menuOptionView.getIconView().setBackgroundResource(menuOption.iconResId);
+ menuOptionView.getBubbleText().setText(menuOption.labelResId);
+ menuOptionView.setOnClickListener(onClickListener);
+ addView(menuOptionView);
+
+ if (menuOption instanceof TaskSystemShortcut.Widgets) {
+ mWidgetsOptionView = menuOptionView;
+ }
+ }
+
private void orientAroundTaskView(TaskView taskView) {
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
mLauncher.getDragLayer().getDescendantRectRelativeToSelf(taskView, sTempRect);
@@ -220,4 +229,19 @@ public class TaskMenuView extends AbstractFloatingView {
}
};
}
+
+ @Override
+ protected void onWidgetsBound() {
+ TaskSystemShortcut widgetsOption = new TaskSystemShortcut.Widgets();
+ View.OnClickListener onClickListener = widgetsOption.getOnClickListener(
+ mLauncher, mTaskView.getTask());
+
+ if (onClickListener != null && mWidgetsOptionView == null) {
+ // We didn't have any widgets cached but now there are some, so add the option.
+ addMenuOption(widgetsOption, onClickListener);
+ } else if (onClickListener == null && mWidgetsOptionView != null) {
+ // No widgets exist, but we previously added the option so remove it.
+ removeView(mWidgetsOptionView);
+ }
+ }
}