diff options
author | Tony Wickham <twickham@google.com> | 2018-01-09 02:07:33 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-01-09 02:07:33 +0000 |
commit | 5cf0fbcfc55e66b6022a5957ecb8894a019e0309 (patch) | |
tree | a28c123fd2a4ad2d64dc45e72a0a8160f37168e8 /quickstep | |
parent | 228153d92ae68c82efd3fcad4ad3df6af7fc24a2 (diff) | |
parent | 0c52b56db9510dad99a367fbeafc2b87815cde2b (diff) | |
download | android_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.java | 44 |
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); + } + } } |