Added copy rule to account/folder

pull/212/head
M66B 1 year ago
parent f2212e0e26
commit 61ad1cc974

@ -475,14 +475,14 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
}
private void onActionCopy() {
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
lbm.sendBroadcast(
new Intent(ActivityView.ACTION_EDIT_RULE)
.putExtra("id", rule.id)
.putExtra("account", rule.account)
.putExtra("folder", rule.folder)
.putExtra("protocol", protocol)
.putExtra("copy", true));
Bundle args = new Bundle();
args.putLong("rule", rule.id);
args.putInt("type", protocol); // account selector
FragmentDialogSelectAccount fragment = new FragmentDialogSelectAccount();
fragment.setArguments(args);
fragment.setTargetFragment(parentFragment, FragmentRules.REQUEST_RULE_COPY_ACCOUNT);
fragment.show(parentFragment.getParentFragmentManager(), "rule:copy:account");
}
});

@ -46,6 +46,7 @@ import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.Observer;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -87,7 +88,9 @@ public class FragmentRules extends FragmentBase {
private static final int REQUEST_EXPORT = 1;
private static final int REQUEST_IMPORT = 2;
static final int REQUEST_MOVE = 3;
private static final int REQUEST_CLEAR = 4;
static final int REQUEST_RULE_COPY_ACCOUNT = 4;
static final int REQUEST_RULE_COPY_FOLDER = 5;
private static final int REQUEST_CLEAR = 6;
@Override
public void onCreate(Bundle savedInstanceState) {
@ -210,6 +213,14 @@ public class FragmentRules extends FragmentBase {
if (resultCode == RESULT_OK && data != null)
onMove(data.getBundleExtra("args"));
break;
case REQUEST_RULE_COPY_ACCOUNT:
if (resultCode == RESULT_OK && data != null)
onRuleCopyAccount(data.getBundleExtra("args"));
break;
case REQUEST_RULE_COPY_FOLDER:
if (resultCode == RESULT_OK && data != null)
onRuleCopyFolder(data.getBundleExtra("args"));
break;
case REQUEST_CLEAR:
if (resultCode == RESULT_OK && data != null)
onClear(data.getBundleExtra("args"));
@ -605,6 +616,28 @@ public class FragmentRules extends FragmentBase {
}.execute(this, args, "rule:move");
}
private void onRuleCopyAccount(Bundle args) {
args.putString("title", getString(R.string.title_copy_to));
args.putLongArray("disabled", new long[0]);
args.putBoolean("cancopy", false);
FragmentDialogSelectFolder fragment = new FragmentDialogSelectFolder();
fragment.setArguments(args);
fragment.setTargetFragment(this, REQUEST_RULE_COPY_FOLDER);
fragment.show(getParentFragmentManager(), "rule:copy:folder");
}
private void onRuleCopyFolder(Bundle args) {
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
lbm.sendBroadcast(
new Intent(ActivityView.ACTION_EDIT_RULE)
.putExtra("id", args.getLong("rule"))
.putExtra("account", args.getLong("account"))
.putExtra("folder", args.getLong("folder"))
.putExtra("protocol", args.getInt("protocol"))
.putExtra("copy", true));
}
private void onClear(Bundle args) {
new SimpleTask<Void>() {
@Override

Loading…
Cancel
Save