diff --git a/app/src/main/java/ch/pizzalink/android/activity/ForgotPasswordActivity.java b/app/src/main/java/ch/pizzalink/android/activity/ForgotPasswordActivity.java index 49a4c82..bb3c9b3 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/ForgotPasswordActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/ForgotPasswordActivity.java @@ -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 call = ApiService.apiInterface.forgotPassword( + forgotPasswordEmailPizzalinkEditText.getText()); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + DialogHelper.hideLoadingDialog(); + if(response.isSuccessful() && response.body().isSuccess()){ + DialogHelper.showPasswordResetDialog(ForgotPasswordActivity.this); + } + else{ + ApiErrorUtils.parseError(response); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + DialogHelper.hideLoadingDialog(); + DialogHelper.showFailedDialog(); + } + }); + } } diff --git a/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java b/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java index e785346..84bbfb8 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java @@ -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; diff --git a/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java b/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java index 2090a3a..bbfea69 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java @@ -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(); } diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java index f43963a..ca2a3d0 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java @@ -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; } diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java b/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java index e3d9f75..f7659be 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java @@ -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 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; } } diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java index b50b16c..5a0f490 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java @@ -100,5 +100,9 @@ public interface ApiInterface { @POST(ApiEndPoints.API_CHECK_UPDATE) Call> checkUpdate(@FieldMap HashMap body); + @FormUrlEncoded + @POST(ApiEndPoints.API_FORGOT_PASSWORD) + Call forgotPassword(@Field("email") String emailAddress); + } diff --git a/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java b/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java index 332f9ee..3d4c0a1 100644 --- a/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java +++ b/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java @@ -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(); + + } + } diff --git a/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java b/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java index 7daa2fa..4830c7b 100644 --- a/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java +++ b/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java @@ -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 + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9df2e6..fd6a798 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -128,6 +128,7 @@ Şifremi Unuttum Kayıt olurken mail adresini giriniz ve gelen maildeki yönergeleri takip ediniz. GÖNDER + Mail adresinize gerekli bilgiler gönderilmiştir. İlgili maildeki yönergeleri takip ederek şifrenizi sıfırlayabilirsiniz. Şifreni mi unuttun? ŞİFRENİ SIFIRLA