Created a helper method that calculates the hotseat icons shift X.
Moved out logic that computes the translation X for the hotseat icons. Fixes: 368379159 Test: Manual. Have the hotseat adjusted. Open any application from the hotseat bar. Go back to home. Flag: EXEMPT refactoring Change-Id: If9dfa70be537f87b075bd865e7f9c5cd1ae78f00
This commit is contained in:
@@ -1829,19 +1829,14 @@ public class DeviceProfile {
|
||||
* Returns the new border space that should be used between hotseat icons after adjusting it to
|
||||
* the bubble bar.
|
||||
*
|
||||
* <p>Does not check for visible bubbles persistence, so caller should call
|
||||
* {@link #shouldAdjustHotseatForBubbleBar} first.
|
||||
*
|
||||
* <p>If there's no adjustment needed, this method returns {@code 0}.
|
||||
* @see #shouldAdjustHotseatForBubbleBar(Context, boolean)
|
||||
*/
|
||||
public float getHotseatAdjustedBorderSpaceForBubbleBar(Context context) {
|
||||
// only need to adjust when QSB is on top of the hotseat.
|
||||
if (isQsbInline) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// no need to adjust if there's enough space for the bubble bar to the right of the hotseat.
|
||||
if (getHotseatLayoutPadding(context).right > mBubbleBarSpaceThresholdPx) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!shouldAdjustHotseatForBubbleBar(context)) return 0;
|
||||
// The adjustment is shrinking the hotseat's width by 1 icon on either side.
|
||||
int iconsWidth =
|
||||
iconSizePx * numShownHotseatIcons + hotseatBorderSpace * (numShownHotseatIcons - 1);
|
||||
@@ -1850,6 +1845,33 @@ public class DeviceProfile {
|
||||
return (float) (newWidth - iconSizePx * numShownHotseatIcons) / (numShownHotseatIcons - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hotseat icon translation X for the cellX index.
|
||||
*
|
||||
* <p>Does not check for visible bubbles persistence, so caller should call
|
||||
* {@link #shouldAdjustHotseatForBubbleBar} first.
|
||||
*
|
||||
* <p>If there's no adjustment needed, this method returns {@code 0}.
|
||||
* @see #shouldAdjustHotseatForBubbleBar(Context, boolean)
|
||||
*/
|
||||
public float getHotseatAdjustedTranslation(Context context, int cellX) {
|
||||
if (!shouldAdjustHotseatForBubbleBar(context)) return 0;
|
||||
float borderSpace = getHotseatAdjustedBorderSpaceForBubbleBar(context);
|
||||
float borderSpaceDelta = borderSpace - hotseatBorderSpace;
|
||||
return iconSizePx + cellX * borderSpaceDelta;
|
||||
}
|
||||
|
||||
/** Returns whether hotseat should be adjusted for the bubble bar. */
|
||||
public boolean shouldAdjustHotseatForBubbleBar(Context context, boolean hasBubbles) {
|
||||
return hasBubbles && shouldAdjustHotseatForBubbleBar(context);
|
||||
}
|
||||
|
||||
private boolean shouldAdjustHotseatForBubbleBar(Context context) {
|
||||
// only need to adjust if bubble bar is enabled, when QSB is on top of the hotseat and
|
||||
// there's not enough space for the bubble bar to the right of the hotseat.
|
||||
return !isQsbInline && getHotseatLayoutPadding(context).right <= mBubbleBarSpaceThresholdPx;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the padding for hotseat view
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user