diff options
author | jianli <jianli@chromium.org> | 2015-09-03 15:41:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-03 22:42:12 +0000 |
commit | 63915168e35ff286df9c2f864ffd9d6a15e46eee (patch) | |
tree | 6b95b0e232686eaac0b69dc31104aea3a1178655 | |
parent | b68f5c2b1cf7fe850312b49804af3a14472aa021 (diff) | |
download | chromium_src-63915168e35ff286df9c2f864ffd9d6a15e46eee.zip chromium_src-63915168e35ff286df9c2f864ffd9d6a15e46eee.tar.gz chromium_src-63915168e35ff286df9c2f864ffd9d6a15e46eee.tar.bz2 |
Add more vertical spacing between items in Saved offline view
BUG=491352
Review URL: https://codereview.chromium.org/1306313009
Cr-Commit-Position: refs/heads/master@{#347272}
-rw-r--r-- | chrome/android/java/res/values/dimens.xml | 3 | ||||
-rw-r--r-- | chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkRecyclerView.java | 41 |
2 files changed, 44 insertions, 0 deletions
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml index d86dfc4..abc1c6d 100644 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml @@ -294,4 +294,7 @@ <!-- The media_session_icon_size is just big enough to make sure Android doesn't discard the icon but otherwise, the icon is meant to be a flat color so it doesn't really matter. --> <dimen name="media_session_icon_size">48dp</dimen> + + <!-- Offline pages dimensions --> + <dimen name="offline_page_item_vertical_spacing">40dp</dimen> </resources> diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkRecyclerView.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkRecyclerView.java index 5631536..edadd53 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkRecyclerView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkRecyclerView.java @@ -5,6 +5,7 @@ package org.chromium.chrome.browser.enhancedbookmarks; import android.content.Context; +import android.graphics.Rect; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; @@ -12,6 +13,7 @@ import android.view.View; import android.widget.Checkable; import org.chromium.base.VisibleForTesting; +import org.chromium.chrome.R; import org.chromium.components.bookmarks.BookmarkId; import java.util.List; @@ -24,6 +26,24 @@ public class EnhancedBookmarkRecyclerView extends RecyclerView implements private EnhancedBookmarkDelegate mDelegate; private View mEmptyView; + private RecyclerView.ItemDecoration mVerticalSpaceItemDecoration; + + /** + * Provides a way to override the default spacing between 2 items in RecyclerView. + */ + private static class VerticalSpaceItemDecoration extends RecyclerView.ItemDecoration { + private final int mSpacing; + + public VerticalSpaceItemDecoration(int spacing) { + this.mSpacing = spacing; + } + + @Override + public void getItemOffsets(Rect outRect, View view, RecyclerView parent, + RecyclerView.State state) { + outRect.bottom = mSpacing; + } + } /** * Constructs a new instance of enhanced bookmark recycler view. @@ -103,16 +123,37 @@ public class EnhancedBookmarkRecyclerView extends RecyclerView implements @Override public void onAllBookmarksStateSet() { scrollToPosition(0); + + // Restores to the default vertical spacing. + if (mVerticalSpaceItemDecoration != null) { + removeItemDecoration(mVerticalSpaceItemDecoration); + mVerticalSpaceItemDecoration = null; + } } @Override public void onFolderStateSet(BookmarkId folder) { scrollToPosition(0); + + // Restores to the default vertical spacing. + if (mVerticalSpaceItemDecoration != null) { + removeItemDecoration(mVerticalSpaceItemDecoration); + mVerticalSpaceItemDecoration = null; + } } @Override public void onFilterStateSet(EnhancedBookmarkFilter filter) { + assert filter == EnhancedBookmarkFilter.OFFLINE_PAGES; scrollToPosition(0); + + // For "Saved offline" filter view, more spacing is needed between 2 items since the added + // line to show offline page size eats up the default spacing. + if (mVerticalSpaceItemDecoration == null) { + mVerticalSpaceItemDecoration = + new VerticalSpaceItemDecoration(R.dimen.offline_page_item_vertical_spacing); + addItemDecoration(mVerticalSpaceItemDecoration); + } } @Override |