From c89dd5a979d4ea1e338456127686c393b58caecf Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 1 Sep 2019 19:42:52 +0200 Subject: [PATCH] Change identity password on changing account password for same tld --- .../main/java/eu/faircode/email/FragmentAccount.java | 11 +++++++++++ app/src/main/java/eu/faircode/email/Helper.java | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index df7efa4b67..829fbd0dce 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -930,6 +930,17 @@ public class FragmentAccount extends FragmentBase { try { db.beginTransaction(); + if (account != null && !account.password.equals(password)) { + List identities = db.identity().getIdentities(account.id); + for (EntityIdentity identity : identities) + if (identity.password.equals(account.password) && + Helper.getTld(identity.host).equals(Helper.getTld(account.host))) { + Log.i("Changing identity password host=" + identity.host); + identity.password = password; + db.identity().updateIdentity(identity); + } + } + boolean update = (account != null); if (account == null) account = new EntityAccount(); diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 356a33b8fa..5cd63b1031 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -871,6 +871,14 @@ public class Helper { return true; } + static String getTld(String host) { + String[] h = host.split("\\."); + if (h.length >= 2) + return h[h.length - 2] + "." + h[h.length - 1]; + else + return host; + } + static int getSize(Bundle bundle) { Parcel p = Parcel.obtain(); bundle.writeToParcel(p, 0);