Added option to keep messages infinitely

This commit is contained in:
M66B
2018-12-10 11:23:20 +01:00
parent 29f2e4c0e6
commit f552a9b23d
4 changed files with 43 additions and 5 deletions

View File

@@ -55,6 +55,7 @@ public class FragmentFolder extends FragmentEx {
private CheckBox cbNotify;
private EditText etSyncDays;
private EditText etKeepDays;
private CheckBox cbKeepAll;
private Button btnSave;
private ProgressBar pbSave;
private ProgressBar pbWait;
@@ -90,6 +91,7 @@ public class FragmentFolder extends FragmentEx {
cbNotify = view.findViewById(R.id.cbNotify);
etSyncDays = view.findViewById(R.id.etSyncDays);
etKeepDays = view.findViewById(R.id.etKeepDays);
cbKeepAll = view.findViewById(R.id.cbKeepAll);
btnSave = view.findViewById(R.id.btnSave);
pbSave = view.findViewById(R.id.pbSave);
pbWait = view.findViewById(R.id.pbWait);
@@ -113,6 +115,13 @@ public class FragmentFolder extends FragmentEx {
// Navigating to individual messages requires notification grouping
cbNotify.setVisibility(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? View.VISIBLE : View.GONE);
cbKeepAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
etKeepDays.setEnabled(!isChecked);
}
});
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -131,7 +140,9 @@ public class FragmentFolder extends FragmentEx {
args.putBoolean("poll", cbPoll.isChecked());
args.putBoolean("notify", cbNotify.getVisibility() == View.VISIBLE && cbNotify.isChecked());
args.putString("sync", etSyncDays.getText().toString());
args.putString("keep", etKeepDays.getText().toString());
args.putString("keep", cbKeepAll.isChecked()
? Integer.toString(Integer.MAX_VALUE)
: etKeepDays.getText().toString());
new SimpleTask<Void>() {
@Override
@@ -351,7 +362,10 @@ public class FragmentFolder extends FragmentEx {
cbPoll.setChecked(folder == null ? false : folder.poll);
cbNotify.setChecked(folder == null ? false : folder.notify);
etSyncDays.setText(Integer.toString(folder == null ? EntityFolder.DEFAULT_USER_SYNC : folder.sync_days));
etKeepDays.setText(Integer.toString(folder == null ? EntityFolder.DEFAULT_USER_SYNC : folder.keep_days));
if (folder != null && folder.keep_days == Integer.MAX_VALUE)
cbKeepAll.setChecked(true);
else
etKeepDays.setText(Integer.toString(folder == null ? EntityFolder.DEFAULT_USER_SYNC : folder.keep_days));
}
// Consider previous save as cancelled