X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fprofiles%2FProfileDetailFragment.java;h=f4cdae1d097b63f342ed4e313d0a5669e440dd6c;hb=d857b003248bf4b3e8af018f83253700470ca41f;hp=2e964d1c0977ab864f486b7bf836f97b492e4c45;hpb=c9ccae28951a225ee55a107741250c1a1249aeb3;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 2e964d1c..f4cdae1d 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 @@ -112,8 +112,7 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue mProfile.removeFromDB(); ArrayList oldList = Data.profiles.getValue(); if (oldList == null) throw new AssertionError(); - ArrayList newList = - (ArrayList) oldList.clone(); + ArrayList newList = new ArrayList<>(oldList); newList.remove(mProfile); Data.profiles.setValue(newList); if (mProfile.equals(Data.profile.getValue())) { @@ -201,8 +200,7 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue mProfile.storeInDB(); final ArrayList profiles = Data.profiles.getValue(); if (profiles == null) throw new AssertionError(); - ArrayList newList = - (ArrayList) profiles.clone(); + ArrayList newList = new ArrayList<>(profiles); newList.add(mProfile); Data.profiles.setValue(newList); MobileLedgerProfile.storeProfilesOrder(); @@ -246,22 +244,6 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue rootView.findViewById(R.id.preferred_accounts_accounts_filter_layout); insecureWarningText = rootView.findViewById(R.id.insecure_scheme_text); - url.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - @Override - public void afterTextChanged(Editable s) { - checkValidity(); - checkInsecureSchemeWithAuth(); - } - }); - useAuthentication.setOnCheckedChangeListener((buttonView, isChecked) -> { debug("profiles", isChecked ? "auth enabled " : "auth disabled"); authParams.setVisibility(isChecked ? View.VISIBLE : View.GONE); @@ -302,6 +284,23 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue profileThemeId = -1; } + checkInsecureSchemeWithAuth(); + + url.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + @Override + public void afterTextChanged(Editable s) { + checkInsecureSchemeWithAuth(); + } + }); + final int hue = (profileThemeId == -1) ? Colors.DEFAULT_HUE_DEG : profileThemeId; final int profileColor = Colors.getPrimaryColorForHue(hue); @@ -316,6 +315,31 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue }); return rootView; } + private boolean checkUrlValidity() { + boolean valid = true; + + String val = String.valueOf(url.getText()).trim(); + if (val.isEmpty()) { + valid = false; + urlLayout.setError(getResources().getText(R.string.err_profile_url_empty)); + } + try { + URL url = new URL(val); + String host = url.getHost(); + if (host == null || host.isEmpty()) throw new MalformedURLException("Missing host"); + String protocol = url.getProtocol().toUpperCase(); + if (!protocol.equals("HTTP") && !protocol.equals("HTTPS")) { + valid = false; + urlLayout.setError(getResources().getText(R.string.err_invalid_url)); + } + } + catch (MalformedURLException e) { + valid = false; + urlLayout.setError(getResources().getText(R.string.err_invalid_url)); + } + + return valid; + } private void checkInsecureSchemeWithAuth() { boolean showWarning = false; @@ -353,25 +377,8 @@ public class ProfileDetailFragment extends Fragment implements HueRingDialog.Hue profileNameLayout.setError(getResources().getText(R.string.err_profile_name_empty)); } - val = String.valueOf(url.getText()).trim(); - if (val.isEmpty()) { - valid = false; - urlLayout.setError(getResources().getText(R.string.err_profile_url_empty)); - } - try { - URL url = new URL(val); - String host = url.getHost(); - if (host == null || host.isEmpty()) throw new MalformedURLException("Missing host"); - String protocol = url.getProtocol().toUpperCase(); - if (!protocol.equals("HTTP") && !protocol.equals("HTTPS")) { - valid = false; - urlLayout.setError(getResources().getText(R.string.err_invalid_url)); - } - } - catch (MalformedURLException e) { - valid = false; - urlLayout.setError(getResources().getText(R.string.err_invalid_url)); - } + if (!checkUrlValidity()) valid = false; + if (useAuthentication.isChecked()) { val = String.valueOf(userName.getText()); if (val.trim().isEmpty()) {