Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9759d39 authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Add extra space for the search bar." into ub-launcher3-burnaby-polish

parents b171e567 8a75806c
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -20,13 +20,16 @@
<!-- Dynamic Grid -->
    <dimen name="dynamic_grid_edge_margin">6dp</dimen>
    <dimen name="dynamic_grid_search_bar_height">48dp</dimen>
    <!-- We want 32dp extra for the tall search bar. -->
    <dimen name="dynamic_grid_search_bar_height_tall">80dp</dimen>
    <!-- We want 46dp extra for the tall search bar. -->
    <dimen name="dynamic_grid_search_bar_height_tall">94dp</dimen>
    <dimen name="qsb_internal_padding_top">8dp</dimen>
    <dimen name="qsb_internal_padding_bottom">8dp</dimen>
    <dimen name="dynamic_grid_search_bar_extra_top_padding">0dp</dimen>
    <!-- Reduce the space between the status bar and the search bar when the search bar is tall -->
    <dimen name="dynamic_grid_search_bar_negative_top_padding_short">-4dp</dimen>
    <dimen name="dynamic_grid_search_bar_bottom_padding">4dp</dimen>
    <!-- Reduce the padding between the search bar and workspace when the search bar is tall -->
    <dimen name="dynamic_grid_search_bar_bottom_padding_short">-6dp</dimen>
    <dimen name="dynamic_grid_search_bar_bottom_negative_padding_short">-6dp</dimen>
    <dimen name="dynamic_grid_search_bar_bottom_padding_tablet">16dp</dimen>
    <dimen name="dynamic_grid_page_indicator_height">20dp</dimen>
    <dimen name="dynamic_grid_icon_drawable_padding">4dp</dimen>
