diff --git a/FAQ.md b/FAQ.md index 134a96d2f6..7b2fe8484b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -201,6 +201,7 @@ FairEmail follows all the best practices for an email client as decribed in [thi * [(120) Why are new message notifications not removed on opening the app?](#user-content-faq120) * [(121) How are messages grouped into a conversation?](#user-content-faq121) * [(122) Why is the recipient name/email address show with a warning color?](#user-content-faq122) +* [(123) What does 'force sync'?](#user-content-faq123) [I have another question.](#support) @@ -2090,6 +2091,16 @@ Mostly this indicates that the message was received *via* an account with anothe
+ +**(123) What does 'force sync'?** + +FairEmail will wait a fixed time after connectivity changes +and will use a logarithmic back-off time after failing to connect to an account to prevent from being locked out. +*Force sync* will reset all timers and restart the synchronization service. +This should not normally be used. + +
+ ## Support If you have another question, want to request a feature or report a bug, you can use [this forum](https://forum.xda-developers.com/android/apps-games/source-email-t3824168). diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index d7c55ee3c4..6466290149 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -278,12 +278,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB drawerLayout.closeDrawer(drawerContainer); onMenuSetup(); } - }, new Runnable() { - @Override - public void run() { - drawerLayout.closeDrawer(drawerContainer); - onReset(); - } })); madapter.set(menus); @@ -938,10 +932,6 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB Helper.view(this, getIntentOtherApps()); } - private void onReset() { - ServiceSynchronize.reset(this); - } - private void onDebugInfo() { new SimpleTask() { @Override diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 2131ab31b2..73f1b021eb 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -2488,6 +2488,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. menu.findItem(R.id.menu_select_all).setVisible(!outbox && (viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER)); + menu.findItem(R.id.menu_force_sync).setVisible(viewType == AdapterMessage.ViewType.UNIFIED); + super.onPrepareOptionsMenu(menu); } @@ -2562,6 +2564,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. onMenuSelectAll(); return true; + case R.id.menu_force_sync: + onMenuForceSync(); + return true; + default: return super.onOptionsItemSelected(item); } @@ -2662,6 +2668,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }); } + private void onMenuForceSync() { + ServiceSynchronize.reset(getContext()); + ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show(); + } + private void updateState(List folders) { Log.i("Folder state updated count=" + folders.size()); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 9b452f909d..309fcfa4cb 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1554,6 +1554,13 @@ public class ServiceSynchronize extends ServiceBase { } static void reset(Context context) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean enabled = prefs.getBoolean("enabled", true); + int pollInterval = prefs.getInt("poll_interval", 0); + if (!enabled || pollInterval > 0) { + ServiceSynchronize.sync = true; + oneshot = true; + } ContextCompat.startForegroundService(context, new Intent(context, ServiceSynchronize.class) .setAction("reset")); diff --git a/app/src/main/res/menu/menu_messages.xml b/app/src/main/res/menu/menu_messages.xml index a75b4136d3..6fc496b489 100644 --- a/app/src/main/res/menu/menu_messages.xml +++ b/app/src/main/res/menu/menu_messages.xml @@ -94,4 +94,10 @@ android:icon="@drawable/baseline_format_size_24" android:title="@string/title_select_all" app:showAsAction="never" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 32b045dd41..44ec13b6a2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -585,6 +585,7 @@ Compact view Text size Select all + Force sync Previous Next