From: Tobias Brunner Date: Wed, 2 Nov 2016 15:33:29 +0000 (+0100) Subject: android: Report an error for invalid integer values X-Git-Tag: 5.5.2dr3~12^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef2ad9db1c9b3f34cf53c4e30fa0f7d1523f787e;p=thirdparty%2Fstrongswan.git android: Report an error for invalid integer values Previously we'd just ignore the invalid values without notifying the user. --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java index dbbfaefb13..30fb101bee 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java @@ -496,14 +496,12 @@ public class VpnProfileDetailActivity extends AppCompatActivity showCertificateAlert(); valid = false; } - Integer mtu = getInteger(mMTU); - if (mtu != null && (mtu < MTU_MIN || mtu > MTU_MAX)) + if (!validateInteger(mMTU, MTU_MIN, MTU_MAX)) { mMTUWrap.setError(String.format(getString(R.string.alert_text_out_of_range), MTU_MIN, MTU_MAX)); valid = false; } - Integer port = getInteger(mPort); - if (port != null && (port < 1 || port > 65535)) + if (!validateInteger(mPort, 1, 65535)) { mPortWrap.setError(String.format(getString(R.string.alert_text_out_of_range), 1, 65535)); valid = false; @@ -633,6 +631,31 @@ public class VpnProfileDetailActivity extends AppCompatActivity } } + /** + * Check that the value in the given text box is a valid integer in the given range + * + * @param view text box (numeric entry assumed) + * @param min minimum value (inclusive) + * @param max maximum value (inclusive) + */ + private boolean validateInteger(EditText view, Integer min, Integer max) + { + String value = view.getText().toString().trim(); + try + { + if (value.isEmpty()) + { + return true; + } + Integer val = Integer.valueOf(value); + return min <= val && val <= max; + } + catch (NumberFormatException e) + { + return false; + } + } + private class SelectUserCertOnClickListener implements OnClickListener, KeyChainAliasCallback { @Override