diff --git a/.idea/misc.xml b/.idea/misc.xml
index cca2cda..7158618 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9ef6be8..71e97e7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
@@ -13,39 +12,36 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme.NoActionBar">
-
+
-
-
+ android:screenOrientation="portrait" />
-
+ android:screenOrientation="portrait" />
-
+ android:screenOrientation="portrait" />
-
+ android:screenOrientation="portrait" />
-
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/ch/pizzalink/android/activity/AddAddressActivity.java b/app/src/main/java/ch/pizzalink/android/activity/AddAddressActivity.java
new file mode 100644
index 0000000..1983012
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/activity/AddAddressActivity.java
@@ -0,0 +1,15 @@
+package ch.pizzalink.android.activity;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+
+import ch.pizzalink.android.R;
+
+public class AddAddressActivity extends BaseActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_add_address);
+ }
+}
diff --git a/app/src/main/java/ch/pizzalink/android/activity/MyAddressesActivity.java b/app/src/main/java/ch/pizzalink/android/activity/MyAddressesActivity.java
new file mode 100644
index 0000000..ebd3d36
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/activity/MyAddressesActivity.java
@@ -0,0 +1,161 @@
+package ch.pizzalink.android.activity;
+
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Button;
+
+import com.afollestad.materialdialogs.DialogAction;
+import com.afollestad.materialdialogs.MaterialDialog;
+
+import java.util.ArrayList;
+
+import butterknife.BindString;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import ch.pizzalink.android.R;
+import ch.pizzalink.android.adapter.recycler.MyAddressesRecyclerAdapter;
+import ch.pizzalink.android.api.ApiEndPoints;
+import ch.pizzalink.android.api.ApiErrorUtils;
+import ch.pizzalink.android.api.ApiService;
+import ch.pizzalink.android.api.ResponseArray;
+import ch.pizzalink.android.api.ResponseObject;
+import ch.pizzalink.android.helper.DialogHelper;
+import ch.pizzalink.android.helper.SessionHelper;
+import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
+import ch.pizzalink.android.model.AddressModel;
+import ch.pizzalink.android.model.DeleteAddressResponseModel;
+import ch.pizzalink.android.view.PizzalinkToolbar;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class MyAddressesActivity extends BaseActivity {
+
+ @BindView(R.id.myAddressesToolbar) PizzalinkToolbar myAddressesToolbar;
+ @BindView(R.id.myAddressesRecyclerView) RecyclerView myAddressesRecyclerView;
+ @BindView(R.id.addNewAddressButton) Button addNewAddressButton;
+
+ @BindString(R.string.alert_delete_address) String deleteAddressAlertText;
+ @BindString(R.string.address_deleted) String addressDeletedText;
+
+ private ArrayList addressList = new ArrayList<>();
+ private MyAddressesRecyclerAdapter addressesRecyclerAdapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_my_addresses);
+ ButterKnife.bind(this);
+ initViews();
+ getCustomerAddresses();
+ }
+
+ @OnClick(R.id.addNewAddressButton)
+ public void onClick(){
+ startActivity(new Intent(this, AddAddressActivity.class));
+ }
+
+ private void initViews(){
+
+ myAddressesToolbar.setBackIconClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onBackPressed();
+ }
+ });
+
+ initRecyclerView();
+ }
+
+ private void getCustomerAddresses(){
+ DialogHelper.showLoadingDialog();
+ Call> call = ApiService.apiInterface.getCustomerAddresses(
+ SessionHelper.getCustomerToken().getToken());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ DialogHelper.hideLoadingDialog();
+ if(response.isSuccessful() &&
+ response.body().getData() != null &&
+ response.body().isSuccess()){
+ fillAndNotifyAdapter(response.body().getData());
+ }
+ else {
+ ApiErrorUtils.parseError(response);
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
+ private void fillAndNotifyAdapter(ArrayList addressModels){
+ AddressModel.checkNull(addressModels);
+ addressList.clear();
+ addressList.addAll(addressModels);
+ addressesRecyclerAdapter.notifyDataSetChanged();
+ }
+
+ private void initRecyclerView(){
+ addressesRecyclerAdapter = new MyAddressesRecyclerAdapter(addressList, new RecyclerItemClickListener() {
+ @Override
+ public void onItemClick(View view, final int position) {
+ DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, deleteAddressAlertText,
+ new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ deleteAddress(position);
+ }
+ },
+ new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ dialog.dismiss();
+ }
+ });
+ }
+ });
+ LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
+ myAddressesRecyclerView.setLayoutManager(layoutManager);
+ myAddressesRecyclerView.setAdapter(addressesRecyclerAdapter);
+ }
+
+ private void deleteAddress(final int position){
+ DialogHelper.hideLoadingDialog();
+ Call> call = ApiService.apiInterface.deleteAddress(
+ ApiEndPoints.API_DELETE_ADDRESS + SessionHelper.getCustomerToken().getToken(),
+ addressList.get(position).getId());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ DialogHelper.hideLoadingDialog();
+ if(response.isSuccessful() &&
+ response.body() != null &&
+ response.body().isSuccess()){
+ DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, addressDeletedText);
+ addressList.remove(position);
+ addressesRecyclerAdapter.notifyDataSetChanged();
+ }
+ 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/UpdatePasswordActivity.java b/app/src/main/java/ch/pizzalink/android/activity/UpdatePasswordActivity.java
new file mode 100644
index 0000000..e320520
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/activity/UpdatePasswordActivity.java
@@ -0,0 +1,115 @@
+package ch.pizzalink.android.activity;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+import java.util.HashMap;
+
+import butterknife.BindString;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import ch.pizzalink.android.R;
+import ch.pizzalink.android.api.ApiEndPoints;
+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.SessionHelper;
+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 UpdatePasswordActivity extends BaseActivity {
+
+ @BindView(R.id.updatePasswordToolbar) PizzalinkToolbar updatePasswordToolbar;
+ @BindView(R.id.oldPasswordPizzalinkEditText) PizzalinkEditText oldPasswordPizzalinkEditText;
+ @BindView(R.id.newPasswordPizzalinkEditText) PizzalinkEditText newPasswordPizzalinkEditText;
+ @BindView(R.id.confirmNewPasswordPizzalinkEditText) PizzalinkEditText confirmNewPasswordPizzalinkEditText;
+ @BindView(R.id.updatePasswordButton) Button updatePasswordButton;
+
+ @BindString(R.string.alert_fill_all_fields) String fillAllFieldsText;
+ @BindString(R.string.alert_passwords_not_matched) String passwordsNotMatchedText;
+ @BindString(R.string.password_updated) String passwordUpdatedText;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_update_password);
+ ButterKnife.bind(this);
+ initViews();
+ }
+
+ @OnClick(R.id.updatePasswordButton)
+ protected void onClick(){
+ ViewHelper.hideKeyboard();
+ if(checkFields())
+ updatePassword();
+ }
+
+ private void initViews(){
+ updatePasswordToolbar.setBackIconClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onBackPressed();
+ }
+ });
+ }
+
+ private boolean checkFields(){
+
+ if(oldPasswordPizzalinkEditText.isEmpty() ||
+ newPasswordPizzalinkEditText.isEmail() ||
+ confirmNewPasswordPizzalinkEditText.isEmpty()){
+ DialogHelper.showAlertDialog(BaseActivity.currentActivity, fillAllFieldsText);
+ return false;
+ }
+
+ if(!newPasswordPizzalinkEditText.getText().equals(confirmNewPasswordPizzalinkEditText.getText())){
+ DialogHelper.showAlertDialog(BaseActivity.currentActivity, passwordsNotMatchedText);
+ return false;
+ }
+
+ return true;
+ }
+
+ private void updatePassword(){
+ DialogHelper.showLoadingDialog();
+ Call call = ApiService.apiInterface.updatePassword(
+ ApiEndPoints.API_UPDATE_PASSWORD + SessionHelper.getCustomerToken().getToken(),
+ getUpdatePasswordRequestParams());
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ DialogHelper.hideLoadingDialog();
+ if(response.isSuccessful() &&
+ response.body().getData() != null &&
+ response.body().isSuccess()){
+ DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, passwordUpdatedText);
+ }
+ else {
+ ApiErrorUtils.parseError(response);
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
+ private HashMap getUpdatePasswordRequestParams(){
+ HashMap params = new HashMap<>();
+ params.put("oldPassword", oldPasswordPizzalinkEditText.getText());
+ params.put("password", newPasswordPizzalinkEditText.getText());
+ params.put("confirm", confirmNewPasswordPizzalinkEditText.getText());
+ return params;
+ }
+}
diff --git a/app/src/main/java/ch/pizzalink/android/adapter/recycler/MyAddressesRecyclerAdapter.java b/app/src/main/java/ch/pizzalink/android/adapter/recycler/MyAddressesRecyclerAdapter.java
new file mode 100644
index 0000000..f211527
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/adapter/recycler/MyAddressesRecyclerAdapter.java
@@ -0,0 +1,117 @@
+package ch.pizzalink.android.adapter.recycler;
+
+import android.support.v7.widget.AppCompatRadioButton;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import ch.pizzalink.android.R;
+import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
+import ch.pizzalink.android.model.AddressModel;
+
+/**
+ * Created by cimenmus on 24.10.2017.
+ */
+
+public class MyAddressesRecyclerAdapter extends RecyclerView.Adapter{
+
+ private final int HOLDER_ADDRESS = 0;
+ private final int HOLDER_SPACE = 1;
+
+ private ArrayList addressList = new ArrayList<>();
+ private RecyclerItemClickListener recyclerItemClickListener;
+
+ public static class OrderViewHolder extends RecyclerView.ViewHolder {
+
+ @BindView(R.id.addressTextView) TextView addressTextView;
+ @BindView(R.id.deleteAddressImageView) ImageView deleteAddressImageView;
+
+ public OrderViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) {
+ super(view);
+ ButterKnife.bind(this, view);
+ deleteAddressImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(recyclerItemClickListener != null)
+ recyclerItemClickListener.onItemClick(deleteAddressImageView, getAdapterPosition());
+ }
+ });
+ }
+ }
+
+ public static class SpaceViewHolder extends RecyclerView.ViewHolder{
+ public SpaceViewHolder(final View view) {
+ super(view);
+ }
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+
+ if(position == addressList.size())
+ return HOLDER_SPACE;
+
+ return HOLDER_ADDRESS;
+ }
+
+ public MyAddressesRecyclerAdapter(ArrayList addressList,
+ RecyclerItemClickListener recyclerItemClickListener){
+ this.addressList = addressList;
+ this.recyclerItemClickListener = recyclerItemClickListener;
+ }
+
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+
+ RecyclerView.ViewHolder viewHolder;
+ View view;
+ LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
+
+ switch (viewType){
+
+ case HOLDER_ADDRESS:
+ view = inflater.inflate(R.layout.row_my_address, viewGroup, false);
+ viewHolder = new OrderViewHolder(view, recyclerItemClickListener);
+ break;
+
+ case HOLDER_SPACE:
+ view = inflater.inflate(R.layout.row_space, viewGroup, false);
+ viewHolder = new SpaceViewHolder(view);
+ break;
+
+ default:
+ view = inflater.inflate(R.layout.row_my_address, viewGroup, false);
+ viewHolder = new OrderViewHolder(view, recyclerItemClickListener);
+ break;
+ }
+
+ return viewHolder;
+ }
+
+
+ @Override
+ public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
+ switch (holder.getItemViewType()){
+ case HOLDER_ADDRESS :
+ OrderViewHolder orderViewHolder = (OrderViewHolder) holder;
+ orderViewHolder.addressTextView.setText(addressList.get(position).getAddress());
+ break;
+
+ case HOLDER_SPACE :
+ SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder;
+ break;
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return addressList.size() + 1 ;
+ }
+}
\ No newline at end of file
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 5df35c8..f6d3249 100644
--- a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java
+++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java
@@ -23,5 +23,7 @@ public class ApiEndPoints {
public static final String API_FORGOT_PASSWORD = PREFIX + "forgotPassword" + SUFFIX;
public static final String API_GET_ZONE_LIST = PREFIX + "getCities" + SUFFIX;
public static final String API_GET_COUNTRY_LIST = PREFIX + "getCountries" + SUFFIX;
-
+ public static final String API_GET_CUSTOMER_PROFILE = PREFIX + "getCustomerInfo" + SUFFIX;
+ public static final String API_UPDATE_PASSWORD = PREFIX + "passwordUpdate" + SUFFIX + "&token=";
+ public static final String API_DELETE_ADDRESS = PREFIX + "deleteAddress" + SUFFIX + "&token=";
}
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 f7659be..ea34b01 100644
--- a/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java
+++ b/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java
@@ -22,7 +22,7 @@ public class ApiErrorUtils {
BaseResponse baseResponse = (BaseResponse) response.body();
- if(baseResponse.getErrorCode() == ApiConstants.APP_ERROR_CODE_AUTHORIZATION){
+ if(baseResponse != null &&baseResponse.getErrorCode() == ApiConstants.APP_ERROR_CODE_AUTHORIZATION){
SharedPrefsHelper.clearCustomerInfo();
SharedPrefsHelper.clearCustomerToken();
SharedPrefsHelper.setCustomerLoggedIn(false);
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 1bd010d..53d8279 100644
--- a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java
+++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java
@@ -6,6 +6,7 @@ import ch.pizzalink.android.model.AddProductToBasketResponseModel;
import ch.pizzalink.android.model.AddressModel;
import ch.pizzalink.android.model.AppVersionModel;
import ch.pizzalink.android.model.CountryModel;
+import ch.pizzalink.android.model.DeleteAddressResponseModel;
import ch.pizzalink.android.model.PaymentMethodModel;
import ch.pizzalink.android.model.PaymentMethodsResponseModel;
import ch.pizzalink.android.model.ShippingMethodModel;
@@ -112,5 +113,17 @@ public interface ApiInterface {
@GET(ApiEndPoints.API_GET_COUNTRY_LIST)
Call> getCountryList();
+ @GET(ApiEndPoints.API_GET_CUSTOMER_PROFILE)
+ Call> getCustomerProfile(@Query("token") String token);
+
+ @FormUrlEncoded
+ @POST
+ Call updatePassword(@Url String url, @FieldMap HashMap body);
+
+ @FormUrlEncoded
+ @POST
+ Call> deleteAddress(@Url String url,
+ @Field("address_id") String addressId);
+
}
diff --git a/app/src/main/java/ch/pizzalink/android/fragment/ProfileFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/ProfileFragment.java
index 608f4f9..b5c3d82 100644
--- a/app/src/main/java/ch/pizzalink/android/fragment/ProfileFragment.java
+++ b/app/src/main/java/ch/pizzalink/android/fragment/ProfileFragment.java
@@ -7,6 +7,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.RelativeLayout;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
@@ -18,12 +19,16 @@ import butterknife.OnClick;
import ch.pizzalink.android.R;
import ch.pizzalink.android.activity.BaseActivity;
import ch.pizzalink.android.activity.LoginActivity;
+import ch.pizzalink.android.activity.MyAddressesActivity;
+import ch.pizzalink.android.activity.UpdatePasswordActivity;
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.SessionHelper;
import ch.pizzalink.android.helper.SharedPrefsHelper;
+import ch.pizzalink.android.model.UserModel;
+import ch.pizzalink.android.view.PizzalinkInfoView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -34,12 +39,17 @@ import retrofit2.Response;
public class ProfileFragment extends BaseFragment {
- @BindView(R.id.logoutButton) Button logoutButton;
+ @BindView(R.id.firstnamePizzalinkInfoLayout) PizzalinkInfoView firstnamePizzalinkInfoLayout;
+ @BindView(R.id.lastnamePizzalinkInfoLayout) PizzalinkInfoView lastnamePizzalinkInfoLayout;
+ @BindView(R.id.emailPizzalinkInfoLayout) PizzalinkInfoView emailPizzalinkInfoLayout;
+ @BindView(R.id.phonePizzalinkInfoLayout) PizzalinkInfoView phonePizzalinkInfoLayout;
+ @BindView(R.id.myAddressesLayout) RelativeLayout myAddressesLayout;
+ @BindView(R.id.updatePasswordLayout) RelativeLayout updatePasswordLayout;
+ @BindView(R.id.logoutLayout) RelativeLayout logoutLayout;
@BindString(R.string.bottom_nav_menu_item_profile) String fragmentTitle;
@BindString(R.string.alert_logout) String logoutAlertText;
-
public static final java.lang.String FRAGMENT_NAME = "profileFragment";
public ProfileFragment() {}
@@ -58,30 +68,77 @@ public class ProfileFragment extends BaseFragment {
View view = inflater.inflate(R.layout.fragment_profile, container, false);
ButterKnife.bind(this, view);
initViews();
+ getCustomerProfile();
return view;
}
- @OnClick(R.id.logoutButton)
+ @OnClick({R.id.myAddressesLayout, R.id.updatePasswordLayout, R.id.logoutLayout})
public void onClick(View view){
- DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, logoutAlertText,
- new MaterialDialog.SingleButtonCallback() {
- @Override
- public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
- logOutOnWeb();
- }
- }, new MaterialDialog.SingleButtonCallback() {
- @Override
- public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
- dialog.dismiss();
- }
- });
+ switch (view.getId()){
+ case R.id.myAddressesLayout:
+ startActivity(new Intent(BaseActivity.currentActivity, MyAddressesActivity.class));
+ break;
+ case R.id.updatePasswordLayout:
+ startActivity(new Intent(BaseActivity.currentActivity, UpdatePasswordActivity.class));
+ break;
+ case R.id.logoutLayout:
+ DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, logoutAlertText,
+ new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ logOutOnWeb();
+ }
+ }, new MaterialDialog.SingleButtonCallback() {
+ @Override
+ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
+ dialog.dismiss();
+ }
+ });
+ break;
+ }
}
-
private void initViews(){
setPizzalinkToolbarFields(false, fragmentTitle);
}
+ private void getCustomerProfile(){
+ DialogHelper.showLoadingDialog();
+ Call> call = ApiService.apiInterface.getCustomerProfile(
+ SessionHelper.getCustomerToken().getToken());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ DialogHelper.hideLoadingDialog();
+ if(response.isSuccessful() &&
+ response.body().getData() != null &&
+ response.body().isSuccess()){
+ setFields(response.body().getData());
+ }
+ else {
+ ApiErrorUtils.parseError(response);
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
+ private void setFields(UserModel user){
+
+ user.checkNull();
+ SessionHelper.saveCustomer(user);
+
+ firstnamePizzalinkInfoLayout.setText(user.getFirstname());
+ lastnamePizzalinkInfoLayout.setText(user.getLastname());
+ emailPizzalinkInfoLayout.setText(user.getEmail());
+ phonePizzalinkInfoLayout.setText(user.getTelephone());
+ }
+
private void logOutOnWeb(){
DialogHelper.showLoadingDialog();
Call call = ApiService.apiInterface.logout(SessionHelper.getCustomerToken().getToken());
diff --git a/app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.java
index 3f9ecce..3dbd12f 100644
--- a/app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.java
+++ b/app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.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.view.PizzalinkInfoView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -31,11 +32,11 @@ import retrofit2.Response;
public class OrderSummaryFragment extends OrderBaseFragment {
- @BindView(R.id.orderPersonFullnameTextView) TextView orderPersonFullnameTextView;
- @BindView(R.id.orderShippingMethodTextView) TextView orderShippingMethodTextView;
- @BindView(R.id.orderShippingAddressTextView) TextView orderShippingAddressTextView;
- @BindView(R.id.orderPaymentMethodTextView) TextView orderPaymentMethodTextView;
- @BindView(R.id.orderTotalTextView) TextView orderTotalTextView;
+ @BindView(R.id.orderPersonFullnamePizzalinkInfoLayout) PizzalinkInfoView orderPersonFullnamePizzalinkInfoLayout;
+ @BindView(R.id.orderShippingMethodPizzalinkInfoLayout) PizzalinkInfoView orderShippingMethodPizzalinkInfoLayout;
+ @BindView(R.id.orderShippingAddressPizzalinkInfoLayout) PizzalinkInfoView orderShippingAddressPizzalinkInfoLayout;
+ @BindView(R.id.orderPaymentMethodPizzalinkInfoLayout) PizzalinkInfoView orderPaymentMethodPizzalinkInfoLayout;
+ @BindView(R.id.orderTotalPizzalinkInfoLayout) PizzalinkInfoView orderTotalPizzalinkInfoLayout;
@BindString(R.string.confirm_order) String confirmOrderText;
@@ -80,11 +81,11 @@ public class OrderSummaryFragment extends OrderBaseFragment {
orderActivity = (OrderActivity) getActivity();
- orderPersonFullnameTextView.setText(SessionHelper.getUser().getFullname());
- orderShippingMethodTextView.setText(orderActivity.getSelectedShippingMethod().getTitle());
- orderShippingAddressTextView.setText(orderActivity.getSelectedShippingAddress().getAddress());
- orderPaymentMethodTextView.setText(orderActivity.getSelectedPaymentMethod().getTitle());
- orderTotalTextView.setText(orderActivity.getCartInfo().getTotals().get(0).getText());
+ orderPersonFullnamePizzalinkInfoLayout.setText(SessionHelper.getUser().getFullname());
+ orderShippingMethodPizzalinkInfoLayout.setText(orderActivity.getSelectedShippingMethod().getTitle());
+ orderShippingAddressPizzalinkInfoLayout.setText(orderActivity.getSelectedShippingAddress().getAddress());
+ orderPaymentMethodPizzalinkInfoLayout.setText(orderActivity.getSelectedPaymentMethod().getTitle());
+ orderTotalPizzalinkInfoLayout.setText(orderActivity.getCartInfo().getTotals().get(0).getText());
}
private void createOrder(){
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 35e4133..eef9596 100644
--- a/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java
+++ b/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java
@@ -132,7 +132,6 @@ public class DialogHelper {
}
})
.show();
-
}
public static void showPasswordResetDialog(final Context context) {
diff --git a/app/src/main/java/ch/pizzalink/android/model/DeleteAddressResponseModel.java b/app/src/main/java/ch/pizzalink/android/model/DeleteAddressResponseModel.java
new file mode 100644
index 0000000..333e73b
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/model/DeleteAddressResponseModel.java
@@ -0,0 +1,18 @@
+package ch.pizzalink.android.model;
+
+/**
+ * Created by cimenmus on 24.10.2017.
+ */
+
+public class DeleteAddressResponseModel {
+
+ private String address_id;
+
+ public String getAddress_id() {
+ return address_id;
+ }
+
+ public void setAddress_id(String address_id) {
+ this.address_id = address_id;
+ }
+}
diff --git a/app/src/main/java/ch/pizzalink/android/model/UserModel.java b/app/src/main/java/ch/pizzalink/android/model/UserModel.java
index 574c536..3fcedb1 100644
--- a/app/src/main/java/ch/pizzalink/android/model/UserModel.java
+++ b/app/src/main/java/ch/pizzalink/android/model/UserModel.java
@@ -10,6 +10,7 @@ import com.google.gson.annotations.SerializedName;
public class UserModel {
@Expose @SerializedName("customer_id") private String id;
+ @Expose @SerializedName("address_id") private String addressId;
private String firstname;
private String lastname;
private String email;
@@ -21,6 +22,9 @@ public class UserModel {
if(id == null)
id = "";
+ if(addressId == null)
+ addressId = "";
+
if(firstname == null)
firstname = "";
@@ -49,6 +53,14 @@ public class UserModel {
this.id = id;
}
+ public String getAddressId() {
+ return addressId;
+ }
+
+ public void setAddressId(String addressId) {
+ this.addressId = addressId;
+ }
+
public String getFirstname() {
return firstname;
}
diff --git a/app/src/main/java/ch/pizzalink/android/view/PizzalinkEditText.java b/app/src/main/java/ch/pizzalink/android/view/PizzalinkEditText.java
index e7c175e..51d1b39 100644
--- a/app/src/main/java/ch/pizzalink/android/view/PizzalinkEditText.java
+++ b/app/src/main/java/ch/pizzalink/android/view/PizzalinkEditText.java
@@ -3,7 +3,6 @@ package ch.pizzalink.android.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Typeface;
-import android.support.v4.content.ContextCompat;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
@@ -11,7 +10,6 @@ import android.util.AttributeSet;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
diff --git a/app/src/main/java/ch/pizzalink/android/view/PizzalinkInfoView.java b/app/src/main/java/ch/pizzalink/android/view/PizzalinkInfoView.java
new file mode 100644
index 0000000..c79d78a
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/view/PizzalinkInfoView.java
@@ -0,0 +1,60 @@
+package ch.pizzalink.android.view;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import ch.pizzalink.android.R;
+
+/**
+ * Created by cimenmus on 24.10.2017.
+ */
+
+public class PizzalinkInfoView extends LinearLayout {
+
+ private View rootView;
+ private TextView descriptionTextView;
+ private TextView textview;
+ private String description;
+ private String text;
+
+ public PizzalinkInfoView(Context context) {
+ super(context);
+ init(context);
+ }
+
+ public PizzalinkInfoView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.PizzalinkInfoView, 0, 0);
+ try {
+ description = a.getString(R.styleable.PizzalinkInfoView_description);
+ text = a.getString(R.styleable.PizzalinkInfoView_infoText);
+ } finally {
+ a.recycle();
+ }
+ init(context);
+ }
+
+ private void init(Context context) {
+ rootView = inflate(context, R.layout.layout_pizzalink_view, this);
+ descriptionTextView = (TextView) rootView.findViewById(R.id.descriptionTextView);
+ textview = (TextView) rootView.findViewById(R.id.infoTextView);
+ if(description == null)
+ description = "";
+ if(text == null)
+ text = "";
+ descriptionTextView.setText(description);
+ textview.setText(text);
+ }
+
+ public String getText(){
+ return textview.getText().toString().trim();
+ }
+
+ public void setText(String text){
+ textview.setText(text);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_address.xml b/app/src/main/res/layout/activity_add_address.xml
new file mode 100644
index 0000000..89a1816
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_address.xml
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_my_addresses.xml b/app/src/main/res/layout/activity_my_addresses.xml
new file mode 100644
index 0000000..9225698
--- /dev/null
+++ b/app/src/main/res/layout/activity_my_addresses.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_update_password.xml b/app/src/main/res/layout/activity_update_password.xml
new file mode 100644
index 0000000..260344e
--- /dev/null
+++ b/app/src/main/res/layout/activity_update_password.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_order_summary.xml b/app/src/main/res/layout/fragment_order_summary.xml
index 06f532c..ad7eb72 100644
--- a/app/src/main/res/layout/fragment_order_summary.xml
+++ b/app/src/main/res/layout/fragment_order_summary.xml
@@ -1,6 +1,6 @@
-
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index fca4140..7ca188b 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -1,26 +1,144 @@
-
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:background="@color/white">
-
-
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_pizzalink_view.xml b/app/src/main/res/layout/layout_pizzalink_view.xml
new file mode 100644
index 0000000..83bea57
--- /dev/null
+++ b/app/src/main/res/layout/layout_pizzalink_view.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/row_my_address.xml b/app/src/main/res/layout/row_my_address.xml
new file mode 100644
index 0000000..f564d5b
--- /dev/null
+++ b/app/src/main/res/layout/row_my_address.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index 0f8e80b..06cfe6c 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -23,4 +23,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 23ccde8..1e29a66 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -73,7 +73,7 @@
- ÇIKIŞ YAP
+ Çıkış Yap
@@ -153,10 +153,35 @@
TOTAL
+
+ AD
+ SOYAD
+ TELEFON NUMARASI
+ EMAIL
+ Adreslerim
+ Şifremi Güncelle
+
+
Siparişiniz başarı ile alınmıştır. Siparişinizin detaylarını sipariş geçmişinden görebilir ve siparişinizi takip edebilirsiniz.
+
+ Şifre Güncelle
+ Eski Şifre
+ Yeni Şifre
+ Yeni Şifre (Tekrar)
+ Şifreniz başarı ile güncellenmiştir.
+
+
+
+ Adreslerim
+ EKLE
+ Adresiniz başarı ile eklendi.
+ Adresinizi silmek istediğinize emin misiniz?
+ Adresiniz başarı ile silindi.
+
+
- Shipping Method
- Shipping Address