diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d10e41c674..3c33dba1a7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,15 +64,19 @@
android:launchMode="singleInstance"
android:theme="@style/Theme.AppCompat.Translucent">
+
+
-
-
+
+
+
+
+
@@ -89,6 +94,7 @@
+
@@ -127,22 +133,23 @@
-
+
-
+
-
+
+
@@ -213,6 +220,7 @@
+
@@ -224,6 +232,7 @@
android:icon="@drawable/baseline_sync_disabled_24"
android:label="@string/app_name"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
+
@@ -234,6 +243,7 @@
android:icon="@drawable/baseline_mail_outline_24"
android:label="@string/tile_unseen"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
+
@@ -254,26 +264,26 @@
android:name=".Widget"
android:label="@string/tile_unseen">
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/app/src/main/java/eu/faircode/email/ActivityMain.java b/app/src/main/java/eu/faircode/email/ActivityMain.java
index fc1b82d58c..d8a149fa45 100644
--- a/app/src/main/java/eu/faircode/email/ActivityMain.java
+++ b/app/src/main/java/eu/faircode/email/ActivityMain.java
@@ -34,6 +34,8 @@ import androidx.preference.PreferenceManager;
import java.util.List;
public class ActivityMain extends ActivityBase implements FragmentManager.OnBackStackChangedListener, SharedPreferences.OnSharedPreferenceChangeListener {
+ private static final String ACTION_REFRESH = BuildConfig.APPLICATION_ID + ".REFRESH";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
getSupportFragmentManager().addOnBackStackChangedListener(this);
@@ -83,7 +85,10 @@ public class ActivityMain extends ActivityBase implements FragmentManager.OnBack
protected void onExecuted(Bundle args, Boolean hasAccounts) {
if (hasAccounts) {
startActivity(new Intent(ActivityMain.this, ActivityView.class));
- ServiceSynchronize.watchdog(ActivityMain.this);
+ if (ACTION_REFRESH.equals(getIntent().getAction()))
+ ServiceSynchronize.process(ActivityMain.this, true);
+ else
+ ServiceSynchronize.watchdog(ActivityMain.this);
ServiceSend.watchdog(ActivityMain.this);
} else
startActivity(new Intent(ActivityMain.this, ActivitySetup.class));
diff --git a/app/src/main/res/drawable-hdpi/ic_shortcut_refresh.png b/app/src/main/res/drawable-hdpi/ic_shortcut_refresh.png
new file mode 100644
index 0000000000..380de85cd6
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_shortcut_refresh.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_shortcut_refresh.png b/app/src/main/res/drawable-mdpi/ic_shortcut_refresh.png
new file mode 100644
index 0000000000..c6c8200ff7
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_shortcut_refresh.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_shortcut_refresh.png b/app/src/main/res/drawable-xhdpi/ic_shortcut_refresh.png
new file mode 100644
index 0000000000..c829c93251
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_shortcut_refresh.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_shortcut_refresh.png b/app/src/main/res/drawable-xxhdpi/ic_shortcut_refresh.png
new file mode 100644
index 0000000000..d8218c2581
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_shortcut_refresh.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_shortcut_refresh.png b/app/src/main/res/drawable-xxxhdpi/ic_shortcut_refresh.png
new file mode 100644
index 0000000000..26be1d685e
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_shortcut_refresh.png differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b7848398d0..751b10959e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,6 +21,7 @@
Synchronize
New messages
+ Refresh
Compose
Settings
diff --git a/app/src/main/res/xml/shortcuts.xml b/app/src/main/res/xml/shortcuts.xml
index ce0a9c73c5..1b3a0ceac7 100644
--- a/app/src/main/res/xml/shortcuts.xml
+++ b/app/src/main/res/xml/shortcuts.xml
@@ -1,4 +1,16 @@
+
+
+
+
+