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 @@ + + + + + + + +