mirror of https://github.com/M66B/FairEmail.git
Small address JSON fixes
This commit is contained in:
parent
cac5bae40b
commit
cd6986ac7e
|
@ -1635,19 +1635,24 @@ public abstract class DB extends RoomDatabase {
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
public static Address[] decodeAddresses(String json) {
|
public static Address[] decodeAddresses(String json) {
|
||||||
if (json == null)
|
try {
|
||||||
|
if (TextUtils.isEmpty(json))
|
||||||
|
return null;
|
||||||
|
else if (json.startsWith("[[")) {
|
||||||
|
// [[{"address":"...","personal":"..."}],[{... ...}]]
|
||||||
|
// There is a slim chance somebody uses the split pattern in an email address
|
||||||
|
String[] parts = json.substring(3, json.length() - 3).split(JSPLIT);
|
||||||
|
Address[] addresses = new Address[parts.length];
|
||||||
|
for (int i = 0; i < parts.length; i++)
|
||||||
|
addresses[i] = InternetAddressJson.from(parts[i]);
|
||||||
|
return addresses;
|
||||||
|
} else {
|
||||||
|
// [{"address":"...","personal":"..."}]
|
||||||
|
return new Address[]{InternetAddressJson.from(json.substring(2, json.length() - 2))};
|
||||||
|
}
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
Log.e(ex);
|
||||||
return null;
|
return null;
|
||||||
else if (json.startsWith("[[")) {
|
|
||||||
// [[{"address":"...","personal":"..."}],[{... ...}]]
|
|
||||||
// There is a slim chance somebody uses the split pattern in an email address
|
|
||||||
String[] parts = json.substring(3, json.length() - 3).split(JSPLIT);
|
|
||||||
Address[] addresses = new Address[parts.length];
|
|
||||||
for (int i = 0; i < parts.length; i++)
|
|
||||||
addresses[i] = InternetAddressJson.from(parts[i]);
|
|
||||||
return addresses;
|
|
||||||
} else {
|
|
||||||
// [{"address":"...","personal":"..."}]
|
|
||||||
return new Address[]{InternetAddressJson.from(json.substring(2, json.length() - 2))};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class InternetAddressJson extends InternetAddress {
|
||||||
if (this.json != null) {
|
if (this.json != null) {
|
||||||
try {
|
try {
|
||||||
JSONObject jaddress = new JSONObject("{" + this.json + "}");
|
JSONObject jaddress = new JSONObject("{" + this.json + "}");
|
||||||
String address = jaddress.getString("address");
|
String address = jaddress.optString("address");
|
||||||
String personal = jaddress.optString("personal");
|
String personal = jaddress.optString("personal");
|
||||||
if (!TextUtils.isEmpty(address))
|
if (!TextUtils.isEmpty(address))
|
||||||
super.setAddress(address);
|
super.setAddress(address);
|
||||||
|
|
Loading…
Reference in New Issue