forgot password

This commit is contained in:
cimenmus
2017-10-23 20:39:50 +03:00
parent 86fc94bb37
commit 61fb410abe
9 changed files with 124 additions and 4 deletions

View File

@@ -5,11 +5,21 @@ import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import butterknife.BindString;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import ch.pizzalink.android.R;
import ch.pizzalink.android.api.ApiErrorUtils;
import ch.pizzalink.android.api.ApiService;
import ch.pizzalink.android.api.ResponseObject;
import ch.pizzalink.android.helper.DialogHelper;
import ch.pizzalink.android.helper.ViewHelper;
import ch.pizzalink.android.view.PizzalinkEditText;
import ch.pizzalink.android.view.PizzalinkToolbar;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ForgotPasswordActivity extends BaseActivity {
@@ -17,6 +27,9 @@ public class ForgotPasswordActivity extends BaseActivity {
@BindView(R.id.forgotPasswordEmailPizzalinkEditText) PizzalinkEditText forgotPasswordEmailPizzalinkEditText;
@BindView(R.id.resetPasswordButton) Button resetPasswordButton;
@BindString(R.string.alert_fill_all_fields) String fillAllFieldsText;
@BindString(R.string.alert_invalid_email) String validEmailText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -25,6 +38,14 @@ public class ForgotPasswordActivity extends BaseActivity {
initViews();
}
@OnClick(R.id.resetPasswordButton)
protected void onClick(){
ViewHelper.hideKeyboard();
if(checkFields()){
resetPassword();
}
}
private void initViews(){
forgotPasswordPizzalinkToolbar.setBackIconClickListener(new View.OnClickListener() {
@Override
@@ -33,4 +54,43 @@ public class ForgotPasswordActivity extends BaseActivity {
}
});
}
private boolean checkFields(){
if(forgotPasswordEmailPizzalinkEditText.isEmpty()){
DialogHelper.showAlertDialog(this, fillAllFieldsText);
return false;
}
if(!forgotPasswordEmailPizzalinkEditText.isEmail()){
DialogHelper.showAlertDialog(this, validEmailText);
return false;
}
return true;
}
private void resetPassword(){
DialogHelper.showLoadingDialog();
Call<ResponseObject> call = ApiService.apiInterface.forgotPassword(
forgotPasswordEmailPizzalinkEditText.getText());
call.enqueue(new Callback<ResponseObject>() {
@Override
public void onResponse(Call<ResponseObject> call, Response<ResponseObject> response) {
DialogHelper.hideLoadingDialog();
if(response.isSuccessful() && response.body().isSuccess()){
DialogHelper.showPasswordResetDialog(ForgotPasswordActivity.this);
}
else{
ApiErrorUtils.parseError(response);
}
}
@Override
public void onFailure(Call<ResponseObject> call, Throwable t) {
DialogHelper.hideLoadingDialog();
DialogHelper.showFailedDialog();
}
});
}
}

View File

@@ -21,6 +21,7 @@ import ch.pizzalink.android.api.ResponseObject;
import ch.pizzalink.android.helper.DialogHelper;
import ch.pizzalink.android.helper.SessionHelper;
import ch.pizzalink.android.helper.SharedPrefsHelper;
import ch.pizzalink.android.helper.ViewHelper;
import ch.pizzalink.android.model.UserModel;
import ch.pizzalink.android.model.cart.CartInfoModel;
import ch.pizzalink.android.view.PizzalinkEditText;
@@ -56,6 +57,7 @@ public class LoginActivity extends BaseActivity {
protected void onClick(View view){
switch (view.getId()){
case R.id.loginButton:
ViewHelper.hideKeyboard();
if(checkFields())
login();
break;

View File

@@ -19,6 +19,7 @@ import ch.pizzalink.android.api.ApiService;
import ch.pizzalink.android.api.ResponseObject;
import ch.pizzalink.android.helper.DialogHelper;
import ch.pizzalink.android.helper.SharedPrefsHelper;
import ch.pizzalink.android.helper.ViewHelper;
import ch.pizzalink.android.model.UserModel;
import ch.pizzalink.android.view.PizzalinkEditText;
import ch.pizzalink.android.view.PizzalinkToolbar;
@@ -53,6 +54,7 @@ public class RegisterActivity extends BaseActivity {
@OnClick(R.id.registerButton)
protected void onClick(){
ViewHelper.hideKeyboard();
if(checkFields())
registerUser();
}

View File

@@ -20,6 +20,7 @@ public class ApiEndPoints {
public static final String API_GET_PAYMENT_METHODS = PREFIX + "getPaymentMethodsArray" + SUFFIX;
public static final String API_CREATE_ORDER = PREFIX + "addOrder2" + SUFFIX + "&token=";
public static final String API_CHECK_UPDATE = PREFIX + "checkUpdate" + SUFFIX;
public static final String API_FORGOT_PASSWORD = PREFIX + "forgotPassword" + SUFFIX;
}

View File

@@ -15,7 +15,7 @@ import retrofit2.Converter;
import retrofit2.Response;
public class ApiErrorUtils {
public static ApiError parseError(Response<?> response) {
public static void parseError(Response<?> response) {
Converter<ResponseBody, ApiError> converter = ApiService.retrofit.responseBodyConverter(ApiError.class, new Annotation[0]);
ApiError error = new ApiError();
error.setStatusCode(response.code());
@@ -28,7 +28,12 @@ public class ApiErrorUtils {
SharedPrefsHelper.setCustomerLoggedIn(false);
BaseActivity.currentActivity.startActivity(new Intent(BaseActivity.currentActivity, LoginActivity.class));
BaseActivity.currentActivity.finishAffinity();
return error;
return;
}
if(baseResponse.getMessage() != null && !baseResponse.getMessage().isEmpty()){
DialogHelper.showAlertDialog(BaseActivity.currentActivity, baseResponse.getMessage());
return;
}
try {
@@ -36,9 +41,9 @@ public class ApiErrorUtils {
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, error.getMessage());
} catch (Exception e) {
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, BaseActivity.currentActivity.getString(R.string.something_went_wrong));
return error;
return;
}
return error;
return;
}
}

View File

@@ -100,5 +100,9 @@ public interface ApiInterface {
@POST(ApiEndPoints.API_CHECK_UPDATE)
Call<ResponseObject<AppVersionModel>> checkUpdate(@FieldMap HashMap<String, Object> body);
@FormUrlEncoded
@POST(ApiEndPoints.API_FORGOT_PASSWORD)
Call<ResponseObject> forgotPassword(@Field("email") String emailAddress);
}

View File

@@ -10,6 +10,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
import ch.pizzalink.android.R;
import ch.pizzalink.android.activity.BaseActivity;
import ch.pizzalink.android.activity.LoginActivity;
public class DialogHelper {
@@ -132,4 +133,24 @@ public class DialogHelper {
}
public static void showPasswordResetDialog(final Context context) {
new MaterialDialog.Builder(context)
.title(R.string.app_name)
.content(R.string.password_reset)
.positiveText(R.string.ok)
.positiveColor(ContextCompat.getColor(context, R.color.colorPrimary))
.cancelable(false)
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent intent = new Intent(context, LoginActivity.class);
BaseActivity.currentActivity.startActivity(intent);
BaseActivity.currentActivity.finishAffinity();
}
})
.show();
}
}

View File

@@ -1,8 +1,32 @@
package ch.pizzalink.android.helper;
import android.app.Activity;
import android.view.inputmethod.InputMethodManager;
import ch.pizzalink.android.activity.BaseActivity;
/**
* Created by cimenmus on 25/06/2017.
*/
public class ViewHelper {
public static void toogleKeyboard() {
InputMethodManager imm = (InputMethodManager) BaseActivity.currentActivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
if (imm.isActive()) {
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); // hide
} else {
imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); // show
}
}
public static void hideKeyboard() {
InputMethodManager imm = (InputMethodManager) BaseActivity.currentActivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); // hide
}
public static void showKeyboard() {
InputMethodManager imm = (InputMethodManager) BaseActivity.currentActivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); // show
}
}

View File

@@ -128,6 +128,7 @@
<string name="activity_title_forgot_password">Şifremi Unuttum</string>
<string name="reset_password_hint">Kayıt olurken mail adresini giriniz ve gelen maildeki yönergeleri takip ediniz.</string>
<string name="reset_password_button">GÖNDER</string>
<string name="password_reset">Mail adresinize gerekli bilgiler gönderilmiştir. İlgili maildeki yönergeleri takip ederek şifrenizi sıfırlayabilirsiniz.</string>
<string name="forgot_password_hint">Şifreni mi unuttun?</string>
<string name="reset_password">ŞİFRENİ SIFIRLA</string>