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 @@
-
-
- -
-
-
-
-
- -
-
-
-
-
-