+14 −3
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ public class DeviceProfile {
    // QSB
    private int searchBarWidgetInternalPaddingTop, searchBarWidgetInternalPaddingBottom;
    private int searchBarTopPaddingPx;
    private int tallSearchBarNegativeTopPaddingPx, normalSearchBarTopExtraPaddingPx;
    private int searchBarTopExtraPaddingPx; // One of the above.
    private int normalSearchBarBottomPaddingPx, tallSearchBarBottomPaddingPx;
    private int searchBarBottomPaddingPx; // One of the above.
    private int normalSearchBarSpaceHeightPx, tallSearchBarSpaceHeightPx;
@@ -216,6 +218,10 @@ public class DeviceProfile {
                R.dimen.qsb_internal_padding_top);
        searchBarWidgetInternalPaddingBottom = res.getDimensionPixelSize(
                R.dimen.qsb_internal_padding_bottom);
        normalSearchBarTopExtraPaddingPx = res.getDimensionPixelSize(
                R.dimen.dynamic_grid_search_bar_extra_top_padding);
        tallSearchBarNegativeTopPaddingPx = res.getDimensionPixelSize(
                R.dimen.dynamic_grid_search_bar_negative_top_padding_short);
        if (isTablet && !isVerticalBarLayout()) {
            searchBarTopPaddingPx = searchBarWidgetInternalPaddingTop;
            normalSearchBarBottomPaddingPx = searchBarWidgetInternalPaddingBottom +
@@ -225,8 +231,9 @@ public class DeviceProfile {
            searchBarTopPaddingPx = searchBarWidgetInternalPaddingTop;
            normalSearchBarBottomPaddingPx = searchBarWidgetInternalPaddingBottom +
                    res.getDimensionPixelSize(R.dimen.dynamic_grid_search_bar_bottom_padding);
            tallSearchBarBottomPaddingPx = searchBarWidgetInternalPaddingBottom +
                    res.getDimensionPixelSize(R.dimen.dynamic_grid_search_bar_bottom_padding_short);
            tallSearchBarBottomPaddingPx = searchBarWidgetInternalPaddingBottom
                    + res.getDimensionPixelSize(
                    R.dimen.dynamic_grid_search_bar_bottom_negative_padding_short);
        }

        // Calculate the actual text height
@@ -272,7 +279,7 @@ public class DeviceProfile {

    /** Returns the amount of extra space to allocate to the search bar for vertical padding. */
    private int getSearchBarTotalVerticalPadding() {
        return searchBarTopPaddingPx + searchBarBottomPaddingPx;
        return searchBarTopPaddingPx + searchBarTopExtraPaddingPx + searchBarBottomPaddingPx;
    }

    /** Returns the width and height of the search bar, ignoring any padding. */
@@ -427,10 +434,13 @@ public class DeviceProfile {
            hotseatBarHeightPx = shortHotseatBarHeightPx;
            searchBarSpaceHeightPx = tallSearchBarSpaceHeightPx;
            searchBarBottomPaddingPx = tallSearchBarBottomPaddingPx;
            searchBarTopExtraPaddingPx = isPhone ? tallSearchBarNegativeTopPaddingPx
                    : normalSearchBarTopExtraPaddingPx;
        } else {
            hotseatBarHeightPx = normalHotseatBarHeightPx;
            searchBarSpaceHeightPx = normalSearchBarSpaceHeightPx;
            searchBarBottomPaddingPx = normalSearchBarBottomPaddingPx;
            searchBarTopExtraPaddingPx = normalSearchBarTopExtraPaddingPx;
        }
    }

@@ -445,6 +455,7 @@ public class DeviceProfile {
        lp = (FrameLayout.LayoutParams) searchBar.getLayoutParams();
        lp.width = searchBarBounds.width();
        lp.height = searchBarBounds.height();
        lp.topMargin = searchBarTopExtraPaddingPx;
        if (hasVerticalBarLayout) {
            // Vertical search bar space -- The search bar is fixed in the layout to be on the left
            //                              of the screen regardless of RTL
+8 −13
Original line number Diff line number Diff line
@@ -108,15 +108,9 @@ public class InvariantDeviceProfileTest extends AndroidTestCase {
        if (!android.os.Build.DEVICE.equals("hammerhead")) {
            return;
        }
        assertEquals(mInvariantProfile.numRows, 4);
        assertEquals(mInvariantProfile.numColumns, 4);
        assertEquals((int) mInvariantProfile.numHotseatIcons, 5);

        DeviceProfile landscapeProfile = mInvariantProfile.landscapeProfile;
        DeviceProfile portraitProfile = mInvariantProfile.portraitProfile;

        assertEquals(portraitProfile.allAppsNumCols, 3);
        assertEquals(landscapeProfile.allAppsNumCols, 5); // not used
        assertEquals(4, mInvariantProfile.numRows);
        assertEquals(4, mInvariantProfile.numColumns);
        assertEquals(5, mInvariantProfile.numHotseatIcons);
    }

    // Add more tests for other devices, however, running them once on a single device is enough
@@ -172,10 +166,11 @@ public class InvariantDeviceProfileTest extends AndroidTestCase {
        Rect landscapeBounds = landscapeProfile.getSearchBarBounds(true); // RTL shouldn't matter.
        int landscapeHeight = (int) Utilities.dpiFromPx(landscapeBounds.height(),
                resources.getDisplayMetrics());
        if (portraitProfile.isTablet) {
            assertEquals(8 + 80 + 24, portraitHeight);
        if (portraitProfile.isPhone) {
            // This fails on some devices due to http://b/26884580 (portraitHeight is 101, not 100).
            assertEquals(4 + 94 + 2, portraitHeight);
        } else {
            assertEquals(8 + 80 + 2, portraitHeight);
            assertEquals(8 + 94 + 24, portraitHeight);
        }
        // Make sure the height that we pass in the widget options bundle is the height of the
        // search bar + 8dps padding top and bottom.
@@ -183,7 +178,7 @@ public class InvariantDeviceProfileTest extends AndroidTestCase {
        int portraitWidgetOptsHeight = portraitDimens.y;
        Point landscapeDimens = landscapeProfile.getSearchBarDimensForWidgetOpts(resources);
        int landscapeWidgetOptsHeight = landscapeDimens.y;
        assertEquals(8 + 80 + 8, (int) Utilities.dpiFromPx(portraitWidgetOptsHeight,
        assertEquals(8 + 94 + 8, (int) Utilities.dpiFromPx(portraitWidgetOptsHeight,
                resources.getDisplayMetrics()));
        if (!landscapeProfile.isVerticalBarLayout()) {
            assertEquals(portraitHeight, landscapeHeight);