Don’t let an offline account with password login

Users may be confusing about account, when they input Mojang account but enable offline, it may leak the email. This added a sanity check to prevent it. Later may add email detection and prevent further.
This commit is contained in:
Duy Tran Khanh 2021-05-30 12:33:28 +07:00 committed by GitHub
parent c4a743be4d
commit b0ecb36120
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -646,7 +646,6 @@ public class PojavLoginActivity extends BaseActivity
LinearLayout accountListLayout = accountDialog.findViewById(R.id.accountListLayout); LinearLayout accountListLayout = accountDialog.findViewById(R.id.accountListLayout);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
for (int accountIndex = 0; accountIndex < accountArr.length; accountIndex++) { for (int accountIndex = 0; accountIndex < accountArr.length; accountIndex++) {
String s = accountArr[accountIndex]; String s = accountArr[accountIndex];
View child = inflater.inflate(R.layout.simple_account_list_item, null); View child = inflater.inflate(R.layout.simple_account_list_item, null);
@ -669,6 +668,7 @@ public class PojavLoginActivity extends BaseActivity
accountName.setOnClickListener(new View.OnClickListener() { accountName.setOnClickListener(new View.OnClickListener() {
final String selectedAccName = accountName.getText().toString(); final String selectedAccName = accountName.getText().toString();
final int accountIndex_final = accountIndex;
@Override @Override
public void onClick(View v) { public void onClick(View v) {
try { try {
@ -702,9 +702,6 @@ public class PojavLoginActivity extends BaseActivity
} }
}); });
// Tiny trick to avoid 'const' field
final int accountIndex_final = accountIndex;
removeButton.setOnClickListener(new View.OnClickListener() { removeButton.setOnClickListener(new View.OnClickListener() {
final String selectedAccName = accountName.getText().toString(); final String selectedAccName = accountName.getText().toString();
@Override @Override
@ -742,13 +739,15 @@ public class PojavLoginActivity extends BaseActivity
new File(Tools.DIR_ACCOUNT_OLD).mkdir(); new File(Tools.DIR_ACCOUNT_OLD).mkdir();
String text = edit2.getText().toString(); String text = edit2.getText().toString();
if(text.isEmpty()){ if (text.isEmpty()) {
edit2.setError(getResources().getString(R.string.global_error_field_empty)); edit2.setError(getString(R.string.global_error_field_empty));
} else if(text.length() <= 2){ } else if (text.length() <= 2) {
edit2.setError(getResources().getString(R.string.login_error_short_username)); edit2.setError(getString(R.string.login_error_short_username));
} else if(new File(Tools.DIR_ACCOUNT_NEW + "/" + text + ".json").exists()){ } else if (new File(Tools.DIR_ACCOUNT_NEW + "/" + text + ".json").exists()) {
edit2.setError(getResources().getString(R.string.login_error_exist_username)); edit2.setError(getString(R.string.login_error_exist_username));
} else{ } else if (edit3.getText().toString().isEmpty()) {
edit2.setError(getString(R.string.login_error_offline_password));
} else {
MinecraftAccount builder = new MinecraftAccount(); MinecraftAccount builder = new MinecraftAccount();
builder.isMicrosoft = false; builder.isMicrosoft = false;
builder.username = text; builder.username = text;