X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;h=72c4ed4cdab47fb56448a70ec3f2dc1a1262895f;hp=b712f29da87ca248bbd6923e7407740e5b9db1a8;hb=0e0c810ed03582f75647fb8910c637ec136ef4a1;hpb=14f60602fa419409b68e9c41c37c6aedda3bc526 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();