diff options
author | Sergei Kozelko <KozelkoS@yandex.ru> | 2022-11-03 01:58:08 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-03 01:58:08 +0000 |
commit | 72c66e7e4e19200f5cdd470fa101a4c826ab950b (patch) | |
tree | 90ea125dad4f40c6bf64bf568ff76d2249024e7f /app | |
parent | 78496e080f362def8265221301ab36a79947dd34 (diff) | |
download | infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar.gz infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar.bz2 infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar.lz infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar.xz infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.tar.zst infinity-for-reddit-72c66e7e4e19200f5cdd470fa101a4c826ab950b.zip |
Rename confidence sort to best (#1177)
* Rename CONFIDENCE comments sort type to BEST and remove old BEST type
The Reddit API supports only CONFIDENCE sort type for comments but displays it
as BEST.
I renamed CONFIDENCE name to Best and added a migration step for loading
correct sort type.
* Clean up sortType usages in ViewPostDetailFragment
Removed unnecessary null checks, object creations and most case conversions
Diffstat (limited to '')
4 files changed, 31 insertions, 49 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SortType.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SortType.java index 83d45f57..be4b1b89 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SortType.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SortType.java @@ -33,7 +33,7 @@ public class SortType { RELEVANCE("relevance", "Relevance"), COMMENTS("comments", "Comments"), ACTIVITY("activity", "Activity"), - CONFIDENCE("confidence", "Confidence"), + CONFIDENCE("confidence", "Best"), OLD("old", "Old"), QA("qa", "QA"), LIVE("live", "Live"); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostCommentSortTypeBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostCommentSortTypeBottomSheetFragment.java index 20871a1f..66dfe02c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostCommentSortTypeBottomSheetFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostCommentSortTypeBottomSheetFragment.java @@ -31,8 +31,6 @@ public class PostCommentSortTypeBottomSheetFragment extends LandscapeExpandedRou public static final String EXTRA_CURRENT_SORT_TYPE = "ECST"; @BindView(R.id.best_type_text_view_post_comment_sort_type_bottom_sheet_fragment) - TextView bestTypeTextView; - @BindView(R.id.confidence_type_text_view_post_comment_sort_type_bottom_sheet_fragment) TextView confidenceTypeTextView; @BindView(R.id.top_type_text_view_post_comment_sort_type_bottom_sheet_fragment) TextView topTypeTextView; @@ -71,9 +69,7 @@ public class PostCommentSortTypeBottomSheetFragment extends LandscapeExpandedRou ButterKnife.bind(this, rootView); String currentSortType = getArguments().getString(EXTRA_CURRENT_SORT_TYPE); - if (currentSortType.equals(SortType.Type.BEST.value)) { - bestTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(bestTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null); - } else if (currentSortType.equals(SortType.Type.CONFIDENCE.value)) { + if (currentSortType.equals(SortType.Type.BEST.value) || currentSortType.equals(SortType.Type.CONFIDENCE.value)) { confidenceTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(confidenceTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null); } else if (currentSortType.equals(SortType.Type.TOP.value)) { topTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(topTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null); @@ -96,11 +92,6 @@ public class PostCommentSortTypeBottomSheetFragment extends LandscapeExpandedRou rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); } - bestTypeTextView.setOnClickListener(view -> { - ((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.BEST)); - dismiss(); - }); - confidenceTypeTextView.setOnClickListener(view -> { ((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.CONFIDENCE)); dismiss(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java index 4475e8f8..baaf1261 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java @@ -546,15 +546,13 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic mMessageFullname = getArguments().getString(EXTRA_MESSAGE_FULLNAME); if (!mRespectSubredditRecommendedSortType || isSingleCommentThreadMode) { - sortType = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.BEST.value.toUpperCase()); - if (sortType != null) { - activity.setTitle(new SortType(SortType.Type.valueOf(sortType)).getType().fullName); - sortType = sortType.toLowerCase(); - } + SortType.Type sortTypeType = loadSortType(); + activity.setTitle(sortTypeType.fullName); + sortType = sortTypeType.value; } } else { if (sortType != null) { - activity.setTitle(new SortType(SortType.Type.valueOf(sortType.toUpperCase())).getType().fullName); + activity.setTitle(SortType.Type.valueOf(sortType.toUpperCase()).fullName); } } @@ -815,6 +813,20 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic fetchCommentsRespectRecommendedSort(false, false, sortType.getType().value); } + @NonNull + private SortType.Type loadSortType() { + String sortTypeName = mSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.CONFIDENCE.name()); + if (SortType.Type.BEST.name().equals(sortTypeName)) { + // migrate from BEST to CONFIDENCE + // key guaranteed to exist because got non-default value + mSharedPreferences.edit() + .putString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.CONFIDENCE.name()) + .apply(); + return SortType.Type.CONFIDENCE; + } + return SortType.Type.valueOf(sortTypeName); + } + public void goToTop() { ((LinearLayoutManagerBugFixed) mRecyclerView.getLayoutManager()).scrollToPositionWithOffset(0, 0); if (mCommentsRecyclerView != null) { @@ -1408,30 +1420,25 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic new FetchSubredditData.FetchSubredditDataListener() { @Override public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) { - if (subredditData.getSuggestedCommentSort() == null || subredditData.getSuggestedCommentSort().equals("null") || subredditData.getSuggestedCommentSort().equals("")) { + String suggestedCommentSort = subredditData.getSuggestedCommentSort(); + SortType.Type sortTypeType; + if (suggestedCommentSort == null || suggestedCommentSort.equals("null") || suggestedCommentSort.equals("")) { mRespectSubredditRecommendedSortType = false; - ViewPostDetailFragment.this.sortType = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.BEST.value.toUpperCase()); - if (ViewPostDetailFragment.this.sortType != null) { - activity.setTitle(new SortType(SortType.Type.valueOf(ViewPostDetailFragment.this.sortType)).getType().fullName); - ViewPostDetailFragment.this.sortType = ViewPostDetailFragment.this.sortType.toLowerCase(); - } - fetchComments(changeRefreshState, checkSortState, ViewPostDetailFragment.this.sortType); + sortTypeType = loadSortType(); } else { - ViewPostDetailFragment.this.sortType = subredditData.getSuggestedCommentSort(); - String sortTypeTemp = ViewPostDetailFragment.this.sortType.toLowerCase().substring(0, 1).toUpperCase() + ViewPostDetailFragment.this.sortType.substring(1); - activity.setTitle(sortTypeTemp); - fetchComments(changeRefreshState, checkSortState, subredditData.getSuggestedCommentSort()); + sortTypeType = SortType.Type.valueOf(suggestedCommentSort.toUpperCase(Locale.US)); } + activity.setTitle(sortTypeType.fullName); + ViewPostDetailFragment.this.sortType = sortTypeType.value; + fetchComments(changeRefreshState, checkSortState, ViewPostDetailFragment.this.sortType); } @Override public void onFetchSubredditDataFail(boolean isQuarantined) { mRespectSubredditRecommendedSortType = false; - ViewPostDetailFragment.this.sortType = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_POST_COMMENT, SortType.Type.BEST.value.toUpperCase()); - if (ViewPostDetailFragment.this.sortType != null) { - activity.setTitle(new SortType(SortType.Type.valueOf(ViewPostDetailFragment.this.sortType)).getType().fullName); - ViewPostDetailFragment.this.sortType = ViewPostDetailFragment.this.sortType.toLowerCase(); - } + SortType.Type sortTypeType = loadSortType(); + activity.setTitle(sortTypeType.fullName); + ViewPostDetailFragment.this.sortType = sortTypeType.value; } }); } else { diff --git a/app/src/main/res/layout/fragment_post_comment_sort_type_bottom_sheet.xml b/app/src/main/res/layout/fragment_post_comment_sort_type_bottom_sheet.xml index cade8c2e..d26e7bcb 100644 --- a/app/src/main/res/layout/fragment_post_comment_sort_type_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_post_comment_sort_type_bottom_sheet.xml @@ -28,22 +28,6 @@ android:fontFamily="?attr/font_family" /> <TextView - android:id="@+id/confidence_type_text_view_post_comment_sort_type_bottom_sheet_fragment" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="?attr/selectableItemBackground" - android:clickable="true" - android:focusable="true" - android:paddingStart="32dp" - android:paddingTop="16dp" - android:paddingEnd="32dp" - android:paddingBottom="16dp" - android:text="@string/sort_confidence" - android:textColor="?attr/primaryTextColor" - android:textSize="?attr/font_default" - android:fontFamily="?attr/font_family" /> - - <TextView android:id="@+id/top_type_text_view_post_comment_sort_type_bottom_sheet_fragment" android:layout_width="match_parent" android:layout_height="wrap_content" |