diff --git a/app/src/main/java/eu/faircode/email/DaoAccount.java b/app/src/main/java/eu/faircode/email/DaoAccount.java index 5add514759..616bd39521 100644 --- a/app/src/main/java/eu/faircode/email/DaoAccount.java +++ b/app/src/main/java/eu/faircode/email/DaoAccount.java @@ -44,6 +44,9 @@ public interface DaoAccount { @Query("SELECT * FROM account WHERE `primary`") EntityAccount getPrimaryAccount(); + @Query("SELECT COUNT(*) FROM account WHERE synchronize") + int getSynchronizingAccountCount(); + @Query("SELECT * FROM account WHERE `primary`") LiveData livePrimaryAccount(); diff --git a/app/src/main/java/eu/faircode/email/ReceiverAutostart.java b/app/src/main/java/eu/faircode/email/ReceiverAutostart.java index c20e942727..eea1f42331 100644 --- a/app/src/main/java/eu/faircode/email/ReceiverAutostart.java +++ b/app/src/main/java/eu/faircode/email/ReceiverAutostart.java @@ -22,12 +22,21 @@ package eu.faircode.email; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.util.Log; public class ReceiverAutostart extends BroadcastReceiver { @Override - public void onReceive(Context context, Intent intent) { + public void onReceive(final Context context, Intent intent) { if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()) || Intent.ACTION_MY_PACKAGE_REPLACED.equals(intent.getAction())) - ServiceSynchronize.start(context); + new Thread(new Runnable() { + @Override + public void run() { + int synchronizing = DB.getInstance(context).account().getSynchronizingAccountCount(); + Log.i(Helper.TAG, "Synchronizing accounts=" + synchronizing); + if (synchronizing > 0) + ServiceSynchronize.start(context); + } + }).start(); } }