From 650000f68f37ba6396ac95f16a971916b6ebbd1a Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Tue, 2 Jan 2024 23:00:14 -0800 Subject: [PATCH] Correct contextual button width, height and touch area Side note: this is unrelated to NearestTouchFrame Bug: 313371759 Bug: 230395757 Test: https://screenshot.googleplex.com/6mF4ZPSob6z55Nh Change-Id: I7e5217bef4b2cfb6d14d62d107e75b1267ffd2f4 --- .../navbutton/AbstractNavButtonLayoutter.kt | 11 +++++----- .../taskbar/navbutton/KidsNavLayoutter.kt | 6 ++++-- .../navbutton/PhoneLandscapeNavLayoutter.kt | 21 +++++++++++-------- .../navbutton/PhonePortraitNavLayoutter.kt | 5 ++--- .../navbutton/PhoneSeascapeNavLayoutter.kt | 10 +++++---- .../taskbar/navbutton/SetupNavLayoutter.kt | 6 ++++-- .../taskbar/navbutton/TaskbarNavLayoutter.kt | 6 ++++-- 7 files changed, 38 insertions(+), 27 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt index b516d6febe..23e3310e70 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt @@ -65,18 +65,19 @@ abstract class AbstractNavButtonLayoutter( fun getParamsToCenterView(): FrameLayout.LayoutParams { val params = FrameLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) params.gravity = Gravity.CENTER return params; } - open fun repositionContextualContainer(contextualContainer: ViewGroup, barAxisMargin: Int, + open fun repositionContextualContainer(contextualContainer: ViewGroup, buttonSize: Int, + barAxisMarginStart: Int, barAxisMarginEnd: Int, gravity: Int) { val contextualContainerParams = FrameLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT) + buttonSize, ViewGroup.LayoutParams.MATCH_PARENT) contextualContainerParams.apply { - marginStart = barAxisMargin - marginEnd = barAxisMargin + marginStart = barAxisMarginStart + marginEnd = barAxisMarginEnd topMargin = 0 bottomMargin = 0 } diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt index 65b77ac31c..f31af09ab7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt @@ -21,6 +21,7 @@ import android.graphics.Color import android.graphics.drawable.PaintDrawable import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout @@ -103,8 +104,9 @@ class KidsNavLayoutter( val contextualMargin = resources.getDimensionPixelSize( R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(endContextualContainer, 0, Gravity.END) - repositionContextualContainer(startContextualContainer, contextualMargin, Gravity.START) + repositionContextualContainer(endContextualContainer, WRAP_CONTENT, 0, 0, Gravity.END) + repositionContextualContainer(startContextualContainer, WRAP_CONTENT, contextualMargin, + contextualMargin, Gravity.START) if (imeSwitcher != null) { startContextualContainer.addView(imeSwitcher) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt index a96ee1ff2d..b1b50d6d7f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt @@ -106,7 +106,7 @@ open class PhoneLandscapeNavLayoutter( } } - repositionContextualButtons() + repositionContextualButtons(contextualButtonHeight.toInt()) } open fun addThreeButtons() { @@ -116,13 +116,15 @@ open class PhoneLandscapeNavLayoutter( navButtonContainer.addView(backButton) } - open fun repositionContextualButtons() { + open fun repositionContextualButtons(buttonSize: Int) { endContextualContainer.removeAllViews() startContextualContainer.removeAllViews() - val contextualMargin = resources.getDimensionPixelSize( - R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(startContextualContainer, contextualMargin, Gravity.TOP) + val roundedCornerContentMargin = resources.getDimensionPixelSize( + R.dimen.taskbar_phone_rounded_corner_content_margin) + val contentPadding = resources.getDimensionPixelSize(R.dimen.taskbar_phone_content_padding) + repositionContextualContainer(startContextualContainer, buttonSize, + roundedCornerContentMargin + contentPadding, 0, Gravity.TOP) if (imeSwitcher != null) { startContextualContainer.addView(imeSwitcher) @@ -137,15 +139,16 @@ open class PhoneLandscapeNavLayoutter( } } - override fun repositionContextualContainer(contextualContainer: ViewGroup, barAxisMargin: Int, + override fun repositionContextualContainer(contextualContainer: ViewGroup, buttonSize: Int, + barAxisMarginTop: Int, barAxisMarginBottom: Int, gravity: Int) { val contextualContainerParams = FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + ViewGroup.LayoutParams.MATCH_PARENT, buttonSize) contextualContainerParams.apply { marginStart = 0 marginEnd = 0 - topMargin = barAxisMargin - bottomMargin = barAxisMargin + topMargin = barAxisMarginTop + bottomMargin = barAxisMarginBottom } contextualContainerParams.gravity = gravity or Gravity.CENTER_HORIZONTAL contextualContainer.layoutParams = contextualContainerParams diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt index 22d9f82e90..05183b8411 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt @@ -110,9 +110,8 @@ class PhonePortraitNavLayoutter( endContextualContainer.removeAllViews() startContextualContainer.removeAllViews() - val contextualMargin = resources.getDimensionPixelSize( - R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(endContextualContainer, contextualMargin, Gravity.END) + repositionContextualContainer(endContextualContainer, contextualButtonWidth.toInt(), 0, + roundedCornerContentMargin + contentPadding, Gravity.END) if (imeSwitcher != null) { endContextualContainer.addView(imeSwitcher) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt index 0368b1dea6..0f52552c8b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt @@ -50,13 +50,15 @@ class PhoneSeascapeNavLayoutter( navButtonContainer.addView(recentsButton) } - override fun repositionContextualButtons() { + override fun repositionContextualButtons(buttonSize: Int) { endContextualContainer.removeAllViews() startContextualContainer.removeAllViews() - val contextualMargin = resources.getDimensionPixelSize( - R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(endContextualContainer, contextualMargin, Gravity.BOTTOM) + val roundedCornerContentMargin = resources.getDimensionPixelSize( + R.dimen.taskbar_phone_rounded_corner_content_margin) + val contentPadding = resources.getDimensionPixelSize(R.dimen.taskbar_phone_content_padding) + repositionContextualContainer(endContextualContainer, buttonSize, 0, + roundedCornerContentMargin + contentPadding, Gravity.BOTTOM) if (imeSwitcher != null) { endContextualContainer.addView(imeSwitcher) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt index 1ac00608d6..5111bba53d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt @@ -19,6 +19,7 @@ package com.android.launcher3.taskbar.navbutton import android.content.res.Resources import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout @@ -61,8 +62,9 @@ class SetupNavLayoutter( val contextualMargin = resources.getDimensionPixelSize( R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(endContextualContainer, 0, Gravity.END) - repositionContextualContainer(startContextualContainer, contextualMargin, Gravity.START) + repositionContextualContainer(endContextualContainer, WRAP_CONTENT, 0, 0, Gravity.END) + repositionContextualContainer(startContextualContainer, WRAP_CONTENT, contextualMargin, + contextualMargin, Gravity.START) if (imeSwitcher != null) { startContextualContainer.addView(imeSwitcher) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt index 5465b6bbc9..45dbebbbdb 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt @@ -19,6 +19,7 @@ package com.android.launcher3.taskbar.navbutton import android.content.res.Resources import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout @@ -96,8 +97,9 @@ class TaskbarNavLayoutter( if (!context.deviceProfile.isGestureMode) { val contextualMargin = resources.getDimensionPixelSize( R.dimen.taskbar_contextual_button_padding) - repositionContextualContainer(endContextualContainer, 0, Gravity.END) - repositionContextualContainer(startContextualContainer, contextualMargin, Gravity.START) + repositionContextualContainer(endContextualContainer, WRAP_CONTENT, 0, 0, Gravity.END) + repositionContextualContainer(startContextualContainer, WRAP_CONTENT, contextualMargin, + contextualMargin, Gravity.START) if (imeSwitcher != null) { startContextualContainer.addView(imeSwitcher)