From 48b71d83d50300edb294eb326cfe1a69ece12c21 Mon Sep 17 00:00:00 2001 From: Floens Date: Tue, 2 Jan 2018 19:05:32 +0100 Subject: [PATCH] use the theme colors for the fastscroller --- .../chan/ui/layout/ThreadListLayout.java | 26 +---------- .../chan/ui/view/FastScrollerHelper.java | 45 +++++++++++++++++++ ...recyclerview_fastscroll_thumb_selector.xml | 29 ------------ ...recyclerview_fastscroll_track_selector.xml | 29 ------------ 4 files changed, 47 insertions(+), 82 deletions(-) create mode 100644 Clover/app/src/main/java/org/floens/chan/ui/view/FastScrollerHelper.java delete mode 100644 Clover/app/src/main/res/drawable/recyclerview_fastscroll_thumb_selector.xml delete mode 100644 Clover/app/src/main/res/drawable/recyclerview_fastscroll_track_selector.xml diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java index c7f0101d..6c17055b 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java @@ -20,12 +20,9 @@ package org.floens.chan.ui.layout; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; -import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.StateListDrawable; import android.os.Handler; import android.os.Looper; import android.support.v7.widget.GridLayoutManager; @@ -53,6 +50,7 @@ import org.floens.chan.ui.cell.PostCellInterface; import org.floens.chan.ui.cell.ThreadStatusCell; import org.floens.chan.ui.toolbar.Toolbar; import org.floens.chan.ui.view.FastScroller; +import org.floens.chan.ui.view.FastScrollerHelper; import org.floens.chan.ui.view.ThumbnailView; import org.floens.chan.utils.AndroidUtils; @@ -63,7 +61,6 @@ import static org.floens.chan.utils.AndroidUtils.ROBOTO_MEDIUM; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; import static org.floens.chan.utils.AndroidUtils.getDimen; -import static org.floens.chan.utils.AndroidUtils.getRes; /** * A layout that wraps around a {@link RecyclerView} and a {@link ReplyLayout} to manage showing and replying to posts. @@ -548,26 +545,7 @@ public class ThreadListLayout extends FrameLayout implements ReplyLayout.ReplyLa } } else { if (fastScroller == null) { - Resources resources = getResources(); - StateListDrawable verticalThumbDrawable = (StateListDrawable) resources - .getDrawable(R.drawable.recyclerview_fastscroll_thumb_selector); - Drawable verticalTrackDrawable = getRes() - .getDrawable(R.drawable.recyclerview_fastscroll_track_selector); - StateListDrawable horizontalThumbDrawable = (StateListDrawable) resources - .getDrawable(R.drawable.recyclerview_fastscroll_thumb_selector); - Drawable horizontalTrackDrawable = resources - .getDrawable(R.drawable.recyclerview_fastscroll_track_selector); - - final int defaultThickness = dp(4); - final int targetWidth = dp(8); - final int minimumRange = dp(50); - final int margin = dp(0); - final int thumbMinLength = dp(23); - - fastScroller = new FastScroller(recyclerView, - verticalThumbDrawable, verticalTrackDrawable, - horizontalThumbDrawable, horizontalTrackDrawable, - defaultThickness, minimumRange, margin, thumbMinLength, targetWidth); + fastScroller = FastScrollerHelper.create(recyclerView); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/FastScrollerHelper.java b/Clover/app/src/main/java/org/floens/chan/ui/view/FastScrollerHelper.java new file mode 100644 index 00000000..ca250927 --- /dev/null +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/FastScrollerHelper.java @@ -0,0 +1,45 @@ +package org.floens.chan.ui.view; + +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.StateListDrawable; +import android.support.v7.widget.RecyclerView; + +import static org.floens.chan.ui.theme.ThemeHelper.theme; +import static org.floens.chan.utils.AndroidUtils.dp; + +/** + * Helper for attaching a FastScroller with the correct theme colors and default values that + * make it look like a normal scrollbar. + */ +public class FastScrollerHelper { + public static FastScroller create(RecyclerView recyclerView) { + StateListDrawable thumb = getThumb(); + StateListDrawable track = getTrack(); + + final int defaultThickness = dp(4); + final int targetWidth = dp(8); + final int minimumRange = dp(50); + final int margin = dp(0); + final int thumbMinLength = dp(23); + + return new FastScroller(recyclerView, + thumb, track, thumb, track, + defaultThickness, minimumRange, margin, thumbMinLength, targetWidth); + } + + private static StateListDrawable getThumb() { + StateListDrawable list = new StateListDrawable(); + list.addState(new int[]{android.R.attr.state_pressed}, + new ColorDrawable(theme().accentColor.color)); + list.addState(new int[]{}, new ColorDrawable(theme().textSecondary)); + return list; + } + + private static StateListDrawable getTrack() { + StateListDrawable list = new StateListDrawable(); + list.addState(new int[]{android.R.attr.state_pressed}, + new ColorDrawable(theme().textHint)); + list.addState(new int[]{}, new ColorDrawable(0)); + return list; + } +} diff --git a/Clover/app/src/main/res/drawable/recyclerview_fastscroll_thumb_selector.xml b/Clover/app/src/main/res/drawable/recyclerview_fastscroll_thumb_selector.xml deleted file mode 100644 index 9aeee17d..00000000 --- a/Clover/app/src/main/res/drawable/recyclerview_fastscroll_thumb_selector.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - diff --git a/Clover/app/src/main/res/drawable/recyclerview_fastscroll_track_selector.xml b/Clover/app/src/main/res/drawable/recyclerview_fastscroll_track_selector.xml deleted file mode 100644 index 18336b0f..00000000 --- a/Clover/app/src/main/res/drawable/recyclerview_fastscroll_track_selector.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - -