Load account/folder name for rules

pull/194/merge
M66B 3 years ago
parent 82722344ad
commit 39d326ccd9

@ -148,7 +148,6 @@ public class FragmentDialogFolder extends FragmentDialogBase {
Bundle args = getArguments(); Bundle args = getArguments();
args.putLong("folder", folder.id); args.putLong("folder", folder.id);
args.putString("name", folder.name);
sendResult(RESULT_OK); sendResult(RESULT_OK);
dismiss(); dismiss();

@ -946,9 +946,45 @@ public class FragmentRule extends FragmentBase {
private void onFolderSelected(Bundle args) { private void onFolderSelected(Bundle args) {
long folder = args.getLong("folder"); long folder = args.getLong("folder");
String name = args.getString("name"); showFolder(folder);
btnFolder.setTag(folder); }
btnFolder.setText(name);
private void showFolder(long id) {
btnFolder.setTag(id);
Bundle args = new Bundle();
args.putLong("id", id);
new SimpleTask<String>() {
@Override
protected String onExecute(Context context, Bundle args) throws Throwable {
long id = args.getLong("id");
DB db = DB.getInstance(context);
EntityFolder folder = db.folder().getFolder(id);
if (folder == null)
return null;
EntityAccount account = db.account().getAccount(folder.account);
if (account == null)
return null;
return account.name + ":" + folder.name;
}
@Override
protected void onExecuted(Bundle args, String name) {
if (name == null)
name = getString(R.string.title_select);
btnFolder.setText(name);
}
@Override
protected void onException(Bundle args, Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
}
}.execute(this, args, "rule:folder");
} }
private void loadRule(final Bundle savedInstanceState) { private void loadRule(final Bundle savedInstanceState) {
@ -974,23 +1010,7 @@ public class FragmentRule extends FragmentBase {
long id = args.getLong("id"); long id = args.getLong("id");
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
TupleRuleEx rule = db.rule().getRule(id); return db.rule().getRule(id);
if (rule != null)
try {
JSONObject jaction = new JSONObject(rule.action);
int type = jaction.getInt("type");
if (type == EntityRule.TYPE_MOVE || type == EntityRule.TYPE_COPY) {
long target = jaction.optLong("target", -1);
EntityFolder folder = db.folder().getFolder(target);
if (folder != null)
args.putString("name", folder.name);
}
} catch (Throwable ex) {
Log.e(ex);
}
return rule;
} }
@Override @Override
@ -1095,8 +1115,7 @@ public class FragmentRule extends FragmentBase {
case EntityRule.TYPE_MOVE: case EntityRule.TYPE_MOVE:
case EntityRule.TYPE_COPY: case EntityRule.TYPE_COPY:
long target = jaction.optLong("target", -1); long target = jaction.optLong("target", -1);
btnFolder.setTag(target); showFolder(target);
btnFolder.setText(args.getString("name"));
if (type == EntityRule.TYPE_MOVE) { if (type == EntityRule.TYPE_MOVE) {
cbMoveSeen.setChecked(jaction.optBoolean("seen")); cbMoveSeen.setChecked(jaction.optBoolean("seen"));
cbMoveThread.setChecked(jaction.optBoolean("thread")); cbMoveThread.setChecked(jaction.optBoolean("thread"));

Loading…
Cancel
Save