Merge "Refactored hotseat translation X logic" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
42e6127c2b
@@ -151,30 +151,26 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas
|
||||
DisplayController.showLockedTaskbarOnHome(context)
|
||||
) {
|
||||
// adding the taskbar touch region
|
||||
val touchableHeight: Int
|
||||
var left = 0
|
||||
var right = context.deviceProfile.widthPx
|
||||
var bubbleBarAdjustment = 0
|
||||
val touchableHeight: Int
|
||||
if (uiController.isAnimatingToLauncher) {
|
||||
val dp = controllers.taskbarActivityContext.deviceProfile
|
||||
touchableHeight = windowLayoutParams.height
|
||||
if (dp.isQsbInline) {
|
||||
// if Qsb is inline need to exclude search icon from touch region
|
||||
val isRtl = Utilities.isRtl(context.resources)
|
||||
bubbleControllers?.bubbleBarViewController?.let {
|
||||
if (dp.shouldAdjustHotseatOnBubblesLocationUpdate(context)) {
|
||||
val navBarOffset =
|
||||
bubbleControllers?.bubbleBarViewController?.let {
|
||||
val isBubblesOnLeft = it.bubbleBarLocation.isOnLeft(isRtl)
|
||||
bubbleBarAdjustment =
|
||||
dp.getHotseatTranslationXForBubbleBar(isBubblesOnLeft, isRtl)
|
||||
}
|
||||
}
|
||||
dp.getHotseatTranslationXForNavBar(context, isBubblesOnLeft)
|
||||
} ?: 0
|
||||
val hotseatPadding: Rect = dp.getHotseatLayoutPadding(context)
|
||||
val borderSpacing: Int = dp.hotseatBorderSpace
|
||||
if (isRtl) {
|
||||
right =
|
||||
dp.widthPx - hotseatPadding.right + borderSpacing + bubbleBarAdjustment
|
||||
right = dp.widthPx - hotseatPadding.right + borderSpacing + navBarOffset
|
||||
} else {
|
||||
left = hotseatPadding.left - borderSpacing + bubbleBarAdjustment
|
||||
left = hotseatPadding.left - borderSpacing + navBarOffset
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -886,19 +886,18 @@ public class TaskbarLauncherStateController {
|
||||
mBubbleBarLocation = location;
|
||||
if (location == null) {
|
||||
// bubble bar is not present, hence no location, resetting the hotseat
|
||||
updateHotseatAndQsbTranslationX(0, animate);
|
||||
updateHotseatAndQsbTranslationX(/* targetValue = */ 0, animate);
|
||||
mBubbleBarLocation = null;
|
||||
return;
|
||||
}
|
||||
DeviceProfile deviceProfile = mLauncher.getDeviceProfile();
|
||||
if (!deviceProfile.shouldAdjustHotseatOnBubblesLocationUpdate(
|
||||
if (!deviceProfile.shouldAdjustHotseatOnNavBarLocationUpdate(
|
||||
mControllers.taskbarActivityContext)) {
|
||||
return;
|
||||
}
|
||||
boolean isRtl = isRtl(mLauncher.getResources());
|
||||
boolean isBubblesOnLeft = location.isOnLeft(isRtl);
|
||||
boolean isBubblesOnLeft = location.isOnLeft(isRtl(mLauncher.getResources()));
|
||||
int targetX = deviceProfile
|
||||
.getHotseatTranslationXForBubbleBar(isBubblesOnLeft, isRtl);
|
||||
.getHotseatTranslationXForNavBar(mLauncher, isBubblesOnLeft);
|
||||
updateHotseatAndQsbTranslationX(targetX, animate);
|
||||
}
|
||||
|
||||
|
||||
@@ -837,12 +837,11 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
|
||||
|
||||
int firstRecentTaskIndex = -1;
|
||||
int hotseatNavBarTranslationX = 0;
|
||||
if (mCurrentBubbleBarLocation != null
|
||||
&& taskbarDp.shouldAdjustHotseatOnBubblesLocationUpdate(mActivity)) {
|
||||
boolean isRtl = mTaskbarView.isLayoutRtl();
|
||||
boolean isBubblesOnLeft = mCurrentBubbleBarLocation.isOnLeft(isRtl);
|
||||
if (mCurrentBubbleBarLocation != null) {
|
||||
boolean isBubblesOnLeft = mCurrentBubbleBarLocation
|
||||
.isOnLeft(mTaskbarView.isLayoutRtl());
|
||||
hotseatNavBarTranslationX = taskbarDp
|
||||
.getHotseatTranslationXForBubbleBar(isBubblesOnLeft, isRtl);
|
||||
.getHotseatTranslationXForNavBar(mActivity, isBubblesOnLeft);
|
||||
}
|
||||
for (int i = 0; i < mTaskbarView.getChildCount(); i++) {
|
||||
View child = mTaskbarView.getChildAt(i);
|
||||
|
||||
@@ -1101,10 +1101,9 @@ public class QuickstepLauncher extends Launcher implements RecentsViewContainer,
|
||||
if (isBubbleBarEnabled()
|
||||
&& enableBubbleBarInPersistentTaskBar()
|
||||
&& mBubbleBarLocation != null) {
|
||||
boolean isRtl = isRtl(getResources());
|
||||
boolean isBubblesOnLeft = mBubbleBarLocation.isOnLeft(isRtl);
|
||||
boolean isBubblesOnLeft = mBubbleBarLocation.isOnLeft(isRtl(getResources()));
|
||||
translationX += mDeviceProfile
|
||||
.getHotseatTranslationXForBubbleBar(isBubblesOnLeft, isRtl);
|
||||
.getHotseatTranslationXForNavBar(this, isBubblesOnLeft);
|
||||
}
|
||||
if (isBubbleBarEnabled()
|
||||
&& mDeviceProfile.shouldAdjustHotseatForBubbleBar(getContext(), hasBubbles())) {
|
||||
|
||||
@@ -2355,18 +2355,23 @@ public class DeviceProfile {
|
||||
/**
|
||||
* Returns whether Taskbar and Hotseat should adjust horizontally on bubble bar location update.
|
||||
*/
|
||||
public boolean shouldAdjustHotseatOnBubblesLocationUpdate(Context context) {
|
||||
public boolean shouldAdjustHotseatOnNavBarLocationUpdate(Context context) {
|
||||
return enableBubbleBar()
|
||||
&& enableBubbleBarInPersistentTaskBar()
|
||||
&& !DisplayController.getNavigationMode(context).hasGestures;
|
||||
}
|
||||
|
||||
/** Returns hotseat translation X for the bubble bar position. */
|
||||
public int getHotseatTranslationXForBubbleBar(boolean isNavbarOnRight, boolean isRtl) {
|
||||
if (isNavbarOnRight) {
|
||||
return isRtl ? -navButtonsLayoutWidthPx : 0;
|
||||
public int getHotseatTranslationXForNavBar(Context context, boolean isBubblesOnLeft) {
|
||||
if (shouldAdjustHotseatOnNavBarLocationUpdate(context)) {
|
||||
boolean isRtl = Utilities.isRtl(context.getResources());
|
||||
if (isBubblesOnLeft) {
|
||||
return isRtl ? -navButtonsLayoutWidthPx : 0;
|
||||
} else {
|
||||
return isRtl ? 0 : navButtonsLayoutWidthPx;
|
||||
}
|
||||
} else {
|
||||
return isRtl ? 0 : navButtonsLayoutWidthPx;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user