Add go to page option
This commit is contained in:
parent
b3fbb0ec75
commit
6262f98e39
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -52,7 +52,8 @@ public class UserPreferences {
|
||||
public static final String PREF_COMPACT_NOTIFICATION_BUTTONS = "prefCompactNotificationButtons";
|
||||
public static final String PREF_LOCKSCREEN_BACKGROUND = "prefLockscreenBackground";
|
||||
private static final String PREF_SHOW_DOWNLOAD_REPORT = "prefShowDownloadReport";
|
||||
private static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior";
|
||||
public static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior";
|
||||
private static final String PREF_BACK_BUTTON_GO_TO_PAGE = "prefBackButtonGoToPage";
|
||||
|
||||
// Queue
|
||||
private static final String PREF_QUEUE_ADD_TO_FRONT = "prefQueueAddToFront";
|
||||
@ -812,7 +813,7 @@ public class UserPreferences {
|
||||
}
|
||||
|
||||
public enum BackButtonBehavior {
|
||||
DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT
|
||||
DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT, GO_TO_QUEUE, GO_TO_EPISODES, GO_TO_SUBSCRIPTIONS
|
||||
}
|
||||
|
||||
public static BackButtonBehavior getBackButtonBehavior() {
|
||||
@ -821,7 +822,24 @@ public class UserPreferences {
|
||||
case "drawer": return BackButtonBehavior.OPEN_DRAWER;
|
||||
case "doubletap": return BackButtonBehavior.DOUBLE_TAP;
|
||||
case "prompt": return BackButtonBehavior.SHOW_PROMPT;
|
||||
case "page":
|
||||
switch (UserPreferences.getBackButtonGoToPage()) {
|
||||
case 0: return BackButtonBehavior.GO_TO_QUEUE;
|
||||
case 1: return BackButtonBehavior.GO_TO_EPISODES;
|
||||
case 2: return BackButtonBehavior.GO_TO_SUBSCRIPTIONS;
|
||||
default: return BackButtonBehavior.GO_TO_QUEUE;
|
||||
}
|
||||
default: return BackButtonBehavior.DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getBackButtonGoToPage() {
|
||||
return prefs.getInt(PREF_BACK_BUTTON_GO_TO_PAGE, 0);
|
||||
}
|
||||
|
||||
public static void setBackButtonGoToPage(int page) {
|
||||
prefs.edit()
|
||||
.putInt(PREF_BACK_BUTTON_GO_TO_PAGE, page)
|
||||
.apply();
|
||||
}
|
||||
}
|
||||
|
@ -280,6 +280,7 @@
|
||||
|
||||
<string-array name="back_button_behavior_options">
|
||||
<item>@string/back_button_default</item>
|
||||
<item>@string/back_button_go_to_page</item>
|
||||
<item>@string/back_button_open_drawer</item>
|
||||
<item>@string/back_button_double_tap</item>
|
||||
<item>@string/back_button_show_prompt</item>
|
||||
@ -287,8 +288,15 @@
|
||||
|
||||
<string-array name="back_button_behavior_values">
|
||||
<item>default</item>
|
||||
<item>page</item>
|
||||
<item>drawer</item>
|
||||
<item>doubletap</item>
|
||||
<item>prompt</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="back_button_go_to_pages">
|
||||
<item>@string/queue_label</item>
|
||||
<item>@string/episodes_label</item>
|
||||
<item>@string/subscriptions_label</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
@ -471,7 +471,7 @@
|
||||
<string name="stop_playback">Stop playback</string>
|
||||
<string name="continue_playback">Continue audio playback</string>
|
||||
<string name="behavior">Behavior</string>
|
||||
<string name="pref_back_button_behavior_title">Back button behavior</string>
|
||||
<string name="pref_back_button_behavior_title">Back Button Behavior</string>
|
||||
<string name="pref_back_button_behavior_sum">Change behavior of the back button.</string>
|
||||
<string name="back_button_default">Default</string>
|
||||
<string name="back_button_open_drawer">Open navigation drawer</string>
|
||||
@ -479,6 +479,8 @@
|
||||
<string name="back_button_show_prompt">Confirm to exit</string>
|
||||
<string name="close_prompt">Are you sure you want to close AntennaPod?</string>
|
||||
<string name="double_tap_toast">Tap back button again to exit</string>
|
||||
<string name="back_button_go_to_page">Go to page</string>
|
||||
<string name="back_button_go_to_page_title">Select page</string>
|
||||
|
||||
<!-- Auto-Flattr dialog -->
|
||||
<string name="auto_flattr_enable">Enable automatic flattring</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user