App row padding is now consistent for all grid sizes. Also fix when 2x2 allApp icons get super big.
Added consistent padding to each app row.
Bug: 229789736
Bug: 229791507
Bug: 228320417
Bug: 230870213
Test: Manual on Raven
Change-Id: Ice1c8be361f009994a8e0960a30da04fc1c0c218
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e02ee8a..4e90513 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -57,13 +57,18 @@
<dimen name="workspace_page_indicator_line_height">1dp</dimen>
<dimen name="workspace_page_indicator_overlap_workspace">0dp</dimen>
-<!-- Drop target bar -->
+ <!-- Drop target bar -->
<dimen name="dynamic_grid_drop_target_size">56dp</dimen>
<dimen name="drop_target_vertical_gap">20dp</dimen>
<dimen name="drop_target_top_margin">32dp</dimen>
<dimen name="drop_target_bottom_margin">16dp</dimen>
-<!-- App Widget resize frame -->
+ <!-- App Widget resize frame -->
+ <!-- Button drop target bar -->
+ <dimen name="button_drop_target_min_text_size">10sp</dimen>
+ <dimen name="button_drop_target_resize_text_increment">1sp</dimen>
+
+ <!-- App Widget resize frame -->
<dimen name="widget_handle_margin">13dp</dimen>
<dimen name="resize_frame_background_padding">24dp</dimen>
<dimen name="resize_frame_margin">22dp</dimen>
@@ -76,7 +81,7 @@
<dimen name="widget_reconfigure_button_size">36dp</dimen>
<dimen name="widget_reconfigure_tip_top_margin">16dp</dimen>
-<!-- Fast scroll -->
+ <!-- Fast scroll -->
<dimen name="fastscroll_track_min_width">6dp</dimen>
<dimen name="fastscroll_track_max_width">8dp</dimen>
<dimen name="fastscroll_thumb_padding">1dp</dimen>
@@ -129,19 +134,20 @@
<dimen name="all_apps_paged_view_top_padding">40dp</dimen>
<dimen name="all_apps_personal_work_tabs_vertical_margin">16dp</dimen>
+ <dimen name="all_apps_icon_drawable_padding">8dp</dimen>
<!-- The size of corner radius of the arrow in the arrow toast. -->
<dimen name="arrow_toast_corner_radius">2dp</dimen>
<dimen name="arrow_toast_elevation">2dp</dimen>
<dimen name="arrow_toast_arrow_width">10dp</dimen>
-<!-- Search bar in All Apps -->
+ <!-- Search bar in All Apps -->
<dimen name="all_apps_header_max_elevation">3dp</dimen>
<dimen name="all_apps_header_scroll_to_elevation">16dp</dimen>
<dimen name="all_apps_header_shadow_height">6dp</dimen>
<dimen name="all_apps_divider_margin_vertical">8dp</dimen>
-<!-- Floating action button inside work tab to toggle work profile -->
+ <!-- Floating action button inside work tab to toggle work profile -->
<dimen name="work_fab_height">56dp</dimen>
<dimen name="work_fab_radius">16dp</dimen>
<dimen name="work_card_padding_horizontal">10dp</dimen>
@@ -212,13 +218,13 @@
<dimen name="shortcut_preview_padding_right">0dp</dimen>
<dimen name="shortcut_preview_padding_top">0dp</dimen>
-<!-- Pin widget dialog -->
+ <!-- Pin widget dialog -->
<dimen name="pin_widget_button_padding_horizontal">8dp</dimen>
<dimen name="pin_widget_button_padding_vertical">4dp</dimen>
<dimen name="pin_widget_button_inset_horizontal">4dp</dimen>
<dimen name="pin_widget_button_inset_vertical">6dp</dimen>
-<!-- Dragging -->
+ <!-- Dragging -->
<!-- Drag padding to add to the bottom of drop targets -->
<dimen name="drop_target_drag_padding">14dp</dimen>
<dimen name="drop_target_text_size">16sp</dimen>
@@ -243,7 +249,7 @@
<dimen name="spring_loaded_panel_border">2dp</dimen>
<dimen name="keyboard_drag_stroke_width">4dp</dimen>
-<!-- Folders -->
+ <!-- Folders -->
<dimen name="page_indicator_dot_size">8dp</dimen>
<dimen name="folder_cell_x_padding">9dp</dimen>
@@ -255,22 +261,22 @@
<dimen name="folder_content_padding_left_right">8dp</dimen>
<dimen name="folder_content_padding_top">16dp</dimen>
-<!-- Sizes for managed profile badges -->
+ <!-- Sizes for managed profile badges -->
<dimen name="profile_badge_size">24dp</dimen>
<dimen name="profile_badge_margin">5dp</dimen>
<dimen name="profile_badge_minimum_top">2dp</dimen>
-<!-- Shadows and outlines -->
+ <!-- Shadows and outlines -->
<dimen name="blur_size_thin_outline">1dp</dimen>
<dimen name="blur_size_medium_outline">2dp</dimen>
<dimen name="blur_size_click_shadow">4dp</dimen>
<dimen name="click_shadow_high_shift">2dp</dimen>
-<!-- Pending widget -->
+ <!-- Pending widget -->
<dimen name="pending_widget_min_padding">8dp</dimen>
<dimen name="pending_widget_elevation">2dp</dimen>
-<!-- Deep shortcuts -->
+ <!-- Deep shortcuts -->
<dimen name="deep_shortcuts_elevation">2dp</dimen>
<dimen name="bg_popup_padding">2dp</dimen>
<dimen name="bg_popup_item_width">216dp</dimen>
@@ -304,7 +310,7 @@
<!-- (system_shortcut_header_icon_touch_size - system_shortcut_icon_size) / 2 -->
<dimen name="system_shortcut_header_icon_padding">14dp</dimen>
-<!-- Notifications -->
+ <!-- Notifications -->
<dimen name="bg_round_rect_radius">8dp</dimen>
<dimen name="notification_max_trans">8dp</dimen>
<dimen name="notification_space">8dp</dimen>
@@ -322,11 +328,11 @@
<dimen name="notification_main_text_padding_start">56dp</dimen>
<dimen name="horizontal_ellipsis_size">18dp</dimen>
-<!-- Overview -->
+ <!-- Overview -->
<dimen name="options_menu_icon_size">24dp</dimen>
<dimen name="options_menu_thumb_size">32dp</dimen>
-<!-- Snackbar -->
+ <!-- Snackbar -->
<dimen name="snackbar_height">48dp</dimen>
<dimen name="snackbar_content_height">32dp</dimen>
<dimen name="snackbar_padding">8dp</dimen>
@@ -338,17 +344,17 @@
<dimen name="snackbar_max_text_size">14sp</dimen>
<dimen name="snackbar_max_width">504dp</dimen>
-<!-- Developer Options -->
+ <!-- Developer Options -->
<dimen name="developer_options_filter_margins">10dp</dimen>
-<!-- Theming related -->
+ <!-- Theming related -->
<dimen name="default_dialog_corner_radius">8dp</dimen>
<dimen name="dialogCornerRadius">@dimen/default_dialog_corner_radius</dimen>
<!-- Onboarding bottomsheet related -->
<dimen name="bottom_sheet_edu_padding">24dp</dimen>
-<!-- Taskbar related (placeholders to compile in Launcher3 without Quickstep) -->
+ <!-- Taskbar related (placeholders to compile in Launcher3 without Quickstep) -->
<dimen name="taskbar_size">0dp</dimen>
<dimen name="taskbar_stashed_size">0dp</dimen>
<dimen name="qsb_widget_height">0dp</dimen>
@@ -359,10 +365,10 @@
<!-- Size of the maximum radius for the enforced rounded rectangles. -->
<dimen name="enforced_rounded_corner_max_radius">16dp</dimen>
-<!-- Base Swipe Detector, speed in dp/s -->
+ <!-- Base Swipe Detector, speed in dp/s -->
<dimen name="base_swift_detector_fling_release_velocity">1dp</dimen>
-<!-- Overview placeholder to compile in Launcher3 without Quickstep -->
+ <!-- Overview placeholder to compile in Launcher3 without Quickstep -->
<dimen name="task_thumbnail_icon_size">0dp</dimen>
<dimen name="task_thumbnail_icon_drawable_size">0dp</dimen>
<dimen name="task_thumbnail_icon_drawable_size_grid">0dp</dimen>
@@ -381,17 +387,17 @@
<dimen name="task_menu_width_grid">216dp</dimen>
-<!-- Workspace grid visualization parameters -->
+ <!-- Workspace grid visualization parameters -->
<dimen name="grid_visualization_rounding_radius">28dp</dimen>
<dimen name="grid_visualization_horizontal_cell_spacing">6dp</dimen>
<dimen name="grid_visualization_vertical_cell_spacing">6dp</dimen>
-<!-- Search results related parameters -->
+ <!-- Search results related parameters -->
<dimen name="search_row_icon_size">48dp</dimen>
<dimen name="search_row_small_icon_size">32dp</dimen>
<dimen name="padded_rounded_button_padding">8dp</dimen>
-<!-- Bottom sheet related parameters -->
+ <!-- Bottom sheet related parameters -->
<dimen name="bottom_sheet_extra_top_padding">0dp</dimen>
<dimen name="bottom_sheet_handle_width">32dp</dimen>
<dimen name="bottom_sheet_handle_height">4dp</dimen>
diff --git a/res/xml/device_profiles.xml b/res/xml/device_profiles.xml
index 290bc8c..0802552 100644
--- a/res/xml/device_profiles.xml
+++ b/res/xml/device_profiles.xml
@@ -34,6 +34,8 @@
launcher:minHeightDps="300"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -42,6 +44,8 @@
launcher:minHeightDps="400"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
</grid-option>
@@ -63,6 +67,8 @@
launcher:minHeightDps="420"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -71,6 +77,8 @@
launcher:minHeightDps="450"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -79,6 +87,8 @@
launcher:minHeightDps="491.33"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -87,6 +97,8 @@
launcher:minHeightDps="567"
launcher:iconImageSize="54"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -95,6 +107,8 @@
launcher:minHeightDps="567"
launcher:iconImageSize="54"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
</grid-option>
@@ -116,6 +130,8 @@
launcher:minHeightDps="694"
launcher:iconImageSize="56"
launcher:iconTextSize="14.4"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -124,6 +140,8 @@
launcher:minHeightDps="694"
launcher:iconImageSize="56"
launcher:iconTextSize="14.4"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
<display-option
@@ -132,6 +150,8 @@
launcher:minHeightDps="400"
launcher:iconImageSize="48"
launcher:iconTextSize="13.0"
+ launcher:allAppsBorderSpace="16"
+ launcher:allAppsCellHeight="104"
launcher:canBeDefault="true" />
</grid-option>
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index f028d3c..5152217 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -255,7 +255,6 @@
mInsets.set(windowBounds.insets);
isScalableGrid = inv.isScalable && !isVerticalBarLayout() && !isMultiWindowMode;
-
// Determine device posture.
mInfo = info;
isTablet = info.isTablet(windowBounds);
@@ -265,8 +264,8 @@
// Some more constants.
context = getContext(context, info, isVerticalBarLayout() || (isTablet && isLandscape)
- ? Configuration.ORIENTATION_LANDSCAPE
- : Configuration.ORIENTATION_PORTRAIT,
+ ? Configuration.ORIENTATION_LANDSCAPE
+ : Configuration.ORIENTATION_PORTRAIT,
windowBounds);
final Resources res = context.getResources();
mMetrics = res.getDisplayMetrics();
@@ -313,7 +312,6 @@
allAppsShiftRange = isTablet
? heightPx - allAppsTopPadding
: res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate);
-
folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale);
folderContentPaddingLeftRight =
res.getDimensionPixelSize(R.dimen.folder_content_padding_left_right);
@@ -795,27 +793,26 @@
allAppsBorderSpacePx = new Point(
pxFromDp(inv.allAppsBorderSpaces[mTypeIndex].x, mMetrics, scale),
pxFromDp(inv.allAppsBorderSpaces[mTypeIndex].y, mMetrics, scale));
+ // AllApps cells don't have real space between cells,
+ // so we add the border space to the cell height
+ allAppsCellHeightPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].y, mMetrics, scale)
+ + allAppsBorderSpacePx.y;
+ // but width is just the cell,
+ // the border is added in #updateAllAppsContainerWidth
+ allAppsCellWidthPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].x, mMetrics, scale);
if (isScalableGrid) {
allAppsIconSizePx =
pxFromDp(inv.allAppsIconSize[mTypeIndex], mMetrics);
allAppsIconTextSizePx =
pxFromSp(inv.allAppsIconTextSize[mTypeIndex], mMetrics);
allAppsIconDrawablePaddingPx = iconDrawablePaddingOriginalPx;
- // AllApps cells don't have real space between cells,
- // so we add the border space to the cell height
- allAppsCellHeightPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].y, mMetrics, scale)
- + allAppsBorderSpacePx.y;
- // but width is just the cell,
- // the border is added in #updateAllAppsContainerWidth
- allAppsCellWidthPx = pxFromDp(inv.allAppsCellSize[mTypeIndex].x, mMetrics, scale);
} else {
- float invIconSizeDp = inv.iconSize[mTypeIndex];
- float invIconTextSizeSp = inv.iconTextSize[mTypeIndex];
+ float invIconSizeDp = inv.allAppsIconSize[mTypeIndex];
+ float invIconTextSizeSp = inv.allAppsIconTextSize[mTypeIndex];
allAppsIconSizePx = Math.max(1, pxFromDp(invIconSizeDp, mMetrics, scale));
allAppsIconTextSizePx = (int) (pxFromSp(invIconTextSizeSp, mMetrics) * scale);
- allAppsIconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * scale);
- allAppsCellWidthPx = allAppsIconSizePx + (2 * allAppsIconDrawablePaddingPx);
- allAppsCellHeightPx = getCellSize().y;
+ allAppsIconDrawablePaddingPx =
+ res.getDimensionPixelSize(R.dimen.all_apps_icon_drawable_padding);
}
updateAllAppsContainerWidth(res);
@@ -1145,7 +1142,7 @@
return Math.min(qsbBottomMarginPx + taskbarSize, freeSpace);
} else {
return (int) (freeSpace * mQsbCenterFactor)
- + (isTaskbarPresent ? taskbarSize : mInsets.bottom);
+ + (isTaskbarPresent ? taskbarSize : mInsets.bottom);
}
}