From 3a52b39a04b3a4d2c3b6180aa2f152ea50911ff7 Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Thu, 19 Oct 2023 00:00:27 -0400 Subject: Continue adding comment filter. --- app/src/main/AndroidManifest.xml | 7 +++++++ .../activities/CustomizePostFilterActivity.java | 4 +--- .../CommentFilterUsageEmbeddedRecyclerViewAdapter.java | 4 ++-- .../CommentFilterWithUsageRecyclerViewAdapter.java | 8 ++++---- .../infinityforreddit/settings/MainPreferenceFragment.java | 14 ++++++++++++++ .../infinityforreddit/utils/SharedPreferencesUtils.java | 1 + app/src/main/res/values/strings.xml | 5 +++++ app/src/main/res/xml/main_preferences.xml | 5 +++++ 8 files changed, 39 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9591a025..a72dd210 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,12 +37,19 @@ tools:replace="android:label"> 4) { - holder.textView.setText(baseActivity.getString(R.string.post_filter_usage_embedded_more_count, commentFilterUsageList.size() - 5)); + holder.textView.setText(baseActivity.getString(R.string.comment_filter_usage_embedded_more_count, commentFilterUsageList.size() - 5)); } else { CommentFilterUsage commentFilterUsage = commentFilterUsageList.get(holder.getBindingAdapterPosition()); switch (commentFilterUsage.usage) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java index 48fd090f..914c64f2 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java @@ -39,14 +39,14 @@ public class CommentFilterWithUsageRecyclerViewAdapter extends RecyclerView.Adap @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (holder instanceof CommentFilterViewHolder) { - ((CommentFilterViewHolder) holder).binding.commentFilterNameTextViewItemCommentFilter.setText(commentFilterWithUsageList.get(position - 1).commentFilter.name); - ((CommentFilterViewHolder) holder).adapter.setCommentFilterUsageList(commentFilterWithUsageList.get(position - 1).commentFilterUsageList); + ((CommentFilterViewHolder) holder).binding.commentFilterNameTextViewItemCommentFilter.setText(commentFilterWithUsageList.get(position).commentFilter.name); + ((CommentFilterViewHolder) holder).adapter.setCommentFilterUsageList(commentFilterWithUsageList.get(position).commentFilterUsageList); } } @Override public int getItemCount() { - return commentFilterWithUsageList == null ? 1 : 1 + commentFilterWithUsageList.size(); + return commentFilterWithUsageList == null ? 0 : commentFilterWithUsageList.size(); } public void setCommentFilterWithUsageList(List commentFilterWithUsageList) { @@ -68,7 +68,7 @@ public class CommentFilterWithUsageRecyclerViewAdapter extends RecyclerView.Adap } binding.getRoot().setOnClickListener(view -> { - onItemClickListener.onItemClick(commentFilterWithUsageList.get(getBindingAdapterPosition() - 1).commentFilter); + onItemClickListener.onItemClick(commentFilterWithUsageList.get(getBindingAdapterPosition()).commentFilter); }); binding.commentFilterUsageRecyclerViewItemCommentFilter.setRecycledViewPool(recycledViewPool); 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 284ab852..37126ab6 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MainPreferenceFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/MainPreferenceFragment.java @@ -9,6 +9,7 @@ import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; +import androidx.annotation.NonNull; import androidx.biometric.BiometricManager; import androidx.preference.Preference; @@ -17,6 +18,7 @@ import javax.inject.Named; import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.R; +import ml.docilealligator.infinityforreddit.activities.CommentFilterPreferenceActivity; import ml.docilealligator.infinityforreddit.activities.LinkResolverActivity; import ml.docilealligator.infinityforreddit.activities.PostFilterPreferenceActivity; import ml.docilealligator.infinityforreddit.customviews.CustomFontPreferenceFragmentCompat; @@ -35,6 +37,7 @@ public class MainPreferenceFragment extends CustomFontPreferenceFragmentCompat { Preference securityPreference = findPreference(SharedPreferencesUtils.SECURITY); Preference postFilterPreference = findPreference(SharedPreferencesUtils.POST_FILTER); + Preference commentFilterPreference = findPreference(SharedPreferencesUtils.COMMENT_FILTER); Preference privacyPolicyPreference = findPreference(SharedPreferencesUtils.PRIVACY_POLICY_KEY); Preference redditUserAgreementPreference = findPreference(SharedPreferencesUtils.REDDIT_USER_AGREEMENT_KEY); @@ -53,6 +56,17 @@ public class MainPreferenceFragment extends CustomFontPreferenceFragmentCompat { }); } + if (commentFilterPreference != null) { + commentFilterPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(@NonNull Preference preference) { + Intent intent = new Intent(activity, CommentFilterPreferenceActivity.class); + activity.startActivity(intent); + return true; + } + }); + } + if (privacyPolicyPreference != null) { privacyPolicyPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override 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 baef18de..0fe8c0ce 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java @@ -218,6 +218,7 @@ public class SharedPreferencesUtils { public static final String HIDE_THE_NUMBER_OF_VOTES_IN_COMMENTS = "hide_the_number_of_votes_in_comments"; public static final String COMMENT_DIVIDER_TYPE = "comment_divider_type"; public static final String SUBSCRIBED_THINGS_SYNC_TIME = "subscribed_things_sync_time"; + public static final String COMMENT_FILTER = "comment_filter"; public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences"; public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs"; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 863c9ba9..9090da33 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -46,6 +46,8 @@ Poll Post History Subscription + Comment Filter + Customize Post Filter Open navigation drawer Close navigation drawer @@ -651,6 +653,7 @@ Easier to Watch in Full Screen Hide FAB in Post Feed Comment Divider Type + Comment Filter Cannot get the link @@ -1382,5 +1385,7 @@ Click here to apply it to some post feeds and %1$d more + Applied to all subreddits + and %1$d more diff --git a/app/src/main/res/xml/main_preferences.xml b/app/src/main/res/xml/main_preferences.xml index d7433851..b582f0da 100644 --- a/app/src/main/res/xml/main_preferences.xml +++ b/app/src/main/res/xml/main_preferences.xml @@ -67,6 +67,11 @@ app:icon="@drawable/ic_filter_24dp" app:title="@string/settings_post_filter_title" /> + +