summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/view
diff options
context:
space:
mode:
authorEbrahim Byagowi <ebrahim@gnu.org>2020-04-08 15:32:51 +0430
committerEbrahim Byagowi <ebrahim@gnu.org>2020-04-21 19:30:16 +0430
commitcedfb27ccaef74d954bb3a8f0ea471be63a1375c (patch)
tree40b50e8feef451ab45e015f217d02cc174578829 /app/src/main/java/de/danoeh/antennapod/view
parent3a86745e8144baa6d0a2cdc88aa0e29d1fd6e66c (diff)
downloadAntennaPod-cedfb27ccaef74d954bb3a8f0ea471be63a1375c.zip
Port AudioPlayer's viewpager to ViewPager2, improve RTL support
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/view')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java b/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java
index 53a95eede..780ee0d88 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java
@@ -1,15 +1,17 @@
package de.danoeh.antennapod.view;
+import android.animation.ArgbEvaluator;
import android.content.Context;
import android.content.res.TypedArray;
-import android.database.DataSetObserver;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
+
import androidx.annotation.Nullable;
-import androidx.vectordrawable.graphics.drawable.ArgbEvaluator;
-import androidx.viewpager.widget.ViewPager;
+import androidx.core.view.ViewCompat;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.viewpager2.widget.ViewPager2;
public class PagerIndicatorView extends View {
private final Paint paint = new Paint();
@@ -38,26 +40,29 @@ public class PagerIndicatorView extends View {
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
- int[] colorAttrs = new int[] { android.R.attr.textColorSecondary };
+ int[] colorAttrs = new int[]{android.R.attr.textColorSecondary};
TypedArray a = getContext().obtainStyledAttributes(colorAttrs);
circleColorHighlight = a.getColor(0, 0xffffffff);
circleColor = (Integer) new ArgbEvaluator().evaluate(0.8f, 0x00ffffff, circleColorHighlight);
a.recycle();
}
- public void setViewPager(ViewPager pager) {
- numPages = pager.getAdapter().getCount();
- pager.getAdapter().registerDataSetObserver(new DataSetObserver() {
+ public void setViewPager(ViewPager2 pager) {
+ numPages = pager.getAdapter().getItemCount();
+ pager.getAdapter().registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
- numPages = pager.getAdapter().getCount();
+ numPages = pager.getAdapter().getItemCount();
invalidate();
}
});
- pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
+ pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
PagerIndicatorView.this.position = position + positionOffset;
+ if (ViewCompat.getLayoutDirection(pager) == ViewCompat.LAYOUT_DIRECTION_RTL) {
+ PagerIndicatorView.this.position = numPages - 1 - PagerIndicatorView.this.position;
+ }
invalidate();
}
});