Added create rule for message

pull/152/head
M66B 6 years ago
parent ae86b694c6
commit c268a83df7

@ -1936,6 +1936,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
.show(); .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) { private void onMenuShare(ActionData data) {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("id", data.message.id); args.putLong("id", data.message.id);
@ -2270,6 +2283,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
case R.id.menu_junk: case R.id.menu_junk:
onMenuJunk(data); onMenuJunk(data);
return true; return true;
case R.id.menu_create_rule:
onMenuCreateRule(data);
return true;
case R.id.menu_share: case R.id.menu_share:
onMenuShare(data); onMenuShare(data);
return true; return true;

@ -62,6 +62,7 @@ public class FragmentRule extends FragmentBase {
private ViewGroup view; private ViewGroup view;
private ScrollView scroll; private ScrollView scroll;
private ConstraintLayout content; private ConstraintLayout content;
private TextView tvFolder;
private EditText etName; private EditText etName;
private EditText etOrder; private EditText etOrder;
private CheckBox cbEnabled; private CheckBox cbEnabled;
@ -108,11 +109,14 @@ public class FragmentRule extends FragmentBase {
@Override @Override
@Nullable @Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 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); view = (ViewGroup) inflater.inflate(R.layout.fragment_rule, container, false);
// Get controls // Get controls
scroll = view.findViewById(R.id.scroll); scroll = view.findViewById(R.id.scroll);
content = view.findViewById(R.id.content); content = view.findViewById(R.id.content);
tvFolder = view.findViewById(R.id.tvFolder);
etName = view.findViewById(R.id.etName); etName = view.findViewById(R.id.etName);
etOrder = view.findViewById(R.id.etOrder); etOrder = view.findViewById(R.id.etOrder);
cbEnabled = view.findViewById(R.id.cbEnabled); cbEnabled = view.findViewById(R.id.cbEnabled);
@ -217,6 +221,7 @@ public class FragmentRule extends FragmentBase {
}); });
// Initialize // Initialize
tvFolder.setText(null);
bottom_navigation.setVisibility(View.GONE); bottom_navigation.setVisibility(View.GONE);
grpReady.setVisibility(View.GONE); grpReady.setVisibility(View.GONE);
grpMove.setVisibility(View.GONE); grpMove.setVisibility(View.GONE);
@ -261,6 +266,8 @@ public class FragmentRule extends FragmentBase {
@Override @Override
protected void onExecuted(Bundle args, RefData data) { protected void onExecuted(Bundle args, RefData data) {
tvFolder.setText(data.folder.getDisplayName(getContext()));
adapterTarget.clear(); adapterTarget.clear();
adapterTarget.addAll(data.folders); adapterTarget.addAll(data.folders);
@ -314,6 +321,8 @@ public class FragmentRule extends FragmentBase {
private void loadRule() { private void loadRule() {
Bundle rargs = new Bundle(); Bundle rargs = new Bundle();
rargs.putLong("id", id); rargs.putLong("id", id);
rargs.putString("sender", getArguments().getString("sender"));
rargs.putString("subject", getArguments().getString("subject"));
new SimpleTask<TupleRuleEx>() { new SimpleTask<TupleRuleEx>() {
@Override @Override
@ -336,9 +345,9 @@ public class FragmentRule extends FragmentBase {
etOrder.setText(rule == null ? null : Integer.toString(rule.order)); etOrder.setText(rule == null ? null : Integer.toString(rule.order));
cbEnabled.setChecked(rule == null || rule.enabled); cbEnabled.setChecked(rule == null || rule.enabled);
cbStop.setChecked(rule != null && rule.stop); 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")); 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")); cbSubject.setChecked(jsubject != null && jsubject.getBoolean("regex"));
etHeader.setText(jheader == null ? null : jheader.getString("value")); etHeader.setText(jheader == null ? null : jheader.getString("value"));
cbHeader.setChecked(jheader != null && jheader.getBoolean("regex")); cbHeader.setChecked(jheader != null && jheader.getBoolean("regex"));

@ -20,14 +20,24 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="12dp"> 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 <TextView
android:id="@+id/tvName" android:id="@+id/tvName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_rule_name" android:text="@string/title_rule_name"
android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toBottomOf="@id/tvFolder" />
<EditText <EditText
android:id="@+id/etName" android:id="@+id/etName"

@ -28,6 +28,10 @@
android:id="@+id/menu_junk" android:id="@+id/menu_junk"
android:title="@string/title_spam" /> android:title="@string/title_spam" />
<item
android:id="@+id/menu_create_rule"
android:title="@string/title_create_rule" />
<item <item
android:id="@+id/menu_share" android:id="@+id/menu_share"
android:title="@string/title_share" /> android:title="@string/title_share" />

@ -318,6 +318,7 @@
<string name="title_unflag">Remove star</string> <string name="title_unflag">Remove star</string>
<string name="title_forward">Forward</string> <string name="title_forward">Forward</string>
<string name="title_reply_all">Reply to all</string> <string name="title_reply_all">Reply to all</string>
<string name="title_create_rule">Create rule &#8230;</string>
<string name="title_share">Share</string> <string name="title_share">Share</string>
<string name="title_show_headers">Show headers</string> <string name="title_show_headers">Show headers</string>
<string name="title_raw_download">Download raw message</string> <string name="title_raw_download">Download raw message</string>

Loading…
Cancel
Save