Added header condition helper

This commit is contained in:
M66B 2022-12-27 10:32:54 +01:00
parent 07d4b2b29b
commit d999267519
2 changed files with 57 additions and 1 deletions

View File

@ -76,7 +76,9 @@ import java.text.DateFormat;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;
public class FragmentRule extends FragmentBase {
@ -108,6 +110,7 @@ public class FragmentRule extends FragmentBase {
private EditText etMimeType;
private EditText etHeader;
private ImageButton ibHeader;
private CheckBox cbHeader;
private EditText etBody;
@ -211,6 +214,27 @@ public class FragmentRule extends FragmentBase {
private final static int REQUEST_DATE_BEFORE = 12;
private final static int REQUEST_FOLDER = 13;
private static final List<String> HEADER_CONDITIONS = Collections.unmodifiableList(Arrays.asList(
"$$seen$",
"$$answered$",
"$$flagged$",
"$$deleted$",
"$$tls$",
"$$dkim$",
"$$spf$",
"$$dmarc$",
"$$mx$",
"$$blocklist$",
"$$replydomain$",
"$$nofrom$",
"$$multifrom$",
"$$automatic$",
"$$lowpriority$",
"$$highpriority$",
"$$signed$",
"$$encrypted$"
));
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -267,6 +291,7 @@ public class FragmentRule extends FragmentBase {
etMimeType = view.findViewById(R.id.etMimeType);
etHeader = view.findViewById(R.id.etHeader);
ibHeader = view.findViewById(R.id.ibHeader);
cbHeader = view.findViewById(R.id.cbHeader);
etBody = view.findViewById(R.id.etBody);
@ -382,6 +407,26 @@ public class FragmentRule extends FragmentBase {
}
});
ibHeader.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(v.getContext(), getViewLifecycleOwner(), v);
for (int i = 0; i < HEADER_CONDITIONS.size(); i++)
popupMenu.getMenu().add(Menu.NONE, i + 1, i + 1, HEADER_CONDITIONS.get(i));
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
etHeader.setText(item.getTitle());
return true;
}
});
popupMenu.show();
}
});
tvDateAfter.setText("-");
tvDateBefore.setText("-");

View File

@ -419,7 +419,18 @@
app:layout_constraintBottom_toBottomOf="@+id/cbHeader"
app:layout_constraintEnd_toStartOf="@+id/cbHeader"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/cbHeader" />
app:layout_constraintTop_toTopOf="@+id/ibHeader" />
<ImageButton
android:id="@+id/ibHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
app:layout_constraintBottom_toBottomOf="@+id/cbHeader"
app:layout_constraintEnd_toStartOf="@+id/cbHeader"
app:layout_constraintTop_toTopOf="@+id/cbHeader"
app:srcCompat="@drawable/twotone_filter_alt_24" />
<CheckBox
android:id="@+id/cbHeader"