diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java index 8e1d6c734..7df0f5577 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java @@ -24,6 +24,7 @@ import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.snackbar.Snackbar; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -302,13 +303,15 @@ public class AudioPlayerFragment extends Fragment implements final AlertDialog.Builder errorDialog = new AlertDialog.Builder(getContext()); errorDialog.setTitle(R.string.error_label); errorDialog.setMessage(MediaPlayerError.getErrorString(getContext(), code)); - errorDialog.setNeutralButton(android.R.string.ok, - (dialog, which) -> { - dialog.dismiss(); - ((MainActivity) getActivity()).getBottomSheet() - .setState(BottomSheetBehavior.STATE_COLLAPSED); - } - ); + errorDialog.setPositiveButton(android.R.string.ok, (dialog, which) -> + ((MainActivity) getActivity()).getBottomSheet().setState(BottomSheetBehavior.STATE_COLLAPSED)); + if (!UserPreferences.useExoplayer()) { + errorDialog.setNeutralButton(R.string.media_player_switch_to_exoplayer, (dialog, which) -> { + UserPreferences.enableExoplayer(); + ((MainActivity) getActivity()).showSnackbarAbovePlayer( + R.string.media_player_switched_to_exoplayer, Snackbar.LENGTH_LONG); + }); + } errorDialog.create().show(); } 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 cb5a405c0..a42350b4a 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 @@ -809,6 +809,10 @@ public class UserPreferences { prefs.edit().putString(PREF_MEDIA_PLAYER, "sonic").apply(); } + public static void enableExoplayer() { + prefs.edit().putString(PREF_MEDIA_PLAYER, PREF_MEDIA_PLAYER_EXOPLAYER).apply(); + } + public static boolean stereoToMono() { return prefs.getBoolean(PREF_STEREO_TO_MONO, false); } diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 2da946b36..d11fa3a92 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -504,6 +504,8 @@ Built-in Android player Sonic Media Player ExoPlayer + Switch to ExoPlayer + Switched to ExoPlayer. Skip Silence in Audio Upon exiting video Behavior when leaving video playback