diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 28 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java | 27 |
2 files changed, 49 insertions, 6 deletions
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 fffd751c9..4c25c5c28 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -656,12 +656,7 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi case SHOW_PROMPT: new AlertDialog.Builder(this) .setMessage(R.string.close_prompt) - .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - MainActivity.super.onBackPressed(); - } - }) + .setPositiveButton(R.string.yes, (dialogInterface, i) -> MainActivity.super.onBackPressed()) .setNegativeButton(R.string.no, null) .setCancelable(false) .show(); @@ -674,6 +669,27 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi super.onBackPressed(); } break; + case GO_TO_QUEUE: + if(getLastNavFragment().equals(QueueFragment.TAG)) { + super.onBackPressed(); + } else { + loadFragment(QueueFragment.TAG, null); + } + break; + case GO_TO_EPISODES: + if(getLastNavFragment().equals(EpisodesFragment.TAG)) { + super.onBackPressed(); + } else { + loadFragment(EpisodesFragment.TAG, null); + } + break; + case GO_TO_SUBSCRIPTIONS: + if(getLastNavFragment().equals(SubscriptionFragment.TAG)) { + super.onBackPressed(); + } else { + loadFragment(SubscriptionFragment.TAG, null); + } + break; default: super.onBackPressed(); } } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index 1d93afad9..56af71dc4 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -227,6 +227,33 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc return true; }); + ui.findPreference(UserPreferences.PREF_BACK_BUTTON_BEHAVIOR) + .setOnPreferenceChangeListener((preference, newValue) -> { + if(newValue.equals("page")) { + final Context context = ui.getActivity(); + final String[] navTitles = context.getResources().getStringArray(R.array.back_button_go_to_pages); + final int choice[] = { UserPreferences.getBackButtonGoToPage() }; + + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(R.string.back_button_go_to_page_title); + builder.setSingleChoiceItems(navTitles, choice[0], (dialogInterface, i) -> { + if(i >= 0) { + choice[0] = i; + } + }); + builder.setPositiveButton(R.string.confirm_label, (dialogInterface, i) -> { + if (choice[0] != UserPreferences.getBackButtonGoToPage()) { + UserPreferences.setBackButtonGoToPage(choice[0]); + } + }); + builder.setNegativeButton(R.string.cancel_label, null); + builder.create().show(); + return true; + } else { + return true; + } + }); + if (Build.VERSION.SDK_INT >= 26) { ui.findPreference(UserPreferences.PREF_EXPANDED_NOTIFICATION).setVisible(false); } |