mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-12-28 06:28:59 +00:00
Can display specific error message on create account form.
This commit is contained in:
parent
c699e13833
commit
b8f732d82b
@ -0,0 +1,26 @@
|
||||
package org.communiquons.android.comunic.client.data.enums;
|
||||
|
||||
/**
|
||||
* Create account results
|
||||
*
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
public enum CreateAccountResult {
|
||||
|
||||
/**
|
||||
* The account was successfully created
|
||||
*/
|
||||
SUCCESS,
|
||||
|
||||
/**
|
||||
* Trying to login with an existing email address
|
||||
*/
|
||||
ERROR_EXISTING_EMAIL,
|
||||
|
||||
/**
|
||||
* Unspecified error occurred
|
||||
*/
|
||||
ERROR
|
||||
|
||||
|
||||
}
|
@ -3,6 +3,7 @@ package org.communiquons.android.comunic.client.data.helpers;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import org.communiquons.android.comunic.client.data.enums.CreateAccountResult;
|
||||
import org.communiquons.android.comunic.client.data.models.APIRequest;
|
||||
import org.communiquons.android.comunic.client.data.models.APIResponse;
|
||||
import org.communiquons.android.comunic.client.data.models.NewAccount;
|
||||
@ -188,9 +189,10 @@ public class AccountHelper {
|
||||
* @param newAccount Information about the new account to create
|
||||
* @return TRUE for a success / FALSE else
|
||||
*/
|
||||
public boolean createAccount(NewAccount newAccount) {
|
||||
public CreateAccountResult createAccount(NewAccount newAccount) {
|
||||
|
||||
APIRequest request = new APIRequest(mContext, "account/create");
|
||||
request.setTryContinueOnError(true);
|
||||
request.addString("firstName", newAccount.getFirstName());
|
||||
request.addString("lastName", newAccount.getLastName());
|
||||
request.addString("emailAddress", newAccount.getEmail());
|
||||
@ -199,11 +201,22 @@ public class AccountHelper {
|
||||
//Perform the request
|
||||
try {
|
||||
APIResponse response = new APIRequestHelper().exec(request);
|
||||
return response.getResponse_code() == 200;
|
||||
|
||||
switch (response.getResponse_code()) {
|
||||
case 200:
|
||||
return CreateAccountResult.SUCCESS;
|
||||
|
||||
case 409:
|
||||
return CreateAccountResult.ERROR_EXISTING_EMAIL;
|
||||
|
||||
default:
|
||||
return CreateAccountResult.ERROR;
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
return CreateAccountResult.ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,11 +12,13 @@ import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.communiquons.android.comunic.client.BuildConfig;
|
||||
import org.communiquons.android.comunic.client.R;
|
||||
import org.communiquons.android.comunic.client.data.asynctasks.SafeAsyncTask;
|
||||
import org.communiquons.android.comunic.client.data.enums.CreateAccountResult;
|
||||
import org.communiquons.android.comunic.client.data.helpers.AccountHelper;
|
||||
import org.communiquons.android.comunic.client.data.models.NewAccount;
|
||||
import org.communiquons.android.comunic.client.data.utils.Utilities;
|
||||
@ -29,13 +31,13 @@ import static android.os.AsyncTask.Status.FINISHED;
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
public class CreateAccountActivity extends AppCompatActivity
|
||||
implements SafeAsyncTask.OnPostExecuteListener<Boolean> {
|
||||
implements SafeAsyncTask.OnPostExecuteListener<CreateAccountResult> {
|
||||
|
||||
/**
|
||||
* Input fields
|
||||
*/
|
||||
private ProgressBar mProgress;
|
||||
private View mForm;
|
||||
private ScrollView mForm;
|
||||
private TextView mError;
|
||||
private EditText mFirstName;
|
||||
private EditText mLastName;
|
||||
@ -238,12 +240,24 @@ public class CreateAccountActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void OnPostExecute(Boolean result) {
|
||||
public void OnPostExecute(CreateAccountResult result) {
|
||||
setLoading(false);
|
||||
|
||||
//Check for errors
|
||||
if(!result){
|
||||
setError(getString(R.string.err_while_creating_account));
|
||||
if(result != CreateAccountResult.SUCCESS){
|
||||
|
||||
//Find the right error to display
|
||||
int message = R.string.err_while_creating_account;
|
||||
switch (result){
|
||||
|
||||
//Existing email address
|
||||
case ERROR_EXISTING_EMAIL:
|
||||
message = R.string.err_create_account_existing_email;
|
||||
break;
|
||||
}
|
||||
|
||||
mForm.scrollTo(1, 1);
|
||||
setError(getString(message));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -261,14 +275,14 @@ public class CreateAccountActivity extends AppCompatActivity
|
||||
/**
|
||||
* Class used to create an account across activities
|
||||
*/
|
||||
private static class CreateAccountTask extends SafeAsyncTask<NewAccount, Void, Boolean> {
|
||||
private static class CreateAccountTask extends SafeAsyncTask<NewAccount, Void, CreateAccountResult> {
|
||||
|
||||
CreateAccountTask(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Boolean doInBackground(NewAccount... newAccounts) {
|
||||
protected CreateAccountResult doInBackground(NewAccount... newAccounts) {
|
||||
return new AccountHelper(getContext()).createAccount(newAccounts[0]);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,8 @@
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/activity_login_bg">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/loading_progress"
|
||||
@ -14,8 +15,7 @@
|
||||
<ScrollView
|
||||
android:id="@+id/create_account_form"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/activity_login_bg">
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@ -44,6 +44,7 @@
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:inputType="textPersonName"
|
||||
android:id="@+id/first_name"
|
||||
style="@style/CreateAccountInput"
|
||||
android:layout_width="match_parent"
|
||||
@ -58,6 +59,7 @@
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:inputType="textPersonName"
|
||||
android:id="@+id/last_name"
|
||||
style="@style/CreateAccountInput"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -228,9 +228,10 @@
|
||||
<string name="err_invalid_password">Please specify a valid password!</string>
|
||||
<string name="err_password_confirmation_not_identical">The password and its confirmation are not the same!</string>
|
||||
<string name="err_need_accept_terms">Please accept the terms of use of Comunic !</string>
|
||||
<string name="err_while_creating_account">An error occurred while trying to create your account! Maybe an account with the same email address already exists!</string>
|
||||
<string name="err_while_creating_account">An error occurred while trying to create your account!</string>
|
||||
<string name="account_created_title">Congratulations</string>
|
||||
<string name="account_created_message">Your account has been created. You can now sign into your new account to use all the features of Comunic.</string>
|
||||
<string name="account_created_sign_in">Sign in</string>
|
||||
<string name="activity_login_too_many_request">Too many failed login requests. Please try again later…</string>
|
||||
<string name="err_create_account_existing_email">This email address is already associated with an account!</string>
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user