diff options
-rw-r--r-- | res/layout-land/launcher.xml | 4 | ||||
-rw-r--r-- | res/layout/page_indicator.xml | 4 | ||||
-rw-r--r-- | res/values-land/dimens.xml | 2 | ||||
-rw-r--r-- | res/values/dimens.xml | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/DeviceProfile.java | 26 |
5 files changed, 27 insertions, 11 deletions
diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml index 2bbd76d52..e6f98a49a 100644 --- a/res/layout-land/launcher.xml +++ b/res/layout-land/launcher.xml @@ -63,8 +63,8 @@ <com.android.launcher3.pageindicators.PageIndicatorCaretLandscape android:id="@+id/page_indicator" android:theme="@style/HomeScreenElementTheme" - android:layout_width="@dimen/dynamic_grid_page_indicator_size" - android:layout_height="@dimen/dynamic_grid_page_indicator_size" + android:layout_width="@dimen/dynamic_grid_min_page_indicator_size" + android:layout_height="@dimen/dynamic_grid_min_page_indicator_size" android:layout_gravity="bottom|left"/> <include layout="@layout/widgets_view" diff --git a/res/layout/page_indicator.xml b/res/layout/page_indicator.xml index 14ff2bd28..92f52d672 100644 --- a/res/layout/page_indicator.xml +++ b/res/layout/page_indicator.xml @@ -18,11 +18,11 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:theme="@style/HomeScreenElementTheme" android:layout_width="match_parent" - android:layout_height="@dimen/dynamic_grid_page_indicator_size"> + android:layout_height="@dimen/dynamic_grid_min_page_indicator_size"> <ImageView android:id="@+id/all_apps_handle" android:layout_width="48dp" - android:layout_height="match_parent" + android:layout_height="@dimen/dynamic_grid_min_page_indicator_size" android:layout_gravity="top|center" android:scaleType="centerInside"/> </com.android.launcher3.pageindicators.PageIndicatorLineCaret> diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml index 0db0e615f..1d36f75cb 100644 --- a/res/values-land/dimens.xml +++ b/res/values-land/dimens.xml @@ -26,7 +26,7 @@ <!-- Dynamic grid --> <dimen name="dynamic_grid_overview_bar_item_width">120dp</dimen> - <dimen name="dynamic_grid_page_indicator_size">24dp</dimen> + <dimen name="dynamic_grid_min_page_indicator_size">24dp</dimen> <dimen name="folder_preview_padding">5dp</dimen> <!-- Hotseat --> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 980b71483..21abd3c93 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -17,7 +17,7 @@ <resources> <!-- Dynamic Grid --> <dimen name="dynamic_grid_edge_margin">16dp</dimen> - <dimen name="dynamic_grid_page_indicator_size">32dp</dimen> + <dimen name="dynamic_grid_min_page_indicator_size">32dp</dimen> <dimen name="dynamic_grid_page_indicator_line_height">1dp</dimen> <dimen name="dynamic_grid_page_indicator_gutter_width">50dp</dimen> <dimen name="dynamic_grid_icon_drawable_padding">8dp</dimen> diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index eef651044..7520be2f6 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -80,7 +80,7 @@ public class DeviceProfile { public final int workspaceSpringLoadedBottomSpace; // Page indicator - private final int pageIndicatorSizePx; + private int pageIndicatorSizePx; private final int pageIndicatorLandGutterPx; private final int pageIndicatorLandWorkspaceOffsetPx; @@ -172,7 +172,8 @@ public class DeviceProfile { defaultWidgetPadding = AppWidgetHostView.getDefaultPaddingForWidget(context, cn, null); edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin); desiredWorkspaceLeftRightMarginPx = edgeMarginPx; - pageIndicatorSizePx = res.getDimensionPixelSize(R.dimen.dynamic_grid_page_indicator_size); + pageIndicatorSizePx = res.getDimensionPixelSize( + R.dimen.dynamic_grid_min_page_indicator_size); pageIndicatorLandGutterPx = res.getDimensionPixelSize( R.dimen.dynamic_grid_page_indicator_gutter_width); pageIndicatorLandWorkspaceOffsetPx = @@ -228,8 +229,23 @@ public class DeviceProfile { availableHeightPx = maxSize.y; } - // Calculate the remaining vars + // Calculate all of the remaining variables. updateAvailableDimensions(dm, res); + + // Now that we have all of the variables calculated, we can tune certain sizes. + if (!isVerticalBarLayout()) { + // We increase the page indicator size when there is extra space. + // ie. For a display with a large aspect ratio, we can keep the icons on the workspace + // in portrait mode closer together by increasing the page indicator size. + int newPageIndicatorSizePx = getCellSize().y - iconSizePx - iconTextSizePx + - iconDrawablePaddingOriginalPx; + if (newPageIndicatorSizePx > pageIndicatorSizePx) { + pageIndicatorSizePx = newPageIndicatorSizePx; + // Recalculate the available dimensions using the new page indicator size. + updateAvailableDimensions(dm, res); + } + } + computeAllAppsButtonSize(context); // This is done last, after iconSizePx is calculated above. @@ -484,8 +500,8 @@ public class DeviceProfile { return new Rect(mInsets.left, mInsets.top + dropTargetBarSizePx + edgeMarginPx, mInsets.left + availableWidthPx, - mInsets.top + availableHeightPx - hotseatBarHeightPx - pageIndicatorSizePx - - edgeMarginPx); + mInsets.top + availableHeightPx - hotseatBarHeightPx + - pageIndicatorSizePx - edgeMarginPx); } } |