mirror of https://github.com/M66B/FairEmail.git
Added create rule for message
This commit is contained in:
parent
ae86b694c6
commit
c268a83df7
|
@ -1936,6 +1936,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
.show();
|
||||
}
|
||||
|
||||
private void onMenuCreateRule(ActionData data) {
|
||||
Intent rule = new Intent(ActivityView.ACTION_EDIT_RULE);
|
||||
rule.putExtra("account", data.message.account);
|
||||
rule.putExtra("folder", data.message.folder);
|
||||
if (data.message.from != null && data.message.from.length > 0)
|
||||
rule.putExtra("sender", ((InternetAddress) data.message.from[0]).getAddress());
|
||||
if (!TextUtils.isEmpty(data.message.subject))
|
||||
rule.putExtra("subject", data.message.subject);
|
||||
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
|
||||
lbm.sendBroadcast(rule);
|
||||
}
|
||||
|
||||
private void onMenuShare(ActionData data) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", data.message.id);
|
||||
|
@ -2270,6 +2283,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
case R.id.menu_junk:
|
||||
onMenuJunk(data);
|
||||
return true;
|
||||
case R.id.menu_create_rule:
|
||||
onMenuCreateRule(data);
|
||||
return true;
|
||||
case R.id.menu_share:
|
||||
onMenuShare(data);
|
||||
return true;
|
||||
|
|
|
@ -62,6 +62,7 @@ public class FragmentRule extends FragmentBase {
|
|||
private ViewGroup view;
|
||||
private ScrollView scroll;
|
||||
private ConstraintLayout content;
|
||||
private TextView tvFolder;
|
||||
private EditText etName;
|
||||
private EditText etOrder;
|
||||
private CheckBox cbEnabled;
|
||||
|
@ -108,11 +109,14 @@ public class FragmentRule extends FragmentBase {
|
|||
@Override
|
||||
@Nullable
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
setSubtitle(R.string.title_edit_rules);
|
||||
|
||||
view = (ViewGroup) inflater.inflate(R.layout.fragment_rule, container, false);
|
||||
|
||||
// Get controls
|
||||
scroll = view.findViewById(R.id.scroll);
|
||||
content = view.findViewById(R.id.content);
|
||||
tvFolder = view.findViewById(R.id.tvFolder);
|
||||
etName = view.findViewById(R.id.etName);
|
||||
etOrder = view.findViewById(R.id.etOrder);
|
||||
cbEnabled = view.findViewById(R.id.cbEnabled);
|
||||
|
@ -217,6 +221,7 @@ public class FragmentRule extends FragmentBase {
|
|||
});
|
||||
|
||||
// Initialize
|
||||
tvFolder.setText(null);
|
||||
bottom_navigation.setVisibility(View.GONE);
|
||||
grpReady.setVisibility(View.GONE);
|
||||
grpMove.setVisibility(View.GONE);
|
||||
|
@ -261,6 +266,8 @@ public class FragmentRule extends FragmentBase {
|
|||
|
||||
@Override
|
||||
protected void onExecuted(Bundle args, RefData data) {
|
||||
tvFolder.setText(data.folder.getDisplayName(getContext()));
|
||||
|
||||
adapterTarget.clear();
|
||||
adapterTarget.addAll(data.folders);
|
||||
|
||||
|
@ -314,6 +321,8 @@ public class FragmentRule extends FragmentBase {
|
|||
private void loadRule() {
|
||||
Bundle rargs = new Bundle();
|
||||
rargs.putLong("id", id);
|
||||
rargs.putString("sender", getArguments().getString("sender"));
|
||||
rargs.putString("subject", getArguments().getString("subject"));
|
||||
|
||||
new SimpleTask<TupleRuleEx>() {
|
||||
@Override
|
||||
|
@ -336,9 +345,9 @@ public class FragmentRule extends FragmentBase {
|
|||
etOrder.setText(rule == null ? null : Integer.toString(rule.order));
|
||||
cbEnabled.setChecked(rule == null || rule.enabled);
|
||||
cbStop.setChecked(rule != null && rule.stop);
|
||||
etSender.setText(jsender == null ? null : jsender.getString("value"));
|
||||
etSender.setText(jsender == null ? args.getString("sender") : jsender.getString("value"));
|
||||
cbSender.setChecked(jsender != null && jsender.getBoolean("regex"));
|
||||
etSubject.setText(jsubject == null ? null : jsubject.getString("value"));
|
||||
etSubject.setText(jsubject == null ? args.getString("subject") : jsubject.getString("value"));
|
||||
cbSubject.setChecked(jsubject != null && jsubject.getBoolean("regex"));
|
||||
etHeader.setText(jheader == null ? null : jheader.getString("value"));
|
||||
cbHeader.setChecked(jheader != null && jheader.getBoolean("regex"));
|
||||
|
|
|
@ -20,14 +20,24 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:padding="12dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvFolder"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Inbox"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/title_rule_name"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toBottomOf="@id/tvFolder" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/etName"
|
||||
|
|
|
@ -28,6 +28,10 @@
|
|||
android:id="@+id/menu_junk"
|
||||
android:title="@string/title_spam" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_create_rule"
|
||||
android:title="@string/title_create_rule" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_share"
|
||||
android:title="@string/title_share" />
|
||||
|
|
|
@ -318,6 +318,7 @@
|
|||
<string name="title_unflag">Remove star</string>
|
||||
<string name="title_forward">Forward</string>
|
||||
<string name="title_reply_all">Reply to all</string>
|
||||
<string name="title_create_rule">Create rule …</string>
|
||||
<string name="title_share">Share</string>
|
||||
<string name="title_show_headers">Show headers</string>
|
||||
<string name="title_raw_download">Download raw message</string>
|
||||
|
|
Loading…
Reference in New Issue