diff options
101 files changed, 139 insertions, 619 deletions
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 e378a5ebc..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 1070307 - versionName "1.7.3-RC7" + 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"> <meta-data android:name="com.google.android.gms.car.notification.SmallIcon" - android:resource="@drawable/ic_notification" /> + android:resource="@drawable/ic_antenna" /> <meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAI3a05VToCTlqBymJrbFGaKQMvF-bBAuLsOdavBA"/> 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/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/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 9763f8f2d..5f6fe26ee 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -7,6 +7,7 @@ import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.support.v4.view.MenuItemCompat; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SearchView; @@ -19,6 +20,8 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; @@ -91,10 +94,12 @@ public class QueueFragment extends Fragment { private static final String PREFS = "QueueFragment"; private static final String PREF_SCROLL_POSITION = "scroll_position"; private static final String PREF_SCROLL_OFFSET = "scroll_offset"; + private static final String PREF_SHOW_LOCK_WARNING = "show_lock_warning"; private Disposable disposable; private LinearLayoutManager layoutManager; private ItemTouchHelper itemTouchHelper; + private SharedPreferences prefs; @Override @@ -102,6 +107,7 @@ public class QueueFragment extends Fragment { super.onCreate(savedInstanceState); setRetainInstance(true); setHasOptionsMenu(true); + prefs = getActivity().getSharedPreferences(PREFS, Context.MODE_PRIVATE); } @Override @@ -219,15 +225,13 @@ public class QueueFragment extends Fragment { topOffset = firstItemView.getTop(); } - SharedPreferences prefs = getActivity().getSharedPreferences(PREFS, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = prefs.edit(); - editor.putInt(PREF_SCROLL_POSITION, firstItem); - editor.putFloat(PREF_SCROLL_OFFSET, topOffset); - editor.commit(); + prefs.edit() + .putInt(PREF_SCROLL_POSITION, firstItem) + .putFloat(PREF_SCROLL_OFFSET, topOffset) + .apply(); } private void restoreScrollPosition() { - SharedPreferences prefs = getActivity().getSharedPreferences(PREFS, Context.MODE_PRIVATE); int position = prefs.getInt(PREF_SCROLL_POSITION, 0); float offset = prefs.getFloat(PREF_SCROLL_OFFSET, 0.0f); if (position > 0 || offset > 0) { @@ -299,19 +303,7 @@ public class QueueFragment extends Fragment { if (!super.onOptionsItemSelected(item)) { switch (item.getItemId()) { case R.id.queue_lock: - boolean newLockState = !UserPreferences.isQueueLocked(); - UserPreferences.setQueueLocked(newLockState); - getActivity().supportInvalidateOptionsMenu(); - if (recyclerAdapter != null) { - recyclerAdapter.setLocked(newLockState); - } - if (newLockState) { - Snackbar.make(getActivity().findViewById(R.id.content), R.string - .queue_locked, Snackbar.LENGTH_SHORT).show(); - } else { - Snackbar.make(getActivity().findViewById(R.id.content), R.string - .queue_unlocked, Snackbar.LENGTH_SHORT).show(); - } + toggleQueueLock(); return true; case R.id.refresh_item: List<Feed> feeds = ((MainActivity) getActivity()).getFeeds(); @@ -394,6 +386,48 @@ public class QueueFragment extends Fragment { } } + private void toggleQueueLock() { + boolean isLocked = UserPreferences.isQueueLocked(); + if (isLocked) { + setQueueLocked(false); + } else { + boolean shouldShowLockWarning = prefs.getBoolean(PREF_SHOW_LOCK_WARNING, true); + if (!shouldShowLockWarning) { + setQueueLocked(true); + } else { + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + builder.setTitle(R.string.lock_queue); + builder.setMessage(R.string.queue_lock_warning); + + View view = View.inflate(getContext(), R.layout.checkbox_do_not_show_again, null); + CheckBox checkDoNotShowAgain = view.findViewById(R.id.checkbox_do_not_show_again); + builder.setView(view); + + builder.setPositiveButton(R.string.lock_queue, (dialog, which) -> { + prefs.edit().putBoolean(PREF_SHOW_LOCK_WARNING, !checkDoNotShowAgain.isChecked()).apply(); + setQueueLocked(true); + }); + builder.setNegativeButton(R.string.cancel_label, null); + builder.show(); + } + } + } + + private void setQueueLocked(boolean locked) { + UserPreferences.setQueueLocked(locked); + getActivity().supportInvalidateOptionsMenu(); + if (recyclerAdapter != null) { + recyclerAdapter.setLocked(locked); + } + if (locked) { + Snackbar.make(getActivity().findViewById(R.id.content), R.string + .queue_locked, Snackbar.LENGTH_SHORT).show(); + } else { + Snackbar.make(getActivity().findViewById(R.id.content), R.string + .queue_unlocked, Snackbar.LENGTH_SHORT).show(); + } + } + /** * This method is called if the user clicks on a sort order menu item. * 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 1879dcbf8..a33faeb69 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java @@ -62,5 +62,8 @@ public class PreferenceUpgrader { break; } } + if (oldVersion < 1070400) { + UserPreferences.setQueueLocked(false); + } } } 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/checkbox_do_not_show_again.xml b/app/src/main/res/layout/checkbox_do_not_show_again.xml new file mode 100644 index 000000000..15f26e8b4 --- /dev/null +++ b/app/src/main/res/layout/checkbox_do_not_show_again.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingTop="8dp" + android:paddingBottom="8dp"> + + <CheckBox + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:id="@+id/checkbox_do_not_show_again" + android:text="@string/checkbox_do_not_show_again"/> + +</LinearLayout>
\ No newline at end of file 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 000539e60..b047b3da0 100644 --- a/app/src/main/res/layout/feeditem_fragment.xml +++ b/app/src/main/res/layout/feeditem_fragment.xml @@ -37,7 +37,7 @@ android:contentDescription="@string/cover_label" android:gravity="center_vertical" android:foreground="?attr/selectableItemBackground" - tools:src="@drawable/ic_stat_antenna_default" + tools:src="@drawable/ic_antenna" tools:background="@android:color/holo_green_dark" /> <TextView diff --git a/app/src/main/res/layout/feeditemlist_header.xml b/app/src/main/res/layout/feeditemlist_header.xml index e1f451e9e..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"/> <ImageButton 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" /> <LinearLayout diff --git a/app/src/main/res/layout/itunes_podcast_listitem.xml b/app/src/main/res/layout/itunes_podcast_listitem.xml index 4848563b1..b2411c5df 100644 --- a/app/src/main/res/layout/itunes_podcast_listitem.xml +++ b/app/src/main/res/layout/itunes_podcast_listitem.xml @@ -25,7 +25,7 @@ android:cropToPadding="true" android:scaleType="fitXY" tools:background="@android:color/holo_green_dark" - tools:src="@drawable/ic_stat_antenna_default" /> + tools:src="@drawable/ic_antenna" /> <LinearLayout android:layout_width="match_parent" diff --git a/app/src/main/res/layout/nav_feedlistitem.xml b/app/src/main/res/layout/nav_feedlistitem.xml index 816870d1c..52833b3cd 100644 --- a/app/src/main/res/layout/nav_feedlistitem.xml +++ b/app/src/main/res/layout/nav_feedlistitem.xml @@ -25,7 +25,7 @@ android:scaleType="centerCrop" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" - tools:src="@drawable/ic_stat_antenna_default" + tools:src="@drawable/ic_antenna" tools:background="@android:color/holo_green_dark"/> <TextView diff --git a/app/src/main/res/layout/queue_listitem.xml b/app/src/main/res/layout/queue_listitem.xml index 6b41b68d5..1dcc34bce 100644 --- a/app/src/main/res/layout/queue_listitem.xml +++ b/app/src/main/res/layout/queue_listitem.xml @@ -51,7 +51,7 @@ android:layout_height="@dimen/thumbnail_length_queue_item" android:layout_centerVertical="true" android:contentDescription="@string/cover_label" - tools:src="@drawable/ic_stat_antenna_default" + tools:src="@drawable/ic_antenna" tools:background="@android:color/holo_green_dark"/> </RelativeLayout> 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"/> <LinearLayout diff --git a/app/src/main/res/layout/statistics_listitem.xml b/app/src/main/res/layout/statistics_listitem.xml index b186add9e..f52aa73e0 100644 --- a/app/src/main/res/layout/statistics_listitem.xml +++ b/app/src/main/res/layout/statistics_listitem.xml @@ -23,7 +23,7 @@ android:scaleType="centerCrop" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" - tools:src="@drawable/ic_stat_antenna_default" + tools:src="@drawable/ic_antenna" tools:background="@android:color/holo_green_dark"/> <TextView diff --git a/core/src/main/AndroidManifest.xml b/core/src/main/AndroidManifest.xml index 3b6edae42..7d84bdddb 100644 --- a/core/src/main/AndroidManifest.xml +++ b/core/src/main/AndroidManifest.xml @@ -9,6 +9,11 @@ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.VIBRATE" /> + <!-- ACCESS_FINE_LOCATION is needed only on Android 10+, + for Automatic Download Wifi filter's UI, which uses + WifiManager.WifiManager.getConfiguredNetworks() + --> + <uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:allowBackup="true" diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/FeedMediaEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/FeedMediaEvent.java deleted file mode 100644 index 4a591c996..000000000 --- a/core/src/main/java/de/danoeh/antennapod/core/event/FeedMediaEvent.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.danoeh.antennapod.core.event; - -import de.danoeh.antennapod.core.feed.FeedMedia; - -public class FeedMediaEvent { - - public enum Action { - UPDATE - } - - private final Action action; - private final FeedMedia media; - - private FeedMediaEvent(Action action, FeedMedia media) { - this.action = action; - this.media = media; - } - - public static FeedMediaEvent update(FeedMedia media) { - return new FeedMediaEvent(Action.UPDATE, media); - } - -} diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index b8ab1c888..6d614f039 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -891,13 +891,6 @@ public class UserPreferences { } /** - * Reads episode cache size as it is saved in the episode_cache_size_values array. - */ - public static int readEpisodeCacheSize(String valueFromPrefs) { - return readEpisodeCacheSizeInternal(valueFromPrefs); - } - - /** * Evaluates whether Cast support (Chromecast, Audio Cast, etc) is enabled on the preferences. */ public static boolean isCastEnabled() { 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> 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> 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<FeedItem> 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<FeedItem> 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<FeedItem> 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<FeedItem> 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<Feed> { - - @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<SearchResult> { - - /** - * 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 Binary files differdeleted file mode 100644 index c0a55d555..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_disabled_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-hdpi/ic_cast_light.png b/core/src/main/res/drawable-hdpi/ic_cast_light.png Binary files differdeleted file mode 100644 index b0c581a0e..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 5f3c0179c..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_off_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e872693a4..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_on_0_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index d8be1ebc6..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_on_1_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 27cda9e9d..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_on_2_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 4ee525875..000000000 --- a/core/src/main/res/drawable-hdpi/ic_cast_on_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-hdpi/ic_close_light.png b/core/src/main/res/drawable-hdpi/ic_close_light.png Binary files differdeleted file mode 100644 index 93187e450..000000000 --- a/core/src/main/res/drawable-hdpi/ic_close_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-hdpi/ic_pause_light.png b/core/src/main/res/drawable-hdpi/ic_pause_light.png Binary files differdeleted file mode 100644 index 0c505d1c8..000000000 --- a/core/src/main/res/drawable-hdpi/ic_pause_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-hdpi/ic_play_light.png b/core/src/main/res/drawable-hdpi/ic_play_light.png Binary files differdeleted file mode 100644 index 7957dff5b..000000000 --- a/core/src/main/res/drawable-hdpi/ic_play_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index af99f4b3b..000000000 --- a/core/src/main/res/drawable-hdpi/ic_stat_antenna_default.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ddf545c0b..000000000 --- a/core/src/main/res/drawable-ldpi/ic_stat_antenna_default.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 7940a0332..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_disabled_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-mdpi/ic_cast_light.png b/core/src/main/res/drawable-mdpi/ic_cast_light.png Binary files differdeleted file mode 100644 index 1f5bec20b..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 963db27d4..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_off_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index a90d9e305..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_on_0_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index bb2cf30bf..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_on_1_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 3ed59e55b..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_on_2_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 713427b97..000000000 --- a/core/src/main/res/drawable-mdpi/ic_cast_on_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-mdpi/ic_close_light.png b/core/src/main/res/drawable-mdpi/ic_close_light.png Binary files differdeleted file mode 100644 index 2c52c9b0f..000000000 --- a/core/src/main/res/drawable-mdpi/ic_close_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-mdpi/ic_pause_light.png b/core/src/main/res/drawable-mdpi/ic_pause_light.png Binary files differdeleted file mode 100644 index 6218a774f..000000000 --- a/core/src/main/res/drawable-mdpi/ic_pause_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-mdpi/ic_play_light.png b/core/src/main/res/drawable-mdpi/ic_play_light.png Binary files differdeleted file mode 100644 index 1e0ccaf80..000000000 --- a/core/src/main/res/drawable-mdpi/ic_play_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 41fd20655..000000000 --- a/core/src/main/res/drawable-mdpi/ic_stat_antenna_default.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index fbb3e062c..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_disabled_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xhdpi/ic_cast_light.png b/core/src/main/res/drawable-xhdpi/ic_cast_light.png Binary files differdeleted file mode 100644 index f2713e20e..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index f4f8aaea8..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_off_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 247fc95ba..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_on_0_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index ecf4b4723..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_on_1_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 60e3afa5d..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_on_2_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 40ce9d4f2..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_cast_on_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xhdpi/ic_close_light.png b/core/src/main/res/drawable-xhdpi/ic_close_light.png Binary files differdeleted file mode 100644 index 49faa429a..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_close_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xhdpi/ic_pause_light.png b/core/src/main/res/drawable-xhdpi/ic_pause_light.png Binary files differdeleted file mode 100644 index 40cd79f14..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_pause_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xhdpi/ic_play_light.png b/core/src/main/res/drawable-xhdpi/ic_play_light.png Binary files differdeleted file mode 100644 index 33f6a5919..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_play_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 30431ed6a..000000000 --- a/core/src/main/res/drawable-xhdpi/ic_stat_antenna_default.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index e94df3889..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_disabled_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxhdpi/ic_cast_light.png b/core/src/main/res/drawable-xxhdpi/ic_cast_light.png Binary files differdeleted file mode 100644 index c5722a6eb..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 92ac67b34..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_off_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 2742fcb4a..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_on_0_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 405178e64..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_on_1_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index dfe52428d..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_on_2_light.png +++ /dev/null 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 Binary files differdeleted file mode 100644 index 7e69a0864..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_cast_on_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxhdpi/ic_close_light.png Binary files differdeleted file mode 100644 index be519bfcb..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_close_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxhdpi/ic_pause_light.png Binary files differdeleted file mode 100644 index a36d4d11e..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_pause_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxhdpi/ic_play_light.png Binary files differdeleted file mode 100644 index b1424874a..000000000 --- a/core/src/main/res/drawable-xxhdpi/ic_play_light.png +++ /dev/null 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 Binary files differindex 0d697e0f9..0d697e0f9 100755..100644 --- 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 diff --git a/core/src/main/res/drawable-xxxhdpi/ic_close_light.png b/core/src/main/res/drawable-xxxhdpi/ic_close_light.png Binary files differdeleted file mode 100644 index 679c2a4d5..000000000 --- a/core/src/main/res/drawable-xxxhdpi/ic_close_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png b/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png Binary files differdeleted file mode 100644 index 7de2ef4ed..000000000 --- a/core/src/main/res/drawable-xxxhdpi/ic_pause_light.png +++ /dev/null diff --git a/core/src/main/res/drawable-xxxhdpi/ic_play_light.png b/core/src/main/res/drawable-xxxhdpi/ic_play_light.png Binary files differdeleted file mode 100644 index 4428c8477..000000000 --- a/core/src/main/res/drawable-xxxhdpi/ic_play_light.png +++ /dev/null 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 @@ +<vector android:height="24dp" android:viewportHeight="12.7" + android:viewportWidth="12.7" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillAlpha="1" android:fillColor="#ffffff" + android:pathData="m6.0631,0.4728v0.3274c1.1582,0.0249 1.911,0.4225 2.5991,1.1189 0.6881,0.6964 1.0924,1.7043 1.1125,2.9246h0.3211c0.0078,-1.3792 -0.5291,-2.4905 -1.1981,-3.1576C8.2288,1.019 7.3415,0.4734 6.0631,0.4728ZM6.0631,1.4283v0.3453c0.859,0.0361 1.3465,0.2123 1.9398,0.8081 0.5933,0.5957 0.843,1.3669 0.8598,2.2621L9.2029,4.8438c-0.0088,-1.2333 -0.5414,-2.0907 -0.9568,-2.5047 -0.4154,-0.4139 -0.9948,-0.9065 -2.183,-0.9108zM6.0625,2.4323 L6.0631,2.7495c0.3968,0.007 0.8308,0.1395 1.2089,0.5642 0.3781,0.4247 0.495,1.0244 0.51,1.53h0.3255c-0.0016,-0.669 -0.2787,-1.3891 -0.6153,-1.747 -0.3366,-0.358 -0.7368,-0.6621 -1.4298,-0.6645zM6.0906,3.7766c-0.4059,0.0002 -0.7349,0.3294 -0.7347,0.7353 0.0001,0.2677 0.1459,0.5142 0.3804,0.6434l-3.0102,6.2227 0.5151,0.3351 0.607,-1.2485 5.3821,1.5453 0.083,0.1609 0.5732,-0.2508 -3.4927,-6.7397c0.2624,-0.1189 0.4311,-0.3802 0.4315,-0.6683 0.0002,-0.4059 -0.3287,-0.7352 -0.7347,-0.7353zM6.065,5.8631 L6.5929,6.8882 5.2882,7.4761zM6.6976,7.0918 L7.6065,8.8561 5.137,7.8016zM5.0259,8.0199 L7.611,9.1184 4.0314,10.0854zM7.8395,9.3086 L9.081,11.7201 4.1489,10.3069z" + android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.32680494"/> +</vector> diff --git a/core/src/main/res/drawable/ic_notification.png b/core/src/main/res/drawable/ic_notification.png Binary files differdeleted file mode 100644 index 8bd22b54a..000000000 --- a/core/src/main/res/drawable/ic_notification.png +++ /dev/null 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 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape xmlns:android="http://schemas.android.com/apk/res/android" - android:shape="oval" > - - <solid android:color="@color/white" /> - - <size - android:height="4dp" - android:width="4dp" /> - -</shape>
\ 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 @@ <string name="pref_gpodnet_full_sync_title">Jetzt komplett synchronisieren</string> <string name="pref_gpodnet_full_sync_sum">Kompletten Abonnement- und Episoden-Status mit gpodder.net synchronisieren.</string> <string name="pref_gpodnet_sync_sum_last_sync_line">Letzter Synchronisierungsversuch: %1$s (%2$s)</string> - <string name="pref_gpodnet_sync_started">Synchronisation starten</string> + <string name="pref_gpodnet_sync_started">Synchronisation gestartet</string> <string name="pref_gpodnet_full_sync_started">Komplette Synchronisierung gestartet</string> <string name="pref_gpodnet_login_status"><![CDATA[Eingeloggt als <i>%1$s</i> mit dem Gerät <i>%2$s</i>]]></string> <string name="pref_gpodnet_notifications_title">Zeige Benachrichtungen bei Synchronisierungsfehlern</string> @@ -617,7 +617,7 @@ <string name="media_type_audio_label">Audio</string> <string name="media_type_video_label">Video</string> <string name="navigate_upwards_label">Nach oben navigieren</string> - <string name="status_downloading_label">Episode wird gerade heruntergeladen</string> + <string name="status_downloading_label">Episode wird heruntergeladen</string> <string name="in_queue_label">Episode befindet sich in der Abspielliste</string> <string name="drag_handle_content_description">Ziehe, um die Position dieses Objekts zu verändern</string> <string name="load_next_page_label">Nächste Seite laden</string> @@ -726,7 +726,7 @@ <!--Notification channels--> <string name="notification_channel_user_action">Handlung notwendig</string> <string name="notification_channel_user_action_description">Wird gezeigt, wenn deine Handlung notwendig ist, zum Beispiel wenn du ein Passwort eingeben musst.</string> - <string name="notification_channel_downloading">Lädt herunter</string> + <string name="notification_channel_downloading">Herunterladen</string> <string name="notification_channel_downloading_description">Wird gezeigt beim Herunterladen.</string> <string name="notification_channel_playing">Jetzt spielt</string> <string name="notification_channel_playing_description">Erlaubt es, die Wiedergabe zu steuern. Dies ist die Hauptbenachrichtigung, die du siehst, während ein Podcast abgespielt wird.</string> 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 @@ <string name="podcastdirectories_label">Podcast keresése mappában</string> <string name="podcastdirectories_descr">Új podcastokat kereshetsz iTunes-on vagy fyyd-en, vagy a gpodder.net-en név, kategória vagy cím alapján.</string> <string name="browse_gpoddernet_label">gpodder.net böngészése</string> + <string name="discover">Felfedezés</string> <!--Actions on feeds--> <string name="mark_all_read_label">Az összes megjelölése lejátszottként</string> <string name="mark_all_read_msg">Az összes epizód lejátszottként megjelölve</string> diff --git a/core/src/main/res/values-id/strings.xml b/core/src/main/res/values-in/strings.xml index 2f1ffecea..2f1ffecea 100644 --- a/core/src/main/res/values-id/strings.xml +++ b/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 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <style name="Theme.MediaPlayer" parent="@style/Theme.AppCompat.Light"> - <item name="android:windowActionBarOverlay">true</item> - </style> -</resources>
\ 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 @@ <dimen name="thumbnail_length">170dp</dimen> <dimen name="thumbnail_length_queue_item">64dp</dimen> <dimen name="thumbnail_length_downloaded_item">64dp</dimen> - <dimen name="queue_title_text_size">@dimen/text_size_medium</dimen> </resources>
\ 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 @@ <string name="add_feed_label">Dodaj podcast</string> <string name="episodes_label">Odcinki</string> <string name="all_episodes_short_label">Wszystkie</string> + <string name="new_episodes_label">Nowe</string> <string name="favorite_episodes_label">Ulubione</string> <string name="new_label">Nowy</string> <string name="settings_label">Ustawienia</string> @@ -104,6 +105,7 @@ <string name="podcastdirectories_label">Znajdź podcast w folderze</string> <string name="podcastdirectories_descr">Możesz wyszukiwać nowe podcasty ze względu na nazwę, kategorię lub popularność na gpodder.net, Itunes lub fyyd</string> <string name="browse_gpoddernet_label">Przeglądaj gpodder.net</string> + <string name="discover_more">więcej »</string> <!--Actions on feeds--> <string name="mark_all_read_label">Oznacz wszystkie jako odtworzone</string> <string name="mark_all_read_msg">Wszystkie odcinki zaznaczono jako odtworzone</string> @@ -134,7 +136,7 @@ <string name="hide_has_media_label">Ma media</string> <string name="filtered_label">Przefiltrowany</string> <string name="refresh_failed_msg">{fa-exclamation-circle} Ostatnie odświerzanie nie powiodło się</string> - <string name="open_podcast">Otwarty Podcast</string> + <string name="open_podcast">Otwórz Podcast</string> <!--actions on feeditems--> <string name="download_label">Pobierz</string> <string name="play_label">Odtwórz</string> @@ -249,6 +251,8 @@ <!--Empty list labels--> <string name="no_feeds_label">Nie subskrybowałeś jeszcze żadnego podcastu.</string> <string name="no_shownotes_label">Ten epizod nie ma notatek.</string> + <string name="no_comp_downloads_head_label">Brak pobranych odcinków</string> + <string name="no_fav_episodes_head_label">Brak ulubionych odcinków</string> <string name="no_chapters_label">Ten odcinek nie ma rozdziałów.</string> <!--Preferences--> <string name="storage_pref">Pamięć</string> @@ -258,6 +262,8 @@ <string name="queue_label">Kolejka</string> <string name="download_pref_details">Szczegóły</string> <string name="appearance">Wygląd</string> + <string name="preference_search_no_results">Brak wyników</string> + <string name="preference_search_clear_history">Wyczyść historię</string> <string name="pref_episode_cleanup_title">Usuwanie odcinków</string> <string name="pref_episode_cleanup_summary">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.</string> <string name="pref_pauseOnDisconnect_sum">Wstrzymaj odtwarzanie po rozłączeniu słuchawek lub Bluetooth</string> @@ -292,6 +298,7 @@ <string name="pref_unpauseOnHeadsetReconnect_title">Słuchawki podłączone ponownie</string> <string name="pref_unpauseOnBluetoothReconnect_title">Bluetooth podłączony ponownie</string> <string name="pref_mobileUpdate_title">Aktualizacje mobilne</string> + <string name="pref_mobileUpdate_auto_download">Automatyczne pobieranie</string> <string name="refreshing_label">Odświeżanie</string> <string name="user_interface_label">Interfejs użytkownika</string> <string name="pref_set_theme_title">Wybierz motyw</string> @@ -374,6 +381,9 @@ <string name="pref_cast_message_free_flavor">Chromecast wymagadodatkowych bibliotek, które są zablokowane w tej wersji AntennaPod</string> <string name="pref_enqueue_downloaded_title">Rzeczy z kolejki pobrane</string> <string name="pref_enqueue_downloaded_summary">Dodaj pobrane odcinki do kolejki</string> + <string name="behavior">Zachowanie</string> + <string name="back_button_default">Domyślne</string> + <string name="back_button_open_drawer">Otwórz panel nawigacyjny</string> <!--Search--> <string name="search_hint">Szukaj odcinków</string> <string name="found_in_shownotes_label">Znalezione w notatkach dotyczących show</string> 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 @@ <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:fontFamily">sans-serif-light</item> </style> - - <style name="AntennaPod.Dialog.Title" parent="@android:style/TextAppearance.Medium"> - <item name="android:textSize">@dimen/text_size_medium</item> - <item name="android:textColor">@color/holo_blue_light</item> - <item name="android:maxLines">2</item> - <item name="android:ellipsize">end</item> - <item name="android:fontFamily">sans-serif-light</item> - </style> </resources>
\ 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 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <color name="selection_background_color_dark">#484B4D</color> - <color name="selection_background_color_light">#E3E3E3</color> </resources>
\ 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 @@ <item>4.00</item> </string-array> - <string-array name="autodl_select_networks_default_entries"> - <item>N/A</item> - </string-array> - <string-array name="autodl_select_networks_default_values"> - <item>0</item> - </string-array> - <string-array name="theme_options"> <item>@string/pref_theme_title_light</item> <item>@string/pref_theme_title_dark</item> 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 @@ <resources> <color name="white">#FFFFFF</color> - <color name="gray">#808080</color> <color name="grey600">#757575</color> <color name="light_gray">#bfbfbf</color> <color name="black">#000000</color> <color name="holo_blue_light">#33B5E5</color> <color name="holo_blue_dark">#0099CC</color> - <color name="ics_gray">#858585</color> - <color name="actionbar_gray">#DDDDDD</color> <color name="download_success_green">#669900</color> <color name="download_failed_red">#CC0000</color> <color name="status_progress">#E033B5E5</color> - <color name="status_playing">#E0EE5F52</color> <color name="overlay_dark">#2C2C2C</color> <color name="overlay_light">#FFFFFF</color> - <color name="swipe_refresh_secondary_color_light">#EDEDED</color> - <color name="swipe_refresh_secondary_color_dark">#060708</color> <color name="new_indicator_green">#669900</color> <color name="image_readability_tint">#80000000</color> <color name="feed_image_bg">#50000000</color> 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 @@ <dimen name="text_size_navdrawer">16sp</dimen> <dimen name="text_size_medium">18sp</dimen> <dimen name="text_size_large">22sp</dimen> - <dimen name="status_indicator_width">32dp</dimen> <dimen name="thumbnail_length_itemlist">64dp</dimen> <dimen name="thumbnail_length_queue_item">64dp</dimen> <dimen name="thumbnail_length_downloaded_item">64dp</dimen> @@ -21,7 +20,6 @@ <dimen name="drawer_width">280dp</dimen> <dimen name="listitem_iconwithtext_height">48dp</dimen> <dimen name="listitem_iconwithtext_textleftpadding">16dp</dimen> - <dimen name="listitem_iconwithtext_textverticalpadding">16dp</dimen> <dimen name="listitem_threeline_textleftpadding">16dp</dimen> <dimen name="listitem_threeline_textrightpadding">8dp</dimen> @@ -29,7 +27,6 @@ <dimen name="listitem_threeline_horizontalpadding">16dp</dimen> <dimen name="list_vertical_padding">8dp</dimen> - <dimen name="minimum_text_margin">8dp</dimen> <dimen name="listitem_icon_leftpadding">16dp</dimen> <dimen name="listitem_icon_rightpadding">16dp</dimen> 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 @@ <resources> - <integer name="undobar_hide_delay">5000</integer> <integer name="episode_cache_size_unlimited">-1</integer> </resources> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index c9c6506a9..b9793151c 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -27,10 +27,8 @@ <string name="gpodnet_main_label">gpodder.net</string> <string name="gpodnet_summary">Synchronize with other devices</string> <string name="gpodnet_auth_label">gpodder.net Login</string> - <string name="free_space_label">%1$s free</string> <string name="episode_cache_full_title">Episode cache full</string> <string name="episode_cache_full_message">The episode cache limit has been reached. You can increase the cache size in the Settings.</string> - <string name="synchronizing">Synchronizing…</string> <!-- Statistics fragment --> <string name="total_time_listened_to_podcasts">Total time of podcasts played:</string> @@ -73,7 +71,6 @@ <string name="author_label">Author(s)</string> <string name="language_label">Language</string> <string name="url_label">URL</string> - <string name="podcast_settings_label">Settings</string> <string name="cover_label">Picture</string> <string name="error_label">Error</string> <string name="error_msg_prefix">An error occurred:</string> @@ -82,14 +79,9 @@ <string name="external_storage_error_msg">No external storage is available. Please make sure that external storage is mounted so that the app can work properly.</string> <string name="chapters_label">Chapters</string> <string name="chapter_duration">Duration: %1$s</string> - <string name="shownotes_label">Shownotes</string> <string name="description_label">Description</string> - <string name="most_recent_prefix">Most recent episode:\u0020</string> <string name="episodes_suffix">\u0020episodes</string> - <string name="length_prefix">Length:\u0020</string> - <string name="size_prefix">Size:\u0020</string> <string name="processing_label">Processing</string> - <string name="loading_label">Loading…</string> <string name="save_username_password_label">Save username and password</string> <string name="close_label">Close</string> <string name="retry_label">Retry</string> @@ -119,8 +111,6 @@ <string name="feedurl_label">Feed URL</string> <string name="etxtFeedurlHint">www.example.com/feed</string> <string name="txtvfeedurl_label">Add Podcast by URL</string> - <string name="podcastdirectories_label">Find Podcast in Directory</string> - <string name="podcastdirectories_descr">For new podcasts, you can search iTunes or fyyd, or browse gpodder.net by name, category or popularity.</string> <string name="browse_gpoddernet_label">Browse gpodder.net</string> <string name="discover">Discover</string> <string name="discover_more">more »</string> @@ -149,7 +139,6 @@ <string name="feed_delete_confirmation_msg">Please confirm that you want to delete the podcast \"%1$s\" and ALL its episodes (including downloaded episodes).</string> <string name="feed_remover_msg">Removing podcast</string> <string name="load_complete_feed">Refresh complete podcast</string> - <string name="hide_episodes_title">Hide Episodes</string> <string name="batch_edit">Batch edit</string> <string name="select_all_above">Select all above</string> <string name="select_all_below">Select all below</string> @@ -174,9 +163,7 @@ </plurals> <string name="play_label">Play</string> <string name="pause_label">Pause</string> - <string name="stop_label">Stop</string> <string name="stream_label">Stream</string> - <string name="remove_label">Remove</string> <string name="delete_label">Delete</string> <string name="delete_failed">Unable to delete file. Rebooting the device could help.</string> <string name="delete_episode_label">Delete Episode</string> @@ -221,14 +208,12 @@ <!-- Download messages and labels --> <string name="download_successful">successful</string> - <string name="download_failed">failed</string> <string name="download_pending">Download pending</string> <string name="download_running">Download running</string> <string name="download_error_details">Details</string> <string name="download_error_details_message">%1$s \n\nFile URL:\n%2$s</string> <string name="download_error_device_not_found">Storage Device not found</string> <string name="download_error_insufficient_space">Insufficient Space</string> - <string name="download_error_file_error">File Error</string> <string name="download_error_http_data_error">HTTP Data Error</string> <string name="download_error_error_unknown">Unknown Error</string> <string name="download_error_parser_exception">Parser Exception</string> @@ -238,7 +223,6 @@ <string name="download_error_unauthorized">Authentication Error</string> <string name="download_error_file_type_type">File Type Error</string> <string name="download_error_forbidden">Forbidden</string> - <string name="cancel_all_downloads_label">Cancel all downloads</string> <string name="download_canceled_msg">Download canceled</string> <string name="download_canceled_autodownload_enabled_msg">Download canceled\nDisabled <i>Auto Download</i> for this item</string> <string name="download_report_title">Downloads completed with error(s)</string> @@ -257,7 +241,6 @@ <string name="download_log_title_unknown">Unknown Title</string> <string name="download_type_feed">Feed</string> <string name="download_type_media">Media file</string> - <string name="download_type_image">Image</string> <string name="download_request_error_dialog_message_prefix">An error occurred when trying to download the file:\u0020</string> <string name="null_value_podcast_error">No podcast was provided that could be shown.</string> <string name="authentication_notification_title">Authentication required</string> @@ -285,7 +268,6 @@ <string name="position_default_label" translate="false">00:00:00</string> <string name="player_buffering_msg">Buffering</string> <string name="player_go_to_picture_in_picture">Picture-in-picture mode</string> - <string name="playbackservice_notification_title">Playing podcast</string> <string name="unknown_media_key">AntennaPod - Unknown media key: %1$d</string> <!-- Queue operations --> @@ -293,9 +275,10 @@ <string name="unlock_queue">Unlock Queue</string> <string name="queue_locked">Queue locked</string> <string name="queue_unlocked">Queue unlocked</string> + <string name="queue_lock_warning">If you lock the queue, you can no longer swipe or reorder episodes.</string> + <string name="checkbox_do_not_show_again">Do not show again</string> <string name="clear_queue_label">Clear Queue</string> <string name="undo">Undo</string> - <string name="removed_from_queue">Item removed</string> <string name="move_to_top_label">Move to top</string> <string name="move_to_bottom_label">Move to bottom</string> <string name="sort">Sort</string> @@ -322,7 +305,6 @@ <!-- Empty list labels --> <string name="no_items_header_label">No queued episodes</string> <string name="no_items_label">Add an episode by downloading it, or long press an episode and select \"Add to queue\".</string> - <string name="no_feeds_label">You haven\'t subscribed to any podcasts yet.</string> <string name="no_shownotes_label">This episode has no shownotes.</string> <string name="no_run_downloads_head_label">No downloads running</string> <string name="no_run_downloads_label">You can download episodes on the podcast details screen.</string> @@ -344,7 +326,6 @@ <!-- Preferences --> <string name="storage_pref">Storage</string> <string name="project_pref">Project</string> - <string name="other_pref">Other</string> <string name="about_pref">About</string> <string name="queue_label">Queue</string> <string name="integrations_label">Integrations</string> @@ -388,9 +369,7 @@ <string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Set Time of Day</string> <string name="pref_autoUpdateIntervallOrTime_every">every %1$s</string> <string name="pref_autoUpdateIntervallOrTime_at">at %1$s</string> - <string name="pref_downloadMediaOnWifiOnly_sum">Download media files only over WiFi</string> <string name="pref_followQueue_title">Continuous Playback</string> - <string name="pref_downloadMediaOnWifiOnly_title">WiFi media download</string> <string name="pref_pauseOnHeadsetDisconnect_title">Headphones Disconnect</string> <string name="pref_unpauseOnHeadsetReconnect_title">Headphones Reconnect</string> <string name="pref_unpauseOnBluetoothReconnect_title">Bluetooth Reconnect</string> @@ -401,11 +380,8 @@ <string name="pref_mobileUpdate_auto_download">Auto download</string> <string name="pref_mobileUpdate_episode_download">Episode download</string> <string name="pref_mobileUpdate_streaming">Streaming</string> - <string name="refreshing_label">Refreshing</string> <string name="user_interface_label">User Interface</string> <string name="pref_set_theme_title">Select Theme</string> - <string name="pref_nav_drawer_title">Customize Navigation Drawer</string> - <string name="pref_nav_drawer_sum">Customize the appearance of the navigation drawer.</string> <string name="pref_nav_drawer_items_title">Set Navigation Drawer items</string> <string name="pref_nav_drawer_items_sum">Change which items appear in the navigation drawer.</string> <string name="pref_nav_drawer_feed_order_title">Set Subscription Order</string> @@ -417,8 +393,6 @@ <string name="pref_automatic_download_sum">Configure the automatic download of episodes.</string> <string name="pref_autodl_wifi_filter_title">Enable Wi-Fi filter</string> <string name="pref_autodl_wifi_filter_sum">Allow automatic download only for selected Wi-Fi networks.</string> - <string name="pref_autodl_allow_on_mobile_title">Download on mobile connection</string> - <string name="pref_autodl_allow_on_mobile_sum">Allow automatic download over the mobile data connection.</string> <string name="pref_automatic_download_on_battery_title">Download when not charging</string> <string name="pref_automatic_download_on_battery_sum">Allow automatic download when the battery is not charging</string> <string name="pref_parallel_downloads_title">Parallel Downloads</string> @@ -443,7 +417,6 @@ <string name="pref_gpodnet_full_sync_sum">Sync all subscriptions and episode states with gpodder.net.</string> <string name="pref_gpodnet_sync_sum_last_sync_line">Last sync attempt: %1$s (%2$s)</string> <string name="pref_gpodnet_sync_started">Sync started</string> - <string name="pref_gpodnet_full_sync_started">Full sync started</string> <string name="pref_gpodnet_login_status"><![CDATA[Logged in as <i>%1$s</i> with device <i>%2$s</i>]]></string> <string name="pref_gpodnet_notifications_title">Show sync error notifications</string> <string name="pref_gpodnet_notifications_sum">This setting does not apply to authentication errors.</string> @@ -525,21 +498,16 @@ <string name="no_results_for_query">No results were found for \"%1$s\"</string> <!-- OPML import and export --> - <string name="opml_import_txtv_button_lable">OPML files allow you to move your podcasts from one podcatcher to another.</string> <string name="opml_import_option">Option %1$d</string> <string name="opml_import_explanation_1">Choose a specific file path from the local filesystem.</string> - <string name="opml_import_explanation_2">Use an external applications like Dropbox, Google Drive or your favourite file manager to open an OPML file.</string> - <string name="opml_import_explanation_3">Many applications like Google Mail, Dropbox, Google Drive and most file managers can <i>open</i> OPML files <i>with</i> AntennaPod.</string> <string name="start_import_label">Start import</string> + <string name="opml_import_explanation_3">Many applications like Google Mail, Dropbox, Google Drive and most file managers can <i>open</i> OPML files <i>with</i> AntennaPod.</string> <string name="opml_import_label">OPML Import</string> - <string name="opml_directory_error">ERROR!</string> <string name="reading_opml_label">Reading OPML file</string> <string name="opml_reader_error">An error has occurred while reading the OPML document:</string> <string name="opml_import_error_no_file">No file selected!</string> <string name="select_all_label">Select all</string> <string name="deselect_all_label">Deselect all</string> - <string name="select_options_label">Select…</string> <string name="choose_file_from_filesystem">From local filesystem</string> - <string name="choose_file_from_external_application">Use external application</string> <string name="opml_export_label">OPML export</string> <string name="html_export_label">HTML export</string> <string name="exporting_label">Exporting…</string> @@ -638,7 +606,6 @@ <!-- Online feed view --> <string name="subscribe_label">Subscribe</string> - <string name="subscribed_label">Subscribed</string> <string name="downloading_label">Downloading…</string> <!-- Content descriptions for image buttons --> @@ -761,7 +728,6 @@ <string name="cast_failed_setting_volume">Failed to set the volume</string> <string name="cast_failed_no_connection">No connection to the cast device is present</string> <string name="cast_failed_no_connection_trans">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.</string> - <string name="cast_failed_perform_action">Failed to perform the action</string> <string name="cast_failed_status_request">Failed to sync up with the cast device</string> <string name="cast_failed_seek">Failed to seek to the new position on the cast device</string> <string name="cast_failed_receiver_player_error">Receiver player has encountered a severe error</string> 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 @@ <item name="android:ellipsize">end</item> </style> - <style name="AntennaPod.Dialog.Title" parent="@android:style/TextAppearance.Medium"> - <item name="android:textSize">@dimen/text_size_medium</item> - <item name="android:textColor">?android:attr/textColorPrimary</item> - <item name="android:maxLines">2</item> - <item name="android:ellipsize">end</item> - </style> - <style name="AntennaPod.TextView.UnreadIndicator" parent="@android:style/TextAppearance.Small"> <item name="android:textSize">@dimen/text_size_micro</item> <item name="android:textColor">@color/new_indicator_green</item> @@ -276,16 +269,6 @@ <item name="textAllCaps">false</item> </style> - <style name="Divider"> - <item name="android:layout_width">match_parent</item> - <item name="android:layout_height">1dp</item> - <item name="android:layout_marginTop">8dp</item> - <item name="android:layout_marginLeft">16dp</item> - <item name="android:layout_marginRight">16dp</item> - <item name="android:layout_marginBottom">8dp</item> - <item name="android:background">?android:attr/listDivider</item> - </style> - <style name="AntennaPod.Dialog.Light" parent="Theme.AppCompat.Light.Dialog"> <item name="colorAccent">@color/holo_blue_light</item> </style> |