diff --git a/.tx/config b/.tx/config
index d7356e199..ea1c0ccef 100644
--- a/.tx/config
+++ b/.tx/config
@@ -24,7 +24,7 @@ trans.gl = core/src/main/res/values-gl-rES/strings.xml
trans.he_IL = core/src/main/res/values-iw-rIL/strings.xml
trans.hi_IN = core/src/main/res/values-hi-rIN/strings.xml
trans.hu = core/src/main/res/values-hu/strings.xml
-trans.id = core/src/main/res/values-id/strings.xml
+trans.id = core/src/main/res/values-in/strings.xml
trans.it_IT = core/src/main/res/values-it/strings.xml
trans.is = core/src/main/res/values-is-rIS/strings.xml
trans.ja = core/src/main/res/values-ja/strings.xml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e966b997..fb429f026 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,17 @@
Change Log
==========
+Version 1.7.3
+-------------
+* Display episode image on widget (by @brad)
+* Added checkbox to keep queue sorted (by @damoasda)
+* New UI for "Add podcast" screen (by @ByteHamster)
+* Added batch editing to the queue (by @ByteHamster)
+* Added option to adapt remaining time to playback speed (by @CedricCabessa)
+* Removed broken Flattr integration (by @ByteHamster)
+* Added filter to "All episodes" list (by @jhunnius)
+* Tons of bug fixes and performance improvements
+
Version 1.7.2
-------------
* Added configurable behavior of the back button
diff --git a/app/build.gradle b/app/build.gradle
index 7545386a2..f9ef8a7ef 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,8 +18,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 1070306
- versionName "1.7.3-RC6"
+ versionCode 1070395
+ versionName "1.7.3"
testApplicationId "de.test.antennapod"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
generatedDensities = []
diff --git a/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java b/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
index 3d8417bf6..4158fd31c 100644
--- a/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
+++ b/app/src/androidTest/java/de/test/antennapod/util/service/download/HTTPBin.java
@@ -72,20 +72,6 @@ public class HTTPBin extends NanoHTTPD {
return servedFiles.size() - 1;
}
- /**
- * Removes the file with the given ID from the server.
- *
- * @return True if a file was removed, false otherwise
- */
- public synchronized boolean removeFile(int id) {
- if (id < 0) throw new IllegalArgumentException("ID < 0");
- if (id >= servedFiles.size()) {
- return false;
- } else {
- return servedFiles.remove(id) != null;
- }
- }
-
public synchronized File accessFile(int id) {
if (id < 0 || id >= servedFiles.size()) {
return null;
diff --git a/app/src/free/java/de/danoeh/antennapod/activity/CastEnabledActivity.java b/app/src/free/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
index 79d7e02f2..519d4c61b 100644
--- a/app/src/free/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
+++ b/app/src/free/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
@@ -7,212 +7,9 @@ import android.support.v7.app.AppCompatActivity;
* network.
*/
public abstract class CastEnabledActivity extends AppCompatActivity {
-// implements SharedPreferences.OnSharedPreferenceChangeListener {
public static final String TAG = "CastEnabledActivity";
-// protected CastManager castManager;
-// protected SwitchableMediaRouteActionProvider mediaRouteActionProvider;
-// private final CastButtonVisibilityManager castButtonVisibilityManager = new CastButtonVisibilityManager();
-//
-// @Override
-// protected void onCreate(Bundle savedInstanceState) {
-// super.onCreate(savedInstanceState);
-//
-// PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).
-// registerOnSharedPreferenceChangeListener(this);
-//
-// castManager = CastManager.getInstance();
-// castManager.addCastConsumer(castConsumer);
-// castButtonVisibilityManager.setPrefEnabled(UserPreferences.isCastEnabled());
-// onCastConnectionChanged(castManager.isConnected());
-// }
-//
-// @Override
-// protected void onDestroy() {
-// PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
-// .unregisterOnSharedPreferenceChangeListener(this);
-// castManager.removeCastConsumer(castConsumer);
-// super.onDestroy();
-// }
-//
-// @Override
-// @CallSuper
-// public boolean onCreateOptionsMenu(Menu menu) {
-// super.onCreateOptionsMenu(menu);
-// getMenuInflater().inflate(R.menu.cast_enabled, menu);
-// castButtonVisibilityManager.setMenu(menu);
-// return true;
-// }
-//
-// @Override
-// @CallSuper
-// public boolean onPrepareOptionsMenu(Menu menu) {
-// super.onPrepareOptionsMenu(menu);
-// mediaRouteActionProvider = castManager
-// .addMediaRouterButton(menu.findItem(R.id.media_route_menu_item));
-// mediaRouteActionProvider.setEnabled(castButtonVisibilityManager.shouldEnable());
-// return true;
-// }
-//
-// @Override
-// protected void onResume() {
-// super.onResume();
-// castButtonVisibilityManager.setResumed(true);
-// }
-//
-// @Override
-// protected void onPause() {
-// super.onPause();
-// castButtonVisibilityManager.setResumed(false);
-// }
-//
-// @Override
-// public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
-// if (UserPreferences.PREF_CAST_ENABLED.equals(key)) {
-// boolean newValue = UserPreferences.isCastEnabled();
-// Log.d(TAG, "onSharedPreferenceChanged(), isCastEnabled set to " + newValue);
-// castButtonVisibilityManager.setPrefEnabled(newValue);
-// // PlaybackService has its own listener, so if it's active we don't have to take action here.
-// if (!newValue && !PlaybackService.isRunning) {
-// CastManager.getInstance().disconnect();
-// }
-// }
-// }
-//
-// CastConsumer castConsumer = new DefaultCastConsumer() {
-// @Override
-// public void onApplicationConnected(ApplicationMetadata appMetadata, String sessionId, boolean wasLaunched) {
-// onCastConnectionChanged(true);
-// }
-//
-// @Override
-// public void onDisconnected() {
-// onCastConnectionChanged(false);
-// }
-// };
-//
-// private void onCastConnectionChanged(boolean connected) {
-// if (connected) {
-// castButtonVisibilityManager.onConnected();
-// setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
-// } else {
-// castButtonVisibilityManager.onDisconnected();
-// setVolumeControlStream(AudioManager.STREAM_MUSIC);
-// }
-// }
-//
-// /**
-// * Should be called by any activity or fragment for which the cast button should be shown.
-// *
-// * @param showAsAction refer to {@link MenuItem#setShowAsAction(int)}
-// */
public final void requestCastButton(int showAsAction) {
// no-op
}
-
-// private class CastButtonVisibilityManager {
-// private volatile boolean prefEnabled = false;
-// private volatile boolean viewRequested = false;
-// private volatile boolean resumed = false;
-// private volatile boolean connected = false;
-// private volatile int showAsAction = MenuItem.SHOW_AS_ACTION_IF_ROOM;
-// private Menu menu;
-//
-// public synchronized void setPrefEnabled(boolean newValue) {
-// if (prefEnabled != newValue && resumed && (viewRequested || connected)) {
-// if (newValue) {
-// castManager.incrementUiCounter();
-// } else {
-// castManager.decrementUiCounter();
-// }
-// }
-// prefEnabled = newValue;
-// if (mediaRouteActionProvider != null) {
-// mediaRouteActionProvider.setEnabled(prefEnabled && (viewRequested || connected));
-// }
-// }
-//
-// public synchronized void setResumed(boolean newValue) {
-// if (resumed == newValue) {
-// Log.e(TAG, "resumed should never change to the same value");
-// return;
-// }
-// resumed = newValue;
-// if (prefEnabled && (viewRequested || connected)) {
-// if (resumed) {
-// castManager.incrementUiCounter();
-// } else {
-// castManager.decrementUiCounter();
-// }
-// }
-// }
-//
-// public synchronized void setViewRequested(boolean newValue) {
-// if (viewRequested != newValue && resumed && prefEnabled && !connected) {
-// if (newValue) {
-// castManager.incrementUiCounter();
-// } else {
-// castManager.decrementUiCounter();
-// }
-// }
-// viewRequested = newValue;
-// if (mediaRouteActionProvider != null) {
-// mediaRouteActionProvider.setEnabled(prefEnabled && (viewRequested || connected));
-// }
-// }
-//
-// public synchronized void setConnected(boolean newValue) {
-// if (connected != newValue && resumed && prefEnabled && !prefEnabled) {
-// if (newValue) {
-// castManager.incrementUiCounter();
-// } else {
-// castManager.decrementUiCounter();
-// }
-// }
-// connected = newValue;
-// if (mediaRouteActionProvider != null) {
-// mediaRouteActionProvider.setEnabled(prefEnabled && (viewRequested || connected));
-// }
-// }
-//
-// public synchronized boolean shouldEnable() {
-// return prefEnabled && viewRequested;
-// }
-//
-// public void setMenu(Menu menu) {
-// setViewRequested(false);
-// showAsAction = MenuItem.SHOW_AS_ACTION_IF_ROOM;
-// this.menu = menu;
-// setShowAsAction();
-// }
-//
-// public void requestCastButton(int showAsAction) {
-// setViewRequested(true);
-// this.showAsAction = showAsAction;
-// setShowAsAction();
-// }
-//
-// public void onConnected() {
-// setConnected(true);
-// setShowAsAction();
-// }
-//
-// public void onDisconnected() {
-// setConnected(false);
-// setShowAsAction();
-// }
-//
-// private void setShowAsAction() {
-// if (menu == null) {
-// Log.d(TAG, "setShowAsAction() without a menu");
-// return;
-// }
-// MenuItem item = menu.findItem(R.id.media_route_menu_item);
-// if (item == null) {
-// Log.e(TAG, "setShowAsAction(), but cast button not inflated");
-// return;
-// }
-// MenuItemCompat.setShowAsAction(item, connected? MenuItem.SHOW_AS_ACTION_ALWAYS : showAsAction);
-// }
-// }
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 73af654e9..707850837 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -36,7 +36,7 @@
android:usesCleartextTraffic="true"
android:logo="@mipmap/ic_launcher">
+ android:resource="@drawable/ic_antenna" />
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 339ce01c2..a0a3c85c2 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -240,7 +240,7 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean(PREF_IS_FIRST_LAUNCH, false);
- edit.commit();
+ edit.apply();
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
index eb70d8e0b..c3f5d898c 100644
--- a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
+++ b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
@@ -35,6 +35,6 @@ public class PlaybackServiceCallbacksImpl implements PlaybackServiceCallbacks {
@Override
public int getNotificationIconResource(Context context) {
- return R.drawable.ic_stat_antenna_default;
+ return R.drawable.ic_antenna;
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
index 4bebfe4c9..bb8f4df9a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
@@ -87,11 +87,10 @@ public class ChaptersFragment extends ListFragment {
controller = null;
}
- private void scrollTo(int position) {
- getListView().setSelection(position);
- }
-
private int getCurrentChapter(Playable media) {
+ if (media == null || media.getChapters() == null || media.getChapters().size() == 0 || controller == null) {
+ return -1;
+ }
int currentPosition = controller.getPosition();
List chapters = media.getChapters();
@@ -126,8 +125,10 @@ public class ChaptersFragment extends ListFragment {
if (adapter != null) {
adapter.setMedia(media);
adapter.notifyDataSetChanged();
- if (media != null && media.getChapters() != null && media.getChapters().size() != 0) {
- scrollTo(getCurrentChapter(media));
+
+ int positionOfCurrentChapter = getCurrentChapter(media);
+ if (positionOfCurrentChapter != -1) {
+ getListView().setSelection(positionOfCurrentChapter);
}
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
index 1cedb5a91..951dad38e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -149,7 +149,7 @@ public abstract class EpisodesListFragment extends Fragment {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(PREF_SCROLL_POSITION, firstItem);
editor.putFloat(PREF_SCROLL_OFFSET, topOffset);
- editor.commit();
+ editor.apply();
}
private void restoreScrollPosition() {
@@ -162,7 +162,7 @@ public abstract class EpisodesListFragment extends Fragment {
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(PREF_SCROLL_POSITION, 0);
editor.putFloat(PREF_SCROLL_OFFSET, 0.0f);
- editor.commit();
+ editor.apply();
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
index f8ef7f7a3..4e4b40096 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -17,7 +17,6 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -140,13 +139,6 @@ public class FeedItemlistFragment extends ListFragment {
feedID = args.getLong(ARGUMENT_FEED_ID);
}
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = super.onCreateView(inflater, container, savedInstanceState);
- ((ListView) view.findViewById(android.R.id.list)).setFastScrollEnabled(true);
- return view;
- }
-
@Override
public void onStart() {
super.onStart();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StoragePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StoragePreferencesFragment.java
index b4226b546..87d436eda 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StoragePreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/StoragePreferencesFragment.java
@@ -171,7 +171,9 @@ public class StoragePreferencesFragment extends PreferenceFragmentCompat {
return true;
}
- public void unsubscribeExportSubscription() {
+ @Override
+ public void onStop() {
+ super.onStop();
if (disposable != null) {
disposable.dispose();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java
index 7ca43547a..a33faeb69 100644
--- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java
+++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java
@@ -42,10 +42,8 @@ public class PreferenceUpgrader {
}
}
if (oldVersion < 1070300) {
- if (UserPreferences.getMediaPlayer().equals("builtin")) {
- prefs.edit().putString(UserPreferences.PREF_MEDIA_PLAYER,
- UserPreferences.PREF_MEDIA_PLAYER_EXOPLAYER).apply();
- }
+ prefs.edit().putString(UserPreferences.PREF_MEDIA_PLAYER,
+ UserPreferences.PREF_MEDIA_PLAYER_EXOPLAYER).apply();
if (prefs.getBoolean("prefEnableAutoDownloadOnMobile", false)) {
UserPreferences.setAllowMobileAutoDownload(true);
diff --git a/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java b/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java
index 03958508d..5fa6588d9 100644
--- a/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java
+++ b/app/src/main/java/de/danoeh/antennapod/spa/SPAUtil.java
@@ -46,7 +46,7 @@ public class SPAUtil {
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(PREF_HAS_QUERIED_SP_APPS, true);
- editor.commit();
+ editor.apply();
return true;
} else {
@@ -63,7 +63,7 @@ public class SPAUtil {
SharedPreferences.Editor editor = PreferenceManager
.getDefaultSharedPreferences(c.getApplicationContext()).edit();
editor.putBoolean(PREF_HAS_QUERIED_SP_APPS, false);
- editor.commit();
+ editor.apply();
}
}
}
diff --git a/app/src/main/res/layout/downloaded_episodeslist_item.xml b/app/src/main/res/layout/downloaded_episodeslist_item.xml
index 65a08251f..3f8065466 100644
--- a/app/src/main/res/layout/downloaded_episodeslist_item.xml
+++ b/app/src/main/res/layout/downloaded_episodeslist_item.xml
@@ -17,7 +17,7 @@
android:layout_marginTop="@dimen/listitem_threeline_verticalpadding"
android:contentDescription="@string/cover_label"
android:scaleType="centerCrop"
- tools:src="@drawable/ic_stat_antenna_default"
+ tools:src="@drawable/ic_antenna"
tools:background="@android:color/holo_green_dark"/>
diff --git a/app/src/main/res/layout/feeditem_fragment.xml b/app/src/main/res/layout/feeditem_fragment.xml
index 78c0b3b16..b047b3da0 100644
--- a/app/src/main/res/layout/feeditem_fragment.xml
+++ b/app/src/main/res/layout/feeditem_fragment.xml
@@ -36,7 +36,8 @@
android:layout_marginBottom="16dp"
android:contentDescription="@string/cover_label"
android:gravity="center_vertical"
- tools:src="@drawable/ic_stat_antenna_default"
+ android:foreground="?attr/selectableItemBackground"
+ tools:src="@drawable/ic_antenna"
tools:background="@android:color/holo_green_dark" />
diff --git a/app/src/main/res/layout/feeditemlist_header.xml b/app/src/main/res/layout/feeditemlist_header.xml
index ba39307b0..596135d88 100644
--- a/app/src/main/res/layout/feeditemlist_header.xml
+++ b/app/src/main/res/layout/feeditemlist_header.xml
@@ -27,7 +27,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:contentDescription="@string/cover_label"
- tools:src="@drawable/ic_stat_antenna_default"
+ tools:src="@drawable/ic_antenna"
tools:background="@android:color/holo_green_dark"/>
@@ -92,8 +88,8 @@
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
- android:layout_marginRight="8dp"
- android:layout_marginEnd="8dp"
+ android:layout_marginRight="16dp"
+ android:layout_marginEnd="16dp"
android:layout_toLeftOf="@id/butShowSettings"
android:layout_toStartOf="@id/butShowSettings"
android:layout_toRightOf="@id/imgvCover"
diff --git a/app/src/main/res/layout/gpodnet_podcast_listitem.xml b/app/src/main/res/layout/gpodnet_podcast_listitem.xml
index 27a8bbdca..6e02fa090 100644
--- a/app/src/main/res/layout/gpodnet_podcast_listitem.xml
+++ b/app/src/main/res/layout/gpodnet_podcast_listitem.xml
@@ -23,7 +23,7 @@
android:contentDescription="@string/cover_label"
android:cropToPadding="true"
android:scaleType="fitXY"
- tools:src="@drawable/ic_stat_antenna_default"
+ tools:src="@drawable/ic_antenna"
tools:background="@android:color/holo_green_dark" />
+ tools:src="@drawable/ic_antenna" />
diff --git a/app/src/main/res/layout/searchlist_item.xml b/app/src/main/res/layout/searchlist_item.xml
index 50374c737..4a055fea9 100644
--- a/app/src/main/res/layout/searchlist_item.xml
+++ b/app/src/main/res/layout/searchlist_item.xml
@@ -18,7 +18,7 @@
android:layout_marginStart="@dimen/listitem_threeline_horizontalpadding"
android:contentDescription="@string/cover_label"
android:scaleType="centerCrop"
- tools:src="@drawable/ic_stat_antenna_default"
+ tools:src="@drawable/ic_antenna"
tools:background="@android:color/holo_green_dark"/>
+
+
0 && duration > 0) {
- TimeSpeedConverter converter = new TimeSpeedConverter(playbackService.getCurrentPlaybackSpeed());
+ TimeSpeedConverter converter = new TimeSpeedConverter(speed);
position = converter.convert(position);
duration = converter.convert(duration);
return Converter.getDurationStringLong(position) + " / "
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadStatus.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadStatus.java
index 5debc6d05..d88eb63f4 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadStatus.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadStatus.java
@@ -193,10 +193,6 @@ public class DownloadStatus {
this.cancelled = true;
}
- public void setCompletionDate(Date completionDate) {
- this.completionDate = (Date) completionDate.clone();
- }
-
public void setId(long id) {
this.id = id;
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index e479a7711..ace89e40a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -1086,7 +1086,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
editor.putInt(
PlaybackPreferences.PREF_CURRENT_PLAYER_STATUS, playerStatus);
- editor.commit();
+ editor.apply();
}
private void writePlayerStatusPlaybackPreferences() {
@@ -1095,11 +1095,8 @@ public class PlaybackService extends MediaBrowserServiceCompat {
SharedPreferences.Editor editor = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext()).edit();
int playerStatus = getCurrentPlayerStatusAsInt(mediaPlayer.getPlayerStatus());
-
- editor.putInt(
- PlaybackPreferences.PREF_CURRENT_PLAYER_STATUS, playerStatus);
-
- editor.commit();
+ editor.putInt(PlaybackPreferences.PREF_CURRENT_PLAYER_STATUS, playerStatus);
+ editor.apply();
}
private void sendNotificationBroadcast(int type, int code) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index e68bff16e..0fb181299 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -193,11 +193,6 @@ public final class DBTasks {
}).start();
}
- public static long getLastRefreshAllFeedsTimeMillis(final Context context) {
- SharedPreferences prefs = context.getSharedPreferences(DBTasks.PREF_NAME, MODE_PRIVATE);
- return prefs.getLong(DBTasks.PREF_LAST_REFRESH, 0);
- }
-
/**
* @param context
* @param feedList the list of feeds to refresh
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
index 892a4675a..9c48f31dd 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
@@ -34,7 +34,6 @@ import de.danoeh.antennapod.core.util.URLChecker;
public class DownloadRequester {
private static final String TAG = "DownloadRequester";
- public static final String IMAGE_DOWNLOADPATH = "images/";
private static final String FEED_DOWNLOADPATH = "cache/";
private static final String MEDIA_DOWNLOADPATH = "media/";
@@ -274,10 +273,6 @@ public class DownloadRequester {
return item.getDownload_url() != null && downloads.containsKey(item.getDownload_url());
}
- public synchronized DownloadRequest getDownload(String downloadUrl) {
- return downloads.get(downloadUrl);
- }
-
/**
* Checks if feedfile with the given download url is in the downloads list
*/
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index 13ea9daf0..a3271bcf9 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -55,16 +55,10 @@ public class PodDBAdapter {
*/
private static final int IN_OPERATOR_MAXIMUM = 800;
- /**
- * Maximum number of entries per search request.
- */
- public static final int SEARCH_LIMIT = 30;
-
// Key-constants
public static final String KEY_ID = "id";
public static final String KEY_TITLE = "title";
public static final String KEY_CUSTOM_TITLE = "custom_title";
- public static final String KEY_NAME = "name";
public static final String KEY_LINK = "link";
public static final String KEY_DESCRIPTION = "description";
public static final String KEY_FILE_URL = "file_url";
@@ -1400,13 +1394,6 @@ public class PodDBAdapter {
return db.rawQuery(query, null);
}
-
- public static final int IDX_FEEDSTATISTICS_FEED = 0;
- public static final int IDX_FEEDSTATISTICS_NUM_ITEMS = 1;
- public static final int IDX_FEEDSTATISTICS_NEW_ITEMS = 2;
- public static final int IDX_FEEDSTATISTICS_LATEST_EPISODE = 3;
- public static final int IDX_FEEDSTATISTICS_IN_PROGRESS_EPISODES = 4;
-
/**
* Select number of items, new items, the date of the latest episode and the number of episodes in progress. The result
* is sorted by the title of the feed.
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DuckType.java b/core/src/main/java/de/danoeh/antennapod/core/util/DuckType.java
deleted file mode 100644
index 69dc38895..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/DuckType.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Adapted from: http://thinking-in-code.blogspot.com/2008/11/duck-typing-in-java-using-dynamic.html */
-
-package de.danoeh.antennapod.core.util;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-import de.danoeh.antennapod.core.BuildConfig;
-
-/**
- * Allows "duck typing" or dynamic invocation based on method signature rather
- * than type hierarchy. In other words, rather than checking whether something
- * IS-a duck, check whether it WALKS-like-a duck or QUACKS-like a duck.
- *
- * To use first use the coerce static method to indicate the object you want to
- * do Duck Typing for, then specify an interface to the to method which you want
- * to coerce the type to, e.g:
- *
- * public interface Foo { void aMethod(); } class Bar { ... public void
- * aMethod() { ... } ... } Bar bar = ...; Foo foo =
- * DuckType.coerce(bar).to(Foo.class); foo.aMethod();
- *
- *
- */
-public class DuckType {
-
- private final Object objectToCoerce;
-
- private DuckType(Object objectToCoerce) {
- this.objectToCoerce = objectToCoerce;
- }
-
- private class CoercedProxy implements InvocationHandler {
- @Override
- public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- Method delegateMethod = findMethodBySignature(method);
- assert delegateMethod != null;
- return delegateMethod.invoke(DuckType.this.objectToCoerce, args);
- }
- }
-
- /**
- * Specify the duck typed object to coerce.
- *
- * @param object
- * the object to coerce
- * @return
- */
- public static DuckType coerce(Object object) {
- return new DuckType(object);
- }
-
- /**
- * Coerce the Duck Typed object to the given interface providing it
- * implements all the necessary methods.
- *
- * @param
- * @param iface
- * @return an instance of the given interface that wraps the duck typed
- * class
- * @throws ClassCastException
- * if the object being coerced does not implement all the
- * methods in the given interface.
- */
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public T to(Class iface) {
- if (BuildConfig.DEBUG && !iface.isInterface()) throw new AssertionError("cannot coerce object to a class, must be an interface");
- if (isA(iface)) {
- return (T) iface.cast(objectToCoerce);
- }
- if (quacksLikeA(iface)) {
- return generateProxy(iface);
- }
- throw new ClassCastException("Could not coerce object of type " + objectToCoerce.getClass() + " to " + iface);
- }
-
- @SuppressWarnings("rawtypes")
- private boolean isA(Class iface) {
- return objectToCoerce.getClass().isInstance(iface);
- }
-
- /**
- * Determine whether the duck typed object can be used with the given
- * interface.
- *
- * @param Type
- * of the interface to check.
- * @param iface
- * Interface class to check
- * @return true if the object will support all the methods in the interface,
- * false otherwise.
- */
- @SuppressWarnings("rawtypes")
- private boolean quacksLikeA(Class iface) {
- for (Method method : iface.getMethods()) {
- if (findMethodBySignature(method) == null) {
- return false;
- }
- }
- return true;
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- private T generateProxy(Class iface) {
- return (T) Proxy.newProxyInstance(iface.getClassLoader(), new Class[] { iface }, new CoercedProxy());
- }
-
- private Method findMethodBySignature(Method method) {
- try {
- return objectToCoerce.getClass().getMethod(method.getName(), method.getParameterTypes());
- } catch (NoSuchMethodException e) {
- return null;
- }
- }
-
-}
\ No newline at end of file
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemUtil.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemUtil.java
index 826c06822..a8206d3bd 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemUtil.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/FeedItemUtil.java
@@ -7,19 +7,6 @@ import de.danoeh.antennapod.core.feed.FeedItem;
public class FeedItemUtil {
private FeedItemUtil(){}
- public static int indexOfItemWithDownloadUrl(List items, String downloadUrl) {
- if(items == null) {
- return -1;
- }
- for(int i=0; i < items.size(); i++) {
- FeedItem item = items.get(i);
- if(item.hasMedia() && item.getMedia().getDownload_url().equals(downloadUrl)) {
- return i;
- }
- }
- return -1;
- }
-
public static int indexOfItemWithId(List items, long id) {
for(int i=0; i < items.size(); i++) {
FeedItem item = items.get(i);
@@ -40,17 +27,6 @@ public class FeedItemUtil {
return -1;
}
- public static long[] getIds(FeedItem... items) {
- if(items == null || items.length == 0) {
- return new long[0];
- }
- long[] result = new long[items.length];
- for(int i=0; i < items.length; i++) {
- result[i] = items[i].getId();
- }
- return result;
- }
-
public static long[] getIds(List items) {
if(items == null || items.size() == 0) {
return new long[0];
@@ -62,20 +38,6 @@ public class FeedItemUtil {
return result;
}
- public static boolean containsAnyId(List items, long[] ids) {
- if(items == null || items.size() == 0) {
- return false;
- }
- for(FeedItem item : items) {
- for(long id : ids) {
- if(item.getId() == id) {
- return true;
- }
- }
- }
- return false;
- }
-
/**
* Get the link for the feed item for the purpose of Share. It fallbacks to
* use the feed's link if the named feed item has no link.
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FeedtitleComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedtitleComparator.java
deleted file mode 100644
index 29d095cd2..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/FeedtitleComparator.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package de.danoeh.antennapod.core.util;
-
-import java.util.Comparator;
-
-import de.danoeh.antennapod.core.feed.Feed;
-
-/** Compares the title of two feeds for sorting. */
-class FeedtitleComparator implements Comparator {
-
- @Override
- public int compare(Feed lhs, Feed rhs) {
- return lhs.getTitle().compareToIgnoreCase(rhs.getTitle());
- }
-
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java
deleted file mode 100644
index 56a684475..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package de.danoeh.antennapod.core.util.comparator;
-
-import java.util.Comparator;
-
-import de.danoeh.antennapod.core.feed.FeedItem;
-import de.danoeh.antennapod.core.feed.SearchResult;
-
-public class SearchResultValueComparator implements Comparator {
-
- /**
- * Compare items based, first, on where they were found (ie. title, chapters, or show notes).
- * If they were found in the same section, then compare based on the title, in lexicographic
- * order. This is still not ideal since, for example, "#12 Example A" would be considered
- * before "#8 Example B" due to the fact that "8" has a larger unicode value than "1"
- */
- @Override
- public int compare(SearchResult lhs, SearchResult rhs) {
- int value = rhs.getValue() - lhs.getValue();
- if (value == 0 && lhs.getComponent() instanceof FeedItem && rhs.getComponent() instanceof FeedItem) {
- String lhsTitle = ((FeedItem) lhs.getComponent()).getTitle();
- String rhsTitle = ((FeedItem) rhs.getComponent()).getTitle();
- return lhsTitle.compareTo(rhsTitle);
- }
- return value;
- }
-
-}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/ExternalMedia.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/ExternalMedia.java
index 645bae5f3..9b644c3ba 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/ExternalMedia.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/ExternalMedia.java
@@ -182,7 +182,7 @@ public class ExternalMedia implements Playable {
editor.putLong(PREF_LAST_PLAYED_TIME, timestamp);
position = newPosition;
lastPlayedTime = timestamp;
- editor.commit();
+ editor.apply();
}
@Override
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png
deleted file mode 100644
index c0a55d555..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_light.png b/core/src/main/res/drawable-hdpi/ic_cast_light.png
deleted file mode 100644
index b0c581a0e..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_off_light.png b/core/src/main/res/drawable-hdpi/ic_cast_off_light.png
deleted file mode 100644
index 5f3c0179c..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_off_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png
deleted file mode 100644
index e872693a4..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png
deleted file mode 100644
index d8be1ebc6..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png
deleted file mode 100644
index 27cda9e9d..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_cast_on_light.png b/core/src/main/res/drawable-hdpi/ic_cast_on_light.png
deleted file mode 100644
index 4ee525875..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_cast_on_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_close_light.png b/core/src/main/res/drawable-hdpi/ic_close_light.png
deleted file mode 100644
index 93187e450..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_close_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_pause_light.png b/core/src/main/res/drawable-hdpi/ic_pause_light.png
deleted file mode 100644
index 0c505d1c8..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_pause_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_play_light.png b/core/src/main/res/drawable-hdpi/ic_play_light.png
deleted file mode 100644
index 7957dff5b..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_play_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/ic_stat_antenna_default.png b/core/src/main/res/drawable-hdpi/ic_stat_antenna_default.png
deleted file mode 100644
index af99f4b3b..000000000
Binary files a/core/src/main/res/drawable-hdpi/ic_stat_antenna_default.png and /dev/null differ
diff --git a/core/src/main/res/drawable-ldpi/ic_stat_antenna_default.png b/core/src/main/res/drawable-ldpi/ic_stat_antenna_default.png
deleted file mode 100644
index ddf545c0b..000000000
Binary files a/core/src/main/res/drawable-ldpi/ic_stat_antenna_default.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png
deleted file mode 100644
index 7940a0332..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_light.png b/core/src/main/res/drawable-mdpi/ic_cast_light.png
deleted file mode 100644
index 1f5bec20b..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_off_light.png b/core/src/main/res/drawable-mdpi/ic_cast_off_light.png
deleted file mode 100644
index 963db27d4..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_off_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png
deleted file mode 100644
index a90d9e305..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png
deleted file mode 100644
index bb2cf30bf..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png
deleted file mode 100644
index 3ed59e55b..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_cast_on_light.png b/core/src/main/res/drawable-mdpi/ic_cast_on_light.png
deleted file mode 100644
index 713427b97..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_cast_on_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_close_light.png b/core/src/main/res/drawable-mdpi/ic_close_light.png
deleted file mode 100644
index 2c52c9b0f..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_close_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_pause_light.png b/core/src/main/res/drawable-mdpi/ic_pause_light.png
deleted file mode 100644
index 6218a774f..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_pause_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_play_light.png b/core/src/main/res/drawable-mdpi/ic_play_light.png
deleted file mode 100644
index 1e0ccaf80..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_play_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/ic_stat_antenna_default.png b/core/src/main/res/drawable-mdpi/ic_stat_antenna_default.png
deleted file mode 100644
index 41fd20655..000000000
Binary files a/core/src/main/res/drawable-mdpi/ic_stat_antenna_default.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png
deleted file mode 100644
index fbb3e062c..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_light.png
deleted file mode 100644
index f2713e20e..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png
deleted file mode 100644
index f4f8aaea8..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png
deleted file mode 100644
index 247fc95ba..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png
deleted file mode 100644
index ecf4b4723..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png
deleted file mode 100644
index 60e3afa5d..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png
deleted file mode 100644
index 40ce9d4f2..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_close_light.png b/core/src/main/res/drawable-xhdpi/ic_close_light.png
deleted file mode 100644
index 49faa429a..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_close_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_pause_light.png b/core/src/main/res/drawable-xhdpi/ic_pause_light.png
deleted file mode 100644
index 40cd79f14..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_pause_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_play_light.png b/core/src/main/res/drawable-xhdpi/ic_play_light.png
deleted file mode 100644
index 33f6a5919..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_play_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_stat_antenna_default.png b/core/src/main/res/drawable-xhdpi/ic_stat_antenna_default.png
deleted file mode 100644
index 30431ed6a..000000000
Binary files a/core/src/main/res/drawable-xhdpi/ic_stat_antenna_default.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png
deleted file mode 100644
index e94df3889..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_light.png
deleted file mode 100644
index c5722a6eb..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png
deleted file mode 100644
index 92ac67b34..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png
deleted file mode 100644
index 2742fcb4a..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png
deleted file mode 100644
index 405178e64..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png
deleted file mode 100644
index dfe52428d..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png
deleted file mode 100644
index 7e69a0864..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxhdpi/ic_close_light.png
deleted file mode 100644
index be519bfcb..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_close_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxhdpi/ic_pause_light.png
deleted file mode 100644
index a36d4d11e..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_pause_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxhdpi/ic_play_light.png
deleted file mode 100644
index b1424874a..000000000
Binary files a/core/src/main/res/drawable-xxhdpi/ic_play_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_baseline_question_answer_white_24db.png b/core/src/main/res/drawable-xxxhdpi/ic_baseline_question_answer_white_24dp.png
old mode 100755
new mode 100644
similarity index 100%
rename from core/src/main/res/drawable-xxxhdpi/ic_baseline_question_answer_white_24db.png
rename to core/src/main/res/drawable-xxxhdpi/ic_baseline_question_answer_white_24dp.png
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxxhdpi/ic_close_light.png
deleted file mode 100644
index 679c2a4d5..000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/ic_close_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png
deleted file mode 100644
index 7de2ef4ed..000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxxhdpi/ic_play_light.png
deleted file mode 100644
index 4428c8477..000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/ic_play_light.png and /dev/null differ
diff --git a/core/src/main/res/drawable/ic_antenna.xml b/core/src/main/res/drawable/ic_antenna.xml
new file mode 100644
index 000000000..9fcfab000
--- /dev/null
+++ b/core/src/main/res/drawable/ic_antenna.xml
@@ -0,0 +1,6 @@
+
+
+
diff --git a/core/src/main/res/drawable/ic_notification.png b/core/src/main/res/drawable/ic_notification.png
deleted file mode 100644
index 8bd22b54a..000000000
Binary files a/core/src/main/res/drawable/ic_notification.png and /dev/null differ
diff --git a/core/src/main/res/drawable/white_circle.xml b/core/src/main/res/drawable/white_circle.xml
deleted file mode 100644
index 597b70a2d..000000000
--- a/core/src/main/res/drawable/white_circle.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index b2b70575c..d191f4059 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -422,7 +422,7 @@
Jetzt komplett synchronisieren
Kompletten Abonnement- und Episoden-Status mit gpodder.net synchronisieren.
Letzter Synchronisierungsversuch: %1$s (%2$s)
- Synchronisation starten
+ Synchronisation gestartet
Komplette Synchronisierung gestartet
%1$s mit dem Gerät %2$s]]>
Zeige Benachrichtungen bei Synchronisierungsfehlern
@@ -617,7 +617,7 @@
Audio
Video
Nach oben navigieren
- Episode wird gerade heruntergeladen
+ Episode wird heruntergeladen
Episode befindet sich in der Abspielliste
Ziehe, um die Position dieses Objekts zu verändern
Nächste Seite laden
@@ -726,7 +726,7 @@
Handlung notwendig
Wird gezeigt, wenn deine Handlung notwendig ist, zum Beispiel wenn du ein Passwort eingeben musst.
- Lädt herunter
+ Herunterladen
Wird gezeigt beim Herunterladen.
Jetzt spielt
Erlaubt es, die Wiedergabe zu steuern. Dies ist die Hauptbenachrichtigung, die du siehst, während ein Podcast abgespielt wird.
diff --git a/core/src/main/res/values-hu/strings.xml b/core/src/main/res/values-hu/strings.xml
index 4a42da4c3..706b13b79 100644
--- a/core/src/main/res/values-hu/strings.xml
+++ b/core/src/main/res/values-hu/strings.xml
@@ -107,6 +107,7 @@
Podcast keresése mappában
Új podcastokat kereshetsz iTunes-on vagy fyyd-en, vagy a gpodder.net-en név, kategória vagy cím alapján.
gpodder.net böngészése
+ Felfedezés
Az összes megjelölése lejátszottként
Az összes epizód lejátszottként megjelölve
diff --git a/core/src/main/res/values-id/strings.xml b/core/src/main/res/values-in/strings.xml
similarity index 100%
rename from core/src/main/res/values-id/strings.xml
rename to core/src/main/res/values-in/strings.xml
diff --git a/core/src/main/res/values-land/styles.xml b/core/src/main/res/values-land/styles.xml
deleted file mode 100644
index d964ef3d4..000000000
--- a/core/src/main/res/values-land/styles.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/core/src/main/res/values-large/dimens.xml b/core/src/main/res/values-large/dimens.xml
index 2da283c5b..2d107eef0 100644
--- a/core/src/main/res/values-large/dimens.xml
+++ b/core/src/main/res/values-large/dimens.xml
@@ -4,5 +4,4 @@
170dp
64dp
64dp
- @dimen/text_size_medium
\ No newline at end of file
diff --git a/core/src/main/res/values-pl-rPL/strings.xml b/core/src/main/res/values-pl-rPL/strings.xml
index 405bfeaa7..3ebdbe487 100644
--- a/core/src/main/res/values-pl-rPL/strings.xml
+++ b/core/src/main/res/values-pl-rPL/strings.xml
@@ -7,6 +7,7 @@
Dodaj podcast
Odcinki
Wszystkie
+ Nowe
Ulubione
Nowy
Ustawienia
@@ -104,6 +105,7 @@
Znajdź podcast w folderze
Możesz wyszukiwać nowe podcasty ze względu na nazwę, kategorię lub popularność na gpodder.net, Itunes lub fyyd
Przeglądaj gpodder.net
+ więcej »
Oznacz wszystkie jako odtworzone
Wszystkie odcinki zaznaczono jako odtworzone
@@ -134,7 +136,7 @@
Ma media
Przefiltrowany
{fa-exclamation-circle} Ostatnie odświerzanie nie powiodło się
- Otwarty Podcast
+ Otwórz Podcast
Pobierz
Odtwórz
@@ -249,6 +251,8 @@
Nie subskrybowałeś jeszcze żadnego podcastu.
Ten epizod nie ma notatek.
+ Brak pobranych odcinków
+ Brak ulubionych odcinków
Ten odcinek nie ma rozdziałów.
Pamięć
@@ -258,6 +262,8 @@
Kolejka
Szczegóły
Wygląd
+ Brak wyników
+ Wyczyść historię
Usuwanie odcinków
Odcinki niebędące w kolejce i niebędące na liście ulubiobych powinny nadawać się do usunięcia, jeśli Automatyczne Pobieranie potrzebuje miejsca na nowe odcinki.
Wstrzymaj odtwarzanie po rozłączeniu słuchawek lub Bluetooth
@@ -292,6 +298,7 @@
Słuchawki podłączone ponownie
Bluetooth podłączony ponownie
Aktualizacje mobilne
+ Automatyczne pobieranie
Odświeżanie
Interfejs użytkownika
Wybierz motyw
@@ -374,6 +381,9 @@
Chromecast wymagadodatkowych bibliotek, które są zablokowane w tej wersji AntennaPod
Rzeczy z kolejki pobrane
Dodaj pobrane odcinki do kolejki
+ Zachowanie
+ Domyślne
+ Otwórz panel nawigacyjny
Szukaj odcinków
Znalezione w notatkach dotyczących show
diff --git a/core/src/main/res/values-v16/styles.xml b/core/src/main/res/values-v16/styles.xml
index a92790152..947e43f38 100644
--- a/core/src/main/res/values-v16/styles.xml
+++ b/core/src/main/res/values-v16/styles.xml
@@ -6,12 +6,4 @@
- ?android:attr/textColorPrimary
- sans-serif-light
-
-
\ No newline at end of file
diff --git a/core/src/main/res/values-v19/colors.xml b/core/src/main/res/values-v19/colors.xml
index 16c065d75..4154280e8 100644
--- a/core/src/main/res/values-v19/colors.xml
+++ b/core/src/main/res/values-v19/colors.xml
@@ -1,5 +1,4 @@
#484B4D
- #E3E3E3
\ No newline at end of file
diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml
index 0eaf0e5e7..7c9811bc7 100644
--- a/core/src/main/res/values/arrays.xml
+++ b/core/src/main/res/values/arrays.xml
@@ -156,13 +156,6 @@
- 4.00
-
- - N/A
-
-
- - 0
-
-
- @string/pref_theme_title_light
- @string/pref_theme_title_dark
diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml
index 0e4533977..fea7da4a4 100644
--- a/core/src/main/res/values/colors.xml
+++ b/core/src/main/res/values/colors.xml
@@ -2,22 +2,16 @@
#FFFFFF
- #808080
#757575
#bfbfbf
#000000
#33B5E5
#0099CC
- #858585
- #DDDDDD
#669900
#CC0000
#E033B5E5
- #E0EE5F52
#2C2C2C
#FFFFFF
- #EDEDED
- #060708
#669900
#80000000
#50000000
diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml
index cdde0027d..02c398b62 100644
--- a/core/src/main/res/values/dimens.xml
+++ b/core/src/main/res/values/dimens.xml
@@ -10,7 +10,6 @@
16sp
18sp
22sp
- 32dp
64dp
64dp
64dp
@@ -21,7 +20,6 @@
280dp
48dp
16dp
- 16dp
16dp
8dp
@@ -29,7 +27,6 @@
16dp
8dp
- 8dp
16dp
16dp
diff --git a/core/src/main/res/values/integers.xml b/core/src/main/res/values/integers.xml
index 33501d9fb..73d90cf98 100644
--- a/core/src/main/res/values/integers.xml
+++ b/core/src/main/res/values/integers.xml
@@ -1,4 +1,3 @@
- 5000
-1
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 52f2d014d..b9793151c 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -27,10 +27,8 @@
gpodder.net
Synchronize with other devices
gpodder.net Login
- %1$s free
Episode cache full
The episode cache limit has been reached. You can increase the cache size in the Settings.
- Synchronizing…
Total time of podcasts played:
@@ -73,7 +71,6 @@
Author(s)
Language
URL
- Settings
Picture
Error
An error occurred:
@@ -82,14 +79,9 @@
No external storage is available. Please make sure that external storage is mounted so that the app can work properly.
Chapters
Duration: %1$s
- Shownotes
Description
- Most recent episode:\u0020
\u0020episodes
- Length:\u0020
- Size:\u0020
Processing
- Loading…
Save username and password
Close
Retry
@@ -119,8 +111,6 @@
Feed URL
www.example.com/feed
Add Podcast by URL
- Find Podcast in Directory
- For new podcasts, you can search iTunes or fyyd, or browse gpodder.net by name, category or popularity.
Browse gpodder.net
Discover
more »
@@ -149,7 +139,6 @@
Please confirm that you want to delete the podcast \"%1$s\" and ALL its episodes (including downloaded episodes).
Removing podcast
Refresh complete podcast
- Hide Episodes
Batch edit
Select all above
Select all below
@@ -174,9 +163,7 @@
Play
Pause
- Stop
Stream
- Remove
Delete
Unable to delete file. Rebooting the device could help.
Delete Episode
@@ -221,14 +208,12 @@
successful
- failed
Download pending
Download running
Details
%1$s \n\nFile URL:\n%2$s
Storage Device not found
Insufficient Space
- File Error
HTTP Data Error
Unknown Error
Parser Exception
@@ -238,7 +223,6 @@
Authentication Error
File Type Error
Forbidden
- Cancel all downloads
Download canceled
Download canceled\nDisabled Auto Download for this item
Downloads completed with error(s)
@@ -257,7 +241,6 @@
Unknown Title
Feed
Media file
- Image
An error occurred when trying to download the file:\u0020
No podcast was provided that could be shown.
Authentication required
@@ -285,7 +268,6 @@
00:00:00
Buffering
Picture-in-picture mode
- Playing podcast
AntennaPod - Unknown media key: %1$d
@@ -297,7 +279,6 @@
Do not show again
Clear Queue
Undo
- Item removed
Move to top
Move to bottom
Sort
@@ -324,7 +305,6 @@
No queued episodes
Add an episode by downloading it, or long press an episode and select \"Add to queue\".
- You haven\'t subscribed to any podcasts yet.
This episode has no shownotes.
No downloads running
You can download episodes on the podcast details screen.
@@ -346,7 +326,6 @@
Storage
Project
- Other
About
Queue
Integrations
@@ -390,9 +369,7 @@
Set Time of Day
every %1$s
at %1$s
- Download media files only over WiFi
Continuous Playback
- WiFi media download
Headphones Disconnect
Headphones Reconnect
Bluetooth Reconnect
@@ -403,11 +380,8 @@
Auto download
Episode download
Streaming
- Refreshing
User Interface
Select Theme
- Customize Navigation Drawer
- Customize the appearance of the navigation drawer.
Set Navigation Drawer items
Change which items appear in the navigation drawer.
Set Subscription Order
@@ -419,8 +393,6 @@
Configure the automatic download of episodes.
Enable Wi-Fi filter
Allow automatic download only for selected Wi-Fi networks.
- Download on mobile connection
- Allow automatic download over the mobile data connection.
Download when not charging
Allow automatic download when the battery is not charging
Parallel Downloads
@@ -445,7 +417,6 @@
Sync all subscriptions and episode states with gpodder.net.
Last sync attempt: %1$s (%2$s)
Sync started
- Full sync started
%1$s with device %2$s]]>
Show sync error notifications
This setting does not apply to authentication errors.
@@ -527,21 +498,16 @@
No results were found for \"%1$s\"
- OPML files allow you to move your podcasts from one podcatcher to another.
Option %1$d
Choose a specific file path from the local filesystem.
- Use an external applications like Dropbox, Google Drive or your favourite file manager to open an OPML file.
- Many applications like Google Mail, Dropbox, Google Drive and most file managers can open OPML files with AntennaPod. Start import
+ Many applications like Google Mail, Dropbox, Google Drive and most file managers can open OPML files with AntennaPod.
OPML Import
- ERROR!
Reading OPML file
An error has occurred while reading the OPML document:
No file selected!
Select all
Deselect all
- Select…
From local filesystem
- Use external application
OPML export
HTML export
Exporting…
@@ -640,7 +606,6 @@
Subscribe
- Subscribed
Downloading…
@@ -763,7 +728,6 @@
Failed to set the volume
No connection to the cast device is present
Connection to the cast device has been lost. Application is trying to re-establish the connection, if possible. Please wait for a few seconds and try again.
- Failed to perform the action
Failed to sync up with the cast device
Failed to seek to the new position on the cast device
Receiver player has encountered a severe error
diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml
index fb69e54e7..a107d3082 100644
--- a/core/src/main/res/values/styles.xml
+++ b/core/src/main/res/values/styles.xml
@@ -258,13 +258,6 @@
- end
-
-
-
-