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" />
+
+