Initialize first profile with only one address.

Small refactoring.
This commit is contained in:
Adrian Tiberius 2015-09-04 15:01:58 +02:00
parent 2ba0124dac
commit 70b9b77fef
3 changed files with 69 additions and 100 deletions

View File

@ -449,7 +449,7 @@ public abstract class BaseActivity extends AppCompatActivity implements
@Override @Override
public void onProfileAdd() { public void onProfileAdd() {
GeneralUtil.showProfileCreateDialog(this); GeneralUtil.showProfileCreateDialog(this, true, null);
} }
@Override @Override

View File

@ -62,67 +62,21 @@ public class LoginActivity extends AppCompatActivity {
} }
private void createAndSetProfile() { private void createAndSetProfile() {
MaterialDialog dialog = new MaterialDialog.Builder(LoginActivity.this) GeneralUtil.showProfileCreateDialog(LoginActivity.this, false, new MaterialDialog.ButtonCallback() {
.title("New profile") @Override
.positiveText(R.string.dialog_button_create) public void onPositive(MaterialDialog dialog) {
.negativeText(R.string.dialog_button_cancel) if (GeneralUtil.processCreateDialog(LoginActivity.this, dialog)) {
.customView(R.layout.profile_create_dialog, true) startNextActivity();
.autoDismiss(false) }
.cancelable(false) }
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
EditText name = (EditText) dialog.findViewById(R.id.et_profile_name);
EditText pass1 = (EditText) dialog.findViewById(R.id.et_profile_pass_1);
EditText pass2 = (EditText) dialog.findViewById(R.id.et_profile_pass_2);
String nameString = name.getText().toString(); @Override
String pass1String = pass1.getText().toString(); public void onNegative(MaterialDialog dialog) {
String pass2String = pass2.getText().toString(); LoginActivity.this.finish();
dialog.dismiss();
}
if (TextUtils.isEmpty(nameString)) { });
Toast.makeText(LoginActivity.this, "Profile name can't be empty", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(pass1String) || TextUtils.isEmpty(pass2String)) {
Toast.makeText(LoginActivity.this, "Password name can't be empty", Toast.LENGTH_SHORT).show();
return;
}
if (!pass1.getText().toString().equals(pass2.getText().toString())) {
Toast.makeText(LoginActivity.this, "Passwords should be the same!", Toast.LENGTH_SHORT).show();
} else {
Profile profile = new Profile();
profile.setName(name.getText().toString());
profile.setPassword(pass1String);
List<String> addresses = new ArrayList<>();
byte[] addr = HashUtil.sha3(profile.getName().getBytes());
addresses.add(Hex.toHexString(addr));
String secret = CONFIG.coinbaseSecret();
byte[] cbAddr = HashUtil.sha3(secret.getBytes());
addresses.add(Hex.toHexString(cbAddr));
profile.setPrivateKeys(addresses);
ProfileManager.addProfile(profile);
ProfileManager.setCurrentProfile(profile);
GeneralUtil.hideKeyBoard(name, LoginActivity.this);
GeneralUtil.hideKeyBoard(pass1, LoginActivity.this);
GeneralUtil.hideKeyBoard(pass2, LoginActivity.this);
startNextActivity();
// dialog.dismiss();
}
}
@Override
public void onNegative(MaterialDialog dialog) {
LoginActivity.this.finish();
dialog.dismiss();
}
}).show();
EditText name = (EditText) dialog.findViewById(R.id.et_profile_name);
GeneralUtil.showKeyBoard(name, LoginActivity.this);
} }
} }

View File

@ -87,52 +87,67 @@ public final class GeneralUtil {
} }
} }
public static void showProfileCreateDialog(final Context context) { public static boolean processCreateDialog(Context context, MaterialDialog dialog) {
EditText name = (EditText) dialog.findViewById(R.id.et_profile_name);
EditText pass1 = (EditText) dialog.findViewById(R.id.et_profile_pass_1);
EditText pass2 = (EditText) dialog.findViewById(R.id.et_profile_pass_2);
String nameString = name.getText().toString();
String pass1String = pass1.getText().toString();
String pass2String = pass2.getText().toString();
if (TextUtils.isEmpty(nameString)) {
Toast.makeText(context, "Profile name can't be empty", Toast.LENGTH_SHORT).show();
return false;
}
if (TextUtils.isEmpty(pass1String) || TextUtils.isEmpty(pass2String)) {
Toast.makeText(context, "Password name can't be empty", Toast.LENGTH_SHORT).show();
return false;
}
if (!pass1.getText().toString().equals(pass2.getText().toString())) {
Toast.makeText(context, "Passwords should be the same!", Toast.LENGTH_SHORT).show();
return false;
} else {
Profile profile = new Profile();
profile.setName(name.getText().toString());
profile.setPassword(pass1String);
ProfileManager.addProfile(profile);
ProfileManager.setCurrentProfile(profile);
GeneralUtil.hideKeyBoard(name, context);
GeneralUtil.hideKeyBoard(pass1, context);
GeneralUtil.hideKeyBoard(pass2, context);
return true;
}
}
public static void showProfileCreateDialog(final Context context, boolean cancelable, MaterialDialog.ButtonCallback callback) {
if (callback == null) {
callback = new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
if (processCreateDialog(context, dialog)) {
dialog.dismiss();
}
}
@Override
public void onNegative(MaterialDialog dialog) {
dialog.dismiss();
}
};
}
MaterialDialog dialog = new MaterialDialog.Builder(context) MaterialDialog dialog = new MaterialDialog.Builder(context)
.title("New profile") .title("New profile")
.positiveText(R.string.dialog_button_create) .positiveText(R.string.dialog_button_create)
.negativeText(R.string.dialog_button_cancel) .negativeText(R.string.dialog_button_cancel)
.customView(R.layout.profile_create_dialog, true) .customView(R.layout.profile_create_dialog, true)
.autoDismiss(false) .autoDismiss(false)
.callback(new MaterialDialog.ButtonCallback() { .cancelable(cancelable)
@Override .callback(callback)
public void onPositive(MaterialDialog dialog) { .show();
EditText name = (EditText) dialog.findViewById(R.id.et_profile_name);
EditText pass1 = (EditText) dialog.findViewById(R.id.et_profile_pass_1);
EditText pass2 = (EditText) dialog.findViewById(R.id.et_profile_pass_2);
String nameString = name.getText().toString();
String pass1String = pass1.getText().toString();
String pass2String = pass2.getText().toString();
if (TextUtils.isEmpty(nameString)) {
Toast.makeText(context, "Profile name can't be empty", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(pass1String) || TextUtils.isEmpty(pass2String)) {
Toast.makeText(context, "Password name can't be empty", Toast.LENGTH_SHORT).show();
return;
}
if (!pass1.getText().toString().equals(pass2.getText().toString())) {
Toast.makeText(context, "Passwords should be the same!", Toast.LENGTH_SHORT).show();
} else {
Profile profile = new Profile();
profile.setName(name.getText().toString());
profile.setPassword(pass1String);
ProfileManager.addProfile(profile);
GeneralUtil.hideKeyBoard(name, context);
GeneralUtil.hideKeyBoard(pass1, context);
GeneralUtil.hideKeyBoard(pass2, context);
dialog.dismiss();
}
}
@Override
public void onNegative(MaterialDialog dialog) {
dialog.dismiss();
}
}).show();
EditText name = (EditText) dialog.findViewById(R.id.et_profile_name); EditText name = (EditText) dialog.findViewById(R.id.et_profile_name);
GeneralUtil.showKeyBoard(name, context); GeneralUtil.showKeyBoard(name, context);
} }