From 0e0c810ed03582f75647fb8910c637ec136ef4a1 Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Thu, 24 Sep 2020 16:16:07 +0000 Subject: [PATCH] fix profile list not updating tag colour after saving profile changes --- .../ui/profiles/ProfileDetailFragment.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) 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(); -- 2.39.2