From ce2d81eaae1759ffb4a7dc2b3f0d05c1aec22e5d Mon Sep 17 00:00:00 2001 From: Maksim Belov Date: Wed, 16 Oct 2024 23:10:06 +0300 Subject: [PATCH] Feat[launcher]: user-friendlier checks for local mode username --- .../pojavlaunch/fragments/LocalLoginFragment.java | 15 ++++++++++----- app_pojavlauncher/src/main/res/values/strings.xml | 2 ++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java index e7c71f326..86a00e375 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/LocalLoginFragment.java @@ -1,5 +1,6 @@ package net.kdt.pojavlaunch.fragments; +import android.content.Context; import android.os.Bundle; import android.view.View; import android.widget.EditText; @@ -20,17 +21,23 @@ import java.util.regex.Pattern; public class LocalLoginFragment extends Fragment { public static final String TAG = "LOCAL_LOGIN_FRAGMENT"; + private final Pattern mUsernameValidationPattern; private EditText mUsernameEditText; public LocalLoginFragment(){ super(R.layout.fragment_local_login); + mUsernameValidationPattern = Pattern.compile("^[a-zA-Z0-9_]*$"); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { mUsernameEditText = view.findViewById(R.id.login_edit_email); view.findViewById(R.id.login_button).setOnClickListener(v -> { - if(!checkEditText()) return; + if(!checkEditText()) { + Context context = v.getContext(); + Tools.dialog(context, context.getString(R.string.local_login_bad_username_title), context.getString(R.string.local_login_bad_username_text)); + return; + } ExtraCore.setValue(ExtraConstants.MOJANG_LOGIN_TODO, new String[]{ mUsernameEditText.getText().toString(), "" }); @@ -45,13 +52,11 @@ public class LocalLoginFragment extends Fragment { String text = mUsernameEditText.getText().toString(); - Pattern pattern = Pattern.compile("[^a-zA-Z0-9_]"); - Matcher matcher = pattern.matcher(text); - + Matcher matcher = mUsernameValidationPattern.matcher(text); return !(text.isEmpty() || text.length() < 3 || text.length() > 16 - || matcher.find() + || !matcher.find() || new File(Tools.DIR_ACCOUNT_NEW + "/" + text + ".json").exists() ); } diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 3fc11ce7a..9e977c1aa 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -416,4 +416,6 @@ Allows you to modify the keyboard keys bound to each controller button Discord https://discord.gg/pojavlauncher-724163890803638273 + Unsuitable username + The username must be between 3–16 characters long, and must only contain latin letters, arabic numerals and underscores.