From 087ca72fc75708184fa7154afb69e2907538c66e Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Tue, 25 Aug 2020 09:34:50 +0800 Subject: Add options to change the number of columns in PostFragment portrait and landscape modes. Upgrade compileSdkVersion and targetSdkVersion to 30. --- .../infinityforreddit/Fragment/PostFragment.java | 9 +++++++- ...umberOfColumnsInPostFeedPreferenceFragment.java | 14 +++++++++++++ .../Utils/SharedPreferencesUtils.java | 2 ++ app/src/main/res/values/arrays.xml | 5 +++++ app/src/main/res/values/strings.xml | 3 +++ .../number_of_columns_in_post_feed_preferences.xml | 18 ++++++++++++++++ app/src/main/res/xml/interface_preference.xml | 4 ++++ .../number_of_columns_in_post_feed_preferences.xml | 24 ++++++++++++++++++++++ 8 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/Settings/NumberOfColumnsInPostFeedPreferenceFragment.java create mode 100644 app/src/main/res/xml-sw600dp/number_of_columns_in_post_feed_preferences.xml create mode 100644 app/src/main/res/xml/number_of_columns_in_post_feed_preferences.xml (limited to 'app/src') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/PostFragment.java index 997984bc..c481cd05 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/PostFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/PostFragment.java @@ -260,7 +260,14 @@ public class PostFragment extends Fragment implements FragmentCommunicator { activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int windowWidth = displayMetrics.widthPixels; - if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT && !resources.getBoolean(R.bool.isTablet)) { + int nColumns; + if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + nColumns = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.NUMBER_OF_COLUMNS_IN_POST_FEED_PORTRAIT, "1")); + } else { + nColumns = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.NUMBER_OF_COLUMNS_IN_POST_FEED_LANDSCAPE, "1")); + } + + if (nColumns == 1) { mLinearLayoutManager = new LinearLayoutManager(activity); mPostRecyclerView.setLayoutManager(mLinearLayoutManager); } else { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/NumberOfColumnsInPostFeedPreferenceFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/NumberOfColumnsInPostFeedPreferenceFragment.java new file mode 100644 index 00000000..04052e07 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Settings/NumberOfColumnsInPostFeedPreferenceFragment.java @@ -0,0 +1,14 @@ +package ml.docilealligator.infinityforreddit.Settings; + +import android.os.Bundle; + +import androidx.preference.PreferenceFragmentCompat; + +import ml.docilealligator.infinityforreddit.R; + +public class NumberOfColumnsInPostFeedPreferenceFragment extends PreferenceFragmentCompat { + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.number_of_columns_in_post_feed_preferences, rootKey); + } +} 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 617981bc..81222569 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java @@ -80,6 +80,8 @@ public class SharedPreferencesUtils { public static final String DEFAULT_POST_LAYOUT_KEY = "default_post_layout"; public static final String SHOW_DIVIDER_IN_COMPACT_LAYOUT = "show_divider_in_compact_layout"; public static final String SHOW_THUMBNAIL_ON_THE_LEFT_IN_COMPACT_LAYOUT = "show_thumbnail_on_the_left_in_compact_layout"; + public static final String NUMBER_OF_COLUMNS_IN_POST_FEED_PORTRAIT = "number_of_columns_in_post_feed_portrait"; + public static final String NUMBER_OF_COLUMNS_IN_POST_FEED_LANDSCAPE = "number_of_columns_in_post_feed_landscape"; public static final String SWIPE_RIGHT_TO_GO_BACK = "swipe_to_go_back_from_post_detail"; public static final String VOLUME_KEYS_NAVIGATE_COMMENTS = "volume_keys_navigate_comments"; public static final String VOLUME_KEYS_NAVIGATE_POSTS = "volume_keys_navigate_posts"; diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index e3ad548e..38edbb2a 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -228,4 +228,9 @@ yyyy.M.d HH:mm yyyy.M.d hh:mm a + + + 1 + 2 + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b909ab32..8105a92f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -387,6 +387,9 @@ Default Post Layout Show Divider in Compact Layout Show Thumbnail on the Left in Compact Layout + The Number of Columns in Post Feed + Portrait + Landscape Swap Tap and Long Press in Comments Swipe Right to Go Back Does Not Apply to All Pages diff --git a/app/src/main/res/xml-sw600dp/number_of_columns_in_post_feed_preferences.xml b/app/src/main/res/xml-sw600dp/number_of_columns_in_post_feed_preferences.xml new file mode 100644 index 00000000..4a61e4fc --- /dev/null +++ b/app/src/main/res/xml-sw600dp/number_of_columns_in_post_feed_preferences.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/interface_preference.xml b/app/src/main/res/xml/interface_preference.xml index 2e5c71e3..0fcd1977 100644 --- a/app/src/main/res/xml/interface_preference.xml +++ b/app/src/main/res/xml/interface_preference.xml @@ -62,6 +62,10 @@ app:key="show_thumbnail_on_the_left_in_compact_layout" app:title="@string/settings_show_thumbnail_on_the_left_in_compact_layout" /> + + diff --git a/app/src/main/res/xml/number_of_columns_in_post_feed_preferences.xml b/app/src/main/res/xml/number_of_columns_in_post_feed_preferences.xml new file mode 100644 index 00000000..cbaea03e --- /dev/null +++ b/app/src/main/res/xml/number_of_columns_in_post_feed_preferences.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file -- cgit v1.2.3