diff options
author | Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> | 2023-10-17 02:28:09 +0000 |
---|---|---|
committer | Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> | 2023-10-17 02:28:09 +0000 |
commit | b2cf64db9dc0fca20be122e341573602ac3d5c32 (patch) | |
tree | de46c89f2bea22eeaf366c3a3319e4222e89a4eb | |
parent | a8d511295513a07b9a91478a60755f55127191cd (diff) | |
download | infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar.gz infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar.bz2 infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar.lz infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar.xz infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.tar.zst infinity-for-reddit-b2cf64db9dc0fca20be122e341573602ac3d5c32.zip |
Continue adding comment filter.
40 files changed, 669 insertions, 42 deletions
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" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> - - <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> + <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <application android:name=".Infinity" @@ -37,6 +36,15 @@ android:usesCleartextTraffic="true" tools:replace="android:label"> <activity + android:name=".activities.CommentFilterUsageListingActivity" + android:exported="false" /> + <activity + android:name=".activities.CustomizeCommentFilterActivity" + android:exported="false" /> + <activity + android:name=".activities.CommentFilterPreferenceActivity" + android:exported="false" /> + <activity android:name=".activities.HistoryActivity" android:exported="false" android:label="@string/history_activity_label" diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java index 2bf647ec..b4cb2444 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AppComponent.java @@ -9,6 +9,7 @@ import dagger.Component; import ml.docilealligator.infinityforreddit.activities.AccountPostsActivity; import ml.docilealligator.infinityforreddit.activities.AccountSavedThingActivity; import ml.docilealligator.infinityforreddit.activities.CommentActivity; +import ml.docilealligator.infinityforreddit.activities.CommentFilterPreferenceActivity; import ml.docilealligator.infinityforreddit.activities.CreateMultiRedditActivity; import ml.docilealligator.infinityforreddit.activities.CustomThemeListingActivity; import ml.docilealligator.infinityforreddit.activities.CustomThemePreviewActivity; @@ -307,6 +308,8 @@ public interface AppComponent { void inject(MorePostsInfoFragment morePostsInfoFragment); + void inject(CommentFilterPreferenceActivity commentFilterPreferenceActivity); + @Component.Factory interface Factory { AppComponent create(@BindsInstance Application application); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/RedditDataRoomDatabase.java b/app/src/main/java/ml/docilealligator/infinityforreddit/RedditDataRoomDatabase.java index 6c559df3..e89a47dd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/RedditDataRoomDatabase.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/RedditDataRoomDatabase.java @@ -14,7 +14,9 @@ import androidx.sqlite.db.SupportSQLiteDatabase; import ml.docilealligator.infinityforreddit.account.Account; import ml.docilealligator.infinityforreddit.account.AccountDao; import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter; +import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterDao; import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterUsage; +import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterUsageDao; import ml.docilealligator.infinityforreddit.customtheme.CustomTheme; import ml.docilealligator.infinityforreddit.customtheme.CustomThemeDao; import ml.docilealligator.infinityforreddit.multireddit.AnonymousMultiredditSubreddit; @@ -80,6 +82,10 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase { public abstract AnonymousMultiredditSubredditDao anonymousMultiredditSubredditDao(); + public abstract CommentFilterDao commentFilterDao(); + + public abstract CommentFilterUsageDao commentFilterUsageDao(); + private static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Override public void migrate(SupportSQLiteDatabase database) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterPreferenceActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterPreferenceActivity.java new file mode 100644 index 00000000..aaddff6e --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/CommentFilterPreferenceActivity.java @@ -0,0 +1,125 @@ +package ml.docilealligator.infinityforreddit.activities; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.MenuItem; + +import androidx.annotation.NonNull; +import androidx.lifecycle.ViewModelProvider; + +import java.util.concurrent.Executor; + +import javax.inject.Inject; +import javax.inject.Named; + +import butterknife.ButterKnife; +import ml.docilealligator.infinityforreddit.Infinity; +import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; +import ml.docilealligator.infinityforreddit.adapters.CommentFilterWithUsageRecyclerViewAdapter; +import ml.docilealligator.infinityforreddit.bottomsheetfragments.CommentFilterOptionsBottomSheetFragment; +import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter; +import ml.docilealligator.infinityforreddit.commentfilter.CommentFilterWithUsageViewModel; +import ml.docilealligator.infinityforreddit.commentfilter.DeleteCommentFilter; +import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper; +import ml.docilealligator.infinityforreddit.databinding.ActivityCommentFilterPreferenceBinding; + +public class CommentFilterPreferenceActivity extends BaseActivity { + + private ActivityCommentFilterPreferenceBinding binding; + + @Inject + @Named("default") + SharedPreferences sharedPreferences; + @Inject + RedditDataRoomDatabase redditDataRoomDatabase; + @Inject + CustomThemeWrapper customThemeWrapper; + @Inject + Executor executor; + public CommentFilterWithUsageViewModel commentFilterWithUsageViewModel; + private CommentFilterWithUsageRecyclerViewAdapter adapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + ((Infinity) getApplication()).getAppComponent().inject(this); + + setImmersiveModeNotApplicable(); + + super.onCreate(savedInstanceState); + binding = ActivityCommentFilterPreferenceBinding.inflate(getLayoutInflater()); + + setContentView(binding.getRoot()); + + ButterKnife.bind(this); + + applyCustomTheme(); + + setSupportActionBar(binding.toolbarCommentFilterPreferenceActivity); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + binding.fabCommentFilterPreferenceActivity.setOnClickListener(view -> { + 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<CommentFilterUsageEmbeddedRecyclerViewAdapter.EntryViewHolder> { + private BaseActivity baseActivity; + private List<CommentFilterUsage> 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<CommentFilterUsage> 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<RecyclerView.ViewHolder> { + private BaseActivity activity; + private final OnItemClickListener onItemClickListener; + private List<CommentFilterWithUsage> 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<CommentFilterWithUsage> 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<CommentFilterUsage> 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<List<CommentFilterWithUsage>> mCommentFilterWithUsageListLiveData; + + public CommentFilterWithUsageViewModel(RedditDataRoomDatabase redditDataRoomDatabase) { + mCommentFilterWithUsageListLiveData = redditDataRoomDatabase.commentFilterDao().getAllCommentFilterWithUsageLiveData(); + } + + public LiveData<List<CommentFilterWithUsage>> getCommentFilterWithUsageListLiveData() { + return mCommentFilterWithUsageListLiveData; + } + + public static class Factory extends ViewModelProvider.NewInstanceFactory { + + private final RedditDataRoomDatabase mRedditDataRoomDatabase; + + public Factory(RedditDataRoomDatabase redditDataRoomDatabase) { + mRedditDataRoomDatabase = redditDataRoomDatabase; + } + + @NonNull + @Override + public <T extends ViewModel> T create(@NonNull Class<T> 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".activities.CommentFilterPreferenceActivity"> + + <com.google.android.material.appbar.AppBarLayout + android:id="@+id/appbar_layout_comment_filter_preference_activity" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:theme="@style/AppTheme.AppBarOverlay"> + + <com.google.android.material.appbar.CollapsingToolbarLayout + android:id="@+id/collapsing_toolbar_layout_comment_filter_preference_activity" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_scrollFlags="scroll|enterAlways" + app:titleEnabled="false" + app:toolbarId="@+id/toolbar_comment_filter_preference_activity"> + + <androidx.appcompat.widget.Toolbar + android:id="@+id/toolbar_comment_filter_preference_activity" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?attr/actionBarSize" + app:popupTheme="@style/AppTheme.PopupOverlay" + app:navigationIcon="?attr/homeAsUpIndicator" /> + + </com.google.android.material.appbar.CollapsingToolbarLayout> + + </com.google.android.material.appbar.AppBarLayout> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recycler_view_comment_filter_preference_activity" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/fab_comment_filter_preference_activity" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="@dimen/fab_margin" + android:layout_gravity="bottom|end" + app:backgroundTint="?attr/colorPrimaryLightTheme" + app:srcCompat="@drawable/ic_add_day_night_24dp" + app:tint="@android:color/white" /> + +</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".activities.CommentFilterUsageListingActivity"> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".activities.CustomizeCommentFilterActivity"> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:paddingBottom="8dp" + android:overScrollMode="never"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:id="@+id/edit_text_view_comment_filter_options_bottom_sheet_fragment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/edit" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_default" + android:fontFamily="?attr/font_family" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingStart="32dp" + android:paddingEnd="32dp" + app:drawableStartCompat="@drawable/ic_edit_24dp" + android:drawablePadding="48dp" + android:clickable="true" + android:focusable="true" + android:background="?attr/selectableItemBackground" /> + + <TextView + android:id="@+id/apply_to_text_view_comment_filter_options_bottom_sheet_fragment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/apply_to" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_default" + android:fontFamily="?attr/font_family" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingStart="32dp" + android:paddingEnd="32dp" + app:drawableStartCompat="@drawable/ic_apply_to_24dp" + android:drawablePadding="48dp" + android:clickable="true" + android:focusable="true" + android:background="?attr/selectableItemBackground" /> + + <TextView + android:id="@+id/delete_text_view_comment_filter_options_bottom_sheet_fragment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/delete" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_default" + android:fontFamily="?attr/font_family" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingStart="32dp" + android:paddingEnd="32dp" + app:drawableStartCompat="@drawable/ic_delete_24dp" + android:drawablePadding="48dp" + android:clickable="true" + android:focusable="true" + android:background="?attr/selectableItemBackground" /> + + </LinearLayout> + +</androidx.core.widget.NestedScrollView>
\ 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="8dp" + android:layout_marginStart="24dp" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_default" + android:fontFamily="?attr/font_family" />
\ 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<ml.docilealligator.infinityforreddit.customviews.InterceptTouchEventLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:paddingStart="72dp" + android:paddingEnd="16dp" + android:clickable="true" + android:focusable="true" + android:background="?attr/selectableItemBackground"> + + <TextView + android:id="@+id/comment_filter_name_text_view_item_comment_filter" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:fontFamily="?attr/font_family" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_16" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/comment_filter_usage_recycler_view_item_comment_filter" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:nestedScrollingEnabled="false" /> + +</ml.docilealligator.infinityforreddit.customviews.InterceptTouchEventLinearLayout>
\ 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"</string> <string name="post_filter_requires_a_name">"Jak se jmenuje tento filtr příspěvků?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' již existuje"</string> <string name="duplicate_post_filter_dialog_message">"Chcete jej přepsat?"</string> - <string name="apply_post_filter_to">"Použít na"</string> + <string name="apply_to">"Použít na"</string> <string name="post_filter_usage_home">"Domů"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"Wie lautet der Name des Beitragsfilters?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' existiert bereits"</string> <string name="duplicate_post_filter_dialog_message">"Überschreiben?"</string> - <string name="apply_post_filter_to">"Anwenden auf"</string> + <string name="apply_to">"Anwenden auf"</string> <string name="post_filter_usage_home">"Home"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 <string name="post_filter_requires_a_name">"Ποιο είναι το όνομα αυτού του φίλτρου ανάρτησης;"</string> <string name="duplicate_post_filter_dialog_title">"%1$s Υπάρχουν Ήδη"</string> <string name="duplicate_post_filter_dialog_message">"Παράκαμψη;"</string> - <string name="apply_post_filter_to">"Εφαρμογή σε"</string> + <string name="apply_to">"Εφαρμογή σε"</string> <string name="post_filter_usage_home">"Αρχική"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"¿Cuál es el nombre de este filtro de publicaciones?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' Ya Existe"</string> <string name="duplicate_post_filter_dialog_message">"¿Sobrescribir?"</string> - <string name="apply_post_filter_to">"Aplicar a"</string> + <string name="apply_to">"Aplicar a"</string> <string name="post_filter_usage_home">"Inicio"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 à <string name="post_filter_requires_a_name">"Quel est le nom de ce filtre de publication ?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' Existe déjà"</string> <string name="duplicate_post_filter_dialog_message">"Le remplacer ?"</string> - <string name="apply_post_filter_to">"Appliquer à"</string> + <string name="apply_to">"Appliquer à"</string> <string name="post_filter_usage_home">"Acceuil"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 <string name="post_filter_name_hint">"Post filter का नाम"</string> <string name="post_filter_requires_a_name">"इस post filter का नाम क्या है?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' पहले से ही है"</string> - <string name="apply_post_filter_to">"लागू करें"</string> + <string name="apply_to">"लागू करें"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> <string name="post_filter_usage_user">"User: %1$s"</string> 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."</string> <string name="duplicate_post_filter_dialog_message">"Írja fölül?"</string> <!-- Fuzzy --> - <string name="apply_post_filter_to">"Alkalmazd"</string> + <string name="apply_to">"Alkalmazd"</string> <string name="post_filter_usage_home">"Home"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"Come vuoi chiamare questo filtro post?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' esiste già"</string> <string name="duplicate_post_filter_dialog_message">"Vuoi sovrascriverlo?"</string> - <string name="apply_post_filter_to">"Applica a"</string> + <string name="apply_to">"Applica a"</string> <string name="post_filter_usage_home">"Home"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 <string name="min_awards_hint">"最小のアワード数 (-1: 制限なし)"</string> <string name="duplicate_post_filter_dialog_title">"「%1$s 」は既に存在します"</string> <string name="duplicate_post_filter_dialog_message">"上書きしますか?"</string> - <string name="apply_post_filter_to">"適用"</string> + <string name="apply_to">"適用"</string> <string name="post_filter_usage_home">"ホーム"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> <string name="post_filter_usage_user">"ユーザー: %1$s"</string> 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"</string> <string name="post_filter_requires_a_name">"Wat is de naam van deze post filter?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' Bestaat Al"</string> <string name="duplicate_post_filter_dialog_message">"Overschrijven?"</string> - <string name="apply_post_filter_to">"Toepassen op"</string> + <string name="apply_to">"Toepassen op"</string> <string name="post_filter_usage_home">"Thuis"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"Jaka jest nazwa filtru tego posta?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' już istnieje"</string> <string name="duplicate_post_filter_dialog_message">"Nadpisać?"</string> - <string name="apply_post_filter_to">"Zastosuj do"</string> + <string name="apply_to">"Zastosuj do"</string> <string name="post_filter_usage_home">"Strona główna"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"Qual é o nome deste filtro de postagem?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' já existe"</string> <string name="duplicate_post_filter_dialog_message">"Substituir isto?"</string> - <string name="apply_post_filter_to">"Aplicar a"</string> + <string name="apply_to">"Aplicar a"</string> <string name="post_filter_usage_home">"Início"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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"</string> <string name="post_filter_requires_a_name">"Qual é o nome deste Filtro de Publicações?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' já existe"</string> <string name="duplicate_post_filter_dialog_message">"Substituir?"</string> - <string name="apply_post_filter_to">"Aplicar a"</string> + <string name="apply_to">"Aplicar a"</string> <string name="post_filter_usage_home">"Início"</string> <string name="post_filter_usage_subreddit">"Comunidade: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Comunidade"</string> 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"</string> <string name="post_filter_requires_a_name">"Care este numele acestui filtru de post?"</string> <string name="duplicate_post_filter_dialog_title">"%1$s' Există Deja"</string> <string name="duplicate_post_filter_dialog_message">"Îl înlocuiești?"</string> - <string name="apply_post_filter_to">"Se aplică la"</string> + <string name="apply_to">"Se aplică la"</string> <string name="post_filter_usage_home">"Acasă"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 <string name="post_filter_requires_a_name">"Как называется этот фильтр постов?"</string> <string name="duplicate_post_filter_dialog_title">"«%1$s» уже существует"</string> <string name="duplicate_post_filter_dialog_message">"Переопределить это?"</string> - <string name="apply_post_filter_to">"Применить к"</string> + <string name="apply_to">"Применить к"</string> <string name="post_filter_usage_home">"Домашняя"</string> <string name="post_filter_usage_subreddit">"Сабреддит: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Сабреддит"</string> 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"</string> <string name="post_filter_requires_a_name">"Bu gönderi filtresinin adı nedir?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' Zaten Var"</string> <string name="duplicate_post_filter_dialog_message">"Geçersiz kılınsın mı?"</string> - <string name="apply_post_filter_to">"Uygulanan:"</string> + <string name="apply_to">"Uygulanan:"</string> <string name="post_filter_usage_home">"Ana Sayfa"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 <string name="post_filter_requires_a_name">"Яка назва для цього фільтру дописів?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' вже існує"</string> <string name="duplicate_post_filter_dialog_message">"Перезаписати його?"</string> - <string name="apply_post_filter_to">"Задіяно для"</string> + <string name="apply_to">"Задіяно для"</string> <string name="post_filter_usage_home">"Домівка"</string> <string name="post_filter_usage_subreddit">"Сабредит: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Сабредит"</string> 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"</string> <string name="post_filter_requires_a_name">"Bộ lọc bài đăng này tên là gì?"</string> <string name="duplicate_post_filter_dialog_title">"'%1$s' đã tồn tại"</string> <string name="duplicate_post_filter_dialog_message">"Ghi đè nó?"</string> - <string name="apply_post_filter_to">"Áp dụng vào"</string> + <string name="apply_to">"Áp dụng vào"</string> <string name="post_filter_usage_home">"Trang chủ"</string> <string name="post_filter_usage_subreddit">"Subreddit: %1$s"</string> <string name="post_filter_usage_subreddit_all">"Subreddit"</string> 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 视频分辨率较低。 <string name="post_filter_requires_a_name">"该帖子过滤器的名称是什么?"</string> <string name="duplicate_post_filter_dialog_title">"“%1$s”已经存在"</string> <string name="duplicate_post_filter_dialog_message">"覆盖吗?"</string> - <string name="apply_post_filter_to">"应用于"</string> + <string name="apply_to">"应用于"</string> <string name="post_filter_usage_home">"主页"</string> <string name="post_filter_usage_subreddit">"版块:%1$s"</string> <string name="post_filter_usage_subreddit_all">"版块"</string> 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 @@ <string name="post_filter_requires_a_name">What is the name of this post filter?</string> <string name="duplicate_post_filter_dialog_title">\'%1$s\' Already Exists</string> <string name="duplicate_post_filter_dialog_message">Override it?</string> - <string name="apply_post_filter_to">Apply to</string> + <string name="apply_to">Apply to</string> <string name="post_filter_usage_home">Home</string> <string name="post_filter_usage_subreddit">Subreddit: %1$s</string> <string name="post_filter_usage_subreddit_all">Subreddit</string> |