Folder polling is available with always sync only

pull/183/head
M66B 5 years ago
parent ad7ce25ef8
commit 73864b23bd

@ -21,6 +21,7 @@ package eu.faircode.email;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
@ -43,6 +44,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group; import androidx.constraintlayout.widget.Group;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.preference.PreferenceManager;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
@ -234,8 +236,10 @@ public class FragmentFolder extends FragmentBase {
if (folder != null) { if (folder != null) {
EntityAccount account = db.account().getAccount(folder.account); EntityAccount account = db.account().getAccount(folder.account);
if (account != null) if (account != null) {
args.putInt("interval", account.poll_interval); args.putInt("interval", account.poll_interval);
args.putBoolean("exempted", account.poll_exempted);
}
} }
return folder; return folder;
@ -243,8 +247,12 @@ public class FragmentFolder extends FragmentBase {
@Override @Override
protected void onExecuted(Bundle args, EntityFolder folder) { protected void onExecuted(Bundle args, EntityFolder folder) {
if (savedInstanceState == null) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
int pollInterval = prefs.getInt("poll_interval", ServiceSynchronize.DEFAULT_POLL_INTERVAL);
int interval = args.getInt("interval", EntityAccount.DEFAULT_KEEP_ALIVE_INTERVAL); int interval = args.getInt("interval", EntityAccount.DEFAULT_KEEP_ALIVE_INTERVAL);
boolean exempted = args.getBoolean("exempted", false);
if (savedInstanceState == null) {
etName.setText(folder == null ? null : folder.name); etName.setText(folder == null ? null : folder.name);
etDisplay.setText(folder == null ? null : folder.display); etDisplay.setText(folder == null ? null : folder.display);
etDisplay.setHint(folder == null ? null : EntityFolder.localizeName(getContext(), folder.name)); etDisplay.setHint(folder == null ? null : EntityFolder.localizeName(getContext(), folder.name));
@ -282,9 +290,9 @@ public class FragmentFolder extends FragmentBase {
Helper.setViewsEnabled(view, true); Helper.setViewsEnabled(view, true);
etName.setEnabled(folder == null || EntityFolder.USER.equals(folder.type)); etName.setEnabled(folder == null || EntityFolder.USER.equals(folder.type));
cbPoll.setEnabled(cbSynchronize.isChecked()); cbPoll.setEnabled(cbSynchronize.isChecked() && (pollInterval == 0 || exempted));
etPoll.setEnabled(cbSynchronize.isChecked()); etPoll.setEnabled(cbSynchronize.isChecked() && (pollInterval == 0 || exempted));
tvPoll.setEnabled(cbSynchronize.isChecked()); tvPoll.setEnabled(cbSynchronize.isChecked() && (pollInterval == 0 || exempted));
grpPoll.setVisibility(cbPoll.isEnabled() && cbPoll.isChecked() ? View.VISIBLE : View.GONE); grpPoll.setVisibility(cbPoll.isEnabled() && cbPoll.isChecked() ? View.VISIBLE : View.GONE);
etKeepDays.setEnabled(!cbKeepAll.isChecked()); etKeepDays.setEnabled(!cbKeepAll.isChecked());
cbAutoDelete.setEnabled(!cbKeepAll.isChecked()); cbAutoDelete.setEnabled(!cbKeepAll.isChecked());

Loading…
Cancel
Save