Add error messages to allow better import debugging

This commit is contained in:
Wolf-Martell Montwé 2023-08-29 19:10:37 +02:00
parent 1d350ec6e1
commit cafc786367
No known key found for this signature in database
GPG key ID: 6D45B21512ACBF72
2 changed files with 17 additions and 6 deletions

View file

@ -243,6 +243,13 @@ public class Settings {
static class InvalidSettingValueException extends Exception {
private static final long serialVersionUID = 1L;
public InvalidSettingValueException() {
}
public InvalidSettingValueException(String message) {
super(message);
}
}
/**

View file

@ -253,8 +253,12 @@ public class SettingsImporter {
erroneousAccounts.add(importResult.original);
}
} catch (InvalidSettingValueException e) {
Timber.e(e, "Encountered invalid setting while importing account \"%s\"",
account.name);
String reason = e.getMessage();
if (TextUtils.isEmpty(reason)) {
reason = "Unknown";
}
Timber.e(e, "Encountered invalid setting while importing account \"%s\", reason: \"%s\"",
account.name, reason);
erroneousAccounts.add(new AccountDescription(account.name, account.uuid));
} catch (Exception e) {
@ -363,7 +367,7 @@ public class SettingsImporter {
if (account.incoming == null) {
// We don't import accounts without incoming server settings
throw new InvalidSettingValueException();
throw new InvalidSettingValueException("Missing incoming server settings");
}
// Write incoming server settings
@ -380,7 +384,7 @@ public class SettingsImporter {
boolean authorizationNeeded = incoming.authenticationType == AuthType.XOAUTH2;
if (account.outgoing == null) {
throw new InvalidSettingValueException();
throw new InvalidSettingValueException("Missing outgoing server settings");
}
String outgoingServerName = null;
@ -448,7 +452,7 @@ public class SettingsImporter {
importIdentities(editor, contentVersion, uuid, account, overwrite, existingAccount, prefs);
} else if (!mergeImportedAccount) {
// Require accounts to at least have one identity
throw new InvalidSettingValueException();
throw new InvalidSettingValueException("Missing identities, there should be at least one.");
}
// Write folder settings
@ -541,7 +545,7 @@ public class SettingsImporter {
// Validate email address
if (!IdentitySettingsDescriptions.isEmailAddressValid(identity.email)) {
throw new InvalidSettingValueException();
throw new InvalidSettingValueException("Invalid email address: " + identity.email);
}
// Write email address