Added create rule for message

This commit is contained in:
M66B 2019-03-01 12:51:57 +00:00
parent ae86b694c6
commit c268a83df7
5 changed files with 43 additions and 3 deletions

View File

@ -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;

View File

@ -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"));

View File

@ -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"

View File

@ -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" />

View File

@ -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 &#8230;</string>
<string name="title_share">Share</string>
<string name="title_show_headers">Show headers</string>
<string name="title_raw_download">Download raw message</string>