Merge "Setting content bounds in onMeasure as it uses measuredWidth, which might not be available during onCreate" into ub-launcher3-burnaby-polish
am: 5df98da8fd
* commit '5df98da8fd2c1997bd6c09a4772f018730345090':
Setting content bounds in onMeasure as it uses measuredWidth, which might not be available during onCreate
diff --git a/src/com/android/launcher3/BaseContainerView.java b/src/com/android/launcher3/BaseContainerView.java
index 5766e80..5ba41ad 100644
--- a/src/com/android/launcher3/BaseContainerView.java
+++ b/src/com/android/launcher3/BaseContainerView.java
@@ -40,10 +40,8 @@
// The bounds of the search bar. Only the left, top, right are used to inset the
// search bar and the height is determined by the measurement of the layout
private final Rect mFixedSearchBarBounds = new Rect();
- // The computed bounds of the container
- protected final Rect mContentBounds = new Rect();
// The computed padding to apply to the container to achieve the container bounds
- private final Rect mContentPadding = new Rect();
+ protected final Rect mContentPadding = new Rect();
// The inset to apply to the edges and between the search bar and the container
private final int mContainerBoundsInset;
@@ -128,9 +126,6 @@
// The container padding changed, notify the container.
if (!padding.equals(mContentPadding)) {
mContentPadding.set(padding);
- mContentBounds.set(padding.left, padding.top,
- getMeasuredWidth() - padding.right,
- getMeasuredHeight() - padding.bottom);
onUpdateBackgroundAndPaddings(padding);
}
}
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index cd58230..b67e07b 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -273,7 +273,7 @@
int allAppsCellWidthGap =
res.getDimensionPixelSize(R.dimen.all_apps_icon_width_gap);
int availableAppsWidthPx = (recyclerViewWidth > 0) ? recyclerViewWidth : availableWidthPx;
- int numAppsCols = (availableAppsWidthPx - appsViewLeftMarginPx) /
+ int numAppsCols = (availableAppsWidthPx + allAppsCellWidthGap - appsViewLeftMarginPx) /
(allAppsIconSizePx + allAppsCellWidthGap);
int numPredictiveAppCols = Math.max(inv.minAllAppsPredictionColumns, numAppsCols);
allAppsNumCols = numAppsCols;
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 63c03e5..1cb08b9 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -138,6 +138,9 @@
private final RecyclerView.LayoutManager mLayoutManager;
private final RecyclerView.ItemDecoration mItemDecoration;
+ // The computed bounds of the container
+ private final Rect mContentBounds = new Rect();
+
private AllAppsRecyclerView mAppsRecyclerView;
private AllAppsSearchBarController mSearchBarController;
@@ -318,6 +321,10 @@
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ mContentBounds.set(mContentPadding.left, mContentPadding.top,
+ MeasureSpec.getSize(widthMeasureSpec) - mContentPadding.right,
+ MeasureSpec.getSize(heightMeasureSpec) - mContentPadding.bottom);
+
// Update the number of items in the grid before we measure the view
// TODO: mSectionNamesMargin is currently 0, but also account for it,
// if it's enabled in the future.