From: Damyan Ivanov Date: Thu, 24 Sep 2020 16:16:07 +0000 (+0000) Subject: fix profile list not updating tag colour after saving profile changes X-Git-Tag: v0.16.0~50 X-Git-Url: https://git.ktnx.net/?a=commitdiff_plain;h=0e0c810ed03582f75647fb8910c637ec136ef4a1;p=mobile-ledger.git fix profile list not updating tag colour after saving profile changes --- diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java index b712f29d..72c4ed4c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/profiles/ProfileDetailFragment.java @@ -417,22 +417,35 @@ public class ProfileDetailFragment extends Fragment { return; ProfileDetailModel model = getModel(); + final ArrayList profiles = + Objects.requireNonNull(Data.profiles.getValue()); if (mProfile != null) { + int pos = Data.profiles.getValue() + .indexOf(mProfile); + mProfile = new MobileLedgerProfile(mProfile); model.updateProfile(mProfile); -// debug("profiles", String.format("Selected item is %d", mProfile.getThemeHue())); mProfile.storeInDB(); debug("profiles", "profile stored in DB"); - triggerProfileChange(); + profiles.set(pos, mProfile); +// debug("profiles", String.format("Selected item is %d", mProfile.getThemeHue())); + + final MobileLedgerProfile currentProfile = Data.getProfile(); + if (mProfile.getUuid() + .equals(currentProfile.getUuid())) + { + Data.setCurrentProfile(mProfile); + } + + ProfilesRecyclerViewAdapter viewAdapter = ProfilesRecyclerViewAdapter.getInstance(); + if (viewAdapter != null) + viewAdapter.notifyItemChanged(pos); } else { mProfile = new MobileLedgerProfile(String.valueOf(UUID.randomUUID())); model.updateProfile(mProfile); mProfile.storeInDB(); - final ArrayList profiles = Data.profiles.getValue(); - if (profiles == null) - throw new AssertionError(); - ArrayList newList = new ArrayList<>(profiles); + final ArrayList newList = new ArrayList<>(profiles); newList.add(mProfile); Data.profiles.setValue(newList); MobileLedgerProfile.storeProfilesOrder();