aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2020-10-19 10:03:49 +0000
committerAlex Ning <chineseperson5@gmail.com>2020-10-19 10:03:49 +0000
commit966f41f3b67c6ac5df1d31be08e8712932053e9c (patch)
treeb7c97ff635f5b2371d1dd547ee36fa4fdbb84f28 /app/src/main/java
parent1283ad62bb01ecabf03862b0a757b9448ac8c20c (diff)
downloadinfinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar.gz
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar.bz2
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar.lz
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar.xz
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.tar.zst
infinity-for-reddit-966f41f3b67c6ac5df1d31be08e8712932053e9c.zip
Add Miscellaneous settings. Rearange settings. Add an option: Respect Subreddit Recommended Comment Sort Type.
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java2
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java3
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MainPreferenceFragment.java27
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MiscellaneousPreferenceFragment.java67
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java1
5 files changed, 73 insertions, 27 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
index f5c027ec..c3f60986 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
@@ -216,6 +216,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
private boolean mLockFab;
private boolean mSwipeUpToHideFab;
private boolean mExpandChildren;
+ private boolean mRespectSubredditRecommendedSortType;
private int mWindowWidth;
private LinearLayoutManager mLinearLayoutManager;
private CommentAndPostRecyclerViewAdapter mAdapter;
@@ -296,6 +297,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
mLockFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.LOCK_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false);
mSwipeUpToHideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_UP_TO_HIDE_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false);
mExpandChildren = !mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_TOP_LEVEL_COMMENTS_FIRST, false);
+ mRespectSubredditRecommendedSortType = mSharedPreferences.getBoolean(SharedPreferencesUtils.RESPECT_SUBREDDIT_RECOMMENDED_COMMENT_SORT_TYPE, false);
mGlide = Glide.with(this);
Resources resources = getResources();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java
index 8e71f23f..4b83ac3f 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java
@@ -68,6 +68,7 @@ import ml.docilealligator.infinityforreddit.Settings.CustomizeMainPageTabsFragme
import ml.docilealligator.infinityforreddit.Settings.DownloadLocationPreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.GesturesAndButtonsPreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
+import ml.docilealligator.infinityforreddit.Settings.MiscellaneousPreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.NotificationPreferenceFragment;
import ml.docilealligator.infinityforreddit.Settings.NsfwAndBlurringFragment;
import ml.docilealligator.infinityforreddit.Settings.SecurityPreferenceFragment;
@@ -221,4 +222,6 @@ public interface AppComponent {
void inject(TranslationFragment translationFragment);
void inject(FetchRandomSubredditOrPostActivity fetchRandomSubredditOrPostActivity);
+
+ void inject(MiscellaneousPreferenceFragment miscellaneousPreferenceFragment);
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MainPreferenceFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MainPreferenceFragment.java
index 9ab5a099..32aec40d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MainPreferenceFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MainPreferenceFragment.java
@@ -10,15 +10,10 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.biometric.BiometricManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.SwitchPreference;
-
-import org.greenrobot.eventbus.EventBus;
import javax.inject.Inject;
import javax.inject.Named;
-import ml.docilealligator.infinityforreddit.Event.ChangeSavePostFeedScrolledPositionEvent;
-import ml.docilealligator.infinityforreddit.Event.RecreateActivityEvent;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
@@ -31,9 +26,6 @@ public class MainPreferenceFragment extends PreferenceFragmentCompat {
@Inject
@Named("default")
SharedPreferences sharedPreferences;
- @Inject
- @Named("post_feed_scrolled_position_cache")
- SharedPreferences cache;
private AppCompatActivity activity;
@Override
@@ -42,25 +34,6 @@ public class MainPreferenceFragment extends PreferenceFragmentCompat {
((Infinity) activity.getApplication()).getAppComponent().inject(this);
Preference securityPreference = findPreference(SharedPreferencesUtils.SECURITY);
- SwitchPreference savePostFeedScrolledPositionSwitch = findPreference(SharedPreferencesUtils.SAVE_FRONT_PAGE_SCROLLED_POSITION);
- SwitchPreference confirmToExitSwitch = findPreference(SharedPreferencesUtils.CONFIRM_TO_EXIT);
-
- if (savePostFeedScrolledPositionSwitch != null) {
- savePostFeedScrolledPositionSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
- if (!(Boolean) newValue) {
- cache.edit().clear().apply();
- }
- EventBus.getDefault().post(new ChangeSavePostFeedScrolledPositionEvent((Boolean) newValue));
- return true;
- });
- }
-
- if (confirmToExitSwitch != null) {
- confirmToExitSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
- EventBus.getDefault().post(new RecreateActivityEvent());
- return true;
- });
- }
BiometricManager biometricManager = BiometricManager.from(activity);
if (biometricManager.canAuthenticate(BIOMETRIC_STRONG | DEVICE_CREDENTIAL) != BiometricManager.BIOMETRIC_SUCCESS) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MiscellaneousPreferenceFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MiscellaneousPreferenceFragment.java
new file mode 100644
index 00000000..1b8c69d9
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/MiscellaneousPreferenceFragment.java
@@ -0,0 +1,67 @@
+package ml.docilealligator.infinityforreddit.Settings;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.SwitchPreference;
+
+import org.greenrobot.eventbus.EventBus;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import ml.docilealligator.infinityforreddit.Event.ChangeSavePostFeedScrolledPositionEvent;
+import ml.docilealligator.infinityforreddit.Event.RecreateActivityEvent;
+import ml.docilealligator.infinityforreddit.Infinity;
+import ml.docilealligator.infinityforreddit.R;
+import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
+
+public class MiscellaneousPreferenceFragment extends PreferenceFragmentCompat {
+
+ @Inject
+ @Named("post_feed_scrolled_position_cache")
+ SharedPreferences cache;
+ private Activity activity;
+
+ public MiscellaneousPreferenceFragment() {
+ // Required empty public constructor
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ setPreferencesFromResource(R.xml.miscellaneous_preferences, rootKey);
+
+ ((Infinity) activity.getApplication()).getAppComponent().inject(this);
+
+ SwitchPreference confirmToExitSwitch = findPreference(SharedPreferencesUtils.CONFIRM_TO_EXIT);
+ SwitchPreference savePostFeedScrolledPositionSwitch = findPreference(SharedPreferencesUtils.SAVE_FRONT_PAGE_SCROLLED_POSITION);
+
+ if (confirmToExitSwitch != null) {
+ confirmToExitSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
+ EventBus.getDefault().post(new RecreateActivityEvent());
+ return true;
+ });
+ }
+
+ if (savePostFeedScrolledPositionSwitch != null) {
+ savePostFeedScrolledPositionSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
+ if (!(Boolean) newValue) {
+ cache.edit().clear().apply();
+ }
+ EventBus.getDefault().post(new ChangeSavePostFeedScrolledPositionEvent((Boolean) newValue));
+ return true;
+ });
+ }
+ }
+
+ @Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+ activity = (AppCompatActivity) context;
+ }
+} \ No newline at end of file
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 cb659c23..a2b909eb 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java
@@ -135,6 +135,7 @@ public class SharedPreferencesUtils {
public static final String DATA_SAVING_MODE_ONLY_ON_CELLULAR_DATA = "1";
public static final String DATA_SAVING_MODE_ALWAYS = "2";
public static final String NATIONAL_FLAGS = "national_flags";
+ public static final String RESPECT_SUBREDDIT_RECOMMENDED_COMMENT_SORT_TYPE = "respect_subreddit_recommended_comment_sort_type";
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";
public static final String MAIN_PAGE_TAB_COUNT = "_main_page_tab_count";