2018-01-08 00:16:03 +00:00
|
|
|
package cy.agorise.crystalwallet.activities;
|
|
|
|
|
|
|
|
import android.arch.lifecycle.ViewModelProviders;
|
2018-01-13 01:01:38 +00:00
|
|
|
import android.content.Intent;
|
2018-01-08 00:16:03 +00:00
|
|
|
import android.os.Bundle;
|
2018-01-25 00:35:08 +00:00
|
|
|
import android.support.design.widget.TextInputEditText;
|
|
|
|
import android.support.design.widget.TextInputLayout;
|
2018-01-12 02:04:35 +00:00
|
|
|
import android.support.v7.app.AlertDialog;
|
2018-01-08 00:16:03 +00:00
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
import android.text.Editable;
|
2018-01-12 02:04:35 +00:00
|
|
|
import android.view.ViewGroup;
|
2018-01-08 00:16:03 +00:00
|
|
|
import android.widget.Button;
|
|
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
|
import butterknife.ButterKnife;
|
|
|
|
import butterknife.OnClick;
|
|
|
|
import butterknife.OnTextChanged;
|
|
|
|
import cy.agorise.crystalwallet.R;
|
2018-03-28 01:44:41 +00:00
|
|
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequestListener;
|
|
|
|
import cy.agorise.crystalwallet.requestmanagers.CryptoNetInfoRequests;
|
|
|
|
import cy.agorise.crystalwallet.requestmanagers.ValidateCreateBitsharesAccountRequest;
|
2018-01-13 01:01:38 +00:00
|
|
|
import cy.agorise.crystalwallet.models.GrapheneAccount;
|
2018-01-08 00:16:03 +00:00
|
|
|
import cy.agorise.crystalwallet.viewmodels.AccountSeedViewModel;
|
|
|
|
import cy.agorise.crystalwallet.viewmodels.validators.CreateSeedValidator;
|
|
|
|
import cy.agorise.crystalwallet.viewmodels.validators.UIValidatorListener;
|
|
|
|
import cy.agorise.crystalwallet.viewmodels.validators.validationfields.ValidationField;
|
|
|
|
|
|
|
|
public class CreateSeedActivity extends AppCompatActivity implements UIValidatorListener {
|
|
|
|
|
|
|
|
AccountSeedViewModel accountSeedViewModel;
|
|
|
|
CreateSeedValidator createSeedValidator;
|
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@BindView(R.id.tilPin)
|
|
|
|
TextInputLayout tilPin;
|
2018-01-08 00:16:03 +00:00
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@BindView(R.id.tietPin)
|
|
|
|
TextInputEditText tietPin;
|
|
|
|
|
|
|
|
@BindView(R.id.tilPinConfirmation)
|
|
|
|
TextInputLayout tilPinConfirmation;
|
|
|
|
|
|
|
|
@BindView(R.id.tietPinConfirmation)
|
|
|
|
TextInputEditText tietPinConfirmation;
|
2018-01-08 00:16:03 +00:00
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
//@BindView(R.id.tvSeedWords)
|
|
|
|
//TextView tvSeedWords;
|
2018-01-08 00:16:03 +00:00
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@BindView(R.id.tilAccountName)
|
|
|
|
TextInputLayout tilAccountName;
|
|
|
|
|
|
|
|
@BindView (R.id.tietAccountName)
|
|
|
|
TextInputEditText tietAccountName;
|
2018-01-08 00:16:03 +00:00
|
|
|
|
|
|
|
@BindView(R.id.btnCreate)
|
|
|
|
Button btnCreate;
|
|
|
|
|
|
|
|
@BindView(R.id.btnCancel)
|
|
|
|
Button btnCancel;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.create_seed);
|
|
|
|
ButterKnife.bind(this);
|
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
tilPin.setErrorEnabled(true);
|
|
|
|
tilPinConfirmation.setErrorEnabled(true);
|
|
|
|
tilAccountName.setErrorEnabled(true);
|
|
|
|
|
2018-01-08 00:16:03 +00:00
|
|
|
btnCreate.setEnabled(false);
|
|
|
|
accountSeedViewModel = ViewModelProviders.of(this).get(AccountSeedViewModel.class);
|
2018-01-25 00:35:08 +00:00
|
|
|
createSeedValidator = new CreateSeedValidator(this.getApplicationContext(),tietPin,tietPinConfirmation,tietAccountName);
|
2018-01-08 00:16:03 +00:00
|
|
|
createSeedValidator.setListener(this);
|
|
|
|
}
|
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@OnTextChanged(value = R.id.tietPin,
|
2018-01-08 00:16:03 +00:00
|
|
|
callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
|
|
|
|
void afterPinChanged(Editable editable) {
|
|
|
|
this.createSeedValidator.validate();
|
|
|
|
}
|
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@OnTextChanged(value = R.id.tietPinConfirmation,
|
2018-01-08 00:16:03 +00:00
|
|
|
callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
|
|
|
|
void afterPinConfirmationChanged(Editable editable) {
|
|
|
|
this.createSeedValidator.validate();
|
|
|
|
}
|
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
/*@OnTextChanged(value = R.id.etSeedWords,
|
2018-01-08 00:16:03 +00:00
|
|
|
callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
|
|
|
|
void afterSeedWordsChanged(Editable editable) {
|
|
|
|
this.createSeedValidator.validate();
|
|
|
|
}
|
2018-01-09 01:30:02 +00:00
|
|
|
*/
|
2018-01-08 00:16:03 +00:00
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
@OnTextChanged(value = R.id.tietAccountName,
|
2018-01-08 00:16:03 +00:00
|
|
|
callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
|
|
|
|
void afterAccountNameChanged(Editable editable) {
|
|
|
|
this.createSeedValidator.validate();
|
|
|
|
}
|
|
|
|
|
|
|
|
@OnClick(R.id.btnCancel)
|
|
|
|
public void cancel(){
|
|
|
|
this.finish();
|
|
|
|
}
|
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
@OnClick(R.id.btnCreate)
|
2018-01-08 00:16:03 +00:00
|
|
|
public void createSeed(){
|
|
|
|
if (this.createSeedValidator.isValid()) {
|
2018-01-09 01:30:02 +00:00
|
|
|
// Make request to create a bitshare account
|
|
|
|
final ValidateCreateBitsharesAccountRequest request =
|
2018-01-25 00:35:08 +00:00
|
|
|
new ValidateCreateBitsharesAccountRequest(tietAccountName.getText().toString(), getApplicationContext());
|
2018-01-09 01:30:02 +00:00
|
|
|
|
2018-01-12 02:04:35 +00:00
|
|
|
|
|
|
|
//Makes dialog to tell the user that the account is been created
|
|
|
|
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(CreateSeedActivity.this,R.style.AppTheme);
|
|
|
|
alertBuilder.setView(R.layout.progress_creating_account);
|
|
|
|
//alertBuilder.setTitle("Processing");
|
|
|
|
//alertBuilder.setMessage("Creating Bitshares Account");
|
|
|
|
final AlertDialog processDialog = alertBuilder.create();
|
|
|
|
CreateSeedActivity.this.runOnUiThread(new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
2018-01-13 01:01:38 +00:00
|
|
|
processDialog.setCancelable(false);
|
2018-01-12 02:04:35 +00:00
|
|
|
processDialog.show();
|
|
|
|
processDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
request.setListener(new CryptoNetInfoRequestListener() {
|
|
|
|
@Override
|
|
|
|
public void onCarryOut() {
|
2018-01-12 02:04:35 +00:00
|
|
|
processDialog.dismiss();
|
2018-04-22 23:11:23 +00:00
|
|
|
if (request.getStatus().equals(ValidateCreateBitsharesAccountRequest.StatusCode.SUCCEEDED)) {
|
2018-01-13 01:01:38 +00:00
|
|
|
GrapheneAccount accountSeed = request.getAccount();
|
|
|
|
Intent intent = new Intent(getApplicationContext(), BackupSeedActivity.class);
|
2018-04-22 23:11:23 +00:00
|
|
|
intent.putExtra("SEED_ID", accountSeed.getId());
|
2018-01-13 01:01:38 +00:00
|
|
|
startActivity(intent);
|
2018-01-09 01:30:02 +00:00
|
|
|
} else {
|
|
|
|
createSeedValidator.validate();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2018-01-12 02:04:35 +00:00
|
|
|
|
|
|
|
Thread thread = new Thread() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
CryptoNetInfoRequests.getInstance().addRequest(request);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
thread.start();
|
|
|
|
|
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
|
|
|
|
//this.finish();
|
2018-01-08 00:16:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onValidationSucceeded(final ValidationField field) {
|
|
|
|
final CreateSeedActivity activity = this;
|
|
|
|
|
|
|
|
activity.runOnUiThread(new Runnable() {
|
|
|
|
public void run() {
|
|
|
|
|
2018-01-25 00:35:08 +00:00
|
|
|
if (field.getView() == tietPin) {
|
|
|
|
tilPin.setError("");
|
|
|
|
} else if (field.getView() == tietPinConfirmation){
|
|
|
|
tilPinConfirmation.setError("");
|
|
|
|
} else if (field.getView() == tietAccountName){
|
|
|
|
tilAccountName.setError("");
|
2018-01-09 01:30:02 +00:00
|
|
|
} //else if (field.getView() == etSeedWords){
|
|
|
|
// tvSeedWordsError.setText("");
|
|
|
|
//}
|
2018-01-08 00:16:03 +00:00
|
|
|
|
2018-01-09 01:30:02 +00:00
|
|
|
if (activity.createSeedValidator.isValid()){
|
|
|
|
btnCreate.setEnabled(true);
|
2018-01-08 00:16:03 +00:00
|
|
|
} else {
|
2018-01-09 01:30:02 +00:00
|
|
|
btnCreate.setEnabled(false);
|
2018-01-08 00:16:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2018-01-14 02:16:54 +00:00
|
|
|
public void onValidationFailed(final ValidationField field) {
|
|
|
|
runOnUiThread(new Runnable() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run() {
|
2018-01-25 00:35:08 +00:00
|
|
|
if (field.getView() == tietPin) {
|
|
|
|
tilPin.setError(field.getMessage());
|
|
|
|
} else if (field.getView() == tietPinConfirmation){
|
|
|
|
tilPinConfirmation.setError(field.getMessage());
|
|
|
|
} else if (field.getView() == tietAccountName){
|
|
|
|
tilAccountName.setError(field.getMessage());
|
2018-01-14 02:16:54 +00:00
|
|
|
} //else if (field.getView() == etSeedWords){
|
|
|
|
// tvSeedWordsError.setText(field.getMessage());
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
});
|
2018-01-08 00:16:03 +00:00
|
|
|
}
|
|
|
|
}
|