From 7e4c9731b2dba3a72efe1556afe8cff642a534d9 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 14 Aug 2023 17:11:24 +0200 Subject: [PATCH] Debug: rule needs headers/body --- .../java/eu/faircode/email/AdapterRule.java | 18 +++++++++++++ .../java/eu/faircode/email/EntityRule.java | 8 ++++++ app/src/main/res/layout/item_rule.xml | 25 ++++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterRule.java b/app/src/main/java/eu/faircode/email/AdapterRule.java index 75aa688997..95fac8e5b5 100644 --- a/app/src/main/java/eu/faircode/email/AdapterRule.java +++ b/app/src/main/java/eu/faircode/email/AdapterRule.java @@ -21,6 +21,7 @@ package eu.faircode.email; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Typeface; import android.os.Bundle; import android.text.SpannableString; @@ -45,6 +46,7 @@ import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.OnLifecycleEvent; import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ListUpdateCallback; import androidx.recyclerview.widget.RecyclerView; @@ -57,6 +59,7 @@ import java.text.Collator; import java.text.DateFormat; import java.text.NumberFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -70,6 +73,7 @@ public class AdapterRule extends RecyclerView.Adapter { private LifecycleOwner owner; private LayoutInflater inflater; + private boolean debug; private DateFormat DF; private NumberFormat NF = NumberFormat.getNumberInstance(); @@ -82,6 +86,8 @@ public class AdapterRule extends RecyclerView.Adapter { public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { private View view; private ImageView ivDaily; + private ImageView ivHeaders; + private ImageView ivBody; private TextView tvName; private TextView tvOrder; private ImageView ivStop; @@ -97,6 +103,8 @@ public class AdapterRule extends RecyclerView.Adapter { view = itemView.findViewById(R.id.clItem); ivDaily = itemView.findViewById(R.id.ivDaily); + ivHeaders = itemView.findViewById(R.id.ivHeaders); + ivBody = itemView.findViewById(R.id.ivBody); tvName = itemView.findViewById(R.id.tvName); tvOrder = itemView.findViewById(R.id.tvOrder); ivStop = itemView.findViewById(R.id.ivStop); @@ -117,8 +125,15 @@ public class AdapterRule extends RecyclerView.Adapter { } private void bindTo(TupleRuleEx rule) { + boolean needsHeaders = (debug || BuildConfig.DEBUG) && + EntityRule.needsHeaders(Arrays.asList(rule)); + boolean needsBody = (debug || BuildConfig.DEBUG) && + EntityRule.needsBody(Arrays.asList(rule)); + view.setActivated(!rule.enabled); ivDaily.setVisibility(rule.daily ? View.VISIBLE : View.GONE); + ivHeaders.setVisibility(needsHeaders ? View.VISIBLE : View.GONE); + ivBody.setVisibility(needsBody ? View.VISIBLE : View.GONE); tvName.setText(rule.name); tvOrder.setText(Integer.toString(rule.order)); ivStop.setVisibility(rule.stop ? View.VISIBLE : View.INVISIBLE); @@ -586,6 +601,9 @@ public class AdapterRule extends RecyclerView.Adapter { this.owner = parentFragment.getViewLifecycleOwner(); this.inflater = LayoutInflater.from(context); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + this.debug = prefs.getBoolean("debug", false); + this.DF = Helper.getDateTimeInstance(this.context); setHasStableIds(true); diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 783a49895e..1e20ba9701 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -141,12 +141,20 @@ public class EntityRule { private static final int MAX_NOTES_LENGTH = 512; // characters static boolean needsHeaders(EntityMessage message, List rules) { + return needsHeaders(rules); + } + + static boolean needsHeaders(List rules) { return needs(rules, "header"); } static boolean needsBody(EntityMessage message, List rules) { if (message.encrypt != null && !EntityMessage.ENCRYPT_NONE.equals(message.encrypt)) return false; + return needsBody(rules); + } + + static boolean needsBody(List rules) { return needs(rules, "body") || needs(rules, "notes_jsoup"); } diff --git a/app/src/main/res/layout/item_rule.xml b/app/src/main/res/layout/item_rule.xml index 320548a40c..76322cc369 100644 --- a/app/src/main/res/layout/item_rule.xml +++ b/app/src/main/res/layout/item_rule.xml @@ -22,10 +22,33 @@ android:layout_height="24dp" android:contentDescription="@string/title_rule_daily" app:layout_constraintBottom_toBottomOf="@+id/ivStop" + app:layout_constraintEnd_toStartOf="@id/ivHeaders" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/ivStop" app:srcCompat="@drawable/twotone_hourglass_top_24" /> + + + +