From b2cf64db9dc0fca20be122e341573602ac3d5c32 Mon Sep 17 00:00:00 2001
From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>
Date: Mon, 16 Oct 2023 22:28:09 -0400
Subject: Continue adding comment filter.
---
app/src/main/AndroidManifest.xml | 12 +-
.../infinityforreddit/AppComponent.java | 3 +
.../infinityforreddit/RedditDataRoomDatabase.java | 6 +
.../CommentFilterPreferenceActivity.java | 125 +++++++++++++++++++++
.../CommentFilterUsageListingActivity.java | 18 +++
.../activities/CustomizeCommentFilterActivity.java | 19 ++++
...mentFilterUsageEmbeddedRecyclerViewAdapter.java | 79 +++++++++++++
.../CommentFilterWithUsageRecyclerViewAdapter.java | 80 +++++++++++++
.../CommentFilterOptionsBottomSheetFragment.java | 63 +++++++++++
.../PostFilterOptionsBottomSheetFragment.java | 25 ++---
.../commentfilter/CommentFilterWithUsage.java | 13 ++-
.../CommentFilterWithUsageViewModel.java | 38 +++++++
.../commentfilter/DeleteCommentFilter.java | 11 ++
.../layout/activity_comment_filter_preference.xml | 52 +++++++++
.../activity_comment_filter_usage_listing.xml | 9 ++
.../layout/activity_customize_comment_filter.xml | 9 ++
...ragment_comment_filter_options_bottom_sheet.xml | 70 ++++++++++++
.../fragment_post_filter_options_bottom_sheet.xml | 2 +-
.../layout/item_comment_filter_usage_embedded.xml | 9 ++
.../res/layout/item_comment_filter_with_usage.xml | 28 +++++
app/src/main/res/values-cs/strings.xml | 2 +-
app/src/main/res/values-de/strings.xml | 2 +-
app/src/main/res/values-el/strings.xml | 2 +-
app/src/main/res/values-es/strings.xml | 2 +-
app/src/main/res/values-fr/strings.xml | 2 +-
app/src/main/res/values-hi/strings.xml | 2 +-
app/src/main/res/values-hu/strings.xml | 2 +-
app/src/main/res/values-it/strings.xml | 2 +-
app/src/main/res/values-ja/strings.xml | 2 +-
app/src/main/res/values-nl/strings.xml | 2 +-
app/src/main/res/values-pl/strings.xml | 2 +-
app/src/main/res/values-pt-rBR/strings.xml | 2 +-
app/src/main/res/values-pt/strings.xml | 2 +-
app/src/main/res/values-ro/strings.xml | 2 +-
app/src/main/res/values-ru/strings.xml | 2 +-
app/src/main/res/values-tr-rTR/strings.xml | 2 +-
app/src/main/res/values-uk/strings.xml | 2 +-
app/src/main/res/values-vi/strings.xml | 2 +-
app/src/main/res/values-zh-rCN/strings.xml | 2 +-
app/src/main/res/values/strings.xml | 2 +-
40 files changed, 669 insertions(+), 42 deletions(-)
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterPreferenceActivity.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterUsageListingActivity.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/activities/CustomizeCommentFilterActivity.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterUsageEmbeddedRecyclerViewAdapter.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/CommentFilterOptionsBottomSheetFragment.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsageViewModel.java
create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/DeleteCommentFilter.java
create mode 100644 app/src/main/res/layout/activity_comment_filter_preference.xml
create mode 100644 app/src/main/res/layout/activity_comment_filter_usage_listing.xml
create mode 100644 app/src/main/res/layout/activity_customize_comment_filter.xml
create mode 100644 app/src/main/res/layout/fragment_comment_filter_options_bottom_sheet.xml
create mode 100644 app/src/main/res/layout/item_comment_filter_usage_embedded.xml
create mode 100644 app/src/main/res/layout/item_comment_filter_with_usage.xml
(limited to 'app')
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7579b0bb..9591a025 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,8 +23,7 @@
android:maxSdkVersion="28" />
-
-
+
+
+
+
{
+ Intent intent = new Intent(this, CustomizeCommentFilterActivity.class);
+ intent.putExtra(CustomizeCommentFilterActivity.EXTRA_FROM_SETTINGS, true);
+ startActivity(intent);
+ });
+
+ adapter = new CommentFilterWithUsageRecyclerViewAdapter(this, commentFilter -> {
+ CommentFilterOptionsBottomSheetFragment commentFilterOptionsBottomSheetFragment = new CommentFilterOptionsBottomSheetFragment();
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(CommentFilterOptionsBottomSheetFragment.EXTRA_POST_FILTER, commentFilter);
+ commentFilterOptionsBottomSheetFragment.setArguments(bundle);
+ commentFilterOptionsBottomSheetFragment.show(getSupportFragmentManager(), commentFilterOptionsBottomSheetFragment.getTag());
+ });
+
+ binding.recyclerViewCommentFilterPreferenceActivity.setAdapter(adapter);
+
+ commentFilterWithUsageViewModel = new ViewModelProvider(this,
+ new CommentFilterWithUsageViewModel.Factory(redditDataRoomDatabase)).get(CommentFilterWithUsageViewModel.class);
+
+ commentFilterWithUsageViewModel.getCommentFilterWithUsageListLiveData().observe(this, commentFilterWithUsages -> adapter.setCommentFilterWithUsageList(commentFilterWithUsages));
+ }
+
+ public void editCommentFilter(CommentFilter commentFilter) {
+ Intent intent = new Intent(this, CustomizeCommentFilterActivity.class);
+ intent.putExtra(CustomizeCommentFilterActivity.EXTRA_POST_FILTER, commentFilter);
+ intent.putExtra(CustomizeCommentFilterActivity.EXTRA_FROM_SETTINGS, true);
+ startActivity(intent);
+ }
+
+ public void applyCommentFilterTo(CommentFilter commentFilter) {
+ Intent intent = new Intent(this, CommentFilterUsageListingActivity.class);
+ intent.putExtra(CommentFilterUsageListingActivity.EXTRA_POST_FILTER, commentFilter);
+ startActivity(intent);
+ }
+
+ public void deleteCommentFilter(CommentFilter commentFilter) {
+ DeleteCommentFilter.deleteCommentFilter(redditDataRoomDatabase, executor, commentFilter);
+ }
+
+ @Override
+ protected SharedPreferences getDefaultSharedPreferences() {
+ return sharedPreferences;
+ }
+
+ @Override
+ protected CustomThemeWrapper getCustomThemeWrapper() {
+ return customThemeWrapper;
+ }
+
+ @Override
+ protected void applyCustomTheme() {
+ applyAppBarLayoutAndCollapsingToolbarLayoutAndToolbarTheme(binding.appbarLayoutCommentFilterPreferenceActivity, binding.collapsingToolbarLayoutCommentFilterPreferenceActivity, binding.toolbarCommentFilterPreferenceActivity);
+ applyFABTheme(binding.fabCommentFilterPreferenceActivity);
+ binding.getRoot().setBackgroundColor(customThemeWrapper.getBackgroundColor());
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ finish();
+ return true;
+ }
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterUsageListingActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterUsageListingActivity.java
new file mode 100644
index 00000000..587addcf
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterUsageListingActivity.java
@@ -0,0 +1,18 @@
+package ml.docilealligator.infinityforreddit.activities;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import ml.docilealligator.infinityforreddit.R;
+
+public class CommentFilterUsageListingActivity extends AppCompatActivity {
+
+ public static final String EXTRA_POST_FILTER = "EPF";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_comment_filter_usage_listing);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CustomizeCommentFilterActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CustomizeCommentFilterActivity.java
new file mode 100644
index 00000000..68a31b6f
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CustomizeCommentFilterActivity.java
@@ -0,0 +1,19 @@
+package ml.docilealligator.infinityforreddit.activities;
+
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import ml.docilealligator.infinityforreddit.R;
+
+public class CustomizeCommentFilterActivity extends AppCompatActivity {
+
+ public static final String EXTRA_POST_FILTER = "EPF";
+ public static final String EXTRA_FROM_SETTINGS = "EFS";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_customize_comment_filter);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterUsageEmbeddedRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterUsageEmbeddedRecyclerViewAdapter.java
new file mode 100644
index 00000000..5d1ad217
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterUsageEmbeddedRecyclerViewAdapter.java
@@ -0,0 +1,79 @@
+package ml.docilealligator.infinityforreddit.adapters;
+
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+import ml.docilealligator.infinityforreddit.R;
+import ml.docilealligator.infinityforreddit.activities.BaseActivity;
+import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterUsage;
+import ml.docilealligator.infinityforreddit.databinding.ItemCommentFilterUsageEmbeddedBinding;
+
+public class CommentFilterUsageEmbeddedRecyclerViewAdapter extends RecyclerView.Adapter {
+ private BaseActivity baseActivity;
+ private List commentFilterUsageList;
+
+ public CommentFilterUsageEmbeddedRecyclerViewAdapter(BaseActivity baseActivity) {
+ this.baseActivity = baseActivity;
+ }
+
+ @NonNull
+ @Override
+ public EntryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new EntryViewHolder(ItemCommentFilterUsageEmbeddedBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull EntryViewHolder holder, int position) {
+ if (commentFilterUsageList == null || commentFilterUsageList.isEmpty()) {
+ holder.textView.setText(R.string.click_to_apply_post_filter);
+ } else if (holder.getBindingAdapterPosition() > 4) {
+ holder.textView.setText(baseActivity.getString(R.string.post_filter_usage_embedded_more_count, commentFilterUsageList.size() - 5));
+ } else {
+ CommentFilterUsage commentFilterUsage = commentFilterUsageList.get(holder.getBindingAdapterPosition());
+ switch (commentFilterUsage.usage) {
+ case CommentFilterUsage.SUBREDDIT_TYPE:
+ holder.textView.setText("r/" + commentFilterUsage.nameOfUsage);
+ break;
+ case CommentFilterUsage.USER_TYPE:
+ holder.textView.setText("u/" + commentFilterUsage.nameOfUsage);
+ break;
+ }
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return commentFilterUsageList == null || commentFilterUsageList.isEmpty() ? 1 : (commentFilterUsageList.size() > 5 ? 6 : commentFilterUsageList.size());
+ }
+
+ public void setCommentFilterUsageList(List commentFilterUsageList) {
+ this.commentFilterUsageList = commentFilterUsageList;
+ notifyDataSetChanged();
+ }
+
+ class EntryViewHolder extends RecyclerView.ViewHolder {
+ TextView textView;
+
+ public EntryViewHolder(@NonNull ItemCommentFilterUsageEmbeddedBinding binding) {
+ super(binding.getRoot());
+ textView = binding.getRoot();
+
+ textView.setTextColor(baseActivity.customThemeWrapper.getSecondaryTextColor());
+
+ if (baseActivity.typeface != null) {
+ textView.setTypeface(baseActivity.typeface);
+ }
+
+ textView.setOnClickListener(view -> {
+ Toast.makeText(baseActivity, textView.getText(), Toast.LENGTH_SHORT).show();
+ });
+ }
+ }
+}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java
new file mode 100644
index 00000000..48fd090f
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentFilterWithUsageRecyclerViewAdapter.java
@@ -0,0 +1,80 @@
+package ml.docilealligator.infinityforreddit.adapters;
+
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+import ml.docilealligator.infinityforreddit.activities.BaseActivity;
+import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter;
+import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterWithUsage;
+import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
+import ml.docilealligator.infinityforreddit.databinding.ItemCommentFilterWithUsageBinding;
+
+public class CommentFilterWithUsageRecyclerViewAdapter extends RecyclerView.Adapter {
+ private BaseActivity activity;
+ private final OnItemClickListener onItemClickListener;
+ private List commentFilterWithUsageList;
+ private RecyclerView.RecycledViewPool recycledViewPool;
+
+ public interface OnItemClickListener {
+ void onItemClick(CommentFilter commentFilter);
+ }
+
+ public CommentFilterWithUsageRecyclerViewAdapter(BaseActivity activity, OnItemClickListener onItemClickListener) {
+ this.activity = activity;
+ this.recycledViewPool = new RecyclerView.RecycledViewPool();
+ this.onItemClickListener = onItemClickListener;
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new CommentFilterViewHolder(ItemCommentFilterWithUsageBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
+ }
+
+ @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);
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return commentFilterWithUsageList == null ? 1 : 1 + commentFilterWithUsageList.size();
+ }
+
+ public void setCommentFilterWithUsageList(List commentFilterWithUsageList) {
+ this.commentFilterWithUsageList = commentFilterWithUsageList;
+ notifyDataSetChanged();
+ }
+
+ private class CommentFilterViewHolder extends RecyclerView.ViewHolder {
+ ItemCommentFilterWithUsageBinding binding;
+ CommentFilterUsageEmbeddedRecyclerViewAdapter adapter;
+
+ public CommentFilterViewHolder(@NonNull ItemCommentFilterWithUsageBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ binding.commentFilterNameTextViewItemCommentFilter.setTextColor(activity.customThemeWrapper.getPrimaryTextColor());
+
+ if (activity.typeface != null) {
+ binding.commentFilterNameTextViewItemCommentFilter.setTypeface(activity.typeface);
+ }
+
+ binding.getRoot().setOnClickListener(view -> {
+ onItemClickListener.onItemClick(commentFilterWithUsageList.get(getBindingAdapterPosition() - 1).commentFilter);
+ });
+
+ binding.commentFilterUsageRecyclerViewItemCommentFilter.setRecycledViewPool(recycledViewPool);
+ binding.commentFilterUsageRecyclerViewItemCommentFilter.setLayoutManager(new LinearLayoutManagerBugFixed(activity));
+ adapter = new CommentFilterUsageEmbeddedRecyclerViewAdapter(activity);
+ binding.commentFilterUsageRecyclerViewItemCommentFilter.setAdapter(adapter);
+ }
+ }
+}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/CommentFilterOptionsBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/CommentFilterOptionsBottomSheetFragment.java
new file mode 100644
index 00000000..fd06d30e
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/CommentFilterOptionsBottomSheetFragment.java
@@ -0,0 +1,63 @@
+package ml.docilealligator.infinityforreddit.bottomsheetfragments;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+
+import ml.docilealligator.infinityforreddit.R;
+import ml.docilealligator.infinityforreddit.activities.CommentFilterPreferenceActivity;
+import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter;
+import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
+import ml.docilealligator.infinityforreddit.databinding.FragmentCommentFilterOptionsBottomSheetBinding;
+import ml.docilealligator.infinityforreddit.utils.Utils;
+
+public class CommentFilterOptionsBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment {
+
+ public static final String EXTRA_POST_FILTER = "EPF";
+ private CommentFilterPreferenceActivity activity;
+
+ public CommentFilterOptionsBottomSheetFragment() {
+ // Required empty public constructor
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ FragmentCommentFilterOptionsBottomSheetBinding binding = FragmentCommentFilterOptionsBottomSheetBinding.inflate(inflater, container, false);
+
+ CommentFilter commentFilter = getArguments().getParcelable(EXTRA_POST_FILTER);
+
+ binding.editTextViewCommentFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
+ activity.editCommentFilter(commentFilter);
+ dismiss();
+ });
+
+ binding.applyToTextViewCommentFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
+ activity.applyCommentFilterTo(commentFilter);
+ dismiss();
+ });
+
+ binding.deleteTextViewCommentFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
+ activity.deleteCommentFilter(commentFilter);
+ dismiss();
+ });
+
+ if (activity.typeface != null) {
+ Utils.setFontToAllTextViews(binding.getRoot(), activity.typeface);
+ }
+
+ return binding.getRoot();
+ }
+
+ @Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+ activity = (CommentFilterPreferenceActivity) context;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostFilterOptionsBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostFilterOptionsBottomSheetFragment.java
index 268f82ba..049549d1 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostFilterOptionsBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostFilterOptionsBottomSheetFragment.java
@@ -5,26 +5,17 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
import androidx.annotation.NonNull;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.activities.PostFilterPreferenceActivity;
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
+import ml.docilealligator.infinityforreddit.databinding.FragmentPostFilterOptionsBottomSheetBinding;
import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
import ml.docilealligator.infinityforreddit.utils.Utils;
public class PostFilterOptionsBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment {
- @BindView(R.id.edit_text_view_post_filter_options_bottom_sheet_fragment)
- TextView editTextView;
- @BindView(R.id.apply_to_text_view_post_filter_options_bottom_sheet_fragment)
- TextView applyToTextView;
- @BindView(R.id.delete_text_view_post_filter_options_bottom_sheet_fragment)
- TextView deleteTextView;
public static final String EXTRA_POST_FILTER = "EPF";
private PostFilterPreferenceActivity activity;
@@ -36,32 +27,30 @@ public class PostFilterOptionsBottomSheetFragment extends LandscapeExpandedRound
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
- View rootView = inflater.inflate(R.layout.fragment_post_filter_options_bottom_sheet, container, false);
-
- ButterKnife.bind(this, rootView);
+ FragmentPostFilterOptionsBottomSheetBinding binding = FragmentPostFilterOptionsBottomSheetBinding.inflate(inflater, container, false);
PostFilter postFilter = getArguments().getParcelable(EXTRA_POST_FILTER);
- editTextView.setOnClickListener(view -> {
+ binding.editTextViewPostFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
activity.editPostFilter(postFilter);
dismiss();
});
- applyToTextView.setOnClickListener(view -> {
+ binding.applyToTextViewPostFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
activity.applyPostFilterTo(postFilter);
dismiss();
});
- deleteTextView.setOnClickListener(view -> {
+ binding.deleteTextViewPostFilterOptionsBottomSheetFragment.setOnClickListener(view -> {
activity.deletePostFilter(postFilter);
dismiss();
});
if (activity.typeface != null) {
- Utils.setFontToAllTextViews(rootView, activity.typeface);
+ Utils.setFontToAllTextViews(binding.getRoot(), activity.typeface);
}
- return rootView;
+ return binding.getRoot();
}
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsage.java b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsage.java
index 9ee9e856..670786a5 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsage.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsage.java
@@ -1,5 +1,16 @@
package ml.docilealligator.infinityforreddit.commentfilter;
-public class CommentFilterWithUsage {
+import androidx.room.Embedded;
+import androidx.room.Relation;
+
+import java.util.List;
+public class CommentFilterWithUsage {
+ @Embedded
+ public CommentFilter commentFilter;
+ @Relation(
+ parentColumn = "name",
+ entityColumn = "name"
+ )
+ public List commentFilterUsageList;
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsageViewModel.java b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsageViewModel.java
new file mode 100644
index 00000000..fb8733fe
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/CommentFilterWithUsageViewModel.java
@@ -0,0 +1,38 @@
+package ml.docilealligator.infinityforreddit.commentfilter;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModelProvider;
+
+import java.util.List;
+
+import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+
+public class CommentFilterWithUsageViewModel extends ViewModel {
+ private LiveData> mCommentFilterWithUsageListLiveData;
+
+ public CommentFilterWithUsageViewModel(RedditDataRoomDatabase redditDataRoomDatabase) {
+ mCommentFilterWithUsageListLiveData = redditDataRoomDatabase.commentFilterDao().getAllCommentFilterWithUsageLiveData();
+ }
+
+ public LiveData> getCommentFilterWithUsageListLiveData() {
+ return mCommentFilterWithUsageListLiveData;
+ }
+
+ public static class Factory extends ViewModelProvider.NewInstanceFactory {
+
+ private final RedditDataRoomDatabase mRedditDataRoomDatabase;
+
+ public Factory(RedditDataRoomDatabase redditDataRoomDatabase) {
+ mRedditDataRoomDatabase = redditDataRoomDatabase;
+ }
+
+ @NonNull
+ @Override
+ public T create(@NonNull Class modelClass) {
+ //noinspection unchecked
+ return (T) new CommentFilterWithUsageViewModel(mRedditDataRoomDatabase);
+ }
+ }
+}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/DeleteCommentFilter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/DeleteCommentFilter.java
new file mode 100644
index 00000000..1fb18070
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/commentfilter/DeleteCommentFilter.java
@@ -0,0 +1,11 @@
+package ml.docilealligator.infinityforreddit.commentfilter;
+
+import java.util.concurrent.Executor;
+
+import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+
+public class DeleteCommentFilter {
+ public static void deleteCommentFilter(RedditDataRoomDatabase redditDataRoomDatabase, Executor executor, CommentFilter commentFilter) {
+ executor.execute(() -> redditDataRoomDatabase.commentFilterDao().deleteCommentFilter(commentFilter));
+ }
+}
diff --git a/app/src/main/res/layout/activity_comment_filter_preference.xml b/app/src/main/res/layout/activity_comment_filter_preference.xml
new file mode 100644
index 00000000..6f2b6051
--- /dev/null
+++ b/app/src/main/res/layout/activity_comment_filter_preference.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_comment_filter_usage_listing.xml b/app/src/main/res/layout/activity_comment_filter_usage_listing.xml
new file mode 100644
index 00000000..6b268520
--- /dev/null
+++ b/app/src/main/res/layout/activity_comment_filter_usage_listing.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_customize_comment_filter.xml b/app/src/main/res/layout/activity_customize_comment_filter.xml
new file mode 100644
index 00000000..fc6cbfd9
--- /dev/null
+++ b/app/src/main/res/layout/activity_customize_comment_filter.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_comment_filter_options_bottom_sheet.xml b/app/src/main/res/layout/fragment_comment_filter_options_bottom_sheet.xml
new file mode 100644
index 00000000..011f7d51
--- /dev/null
+++ b/app/src/main/res/layout/fragment_comment_filter_options_bottom_sheet.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_post_filter_options_bottom_sheet.xml b/app/src/main/res/layout/fragment_post_filter_options_bottom_sheet.xml
index a9c9310e..2fa19826 100644
--- a/app/src/main/res/layout/fragment_post_filter_options_bottom_sheet.xml
+++ b/app/src/main/res/layout/fragment_post_filter_options_bottom_sheet.xml
@@ -33,7 +33,7 @@
android:id="@+id/apply_to_text_view_post_filter_options_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/apply_post_filter_to"
+ android:text="@string/apply_to"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
diff --git a/app/src/main/res/layout/item_comment_filter_usage_embedded.xml b/app/src/main/res/layout/item_comment_filter_usage_embedded.xml
new file mode 100644
index 00000000..e156e968
--- /dev/null
+++ b/app/src/main/res/layout/item_comment_filter_usage_embedded.xml
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_comment_filter_with_usage.xml b/app/src/main/res/layout/item_comment_filter_with_usage.xml
new file mode 100644
index 00000000..191db7bd
--- /dev/null
+++ b/app/src/main/res/layout/item_comment_filter_with_usage.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index c2be9f03..e627ba0f 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -958,7 +958,7 @@ Zpráva: %2$s"
"Jak se jmenuje tento filtr příspěvků?"
"'%1$s' již existuje"
"Chcete jej přepsat?"
- "Použít na"
+ "Použít na"
"Domů"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 72a09343..d536040e 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -991,7 +991,7 @@ Nachricht: %2$s"
"Wie lautet der Name des Beitragsfilters?"
"'%1$s' existiert bereits"
"Überschreiben?"
- "Anwenden auf"
+ "Anwenden auf"
"Home"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 9a028320..b93471f4 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -902,7 +902,7 @@ https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforredd
"Ποιο είναι το όνομα αυτού του φίλτρου ανάρτησης;"
"%1$s Υπάρχουν Ήδη"
"Παράκαμψη;"
- "Εφαρμογή σε"
+ "Εφαρμογή σε"
"Αρχική"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 0093680d..68c2e86a 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1006,7 +1006,7 @@ Mensaje: %2$s"
"¿Cuál es el nombre de este filtro de publicaciones?"
"'%1$s' Ya Existe"
"¿Sobrescribir?"
- "Aplicar a"
+ "Aplicar a"
"Inicio"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 77db201b..02a5419b 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1061,7 +1061,7 @@ Les onglets pourraient perdre tout leur contenu quand vous passez d'un onglet à
"Quel est le nom de ce filtre de publication ?"
"'%1$s' Existe déjà"
"Le remplacer ?"
- "Appliquer à"
+ "Appliquer à"
"Acceuil"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 53bea1b7..e01c1483 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -1030,7 +1030,7 @@ https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforredd
"Post filter का नाम"
"इस post filter का नाम क्या है?"
"'%1$s' पहले से ही है"
- "लागू करें"
+ "लागू करें"
"Subreddit: %1$s"
"Subreddit"
"User: %1$s"
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 0171b1c0..a2d5a571 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -937,7 +937,7 @@ Videó autómatikus lejátszása le van tiltva."
"Írja fölül?"
- "Alkalmazd"
+ "Alkalmazd"
"Home"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 603beca2..e275f34f 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -906,7 +906,7 @@ Messaggio: %2$s"
"Come vuoi chiamare questo filtro post?"
"'%1$s' esiste già"
"Vuoi sovrascriverlo?"
- "Applica a"
+ "Applica a"
"Home"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 27f23737..8953bb22 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -1033,7 +1033,7 @@ https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforredd
"最小のアワード数 (-1: 制限なし)"
"「%1$s 」は既に存在します"
"上書きしますか?"
- "適用"
+ "適用"
"ホーム"
"Subreddit"
"ユーザー: %1$s"
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index b1ffdc6a..94580610 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -966,7 +966,7 @@ Bericht: %2$s"
"Wat is de naam van deze post filter?"
"'%1$s' Bestaat Al"
"Overschrijven?"
- "Toepassen op"
+ "Toepassen op"
"Thuis"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 88464efe..c91a3468 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -956,7 +956,7 @@ Wiadomość: %2$s"
"Jaka jest nazwa filtru tego posta?"
"'%1$s' już istnieje"
"Nadpisać?"
- "Zastosuj do"
+ "Zastosuj do"
"Strona główna"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index ce5c902d..91287b62 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -944,7 +944,7 @@ Mensagem: %2$s"
"Qual é o nome deste filtro de postagem?"
"'%1$s' já existe"
"Substituir isto?"
- "Aplicar a"
+ "Aplicar a"
"Início"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index cfebe3c9..b964bc83 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -953,7 +953,7 @@ Mensagem: %2$s"
"Qual é o nome deste Filtro de Publicações?"
"'%1$s' já existe"
"Substituir?"
- "Aplicar a"
+ "Aplicar a"
"Início"
"Comunidade: %1$s"
"Comunidade"
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index db632014..9b506646 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -950,7 +950,7 @@ Mesaj: %2$s"
"Care este numele acestui filtru de post?"
"%1$s' Există Deja"
"Îl înlocuiești?"
- "Se aplică la"
+ "Se aplică la"
"Acasă"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 647dc3d8..7297be41 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -966,7 +966,7 @@ https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforredd
"Как называется этот фильтр постов?"
"«%1$s» уже существует"
"Переопределить это?"
- "Применить к"
+ "Применить к"
"Домашняя"
"Сабреддит: %1$s"
"Сабреддит"
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index fefd14b5..ec296f29 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -974,7 +974,7 @@ Mesaj: %2$s"
"Bu gönderi filtresinin adı nedir?"
"'%1$s' Zaten Var"
"Geçersiz kılınsın mı?"
- "Uygulanan:"
+ "Uygulanan:"
"Ana Sayfa"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index c34bc491..bc044225 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -954,7 +954,7 @@ https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforredd
"Яка назва для цього фільтру дописів?"
"'%1$s' вже існує"
"Перезаписати його?"
- "Задіяно для"
+ "Задіяно для"
"Домівка"
"Сабредит: %1$s"
"Сабредит"
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index c1aa63d7..093a2fc5 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -967,7 +967,7 @@ Thông báo: %2$s"
"Bộ lọc bài đăng này tên là gì?"
"'%1$s' đã tồn tại"
"Ghi đè nó?"
- "Áp dụng vào"
+ "Áp dụng vào"
"Trang chủ"
"Subreddit: %1$s"
"Subreddit"
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 726fefb6..e58e7b7e 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -981,7 +981,7 @@ Reddit 视频分辨率较低。
"该帖子过滤器的名称是什么?"
"“%1$s”已经存在"
"覆盖吗?"
- "应用于"
+ "应用于"
"主页"
"版块:%1$s"
"版块"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7cab6989..33f35339 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1141,7 +1141,7 @@
What is the name of this post filter?
\'%1$s\' Already Exists
Override it?
- Apply to
+ Apply to
Home
Subreddit: %1$s
Subreddit
--
cgit v1.2.3