summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle1
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java19
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java19
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java14
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java14
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java22
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/DownloadStatisticsFragment.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/PlaybackStatisticsFragment.java10
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java105
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/PieChartView.java11
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/SwipeGestureDetector.java44
-rw-r--r--app/src/main/res/layout/mediaplayerinfo_activity.xml14
12 files changed, 171 insertions, 108 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 498111189..9e862d982 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -161,7 +161,6 @@ dependencies {
implementation "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
implementation "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
implementation "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion"
- implementation "com.githang:viewpagerindicator:2.5.1@aar"
implementation "com.github.shts:TriangleLabelView:$triangleLabelViewVersion"
implementation 'com.leinardi.android:speed-dial:3.0.0'
implementation "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index fab84078e..62fd4b515 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -111,20 +111,13 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi
private Toolbar toolbar;
private ExternalPlayerFragment externalPlayerFragment;
private DrawerLayout drawerLayout;
-
private View navDrawer;
private ListView navList;
private NavListAdapter navAdapter;
private int mPosition = -1;
-
private ActionBarDrawerToggle drawerToggle;
-
private CharSequence currentTitle;
-
- private ProgressDialog pd;
-
private Disposable disposable;
-
private long lastBackButtonPressTime = 0;
@NonNull
@@ -282,10 +275,6 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi
return drawerLayout != null && navDrawer != null && drawerLayout.isDrawerOpen(navDrawer);
}
- public List<Feed> getFeeds() {
- return (navDrawerData != null) ? navDrawerData.feeds : null;
- }
-
private void loadFragment(int index, Bundle args) {
Log.d(TAG, "loadFragment(index: " + index + ", args: " + args + ")");
if (index < navAdapter.getSubscriptionOffset()) {
@@ -518,9 +507,6 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi
if (disposable != null) {
disposable.dispose();
}
- if(pd != null) {
- pd.dismiss();
- }
}
@@ -849,9 +835,4 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi
super.onNewIntent(intent);
setIntent(intent);
}
-
- @VisibleForTesting
- public void updateNavDrawer() {
- navAdapter.notifyDataSetChanged();
- }
}
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java
index 21f4ad5be..3b81dbd0b 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java
@@ -28,8 +28,6 @@ import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
-import com.viewpagerindicator.CirclePageIndicator;
-
import java.util.List;
import de.danoeh.antennapod.R;
@@ -38,6 +36,7 @@ import de.danoeh.antennapod.core.asynctask.FeedRemover;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.event.FeedListUpdateEvent;
import de.danoeh.antennapod.core.event.MessageEvent;
+import de.danoeh.antennapod.core.feed.Chapter;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.preferences.UserPreferences;
@@ -59,6 +58,7 @@ import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.fragment.SubscriptionFragment;
import de.danoeh.antennapod.menuhandler.NavDrawerActivity;
+import de.danoeh.antennapod.view.PagerIndicatorView;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
@@ -102,6 +102,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
private int mPosition = -1;
private ViewPager pager;
+ private PagerIndicatorView pageIndicator;
private MediaplayerInfoPagerAdapter pagerAdapter;
private Disposable disposable;
@@ -261,8 +262,10 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
pager.setOffscreenPageLimit(3);
pagerAdapter = new MediaplayerInfoPagerAdapter(getSupportFragmentManager());
pager.setAdapter(pagerAdapter);
- CirclePageIndicator pageIndicator = findViewById(R.id.page_indicator);
+ pageIndicator = findViewById(R.id.page_indicator);
pageIndicator.setViewPager(pager);
+ pageIndicator.setOnClickListener(v
+ -> pager.setCurrentItem((pager.getCurrentItem() + 1) % pager.getChildCount()));
loadLastFragment();
pager.onSaveInstanceState();
@@ -270,6 +273,16 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem
}
@Override
+ boolean loadMediaInfo() {
+ if (controller != null) {
+ List<Chapter> chapters = controller.getMedia().getChapters();
+ boolean hasChapters = chapters != null && !chapters.isEmpty();
+ pageIndicator.setDisabledPage(hasChapters ? -1 : 2);
+ }
+ return super.loadMediaInfo();
+ }
+
+ @Override
protected void onReloadNotification(int notificationCode) {
if (notificationCode == PlaybackService.EXTRA_CODE_VIDEO) {
Log.d(TAG, "ReloadNotification received, switching to Videoplayer now");
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java
index 227eea6e0..c49d2f39d 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadStatisticsListAdapter.java
@@ -3,10 +3,12 @@ package de.danoeh.antennapod.adapter;
import android.content.Context;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.view.PieChartView;
+import java.util.List;
+
/**
* Adapter for the download statistics list.
*/
@@ -27,17 +29,17 @@ public class DownloadStatisticsListAdapter extends StatisticsListAdapter {
}
@Override
- PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData) {
- float[] dataValues = new float[statisticsData.feeds.size()];
- for (int i = 0; i < statisticsData.feeds.size(); i++) {
- DBReader.StatisticsItem item = statisticsData.feeds.get(i);
+ PieChartView.PieChartData generateChartData(List<StatisticsItem> statisticsData) {
+ float[] dataValues = new float[statisticsData.size()];
+ for (int i = 0; i < statisticsData.size(); i++) {
+ StatisticsItem item = statisticsData.get(i);
dataValues[i] = item.totalDownloadSize;
}
return new PieChartView.PieChartData(dataValues);
}
@Override
- void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem item) {
+ void onBindFeedViewHolder(StatisticsHolder holder, StatisticsItem item) {
holder.value.setText(Converter.byteToString(item.totalDownloadSize));
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java
index 8471569d3..c5a73c53e 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/PlaybackStatisticsListAdapter.java
@@ -4,10 +4,12 @@ import android.content.Context;
import androidx.appcompat.app.AlertDialog;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.view.PieChartView;
+import java.util.List;
+
/**
* Adapter for the playback statistics list.
*/
@@ -34,17 +36,17 @@ public class PlaybackStatisticsListAdapter extends StatisticsListAdapter {
}
@Override
- PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData) {
- float[] dataValues = new float[statisticsData.feeds.size()];
- for (int i = 0; i < statisticsData.feeds.size(); i++) {
- DBReader.StatisticsItem item = statisticsData.feeds.get(i);
+ PieChartView.PieChartData generateChartData(List<StatisticsItem> statisticsData) {
+ float[] dataValues = new float[statisticsData.size()];
+ for (int i = 0; i < statisticsData.size(); i++) {
+ StatisticsItem item = statisticsData.get(i);
dataValues[i] = countAll ? item.timePlayedCountAll : item.timePlayed;
}
return new PieChartView.PieChartData(dataValues);
}
@Override
- void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem statsItem) {
+ void onBindFeedViewHolder(StatisticsHolder holder, StatisticsItem statsItem) {
long time = countAll ? statsItem.timePlayedCountAll : statsItem.timePlayed;
holder.value.setText(Converter.shortLocalizedDuration(context, time));
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java
index db65190f2..5f019d1db 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/StatisticsListAdapter.java
@@ -14,9 +14,11 @@ import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
-import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.view.PieChartView;
+import java.util.List;
+
/**
* Parent Adapter for the playback and download statistics list.
*/
@@ -24,7 +26,7 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle
private static final int TYPE_HEADER = 0;
private static final int TYPE_FEED = 1;
final Context context;
- private DBReader.StatisticsData statisticsData;
+ private List<StatisticsItem> statisticsData;
PieChartView.PieChartData pieChartData;
StatisticsListAdapter(Context context) {
@@ -33,14 +35,14 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle
@Override
public int getItemCount() {
- return statisticsData.feeds.size() + 1;
+ return statisticsData.size() + 1;
}
- public DBReader.StatisticsItem getItem(int position) {
+ public StatisticsItem getItem(int position) {
if (position == 0) {
return null;
}
- return statisticsData.feeds.get(position - 1);
+ return statisticsData.get(position - 1);
}
@Override
@@ -69,7 +71,7 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle
holder.totalTime.setText(getHeaderValue());
} else {
StatisticsHolder holder = (StatisticsHolder) h;
- DBReader.StatisticsItem statsItem = statisticsData.feeds.get(position - 1);
+ StatisticsItem statsItem = statisticsData.get(position - 1);
Glide.with(context)
.load(statsItem.feed.getImageLocation())
.apply(new RequestOptions()
@@ -86,8 +88,8 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle
}
}
- public void update(DBReader.StatisticsData statistics) {
- this.statisticsData = statistics;
+ public void update(List<StatisticsItem> statistics) {
+ statisticsData = statistics;
pieChartData = generateChartData(statistics);
notifyDataSetChanged();
}
@@ -122,7 +124,7 @@ public abstract class StatisticsListAdapter extends RecyclerView.Adapter<Recycle
abstract String getHeaderValue();
- abstract PieChartView.PieChartData generateChartData(DBReader.StatisticsData statisticsData);
+ abstract PieChartView.PieChartData generateChartData(List<StatisticsItem> statisticsData);
- abstract void onBindFeedViewHolder(StatisticsHolder holder, DBReader.StatisticsItem item);
+ abstract void onBindFeedViewHolder(StatisticsHolder holder, StatisticsItem item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/DownloadStatisticsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/DownloadStatisticsFragment.java
index 34ea6d6e3..3059d7ad2 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/DownloadStatisticsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/DownloadStatisticsFragment.java
@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.DownloadStatisticsListAdapter;
import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -23,6 +24,7 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import java.util.Collections;
+import java.util.List;
/**
* Displays the 'download statistics' screen
@@ -71,8 +73,8 @@ public class DownloadStatisticsFragment extends Fragment {
disposable =
Observable.fromCallable(() -> {
- DBReader.StatisticsData statisticsData = DBReader.getStatistics();
- Collections.sort(statisticsData.feeds, (item1, item2) ->
+ List<StatisticsItem> statisticsData = DBReader.getStatistics();
+ Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.totalDownloadSize, item2.totalDownloadSize));
return statisticsData;
})
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/PlaybackStatisticsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/PlaybackStatisticsFragment.java
index bed767e8e..d25dff743 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/PlaybackStatisticsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/PlaybackStatisticsFragment.java
@@ -27,6 +27,7 @@ import de.danoeh.antennapod.adapter.PlaybackStatisticsListAdapter;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBWriter;
+import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
import io.reactivex.Completable;
import io.reactivex.Observable;
@@ -35,6 +36,7 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import java.util.Collections;
+import java.util.List;
/**
* Displays the 'playback statistics' screen
@@ -180,13 +182,13 @@ public class PlaybackStatisticsFragment extends Fragment {
}, error -> Log.e(TAG, Log.getStackTraceString(error)));
}
- private DBReader.StatisticsData fetchStatistics() {
- DBReader.StatisticsData statisticsData = DBReader.getStatistics();
+ private List<StatisticsItem> fetchStatistics() {
+ List<StatisticsItem> statisticsData = DBReader.getStatistics();
if (countAll) {
- Collections.sort(statisticsData.feeds, (item1, item2) ->
+ Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.timePlayedCountAll, item2.timePlayedCountAll));
} else {
- Collections.sort(statisticsData.feeds, (item1, item2) ->
+ Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.timePlayed, item2.timePlayed));
}
return statisticsData;
diff --git a/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java b/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java
new file mode 100644
index 000000000..60ef820a9
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/view/PagerIndicatorView.java
@@ -0,0 +1,105 @@
+package de.danoeh.antennapod.view;
+
+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;
+
+public class PagerIndicatorView extends View {
+ private final Paint paint = new Paint();
+ private float position = 0;
+ private int numPages = 0;
+ private int disabledPage = -1;
+ private int circleColor = 0;
+ private int circleColorHighlight = -1;
+
+ public PagerIndicatorView(Context context) {
+ super(context);
+ setup();
+ }
+
+ public PagerIndicatorView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ setup();
+ }
+
+ public PagerIndicatorView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ setup();
+ }
+
+ private void setup() {
+ paint.setAntiAlias(true);
+ paint.setStyle(Paint.Style.FILL);
+
+ 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() {
+ @Override
+ public void onChanged() {
+ numPages = pager.getAdapter().getCount();
+ invalidate();
+ }
+ });
+ pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+ PagerIndicatorView.this.position = position + positionOffset;
+ invalidate();
+ }
+ });
+ }
+
+ public void setDisabledPage(int disabledPage) {
+ this.disabledPage = disabledPage;
+ invalidate();
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+
+ for (int i = 0; i < numPages; i++) {
+ if ((int) Math.floor(position) == i) {
+ // This is the current dot
+ drawCircle(canvas, i, (float) (1 - (position - Math.floor(position))));
+ } else if ((int) Math.ceil(position) == i) {
+ // This is the next dot
+ drawCircle(canvas, i, (float) (position - Math.floor(position)));
+ } else {
+ drawCircle(canvas, i, 0);
+ }
+ }
+ }
+
+ private void drawCircle(Canvas canvas, int position, float frac) {
+ float circleRadiusSmall = canvas.getHeight() * 0.26f;
+ float circleRadiusBig = canvas.getHeight() * 0.35f;
+ float circleRadiusDelta = (circleRadiusBig - circleRadiusSmall);
+ float start = 0.5f * (canvas.getWidth() - numPages * 1.5f * canvas.getHeight());
+ paint.setStrokeWidth(canvas.getHeight() * 0.3f);
+
+ if (position == disabledPage) {
+ paint.setStyle(Paint.Style.STROKE);
+ } else {
+ paint.setStyle(Paint.Style.FILL_AND_STROKE);
+ }
+
+ paint.setColor((Integer) new ArgbEvaluator().evaluate(frac, circleColor, circleColorHighlight));
+ canvas.drawCircle(start + (position * 1.5f + 0.75f) * canvas.getHeight(), 0.5f * canvas.getHeight(),
+ circleRadiusSmall + frac * circleRadiusDelta, paint);
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/de/danoeh/antennapod/view/PieChartView.java b/app/src/main/java/de/danoeh/antennapod/view/PieChartView.java
index c0c74c42c..ab4920119 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/PieChartView.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/PieChartView.java
@@ -81,7 +81,7 @@ public class PieChartView extends AppCompatImageView {
}
public boolean isLargeEnoughToDisplay(int index) {
- return getPercentageOfItem(index) > 0.05;
+ return getPercentageOfItem(index) > 0.04;
}
public int getColorOfItem(int index) {
@@ -94,7 +94,6 @@ public class PieChartView extends AppCompatImageView {
private static class PieChartDrawable extends Drawable {
private static final float PADDING_DEGREES = 3f;
- private static final float STROKE_SIZE = 15f;
private PieChartData data;
private final Paint paint;
@@ -104,14 +103,16 @@ public class PieChartView extends AppCompatImageView {
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
- paint.setStrokeWidth(STROKE_SIZE);
}
@Override
public void draw(@NonNull Canvas canvas) {
- float radius = getBounds().height() - STROKE_SIZE;
+ final float strokeSize = getBounds().height() / 30f;
+ paint.setStrokeWidth(strokeSize);
+
+ float radius = getBounds().height() - strokeSize;
float center = getBounds().width() / 2.f;
- RectF arcBounds = new RectF(center - radius, STROKE_SIZE, center + radius, STROKE_SIZE + radius * 2);
+ RectF arcBounds = new RectF(center - radius, strokeSize, center + radius, strokeSize + radius * 2);
float startAngle = 180;
for (int i = 0; i < data.values.length; i++) {
diff --git a/app/src/main/java/de/danoeh/antennapod/view/SwipeGestureDetector.java b/app/src/main/java/de/danoeh/antennapod/view/SwipeGestureDetector.java
deleted file mode 100644
index f4ee092df..000000000
--- a/app/src/main/java/de/danoeh/antennapod/view/SwipeGestureDetector.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package de.danoeh.antennapod.view;
-
-import android.util.Log;
-import android.view.GestureDetector;
-import android.view.MotionEvent;
-
-public class SwipeGestureDetector extends GestureDetector.SimpleOnGestureListener {
-
- private static final String TAG = "SwipeGestureDetector";
-
- private static final int SWIPE_MIN_DISTANCE = 120;
- private static final int SWIPE_MAX_OFF_PATH = 250;
- private static final int SWIPE_THRESHOLD_VELOCITY = 200;
-
- private final OnSwipeGesture callback;
-
- public SwipeGestureDetector(OnSwipeGesture callback) {
- this.callback = callback;
- }
-
- @Override
- public boolean onDown(MotionEvent e) {
- return true;
- }
-
- @Override
- public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
- try {
- if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
- return false;
- if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
- && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
- return callback.onSwipeRightToLeft();
- } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
- && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
- return callback.onSwipeLeftToRight();
- }
- } catch (Exception e) {
- Log.d(TAG, Log.getStackTraceString(e));
- }
- return false;
- }
-
-}
diff --git a/app/src/main/res/layout/mediaplayerinfo_activity.xml b/app/src/main/res/layout/mediaplayerinfo_activity.xml
index 636cbb015..0f6101795 100644
--- a/app/src/main/res/layout/mediaplayerinfo_activity.xml
+++ b/app/src/main/res/layout/mediaplayerinfo_activity.xml
@@ -26,16 +26,14 @@
android:minHeight="?attr/actionBarSize"
tools:background="@android:color/darker_gray"/>
- <com.viewpagerindicator.CirclePageIndicator
+ <de.danoeh.antennapod.view.PagerIndicatorView
android:id="@+id/page_indicator"
- android:layout_height="wrap_content"
- android:layout_width="match_parent"
+ android:layout_height="8dp"
+ android:layout_width="40dp"
android:layout_marginTop="-12dp"
- android:layout_marginBottom="4dp"
- android:background="@android:color/transparent"
- app:fillColor="?android:attr/textColorSecondary"
- app:strokeColor="?android:attr/textColorSecondary"
- app:radius="4dp" />
+ android:paddingBottom="4dp"
+ android:layout_gravity="center"
+ android:background="@android:color/transparent"/>
</com.google.android.material.appbar.AppBarLayout>