mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-03 03:19:24 +01:00
Added options to enable/disable sync unseen/flagged
This commit is contained in:
@@ -866,7 +866,12 @@ class Core {
|
||||
if (keep_days == sync_days)
|
||||
keep_days++;
|
||||
|
||||
Log.i(folder.name + " start sync after=" + sync_days + "/" + keep_days);
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean sync_unseen = prefs.getBoolean("sync_unseen", false);
|
||||
boolean sync_flagged = prefs.getBoolean("sync_flagged", true);
|
||||
|
||||
Log.i(folder.name + " start sync after=" + sync_days + "/" + keep_days +
|
||||
" unseen=" + sync_unseen + " sync_flagged=" + sync_flagged);
|
||||
|
||||
db.folder().setFolderSyncState(folder.id, "syncing");
|
||||
|
||||
@@ -915,8 +920,9 @@ class Core {
|
||||
|
||||
// Reduce list of local uids
|
||||
SearchTerm searchTerm = new ReceivedDateTerm(ComparisonTerm.GE, new Date(sync_time));
|
||||
searchTerm = new OrTerm(searchTerm, new FlagTerm(new Flags(Flags.Flag.SEEN), false));
|
||||
if (ifolder.getPermanentFlags().contains(Flags.Flag.FLAGGED))
|
||||
if (sync_unseen)
|
||||
searchTerm = new OrTerm(searchTerm, new FlagTerm(new Flags(Flags.Flag.SEEN), false));
|
||||
if (sync_flagged && ifolder.getPermanentFlags().contains(Flags.Flag.FLAGGED))
|
||||
searchTerm = new OrTerm(searchTerm, new FlagTerm(new Flags(Flags.Flag.FLAGGED), true));
|
||||
|
||||
long search = SystemClock.elapsedRealtime();
|
||||
|
||||
@@ -54,9 +54,11 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
|
||||
private SwitchCompat swSchedule;
|
||||
private TextView tvScheduleStart;
|
||||
private TextView tvScheduleEnd;
|
||||
private SwitchCompat swUnseen;
|
||||
private SwitchCompat swFlagged;
|
||||
|
||||
private final static String[] RESET_OPTIONS = new String[]{
|
||||
"enabled", "poll_interval", "schedule", "schedule_start", "schedule_end"
|
||||
"enabled", "poll_interval", "schedule", "schedule_start", "schedule_end", "sync_unseen", "sync_flagged"
|
||||
};
|
||||
|
||||
@Override
|
||||
@@ -74,6 +76,8 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
|
||||
swSchedule = view.findViewById(R.id.swSchedule);
|
||||
tvScheduleStart = view.findViewById(R.id.tvScheduleStart);
|
||||
tvScheduleEnd = view.findViewById(R.id.tvScheduleEnd);
|
||||
swUnseen = view.findViewById(R.id.swUnseen);
|
||||
swFlagged = view.findViewById(R.id.swFlagged);
|
||||
|
||||
// Wire controls
|
||||
|
||||
@@ -153,6 +157,22 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
|
||||
}
|
||||
});
|
||||
|
||||
swUnseen.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("sync_unseen", checked).apply();
|
||||
ServiceSynchronize.reload(getContext(), false, "sync_unseen=" + checked);
|
||||
}
|
||||
});
|
||||
|
||||
swFlagged.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("sync_flagged", checked).apply();
|
||||
ServiceSynchronize.reload(getContext(), false, "sync_flagged=" + checked);
|
||||
}
|
||||
});
|
||||
|
||||
setOptions();
|
||||
PreferenceManager.getDefaultSharedPreferences(getContext()).registerOnSharedPreferenceChangeListener(this);
|
||||
|
||||
@@ -214,6 +234,9 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
|
||||
swSchedule.setChecked(prefs.getBoolean("schedule", false));
|
||||
tvScheduleStart.setText(formatHour(getContext(), prefs.getInt("schedule_start", 0)));
|
||||
tvScheduleEnd.setText(formatHour(getContext(), prefs.getInt("schedule_end", 0)));
|
||||
|
||||
swUnseen.setChecked(prefs.getBoolean("sync_unseen", false));
|
||||
swFlagged.setChecked(prefs.getBoolean("sync_flagged", true));
|
||||
}
|
||||
|
||||
private String formatHour(Context context, int minutes) {
|
||||
|
||||
Reference in New Issue
Block a user