aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2021-10-08 12:21:08 +0000
committerAlex Ning <chineseperson5@gmail.com>2021-10-08 12:21:08 +0000
commit723f1c0713c9c79ac005992dfcf32a52d858dee3 (patch)
treeb6e8f4bd7b0c936aa5ee3c6c2950bd4d002da99c /app
parentf5a333e2ac3c3032f787d6b7f66b751aa70767ef (diff)
downloadinfinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar.gz
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar.bz2
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar.lz
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar.xz
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.tar.zst
infinity-for-reddit-723f1c0713c9c79ac005992dfcf32a52d858dee3.zip
New option: Main Page Back Button Action. It replaces Confirm to Exit.
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/MainActivity.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/settings/MiscellaneousPreferenceFragment.java6
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java5
-rw-r--r--app/src/main/res/values/arrays.xml12
-rw-r--r--app/src/main/res/values/strings.xml4
-rw-r--r--app/src/main/res/xml/miscellaneous_preferences.xml11
6 files changed, 34 insertions, 18 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/MainActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/MainActivity.java
index 5afa6f17..1b25dffa 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/MainActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/MainActivity.java
@@ -98,7 +98,6 @@ import ml.docilealligator.infinityforreddit.bottomsheetfragments.SortTimeBottomS
import ml.docilealligator.infinityforreddit.bottomsheetfragments.SortTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
-import ml.docilealligator.infinityforreddit.events.ChangeConfirmToExitEvent;
import ml.docilealligator.infinityforreddit.events.ChangeDisableSwipingBetweenTabsEvent;
import ml.docilealligator.infinityforreddit.events.ChangeLockBottomAppBarEvent;
import ml.docilealligator.infinityforreddit.events.ChangeNSFWEvent;
@@ -231,7 +230,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
private String mMessageFullname;
private String mNewAccountName;
private boolean showBottomAppBar;
- private boolean mConfirmToExit;
+ private int mBackButtonAction;
private boolean mLockBottomAppBar;
private boolean mDisableSwipingBetweenTabs;
private boolean mShowFavoriteMultiReddits;
@@ -312,7 +311,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
toggle.syncState();
showBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.BOTTOM_APP_BAR_KEY, true);
- mConfirmToExit = mSharedPreferences.getBoolean(SharedPreferencesUtils.CONFIRM_TO_EXIT, false);
+ mBackButtonAction = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.MAIN_PAGE_BACK_BUTTON_ACTION, "0"));
mLockBottomAppBar = mSharedPreferences.getBoolean(SharedPreferencesUtils.LOCK_BOTTOM_APP_BAR, false);
mDisableSwipingBetweenTabs = mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_SWIPING_BETWEEN_TABS, false);
@@ -1119,13 +1118,15 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
- if (mConfirmToExit) {
+ if (mBackButtonAction == SharedPreferencesUtils.MAIN_PAGE_BACK_BUTTON_ACTION_CONFIRM_EXIT) {
new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)
.setTitle(R.string.exit_app)
.setPositiveButton(R.string.yes, (dialogInterface, i)
-> finish())
.setNegativeButton(R.string.no, null)
.show();
+ } else if (mBackButtonAction == SharedPreferencesUtils.MAIN_PAGE_BACK_BUTTON_ACTION_OPEN_NAVIGATION_DRAWER) {
+ drawer.openDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
@@ -1246,11 +1247,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
}
@Subscribe
- public void onChangeConfirmToExitEvent(ChangeConfirmToExitEvent changeConfirmToExitEvent) {
- mConfirmToExit = changeConfirmToExitEvent.confirmToExit;
- }
-
- @Subscribe
public void onChangeLockBottomAppBar(ChangeLockBottomAppBarEvent changeLockBottomAppBarEvent) {
mLockBottomAppBar = changeLockBottomAppBarEvent.lockBottomAppBar;
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MiscellaneousPreferenceFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MiscellaneousPreferenceFragment.java
index f33dd57f..b98f37e5 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MiscellaneousPreferenceFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MiscellaneousPreferenceFragment.java
@@ -39,12 +39,12 @@ public class MiscellaneousPreferenceFragment extends PreferenceFragmentCompat {
((Infinity) activity.getApplication()).getAppComponent().inject(this);
- SwitchPreference confirmToExitSwitch = findPreference(SharedPreferencesUtils.CONFIRM_TO_EXIT);
+ ListPreference mainPageBackButtonActionListPreference = findPreference(SharedPreferencesUtils.MAIN_PAGE_BACK_BUTTON_ACTION);
SwitchPreference savePostFeedScrolledPositionSwitch = findPreference(SharedPreferencesUtils.SAVE_FRONT_PAGE_SCROLLED_POSITION);
ListPreference languageListPreference = findPreference(SharedPreferencesUtils.LANGUAGE);
- if (confirmToExitSwitch != null) {
- confirmToExitSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
+ if (mainPageBackButtonActionListPreference != null) {
+ mainPageBackButtonActionListPreference.setOnPreferenceChangeListener((preference, newValue) -> {
EventBus.getDefault().post(new RecreateActivityEvent());
return true;
});
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
index e1694e47..6e83f822 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
@@ -105,7 +105,9 @@ public class SharedPreferencesUtils {
public static final String SWAP_TAP_AND_LONG_COMMENTS = "swap_tap_and_long_in_comments";
public static final String SWIPE_UP_TO_HIDE_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON = "swipe_up_to_hide_jump_to_next_top_level_comments_button";
public static final String SHOW_TOP_LEVEL_COMMENTS_FIRST = "show_top_level_comments_first";
- public static final String CONFIRM_TO_EXIT = "confirm_to_exit";
+ public static final String MAIN_PAGE_BACK_BUTTON_ACTION = "main_page_back_button_action";
+ public static final int MAIN_PAGE_BACK_BUTTON_ACTION_CONFIRM_EXIT = 1;
+ public static final int MAIN_PAGE_BACK_BUTTON_ACTION_OPEN_NAVIGATION_DRAWER = 2;
public static final String LOCK_BOTTOM_APP_BAR = "lock_bottom_app_bar";
public static final String COMMENT_TOOLBAR_HIDDEN = "comment_toolbar_hidden";
public static final String COMMENT_TOOLBAR_HIDE_ON_CLICK = "comment_toolbar_hide_on_click";
@@ -358,4 +360,5 @@ public class SharedPreferencesUtils {
public static final String NSFW_KEY_LEGACY = "nsfw";
public static final String BLUR_NSFW_KEY_LEGACY = "blur_nsfw";
public static final String BLUR_SPOILER_KEY_LEGACY = "blur_spoiler";
+ public static final String CONFIRM_TO_EXIT_LEGACY = "confirm_to_exit";
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 330abd60..e59c5abd 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -508,4 +508,16 @@
<item>86400000</item>
</string-array>
+ <string-array name="main_page_back_button_action">
+ <item>@string/default_in_array</item>
+ <item>@string/settings_confirm_to_exit</item>
+ <item>@string/settings_open_navigation_drawer</item>
+ </string-array>
+
+ <string-array name="main_page_back_button_action_values">
+ <item>0</item>
+ <item>1</item>
+ <item>2</item>
+ </string-array>
+
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0a66d129..203126ca 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -190,7 +190,7 @@
<string name="send_message_failed">Could not send this message</string>
<string name="select_a_subreddit">Please select a subreddit first</string>
- <string name="title_required">The post need a good title</string>
+ <string name="title_required">The post needs a good title</string>
<string name="link_required">Hey where is the link?</string>
<string name="select_an_image">Please select an image first</string>
<string name="posting">Posting</string>
@@ -391,7 +391,9 @@
<string name="settings_automatically_try_redgifs_title">Automatically Try Accessing Redgifs if Videos on Gfycat are Removed.</string>
<string name="settings_video_player_ignore_nav_bar_title">Ignore Navigation Bar in Video Player</string>
<string name="settings_video_player_ignore_nav_bar_summary">Prevent the Video Controller Having Extra Margin</string>
+ <string name="settings_main_page_back_button_action">Main Page Back Button Action</string>
<string name="settings_confirm_to_exit">Confirm to Exit</string>
+ <string name="settings_open_navigation_drawer">Open Navigation Drawer</string>
<string name="settings_category_comment_title">Comment</string>
<string name="settings_show_top_level_comments_first_title">Show Top-level Comments First</string>
<string name="settings_show_comment_divider_title">Show Comment Divider</string>
diff --git a/app/src/main/res/xml/miscellaneous_preferences.xml b/app/src/main/res/xml/miscellaneous_preferences.xml
index b17e7545..67a78aca 100644
--- a/app/src/main/res/xml/miscellaneous_preferences.xml
+++ b/app/src/main/res/xml/miscellaneous_preferences.xml
@@ -13,11 +13,14 @@
app:key="open_link_in_app"
app:title="@string/settings_open_link_in_app_title" />
- <SwitchPreference
- app:defaultValue="false"
- app:key="confirm_to_exit"
+ <ListPreference
+ app:defaultValue="0"
+ app:entries="@array/main_page_back_button_action"
+ app:entryValues="@array/main_page_back_button_action_values"
+ app:key="main_page_back_button_action"
app:icon="@drawable/ic_exit_24dp"
- app:title="@string/settings_confirm_to_exit" />
+ app:title="@string/settings_main_page_back_button_action"
+ app:useSimpleSummaryProvider="true" />
<SwitchPreference
app:defaultValue="true"