Revert "launcher: use a different task menu for foldables"
This reverts commit 10eb3cd98b91bea37b1659ab82245b88e5ee67ba.
Reason for revert: Root cause of P0 b/205278434
Bug: 205278434
Bug: 193432925
Test: Local reverted and now launcher works on wembley
Change-Id: I3605c01066a3ce383d45e0a938f1e00b3c7f7bb9
Merged-In: I5ee18d3ee1b671fcaedda633e7a268addd5c5c15
diff --git a/Android.bp b/Android.bp
index f79c186..d04dca0 100644
--- a/Android.bp
+++ b/Android.bp
@@ -258,8 +258,8 @@
"go/quickstep/res",
],
static_libs: [
- "QuickstepResLib",
"Launcher3CommonDepsLib",
+ "QuickstepResLib",
],
manifest: "quickstep/AndroidManifest-launcher.xml",
additional_manifests: [
@@ -278,15 +278,16 @@
srcs: [
":launcher-src-no-build-config",
],
- resource_dirs: [],
+ resource_dirs: [
+ "quickstep/res",
+ ],
libs: [
"framework-statsd",
],
static_libs: [
- "QuickstepResLib",
"SystemUI-statsd",
"SystemUISharedLib",
- "Launcher3CommonDepsLib",
+ "Launcher3CommonDepsLib"
],
manifest: "quickstep/AndroidManifest.xml",
platform_apis: true,
diff --git a/quickstep/res/drawable/task_menu_item_bg.xml b/quickstep/res/drawable/task_menu_item_bg.xml
index 16c13eb..b6a8b90 100644
--- a/quickstep/res/drawable/task_menu_item_bg.xml
+++ b/quickstep/res/drawable/task_menu_item_bg.xml
@@ -15,8 +15,7 @@
limitations under the License.
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
- <solid android:color="?androidprv:attr/colorSurface" />
- <corners android:radius="@dimen/task_menu_item_corner_radius" />
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="?android:attr/colorPrimary"/>
+ <corners android:radius="@dimen/task_menu_item_corner_radius"/>
</shape>
diff --git a/quickstep/res/layout/task_menu_with_arrow.xml b/quickstep/res/layout/task_menu_with_arrow.xml
deleted file mode 100644
index 38573fd..0000000
--- a/quickstep/res/layout/task_menu_with_arrow.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2021 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.
--->
-<com.android.quickstep.views.TaskMenuViewWithArrow
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:animateLayoutChanges="true"
- android:background="@drawable/task_menu_bg"
- android:orientation="vertical"
- android:visibility="invisible">
-
- <LinearLayout
- android:id="@+id/menu_option_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:showDividers="middle" />
-
-</com.android.quickstep.views.TaskMenuViewWithArrow>
\ No newline at end of file
diff --git a/quickstep/res/layout/task_view_menu_option.xml b/quickstep/res/layout/task_view_menu_option.xml
index 8a8fc36..5978b97 100644
--- a/quickstep/res/layout/task_view_menu_option.xml
+++ b/quickstep/res/layout/task_view_menu_option.xml
@@ -18,7 +18,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="horizontal"
+ android:orientation="vertical"
android:paddingTop="@dimen/task_card_menu_option_vertical_padding"
android:paddingBottom="@dimen/task_card_menu_option_vertical_padding"
android:background="@drawable/task_menu_item_bg"
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index 8649a1d..98d43f1 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -27,7 +27,7 @@
<dimen name="task_menu_corner_radius">22dp</dimen>
<dimen name="task_menu_item_corner_radius">4dp</dimen>
<dimen name="task_menu_spacing">2dp</dimen>
- <dimen name="task_menu_width_grid">234dp</dimen>
+ <dimen name="task_menu_width_grid">200dp</dimen>
<dimen name="overview_proactive_row_height">48dp</dimen>
<dimen name="overview_proactive_row_bottom_margin">16dp</dimen>
@@ -90,7 +90,7 @@
<dimen name="task_menu_vertical_padding">8dp</dimen>
<dimen name="task_card_margin">8dp</dimen>
<dimen name="task_card_menu_shadow_height">3dp</dimen>
- <dimen name="task_menu_option_start_margin">16dp</dimen>
+ <dimen name="task_menu_option_start_margin">12dp</dimen>
<!-- Copied from framework resource:
docked_stack_divider_thickness - 2 * docked_stack_divider_insets -->
<dimen name="multi_window_task_divider_size">10dp</dimen>
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
index 63da506..5c73fbb 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
@@ -259,9 +259,15 @@
BaseDragLayer.LayoutParams params = (BaseDragLayer.LayoutParams) getLayoutParams();
int padding = getResources()
.getDimensionPixelSize(R.dimen.task_menu_vertical_padding);
- params.width = orientationHandler
- .getTaskMenuWidth(taskContainer.getThumbnailView(),
- deviceProfile) - (2 * padding);
+ if (deviceProfile.overviewShowAsGrid) {
+ // TODO(b/193432925) temporary so it doesn't look terrible on large screen
+ params.width =
+ getContext().getResources().getDimensionPixelSize(R.dimen.task_menu_width_grid);
+ } else {
+ params.width = orientationHandler
+ .getTaskMenuWidth(taskContainer.getThumbnailView(),
+ deviceProfile) - (2 * padding);
+ }
// Gravity set to Left instead of Start as sTempRect.left measures Left distance not Start
params.gravity = Gravity.LEFT;
setLayoutParams(params);
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
index 39a6fc4..9b86c73 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt
@@ -1,150 +1,14 @@
package com.android.quickstep.views
-import android.animation.AnimatorSet
-import android.animation.ObjectAnimator
-import android.content.Context
-import android.graphics.Rect
-import android.graphics.drawable.ShapeDrawable
-import android.graphics.drawable.shapes.RectShape
-import android.util.AttributeSet
-import android.view.MotionEvent
-import android.view.View
-import android.view.ViewGroup
-import android.widget.LinearLayout
-import com.android.launcher3.BaseDraggingActivity
-import com.android.launcher3.DeviceProfile
-import com.android.launcher3.R
-import com.android.launcher3.popup.ArrowPopup
-import com.android.launcher3.popup.SystemShortcut
-import com.android.launcher3.util.Themes
-import com.android.quickstep.TaskOverlayFactory
-import com.android.quickstep.views.TaskView.TaskIdAttributeContainer
+import android.util.Log
-class TaskMenuViewWithArrow<T : BaseDraggingActivity> : ArrowPopup<T> {
+// TODO(http://b/193432925)
+class TaskMenuViewWithArrow {
companion object {
const val TAG = "TaskMenuViewWithArrow"
- fun showForTask(taskContainer: TaskIdAttributeContainer): Boolean {
- val activity = BaseDraggingActivity
- .fromContext<BaseDraggingActivity>(taskContainer.taskView.context)
- val taskMenuViewWithArrow = activity.layoutInflater
- .inflate(R.layout.task_menu_with_arrow, activity.dragLayer, false) as TaskMenuViewWithArrow<*>
-
- return taskMenuViewWithArrow.populateAndShowForTask(taskContainer)
+ fun logSomething() {
+ Log.d(TAG, "It worked!")
}
}
-
- constructor(context: Context) : super(context)
- constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
-
- init {
- clipToOutline = true
- }
-
- private val menuWidth = context.resources.getDimensionPixelSize(R.dimen.task_menu_width_grid)
-
- private lateinit var taskView: TaskView
- private lateinit var optionLayout: LinearLayout
- private lateinit var taskContainer: TaskIdAttributeContainer
-
- override fun isOfType(type: Int): Boolean = type and TYPE_TASK_MENU != 0
-
- override fun getTargetObjectLocation(outPos: Rect?) {
- popupContainer.getDescendantRectRelativeToSelf(taskView.iconView, outPos)
- }
-
- override fun onControllerInterceptTouchEvent(ev: MotionEvent?): Boolean {
- if (ev?.action == MotionEvent.ACTION_DOWN) {
- if (!popupContainer.isEventOverView(this, ev)) {
- close(true)
- return true
- }
- }
- return false
- }
-
- override fun onFinishInflate() {
- super.onFinishInflate()
- optionLayout = findViewById(R.id.menu_option_layout)
- }
-
- private fun populateAndShowForTask(taskContainer: TaskIdAttributeContainer): Boolean {
- if (isAttachedToWindow) {
- return false
- }
-
- taskView = taskContainer.taskView
- this.taskContainer = taskContainer
- if (!populateMenu()) return false
- show()
- return true
- }
-
- /** @return true if successfully able to populate task view menu, false otherwise
- */
- private fun populateMenu(): Boolean {
- // Icon may not be loaded
- if (taskContainer.task.icon == null) return false
-
- addMenuOptions()
- return true
- }
-
- private fun addMenuOptions() {
- // Add the options
- TaskOverlayFactory
- .getEnabledShortcuts(taskView, mActivityContext.deviceProfile, taskContainer)
- .forEach { this.addMenuOption(it) }
-
- // Add the spaces between items
- val divider = ShapeDrawable(RectShape())
- divider.paint.color = resources.getColor(android.R.color.transparent)
- val dividerSpacing = resources.getDimension(R.dimen.task_menu_spacing).toInt()
- optionLayout.showDividers = SHOW_DIVIDER_MIDDLE
-
- // Set the orientation, which makes the menu show
- val recentsView: RecentsView<*, *> = mActivityContext.getOverviewPanel()
- val orientationHandler = recentsView.pagedOrientationHandler
- val deviceProfile: DeviceProfile = mActivityContext.deviceProfile
- orientationHandler.setTaskOptionsMenuLayoutOrientation(
- deviceProfile,
- optionLayout,
- dividerSpacing,
- divider
- )
- }
-
- private fun addMenuOption(menuOption: SystemShortcut<*>) {
- val menuOptionView = mActivityContext.layoutInflater.inflate(
- R.layout.task_view_menu_option, this, false
- ) as LinearLayout
- menuOption.setIconAndLabelFor(
- menuOptionView.findViewById(R.id.icon),
- menuOptionView.findViewById(R.id.text)
- )
- val lp = menuOptionView.layoutParams as LayoutParams
- lp.width = menuWidth
- menuOptionView.setOnClickListener { view: View? -> menuOption.onClick(view) }
- optionLayout.addView(menuOptionView)
- }
-
- override fun assignMarginsAndBackgrounds(viewGroup: ViewGroup) {
- assignMarginsAndBackgrounds(this, Themes.getAttrColor(context, com.android.internal.R.attr.colorSurface))
- }
-
- override fun onCreateOpenAnimation(anim: AnimatorSet) {
- anim.play(
- ObjectAnimator.ofFloat(
- taskContainer.thumbnailView, TaskThumbnailView.DIM_ALPHA,
- TaskView.MAX_PAGE_SCRIM_ALPHA
- )
- )
- }
-
- override fun onCreateCloseAnimation(anim: AnimatorSet) {
- anim.play(
- ObjectAnimator.ofFloat(taskContainer.thumbnailView, TaskThumbnailView.DIM_ALPHA, 0f)
- )
- }
}
\ No newline at end of file
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index 1607e85..eef5fb3 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -809,11 +809,9 @@
}
protected boolean showTaskMenuWithContainer(IconView iconView) {
- if (mActivity.getDeviceProfile().overviewShowAsGrid) {
- return TaskMenuViewWithArrow.Companion.showForTask(mTaskIdAttributeContainer[0]);
- } else {
- return TaskMenuView.showForTask(mTaskIdAttributeContainer[0]);
- }
+ // TODO(http://b/193432925)
+ if (DEBUG) TaskMenuViewWithArrow.Companion.logSomething();
+ return TaskMenuView.showForTask(mTaskIdAttributeContainer[0]);
}
protected void setIcon(IconView iconView, Drawable icon) {
diff --git a/src/com/android/launcher3/popup/ArrowPopup.java b/src/com/android/launcher3/popup/ArrowPopup.java
index 5a1e4bf..2230914 100644
--- a/src/com/android/launcher3/popup/ArrowPopup.java
+++ b/src/com/android/launcher3/popup/ArrowPopup.java
@@ -234,7 +234,7 @@
* @param backgroundColor When Color.TRANSPARENT, we get color from {@link #mColorIds}.
* Otherwise, we will use this color for all child views.
*/
- protected void assignMarginsAndBackgrounds(ViewGroup viewGroup, int backgroundColor) {
+ private void assignMarginsAndBackgrounds(ViewGroup viewGroup, int backgroundColor) {
int[] colors = null;
if (backgroundColor == Color.TRANSPARENT) {
// Lazily get the colors so they match the current wallpaper colors.
@@ -445,7 +445,7 @@
animateOpen();
}
- protected void setupForDisplay() {
+ private void setupForDisplay() {
setVisibility(View.INVISIBLE);
mIsOpen = true;
getPopupContainer().addView(this);
@@ -482,7 +482,7 @@
mArrow.setVisibility(show && shouldAddArrow() ? VISIBLE : INVISIBLE);
}
- protected void addArrow() {
+ private void addArrow() {
getPopupContainer().addView(mArrow);
mArrow.setX(getX() + getArrowLeft());
@@ -686,13 +686,12 @@
return getChildCount() > 0 ? getChildAt(0) : this;
}
- protected void animateOpen() {
+ private void animateOpen() {
setVisibility(View.VISIBLE);
mOpenCloseAnimator = getOpenCloseAnimator(true, OPEN_DURATION, OPEN_FADE_START_DELAY,
OPEN_FADE_DURATION, OPEN_CHILD_FADE_START_DELAY, OPEN_CHILD_FADE_DURATION,
DECELERATED_EASE);
- onCreateOpenAnimation(mOpenCloseAnimator);
mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
@@ -786,11 +785,6 @@
}
/**
- * Called when creating the open transition allowing subclass can add additional animations.
- */
- protected void onCreateOpenAnimation(AnimatorSet anim) { }
-
- /**
* Called when creating the close transition allowing subclass can add additional animations.
*/
protected void onCreateCloseAnimation(AnimatorSet anim) { }