Use nearest region for all the nav buttons in 3-button folded mode

Bug: 230395757
Test: In 3-button folded mode, make sure that the touches that happen between nav buttons go to the nearest button. No regression in other modes.

Change-Id: Icb776a9a4ed4fc31d33dc3267c7053f2b0da0bfc
This commit is contained in:
Tracy Zhou
2023-12-30 20:13:15 -08:00
parent 5f3b761451
commit 9c9befae5f
9 changed files with 232 additions and 11 deletions
@@ -91,6 +91,7 @@ import com.android.launcher3.anim.AnimatedFloat;
import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarButton;
import com.android.launcher3.taskbar.navbutton.NavButtonLayoutFactory;
import com.android.launcher3.taskbar.navbutton.NavButtonLayoutFactory.NavButtonLayoutter;
import com.android.launcher3.taskbar.navbutton.NearestTouchFrame;
import com.android.launcher3.util.DimensionUtils;
import com.android.launcher3.util.MultiPropertyFactory.MultiProperty;
import com.android.launcher3.util.MultiValueAlpha;
@@ -151,7 +152,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
private final TaskbarActivityContext mContext;
private final @Nullable Context mNavigationBarPanelContext;
private final WindowManagerProxy mWindowManagerProxy;
private final FrameLayout mNavButtonsView;
private final NearestTouchFrame mNavButtonsView;
private final LinearLayout mNavButtonContainer;
// Used for IME+A11Y buttons
private final ViewGroup mEndContextualContainer;
@@ -208,7 +209,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
private ImageView mRecentsButton;
public NavbarButtonsViewController(TaskbarActivityContext context,
@Nullable Context navigationBarPanelContext, FrameLayout navButtonsView) {
@Nullable Context navigationBarPanelContext, NearestTouchFrame navButtonsView) {
mContext = context;
mNavigationBarPanelContext = navigationBarPanelContext;
mWindowManagerProxy = WindowManagerProxy.INSTANCE.get(mContext);
@@ -517,6 +518,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
return (mState & FLAG_IME_VISIBLE) != 0;
}
public boolean isImeRenderingNavButtons() {
return mIsImeRenderingNavButtons;
}
/**
* Returns true if the home button is disabled
*/
@@ -1003,6 +1008,8 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
+ mOnTaskbarBackgroundNavButtonColorOverride.value);
pw.println(prefix + "\t\tmOnBackgroundNavButtonColorOverrideMultiplier="
+ mOnBackgroundNavButtonColorOverrideMultiplier.value);
mNavButtonsView.dumpLogs(prefix + "\t", pw);
}
private static String getStateString(int flags) {