summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2019-06-26 06:51:42 +0200
committerGitHub <noreply@github.com>2019-06-26 06:51:42 +0200
commitabcd6f772e86d7c5e351e1c9e9e99e32cf462dda (patch)
treec5ba971ea57ce0329468928a67eb2a231b167aa8
parent1580e93b940436b76e2db46fa5501c8f02e38770 (diff)
parent7f1f725bfe787b822eb324c11459b0f8d2a2cd6e (diff)
downloadAntennaPod-abcd6f772e86d7c5e351e1c9e9e99e32cf462dda.zip
Merge pull request #3239 from archibishop/username-validation-gpodder-login
Validate username for characters not accepted.
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java13
-rw-r--r--core/src/main/res/values/strings.xml1
2 files changed, 14 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
index 8fcdb4371..df21f713d 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/gpoddernet/GpodnetAuthenticationActivity.java
@@ -25,6 +25,8 @@ import android.widget.ViewFlipper;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import de.danoeh.antennapod.BuildConfig;
import de.danoeh.antennapod.R;
@@ -123,6 +125,11 @@ public class GpodnetAuthenticationActivity extends AppCompatActivity {
final String usernameStr = username.getText().toString();
final String passwordStr = password.getText().toString();
+ if (usernameHasUnwantedChars(usernameStr)) {
+ txtvError.setText(R.string.gpodnetsync_username_characters_error);
+ txtvError.setVisibility(View.VISIBLE);
+ return;
+ }
if (BuildConfig.DEBUG) Log.d(TAG, "Checking login credentials");
AsyncTask<GpodnetService, Void, Void> authTask = new AsyncTask<GpodnetService, Void, Void>() {
@@ -395,4 +402,10 @@ public class GpodnetAuthenticationActivity extends AppCompatActivity {
finish();
}
}
+
+ private boolean usernameHasUnwantedChars(String username) {
+ Pattern special = Pattern.compile("[!@#$%&*()+=|<>?{}\\[\\]~]");
+ Matcher containsUnwantedChars = special.matcher(username);
+ return containsUnwantedChars.find();
+ }
}
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 4378abe50..2fbb65744 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -642,6 +642,7 @@
<string name="gpodnetsync_error_descr">An error occurred during syncing:\u0020</string>
<string name="gpodnetsync_pref_report_successful">Successful</string>
<string name="gpodnetsync_pref_report_failed">Failed</string>
+ <string name="gpodnetsync_username_characters_error">Usernames may only contain letters, digits, hyphens and underscores.</string>
<!-- Directory chooser -->
<string name="selected_folder_label">Selected folder:</string>