diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 51659515e7..c548317909 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -42,6 +42,7 @@ import android.os.Build; import android.os.Bundle; import android.text.SpannableStringBuilder; import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Pair; import android.view.LayoutInflater; @@ -782,6 +783,8 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac Log.w(ex); } + final int colorWarning = Helper.resolveColor(this, R.attr.colorWarning); + View dview = LayoutInflater.from(this).inflate(R.layout.dialog_import_progress, null); TextView tvLog = dview.findViewById(R.id.tvLog); tvLog.setText(null); @@ -935,6 +938,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac SpannableStringBuilder ssb = new SpannableStringBuilder(); ssb.append(context.getString(R.string.title_importing_wizard)); ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, ssb.length(), 0); + ssb.setSpan(new ForegroundColorSpan(colorWarning), 0, ssb.length(), 0); postProgress(ssb); EntityLog.log(context, "Run wizard account=" + account.name + "id=" + account.id); @@ -1224,27 +1228,27 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac ServiceSynchronize.eval(context, "import"); Log.i("Imported data"); - postProgress(context.getString(R.string.title_setup_imported), null); + SpannableStringBuilder ssb = new SpannableStringBuilder(); + ssb.append(context.getString(R.string.title_setup_imported)); + ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, ssb.length(), 0); + postProgress(ssb, null); return null; } @Override protected void onException(Bundle args, Throwable ex) { - if (ex.getCause() instanceof BadPaddingException) { - onProgress(getString(R.string.title_setup_password_invalid), null); - onProgress("\n" + ex.toString(), null); - } else if (ex instanceof IOException && ex.getCause() instanceof IllegalBlockSizeException) { - onProgress(getString(R.string.title_setup_import_invalid), null); - onProgress("\n" + ex.toString(), null); - } else if (ex instanceof IllegalArgumentException || - ex instanceof IOException || - ex instanceof JSONException || - ex instanceof SecurityException) { - onProgress(ex.toString(), null); - } else { - dialog.dismiss(); - Log.unexpectedError(getSupportFragmentManager(), ex); + SpannableStringBuilder ssb = new SpannableStringBuilder(); + if (ex.getCause() instanceof BadPaddingException) + ssb.append(getString(R.string.title_setup_password_invalid)); + else if (ex instanceof IOException && ex.getCause() instanceof IllegalBlockSizeException) + ssb.append(getString(R.string.title_setup_import_invalid)); + if (ssb.length() > 0) { + ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, ssb.length(), 0); + ssb.setSpan(new ForegroundColorSpan(colorWarning), 0, ssb.length(), 0); + ssb.append("\n\n"); } + ssb.append(ex.toString()); + onProgress(ssb, null); } }.execute(this, args, "setup:import"); } diff --git a/app/src/main/res/layout/dialog_import.xml b/app/src/main/res/layout/dialog_import.xml index aebf3948f2..fc987d3c9c 100644 --- a/app/src/main/res/layout/dialog_import.xml +++ b/app/src/main/res/layout/dialog_import.xml @@ -59,25 +59,15 @@ android:id="@+id/tvImportHint" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginStart="24dp" android:layout_marginTop="6dp" android:text="@string/title_setup_import_do" android:textAppearance="@style/TextAppearance.AppCompat.Small" - android:textColor="?attr/colorWarning" + android:textStyle="italic" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cbAccounts" /> - - + app:layout_constraintTop_toBottomOf="@id/tvImportHint" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 73f7069a4d..8e5fd42218 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -251,10 +251,6 @@ The export file will contain all settings and data, but no messages and no images referenced in signatures Imported accounts will be added without overwriting any existing ones - - Since Android 8.0 Oreo, Gmail accounts can no longer be imported, as each account must be selected to grant access to the account. - You can easily reconfigure Gmail accounts with the quick setup wizard. - Password Password contains control or whitespace characters Repeat password