Merge "Setting content bounds in onMeasure as it uses measuredWidth, which might not be available during onCreate" into ub-launcher3-burnaby-polish

This commit is contained in:
Sunny Goyal
2016-02-17 01:43:08 +00:00
committed by Android (Google) Code Review
3 changed files with 9 additions and 7 deletions

View File

@@ -38,10 +38,8 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
// 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;
@@ -126,9 +124,6 @@ public abstract class BaseContainerView extends FrameLayout implements Insettabl
// 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);
}
}

View File

@@ -270,7 +270,7 @@ public class DeviceProfile {
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;

View File

@@ -138,6 +138,9 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
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 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
@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.