X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;h=ec3ed661966466c77e356b68cd369b5c4354747f;hb=c9ac05b5b8145ddf5b9b341e1074556966c59538;hp=13b6a8bae93ef11a42e9ab262a9b60d0103bc684;hpb=0a73337c99e2074aa7e7228204289896342ec636;p=mobile-ledger.git 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 13b6a8ba..ec3ed661 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 @@ -61,6 +61,7 @@ import org.jetbrains.annotations.NotNull; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; +import java.util.Objects; import java.util.UUID; import static net.ktnx.mobileledger.utils.Logger.debug; @@ -79,12 +80,9 @@ public class ProfileDetailFragment extends Fragment { public static final String ARG_HUE = "hue"; @NonNls - /** - * The content this fragment is presenting. - */ private MobileLedgerProfile mProfile; + private MobileLedgerProfile mProfile; private TextView url; private TextView defaultCommodity; - private View defaultCommodityLayout; private boolean defaultCommoditySet; private TextInputLayout urlLayout; private LinearLayout authParams; @@ -96,11 +94,9 @@ public class ProfileDetailFragment extends Fragment { private TextView profileName; private TextInputLayout profileNameLayout; private TextView preferredAccountsFilter; - private TextInputLayout preferredAccountsFilterLayout; private View huePickerView; private View insecureWarningText; private TextView futureDatesText; - private View futureDatesLayout; private TextView apiVersionText; private boolean syncingModelFromUI = false; /** @@ -130,7 +126,7 @@ public class ProfileDetailFragment extends Fragment { ArrayList newList = new ArrayList<>(oldList); newList.remove(mProfile); Data.profiles.setValue(newList); - if (mProfile.equals(Data.profile.getValue())) { + if (mProfile.equals(Data.getProfile())) { debug("profiles", "[fragment] setting current profile to 0"); Data.setCurrentProfile(newList.get(0)); } @@ -155,26 +151,25 @@ public class ProfileDetailFragment extends Fragment { private boolean onWipeDataMenuClicked() { // this is a development option, so no confirmation mProfile.wipeAllData(); - if (mProfile.equals(Data.profile.getValue())) + if (mProfile.equals(Data.getProfile())) triggerProfileChange(); return true; } private void triggerProfileChange() { int index = Data.getProfileIndex(mProfile); MobileLedgerProfile newProfile = new MobileLedgerProfile(mProfile); - final ArrayList profiles = Data.profiles.getValue(); - if (profiles == null) - throw new AssertionError(); + final ArrayList profiles = + Objects.requireNonNull(Data.profiles.getValue()); profiles.set(index, newProfile); ProfilesRecyclerViewAdapter viewAdapter = ProfilesRecyclerViewAdapter.getInstance(); if (viewAdapter != null) viewAdapter.notifyItemChanged(index); - if (mProfile.equals(Data.profile.getValue())) - Data.profile.setValue(newProfile); + if (mProfile.equals(Data.getProfile())) + Data.setCurrentProfile(newProfile); } - private void hookTextChangeSyncRoutine(TextView view, TextChangeSyncProc syncRoutine) { + private void hookTextChangeSyncRoutine(TextView view, TextChangeSyncRoutine syncRoutine) { view.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @@ -240,14 +235,14 @@ public class ProfileDetailFragment extends Fragment { urlLayout = context.findViewById(R.id.url_layout); - defaultCommodityLayout = context.findViewById(R.id.default_commodity_layout); - defaultCommodityLayout.setOnClickListener(v -> { - CurrencySelectorFragment cpf = CurrencySelectorFragment.newInstance( - CurrencySelectorFragment.DEFAULT_COLUMN_COUNT, false); - cpf.setOnCurrencySelectedListener(model::setDefaultCommodity); - final AppCompatActivity activity = (AppCompatActivity) v.getContext(); - cpf.show(activity.getSupportFragmentManager(), "currency-selector"); - }); + context.findViewById(R.id.default_commodity_layout) + .setOnClickListener(v -> { + CurrencySelectorFragment cpf = CurrencySelectorFragment.newInstance( + CurrencySelectorFragment.DEFAULT_COLUMN_COUNT, false); + cpf.setOnCurrencySelectedListener(model::setDefaultCommodity); + final AppCompatActivity activity = (AppCompatActivity) v.getContext(); + cpf.show(activity.getSupportFragmentManager(), "currency-selector"); + }); Switch showCommodityByDefault = context.findViewById(R.id.profile_show_commodity); showCommodityByDefault.setOnCheckedChangeListener( @@ -265,15 +260,12 @@ public class ProfileDetailFragment extends Fragment { ((buttonView, isChecked) -> model.setPostingPermitted(isChecked))); Switch showCommentsByDefault = context.findViewById(R.id.profile_show_comments); - model.observeShowCommentsByDefault(viewLifecycleOwner, isChecked -> { - showCommentsByDefault.setChecked(isChecked); - }); + model.observeShowCommentsByDefault(viewLifecycleOwner, showCommentsByDefault::setChecked); showCommentsByDefault.setOnCheckedChangeListener( ((buttonView, isChecked) -> model.setShowCommentsByDefault(isChecked))); defaultCommodity = context.findViewById(R.id.default_commodity_text); - futureDatesLayout = context.findViewById(R.id.future_dates_layout); futureDatesText = context.findViewById(R.id.future_dates_text); context.findViewById(R.id.future_dates_layout) .setOnClickListener(v -> { @@ -290,9 +282,8 @@ public class ProfileDetailFragment extends Fragment { v -> futureDatesText.setText(v.getText(getResources()))); apiVersionText = context.findViewById(R.id.api_version_text); - model.observeApiVersion(viewLifecycleOwner, apiVer -> { - apiVersionText.setText(apiVer.getDescription(getResources())); - }); + model.observeApiVersion(viewLifecycleOwner, + apiVer -> apiVersionText.setText(apiVer.getDescription(getResources()))); context.findViewById(R.id.api_version_layout) .setOnClickListener(v -> { MenuInflater mi = new MenuInflater(context); @@ -364,8 +355,6 @@ public class ProfileDetailFragment extends Fragment { preferredAccountsFilter.setText(text); }); hookTextChangeSyncRoutine(preferredAccountsFilter, model::setPreferredAccountsFilter); - preferredAccountsFilterLayout = - context.findViewById(R.id.preferred_accounts_accounts_filter_layout); insecureWarningText = context.findViewById(R.id.insecure_scheme_text); @@ -452,7 +441,7 @@ public class ProfileDetailFragment extends Fragment { // first profile ever? if (newList.size() == 1) - Data.profile.setValue(mProfile); + Data.setCurrentProfile(mProfile); } Activity activity = getActivity(); @@ -588,7 +577,7 @@ public class ProfileDetailFragment extends Fragment { defaultCommodity.setText(name); defaultCommodity.setTypeface(Typeface.DEFAULT); } - interface TextChangeSyncProc { + interface TextChangeSyncRoutine { void onTextChanged(String text); } }