package com.quickblox.sample.user.activities;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.quickblox.core.QBEntityCallback;
import com.quickblox.core.exception.QBResponseException;
import com.quickblox.sample.core.utils.Toaster;
import com.quickblox.sample.user.R;
import com.quickblox.sample.user.helper.DataHolder;
import com.quickblox.users.QBUsers;
import com.quickblox.users.model.QBUser;
public class SignUpUserActivity extends BaseActivity {
private EditText loginEditText;
private EditText passwordEditText;
private EditText confirmPasswordEditText;
private Toast toast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
initUI();
}
@SuppressLint("ShowToast")
@Override
protected void initUI() {
actionBar.setDisplayHomeAsUpEnabled(true);
toast = Toast.makeText(this, R.string.error, Toast.LENGTH_LONG);
loginEditText = _findViewById(R.id.login_up_edittext);
passwordEditText = _findViewById(R.id.password_up_edittext);
confirmPasswordEditText = _findViewById(R.id.password_confirm_edittext);
}
public void signUp() {
String login = loginEditText.getText().toString().trim();
String password = passwordEditText.getText().toString();
String confirmPassword = confirmPasswordEditText.getText().toString();
if (!isValidData(login, password, confirmPassword)) {
return;
}
progressDialog.show();
QBUser qbUser = new QBUser();
qbUser.setLogin(login);
qbUser.setPassword(password);
QBUsers.signUpSignInTask(qbUser).performAsync(new QBEntityCallback<QBUser>() {
@Override
public void onSuccess(QBUser qbUser, Bundle bundle) {
progressDialog.dismiss();
DataHolder.getInstance().addQbUser(qbUser);
DataHolder.getInstance().setSignInQbUser(qbUser);
setResult(RESULT_OK, new Intent());
finish();
}
@Override
public void onError(QBResponseException error) {
progressDialog.dismiss();
View rootLayout = findViewById(R.id.activity_sign_up);
showSnackbarError(rootLayout, R.string.errors, error, new View.OnClickListener() {
@Override
public void onClick(View v) {
signUp();
}
});
}
});
}
private boolean isValidData(String login, String password, String confirm) {
if (TextUtils.isEmpty(login) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirm)) {
if (TextUtils.isEmpty(login)) {
loginEditText.setError(getResources().getString(R.string.error_field_is_empty));
}
if (TextUtils.isEmpty(password)) {
passwordEditText.setError(getResources().getString(R.string.error_field_is_empty));
}
if (TextUtils.isEmpty(confirm)) {
confirmPasswordEditText.setError(getResources().getString(R.string.error_field_is_empty));
}
return false;
}
if (!TextUtils.equals(password, confirm)) {
confirmPasswordEditText.setError(getResources().getString(R.string.confirm_error));
return false;
}
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
toast.cancel();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_sign_in_up, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_sign_in_up:
signUp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}