diff --git a/app/src/main/java/eu/faircode/email/DaoIdentity.java b/app/src/main/java/eu/faircode/email/DaoIdentity.java index 78fd044f..556ce944 100644 --- a/app/src/main/java/eu/faircode/email/DaoIdentity.java +++ b/app/src/main/java/eu/faircode/email/DaoIdentity.java @@ -48,8 +48,8 @@ public interface DaoIdentity { @Query("SELECT * FROM identity WHERE id = :id") LiveData liveIdentity(long id); - @Query("SELECT * FROM identity WHERE account = :account AND `primary`") - EntityIdentity getPrimaryIdentity(long account); + @Query("SELECT COUNT(*) FROM identity WHERE synchronize") + int getSynchronizingIdentityCount(); @Insert long insertIdentity(EntityIdentity identity); diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 8a6e4e42..7f2d9845 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -751,6 +751,19 @@ public class FragmentAccount extends FragmentEx { cbSynchronize.setChecked(account == null ? true : account.synchronize); cbPrimary.setChecked(account == null ? true : account.primary); + + if (account == null) + new SimpleTask() { + @Override + protected Integer onLoad(Context context, Bundle args) { + return DB.getInstance(context).account().getSynchronizingAccountCount(); + } + + @Override + protected void onLoaded(Bundle args, Integer count) { + cbPrimary.setChecked(count == 0); + } + }.load(FragmentAccount.this, new Bundle()); } else { int provider = savedInstanceState.getInt("provider"); spProvider.setTag(provider); diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java index bf94923a..cbea606c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java +++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java @@ -436,6 +436,19 @@ public class FragmentIdentity extends FragmentEx { cbStoreSent.setChecked(identity == null ? false : identity.store_sent); etName.requestFocus(); + + if (identity == null) + new SimpleTask() { + @Override + protected Integer onLoad(Context context, Bundle args) { + return DB.getInstance(context).identity().getSynchronizingIdentityCount(); + } + + @Override + protected void onLoaded(Bundle args, Integer count) { + cbPrimary.setChecked(count == 0); + } + }.load(FragmentIdentity.this, new Bundle()); } else { tilPassword.getEditText().setText(savedInstanceState.getString("password")); grpAdvanced.setVisibility(savedInstanceState.getInt("advanced"));