-In the import seed activity add all the fixed strings to android string resources

-In the import seed window remove the first service connection that validates the seed, it seems that in the second service it does it too
-In the import seed activity adjust the new error strings to the new error show model
-In the import seed activity onlye enable the CREATE WALLET button if all the fields are correctly validate, specially the PIN mismatch error
This commit is contained in:
dtvv 2018-10-24 02:38:48 -05:00
parent 8e55afad55
commit c3c6677faa
2 changed files with 97 additions and 34 deletions

View file

@ -3,7 +3,6 @@ package cy.agorise.crystalwallet.activities;
import android.app.Activity;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
@ -12,7 +11,6 @@ import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.thekhaeng.pushdownanim.PushDownAnim;
@ -23,7 +21,6 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.OnTextChanged;
import cy.agorise.crystalwallet.R;
import cy.agorise.crystalwallet.application.CrystalSecurityMonitor;
import cy.agorise.crystalwallet.dialogs.material.CrystalLoading;
import cy.agorise.crystalwallet.dialogs.material.DialogMaterial;
import cy.agorise.crystalwallet.dialogs.material.NegativeResponse;
@ -77,6 +74,11 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
final Activity activity = this;
/*
* Flag to check correct PIN equality
* */
private boolean pinsOK = false;
@ -127,20 +129,20 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
@Override
public void afterTextChanged(Editable s) {
/*
* Validate that PINs are equals
* */
validatePINS();
/*
* If all is ready to continue enable the button, contrarie case disable it
* */
if(allFieldsAreFill()){
if(allFieldsAreOK()){
enableCreate();
}
else{
disableCreate();
}
/*
* Validate that PINs are equals
* */
validatePINS();
}
});
etPinConfirmation.addTextChangedListener(new TextWatcher() {
@ -157,20 +159,20 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
@Override
public void afterTextChanged(Editable s) {
/*
* Validate that PINs are equals
* */
validatePINS();
/*
* If all is ready to continue enable the button, contrarie case disable it
* */
if(allFieldsAreFill()){
if(allFieldsAreOK()){
enableCreate();
}
else{
disableCreate();
}
/*
* Validate that PINs are equals
* */
validatePINS();
}
});
etSeedWords.addTextChangedListener(new TextWatcher() {
@ -187,10 +189,15 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
@Override
public void afterTextChanged(Editable s) {
/*
* Validate that PINs are equals
* */
validatePINS();
/*
* If all is ready to continue enable the button, contrarie case disable it
* */
if(allFieldsAreFill()){
if(allFieldsAreOK()){
enableCreate();
}
else{
@ -200,7 +207,7 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
/*
* Hide error field
* */
txtErrorAccount.setVisibility(View.INVISIBLE);
clearErrors();
}
});
etAccountName.addTextChangedListener(new TextWatcher() {
@ -217,10 +224,15 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
@Override
public void afterTextChanged(Editable s) {
/*
* Validate that PINs are equals
* */
validatePINS();
/*
* If all is ready to continue enable the button, contrarie case disable it
* */
if(allFieldsAreFill()){
if(allFieldsAreOK()){
enableCreate();
}
else{
@ -234,6 +246,13 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
importSeedValidator.setListener(this);
}
private void clearErrors(){
txtErrorPIN.setVisibility(View.INVISIBLE);
txtErrorAccount.setVisibility(View.INVISIBLE);
}
/*
* Validate that PINs are equals
* */
@ -243,29 +262,34 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
final String confirmoPIN = etPinConfirmation.getText().toString().trim();
if(!pin.isEmpty() && !confirmoPIN.isEmpty()){
if(pin.compareTo(confirmoPIN)!=0){
pinsOK = false;
txtErrorPIN.setVisibility(View.VISIBLE);
}
else{
txtErrorPIN.setVisibility(View.INVISIBLE);
pinsOK = true;
clearErrors();
}
}
else{
txtErrorPIN.setVisibility(View.INVISIBLE);
pinsOK = false;
clearErrors();
}
}
/*
* Method to validate if all the fields are fill
* Method to validate if all the fields are fill and correctly
* */
private boolean allFieldsAreFill(){
private boolean allFieldsAreOK(){
boolean complete = false;
if( etPin.getText().toString().trim().compareTo("")!=0 &&
etPinConfirmation.getText().toString().trim().compareTo("")!=0 &&
etSeedWords.getText().toString().trim().compareTo("")!=0 &&
etAccountName.getText().toString().trim().compareTo("")!=0){
complete = true;
if(pinsOK){
complete = true;
}
}
return complete;
}
@ -324,10 +348,15 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
final CrystalLoading crystalLoading = new CrystalLoading(activity);
crystalLoading.show();
/*
* Final service connection
* */
finalStep(crystalLoading);
/*
* Validate mnemonic with the server
* */
final ValidateImportBitsharesAccountRequest request = new ValidateImportBitsharesAccountRequest(etAccountName.getText().toString().trim(),etSeedWords.getText().toString().trim(),activity);
/*final ValidateImportBitsharesAccountRequest request = new ValidateImportBitsharesAccountRequest(etAccountName.getText().toString().trim(),etSeedWords.getText().toString().trim(),activity);
request.setListener(new CryptoNetInfoRequestListener() {
@Override
public void onCarryOut() {
@ -335,9 +364,6 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
//Correct
/*
* Final service connection
* */
finalStep(crystalLoading);
}
@ -350,7 +376,7 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
}
}
});
CryptoNetInfoRequests.getInstance().addRequest(request);
CryptoNetInfoRequests.getInstance().addRequest(request);*/
}
});
@ -378,26 +404,57 @@ public class ImportSeedActivity extends AppCompatActivity implements UIValidator
crystalLoading.dismiss();
if (!validatorRequest.getStatus().equals(ValidateImportBitsharesAccountRequest.StatusCode.SUCCEEDED)) {
String errorText = "An error ocurred attempting to import the account";
switch (validatorRequest.getStatus()){
case PETITION_FAILED:
case NO_INTERNET:
case NO_SERVER_CONNECTION:
errorText = "There was an error with the connection. Try again later";
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
txtErrorAccount.setText(activity.getResources().getString(R.string.NO_SERVER_CONNECTION));
}
});
break;
case ACCOUNT_DOESNT_EXIST:
errorText = "The account doesn't exists";
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
txtErrorAccount.setText(activity.getResources().getString(R.string.ACCOUNT_DOESNT_EXIST));
}
});
break;
case BAD_SEED:
errorText = "The seed is not valid";
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
txtErrorAccount.setText(activity.getResources().getString(R.string.BAD_SEED));
}
});
break;
case NO_ACCOUNT_DATA:
errorText = "The account doesn't have any data";
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
txtErrorAccount.setText(activity.getResources().getString(R.string.NO_ACCOUNT_DATA));
}
});
break;
default:
txtErrorAccount.setText(activity.getResources().getString(R.string.ERROR_UNRECOGNIZABLE));
}
Toast.makeText(thisActivity.getApplicationContext(),errorText,Toast.LENGTH_LONG).show();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
txtErrorAccount.setVisibility(View.VISIBLE);
}
});
//Toast.makeText(thisActivity.getApplicationContext(),errorText,Toast.LENGTH_LONG).show();
} else {
Intent intent = new Intent(thisActivity, BoardActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

View file

@ -91,6 +91,12 @@
<string name="save">SAVE</string>
<string name="next">NEXT</string>
<string name="ERROR_UNRECOGNIZABLE">An error ocurred attempting to import the account</string>
<string name="NO_ACCOUNT_DATA">The account does not have any data</string>
<string name="BAD_SEED">The seed is not valid</string>
<string name="ACCOUNT_DOESNT_EXIST">The account does not exists</string>
<string name="NO_SERVER_CONNECTION">There was an error with the connection. Try again later</string>
<string name="ASK_PERMISSION">A permission need to be granted before to continue</string>
<string name="please_enter_brainkey">Please enter brainkey</string>