Commit 126276b8 authored by Yue Zhang's avatar Yue Zhang Committed by Commit Bot

Make IPH item work with other GTS variations

* Only show IPH item for grid mode in TabSwitcher.
* Correctly setup/restore the padding of the recyclerView.
* Add a TODO for future refactoring.

Bug: 987043
Change-Id: I15609a1f823f25b03f29ef0c8a7bf0f5af78dec4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1763630Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Commit-Queue: Yue Zhang <yuezhanggg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#689143}
parent 19e338fb
......@@ -111,6 +111,7 @@ class TabListRecyclerView extends RecyclerView {
private int mShadowTopMargin;
private TabListOnScrollListener mScrollListener;
private View mRecyclerViewFooter;
private Rect mOriginalPadding;
/**
* Basic constructor to use during inflation from xml.
......@@ -493,6 +494,8 @@ class TabListRecyclerView extends RecyclerView {
/**
* This method setup the footer of {@code recyclerView}.
* @param footer The {@link View} of the footer.
* TODO(yuezhanggg): Refactor the footer as a item in the recyclerView instead of a separate
* view. (crbug: 987043)
*/
void setupRecyclerViewFooter(View footer) {
if (mRecyclerViewFooter != null) return;
......@@ -500,7 +503,10 @@ class TabListRecyclerView extends RecyclerView {
setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
final int height = (int) getResources().getDimension(R.dimen.tab_grid_iph_card_height);
final int padding = (int) getResources().getDimension(R.dimen.tab_grid_iph_card_margin);
setPadding(0, 0, 0, height + padding);
mOriginalPadding =
new Rect(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom());
setPadding(mOriginalPadding.left, mOriginalPadding.top, mOriginalPadding.right,
mOriginalPadding.bottom + height + padding);
mRecyclerViewFooter.setVisibility(INVISIBLE);
}
......@@ -512,7 +518,9 @@ class TabListRecyclerView extends RecyclerView {
((ViewGroup) mRecyclerViewFooter.getParent()).removeView(mRecyclerViewFooter);
mRecyclerViewFooter = null;
// Restore the recyclerView to its original state.
setPadding(0, 0, 0, 0);
assert mOriginalPadding != null;
setPadding(mOriginalPadding.left, mOriginalPadding.top, mOriginalPadding.right,
mOriginalPadding.bottom);
setScrollBarStyle(SCROLLBARS_INSIDE_OVERLAY);
}
}
......@@ -117,7 +117,8 @@ public class TabSwitcherCoordinator implements Destroyable, TabSwitcher,
mContainerViewChangeProcessor = PropertyModelChangeProcessor.create(containerViewModel,
mTabListCoordinator.getContainerView(), TabListContainerViewBinder::bind);
if (FeatureUtilities.isTabGroupsAndroidUiImprovementsEnabled()) {
if (FeatureUtilities.isTabGroupsAndroidUiImprovementsEnabled()
&& mode == TabListCoordinator.TabListMode.GRID) {
mTabGridIphItemCoordinator = new TabGridIphItemCoordinator(
context, mTabListCoordinator.getContainerView(), container);
mMediator.setIphProvider(mTabGridIphItemCoordinator.getIphProvider());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment