Add taskbarIconSize to GridOption/DisplayOptions
- Renamed variables to make it more clear what they represent
- DeviceProfile will be source of truth for taskbar
sizes
Bug: 265144213
Test: phone, multi-display, tablet
Change-Id: Id9c19d15a65894fd7645e0f876a4b6527b713c34
Flag: ENABLE_TRANSIENT_TASKBAR=true
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index aca03e3..fcb220e 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -44,6 +44,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
import com.android.launcher3.CellLayout.ContainerType;
import com.android.launcher3.DevicePaddings.DevicePadding;
@@ -262,10 +263,10 @@
public boolean isTaskbarPresent;
// Whether Taskbar will inset the bottom of apps by taskbarSize.
public boolean isTaskbarPresentInApps;
- public int taskbarSize;
- public int transientTaskbarSize;
- public int stashedTaskbarSize;
- public int transientTaskbarMargin;
+ public final int taskbarHeight;
+ public final int stashedTaskbarHeight;
+ public final int taskbarBottomMargin;
+ public final int taskbarIconSize;
// DragController
public int flingToDeleteThresholdVelocity;
@@ -328,17 +329,21 @@
}
}
- if (isTaskbarPresent) {
- transientTaskbarSize = res.getDimensionPixelSize(R.dimen.transient_taskbar_size);
- transientTaskbarMargin = res.getDimensionPixelSize(R.dimen.transient_taskbar_margin);
- if (DisplayController.isTransientTaskbar(context)) {
- taskbarSize = transientTaskbarSize;
- stashedTaskbarSize =
- res.getDimensionPixelSize(R.dimen.transient_taskbar_stashed_size);
- } else {
- taskbarSize = res.getDimensionPixelSize(R.dimen.taskbar_size);
- stashedTaskbarSize = res.getDimensionPixelSize(R.dimen.taskbar_stashed_size);
- }
+ if (DisplayController.isTransientTaskbar(context)) {
+ float invTransientIconSizeDp = inv.transientTaskbarIconSize[mTypeIndex];
+ taskbarIconSize = pxFromDp(invTransientIconSizeDp, mMetrics);
+ taskbarHeight = taskbarIconSize
+ + (2 * res.getDimensionPixelSize(R.dimen.transient_taskbar_padding));
+ stashedTaskbarHeight =
+ res.getDimensionPixelSize(R.dimen.transient_taskbar_stashed_height);
+ taskbarBottomMargin =
+ res.getDimensionPixelSize(R.dimen.transient_taskbar_bottom_margin);
+ } else {
+ taskbarIconSize = pxFromDp(ResourcesCompat.getFloat(res, R.dimen.taskbar_icon_size),
+ mMetrics);
+ taskbarHeight = res.getDimensionPixelSize(R.dimen.taskbar_size);
+ stashedTaskbarHeight = res.getDimensionPixelSize(R.dimen.taskbar_stashed_size);
+ taskbarBottomMargin = 0;
}
edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin);
@@ -1421,7 +1426,7 @@
* Returns the number of pixels the taskbar is translated from the bottom of the screen.
*/
public int getTaskbarOffsetY() {
- int taskbarIconBottomSpace = (taskbarSize - iconSizePx) / 2;
+ int taskbarIconBottomSpace = (taskbarHeight - iconSizePx) / 2;
int launcherIconBottomSpace =
Math.min((hotseatCellHeightPx - iconSizePx) / 2, gridVisualizationPaddingY);
return getHotseatBarBottomPadding() + launcherIconBottomSpace - taskbarIconBottomSpace;
@@ -1432,7 +1437,7 @@
*/
public int getOverviewActionsClaimedSpaceBelow() {
if (isTaskbarPresent) {
- return transientTaskbarSize + transientTaskbarMargin * 2;
+ return taskbarHeight + taskbarBottomMargin * 2;
}
return mInsets.bottom;
}
@@ -1470,7 +1475,7 @@
mInsets.top + availableHeightPx);
} else {
// Folders should only appear below the drop target bar and above the hotseat
- int hotseatTop = isTaskbarPresent ? taskbarSize : hotseatBarSizePx;
+ int hotseatTop = isTaskbarPresent ? taskbarHeight : hotseatBarSizePx;
return new Rect(mInsets.left + edgeMarginPx,
mInsets.top + dropTargetBarSizePx + edgeMarginPx,
mInsets.left + availableWidthPx - edgeMarginPx,
@@ -1671,7 +1676,10 @@
writer.println(prefix + "\tisTaskbarPresent:" + isTaskbarPresent);
writer.println(prefix + "\tisTaskbarPresentInApps:" + isTaskbarPresentInApps);
- writer.println(prefix + pxToDpStr("taskbarSize", taskbarSize));
+ writer.println(prefix + pxToDpStr("taskbarHeight", taskbarHeight));
+ writer.println(prefix + pxToDpStr("stashedTaskbarHeight", stashedTaskbarHeight));
+ writer.println(prefix + pxToDpStr("taskbarBottomMargin", taskbarBottomMargin));
+ writer.println(prefix + pxToDpStr("taskbarIconSize", taskbarIconSize));
writer.println(prefix + pxToDpStr("desiredWorkspaceHorizontalMarginPx",
desiredWorkspaceHorizontalMarginPx));