diff --git a/app/build.gradle b/app/build.gradle index 2880f980f..0651d6809 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,8 +22,8 @@ android { // "1.2.3-SNAPSHOT" -> 1020300 // "1.2.3-RC4" -> 1020304 // "1.2.3" -> 1020395 - versionCode 2000395 - versionName "2.0.3" + versionCode 2010002 + versionName "2.1.0-RC2" multiDexEnabled false vectorDrawables.useSupportLibrary true 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 d39edb9b2..d1716e009 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -16,6 +16,7 @@ import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.EditText; import android.widget.FrameLayout; import android.widget.Toast; import androidx.annotation.NonNull; @@ -542,6 +543,11 @@ public class MainActivity extends CastEnabledActivity { //Hardware keyboard support @Override public boolean onKeyUp(int keyCode, KeyEvent event) { + View currentFocus = getCurrentFocus(); + if (currentFocus instanceof EditText) { + return super.onKeyUp(keyCode, event); + } + AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); Integer customKeyCode = null; diff --git a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java index 2d4510e8f..9ab1755f5 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java @@ -12,6 +12,7 @@ import android.view.KeyEvent; import android.view.animation.AlphaAnimation; import android.view.animation.AnimationSet; import android.view.animation.ScaleAnimation; +import android.widget.EditText; import android.widget.ImageView; import androidx.appcompat.view.menu.ActionMenuItem; @@ -489,6 +490,11 @@ public class VideoplayerActivity extends MediaplayerActivity { //Hardware keyboard support @Override public boolean onKeyUp(int keyCode, KeyEvent event) { + View currentFocus = getCurrentFocus(); + if (currentFocus instanceof EditText) { + return super.onKeyUp(keyCode, event); + } + AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE); switch (keyCode) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java index caf489569..9ecfda23e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java @@ -88,7 +88,9 @@ public class AddFeedFragment extends Fragment { intentGetContentAction.setType("*/*"); startActivityForResult(intentGetContentAction, REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH); } catch (ActivityNotFoundException e) { - Log.e(TAG, "No activity found. Should never happen..."); + e.printStackTrace(); + ((MainActivity) getActivity()) + .showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG); } }); root.findViewById(R.id.btn_add_local_folder).setOnClickListener(v -> { @@ -100,7 +102,9 @@ public class AddFeedFragment extends Fragment { intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivityForResult(intent, REQUEST_CODE_ADD_LOCAL_FOLDER); } catch (ActivityNotFoundException e) { - Log.e(TAG, "No activity found. Should never happen..."); + e.printStackTrace(); + ((MainActivity) getActivity()) + .showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG); } }); if (Build.VERSION.SDK_INT < 21) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java index 98d6a946b..c2c45c581 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java @@ -176,7 +176,7 @@ public class DownloadLogFragment extends ListFragment { public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (!super.onOptionsItemSelected(item)) { switch (item.getItemId()) { - case R.id.clear_history_item: + case R.id.clear_logs_item: DBWriter.clearDownloadLog(); return true; case R.id.refresh_item: diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java index ba817650b..992b6930c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java @@ -90,7 +90,6 @@ public class OnlineSearchFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View root = inflater.inflate(R.layout.fragment_itunes_search, container, false); - setupToolbar(root.findViewById(R.id.toolbar)); root.findViewById(R.id.spinner_country).setVisibility(INVISIBLE); gridView = root.findViewById(R.id.gridView); adapter = new ItunesAdapter(getActivity(), new ArrayList<>()); @@ -110,6 +109,7 @@ public class OnlineSearchFragment extends Fragment { txtvEmpty = root.findViewById(android.R.id.empty); TextView txtvPoweredBy = root.findViewById(R.id.search_powered_by); txtvPoweredBy.setText(getString(R.string.search_powered_by, searchProvider.getName())); + setupToolbar(root.findViewById(R.id.toolbar)); return root; } diff --git a/app/src/main/play/release-notes/en-US/default.txt b/app/src/main/play/release-notes/en-US/default.txt index a27f2d0c0..6baa07d5a 100644 --- a/app/src/main/play/release-notes/en-US/default.txt +++ b/app/src/main/play/release-notes/en-US/default.txt @@ -1,7 +1,9 @@ -We are proud to release version 2.0 with a new logo and refreshed user interface. -Thank you to 6420 users who participated in the vote for the new logo! +This is a beta release for AntennaPod 2.1.0 -- Support for chapter images (only new episodes, by @ByteHamster) -- Skip intro and ending per feed (by @tonytamsf) -- Option to show notifications after episodes have been auto-downloaded (by @shortspider) -- Bug fixes and improvements (by @ebraminio, @tonytamsf, @JessieVela, @ByteHamster and more) +- A long-standing wish of many: playing local files! In the 'Add podcast' screen simply tap 'Add local folder' and select a location on your phone! (@ByteHamster, @igoralmeida & @damoasda) +- Pick a country for the 'Discover' screen (@tonytamsf) +- Keyboard shortcuts (@asdoi) +- Search the PodcastIndex.org database (@edwinhere) +- Pull to refresh (@asdoi) +- Playback speed & filter dialogs (@ByteHamster & @bws9000) +- Smooth sleep timer volume (@olivoto) diff --git a/app/src/main/res/xml/preferences_playback.xml b/app/src/main/res/xml/preferences_playback.xml index 161332d2f..d2999c59d 100644 --- a/app/src/main/res/xml/preferences_playback.xml +++ b/app/src/main/res/xml/preferences_playback.xml @@ -114,7 +114,7 @@ android:title="@string/pref_skip_keeps_episodes_title"/> - + - - - { - mediaPlayer.playMediaObject(playable, stream, startWhenPrepared, + mediaPlayer.playMediaObject(playableLoaded, stream, startWhenPrepared, prepareImmediately); - addPlayableToQueue(playable); + addPlayableToQueue(playableLoaded); }, error -> { Log.d(TAG, "Playable was not found. Stopping service."); + error.printStackTrace(); stateManager.stopService(); }); return Service.START_NOT_STICKY; @@ -729,6 +730,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { addPlayableToQueue(playable); }, error -> { Log.d(TAG, "Playable was not loaded from preferences. Stopping service."); + error.printStackTrace(); stateManager.stopService(); }); } diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index 13ff092b0..1ab44d847 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -236,7 +236,7 @@ @string/media_player_builtin @string/media_player_sonic - @string/media_player_exoplayer + @string/media_player_exoplayer_recommended diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 82bb0ced0..7da2bff72 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -501,7 +501,7 @@ Add downloaded episodes to the queue Built-in Android player Sonic Media Player - ExoPlayer + ExoPlayer (recommended) Switch to ExoPlayer Switched to ExoPlayer. Skip Silence in Audio @@ -739,6 +739,7 @@ Re-connect local folder In case of permission denials, you can use this to re-connect to the exact same folder. Do not select another folder. This virtual podcast was created by adding a folder to AntennaPod. + Unable to start system file manager Filter