From 8d5806deed42ae078934e6746a0ab260b5963c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mustafa=20ic=CC=A7men?= Date: Wed, 18 Oct 2017 00:05:12 +0300 Subject: [PATCH] create order --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 12 +- .../android/activity/MainActivity.java | 13 +- .../android/activity/OrderActivity.java | 138 ++++++++++++++++++ .../adapter/pager/OrderPagerAdapter.java | 52 +++++++ .../PaymentMethodsRecyclerAdapter.java | 119 +++++++++++++++ .../ShippingAddressesRecyclerAdapter.java | 119 +++++++++++++++ .../ShippingMethodsRecyclerAdapter.java | 121 +++++++++++++++ .../pizzalink/android/api/ApiEndPoints.java | 6 +- .../pizzalink/android/api/ApiInterface.java | 11 ++ .../android/fragment/CartFragment.java | 3 + .../fragment/order/OrderResultFragment.java | 42 ++++++ .../fragment/order/OrderSummaryFragment.java | 42 ++++++ .../fragment/order/PaymentMethodFragment.java | 124 ++++++++++++++++ .../order/ShippingAddressFragment.java | 114 +++++++++++++++ .../order/ShippingMethodFragment.java | 122 ++++++++++++++++ .../pizzalink/android/model/AddressModel.java | 59 ++++++++ .../android/model/CreateOrderModel.java | 8 + .../android/model/PaymentMethodModel.java | 52 +++++++ .../android/model/ShippingMethodModel.java | 53 +++++++ .../android/view/NoSwipeViewPager.java | 47 ++++++ app/src/main/res/layout/activity_order.xml | 98 +++++++++++++ .../main/res/layout/fragment_order_result.xml | 15 ++ .../res/layout/fragment_order_summary.xml | 15 ++ .../res/layout/fragment_payment_method.xml | 15 ++ .../res/layout/fragment_shipping_address.xml | 15 ++ .../res/layout/fragment_shipping_method.xml | 15 ++ .../main/res/layout/row_payment_method.xml | 17 +++ .../main/res/layout/row_shipment_address.xml | 17 +++ .../main/res/layout/row_shipment_method.xml | 32 ++++ app/src/main/res/values/strings.xml | 12 ++ 31 files changed, 1500 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/ch/pizzalink/android/activity/OrderActivity.java create mode 100644 app/src/main/java/ch/pizzalink/android/adapter/pager/OrderPagerAdapter.java create mode 100644 app/src/main/java/ch/pizzalink/android/adapter/recycler/PaymentMethodsRecyclerAdapter.java create mode 100644 app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingAddressesRecyclerAdapter.java create mode 100644 app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingMethodsRecyclerAdapter.java create mode 100644 app/src/main/java/ch/pizzalink/android/fragment/order/OrderResultFragment.java create mode 100644 app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.java create mode 100644 app/src/main/java/ch/pizzalink/android/fragment/order/PaymentMethodFragment.java create mode 100644 app/src/main/java/ch/pizzalink/android/fragment/order/ShippingAddressFragment.java create mode 100644 app/src/main/java/ch/pizzalink/android/fragment/order/ShippingMethodFragment.java create mode 100644 app/src/main/java/ch/pizzalink/android/model/AddressModel.java create mode 100644 app/src/main/java/ch/pizzalink/android/model/CreateOrderModel.java create mode 100644 app/src/main/java/ch/pizzalink/android/model/PaymentMethodModel.java create mode 100644 app/src/main/java/ch/pizzalink/android/model/ShippingMethodModel.java create mode 100644 app/src/main/java/ch/pizzalink/android/view/NoSwipeViewPager.java create mode 100644 app/src/main/res/layout/activity_order.xml create mode 100644 app/src/main/res/layout/fragment_order_result.xml create mode 100644 app/src/main/res/layout/fragment_order_summary.xml create mode 100644 app/src/main/res/layout/fragment_payment_method.xml create mode 100644 app/src/main/res/layout/fragment_shipping_address.xml create mode 100644 app/src/main/res/layout/fragment_shipping_method.xml create mode 100644 app/src/main/res/layout/row_payment_method.xml create mode 100644 app/src/main/res/layout/row_shipment_address.xml create mode 100644 app/src/main/res/layout/row_shipment_method.xml diff --git a/app/build.gradle b/app/build.gradle index cb0003f..cd01784 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,6 +46,7 @@ dependencies { compile 'com.github.HITGIF:TextFieldBoxes:1.3.3' compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.1.3' compile 'com.squareup.okhttp3:logging-interceptor:3.9.0' + compile 'com.github.badoualy:stepper-indicator:1.0.7' compile 'q.rorbin:badgeview:1.1.0' testCompile 'junit:junit:4.12' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a08c05c..b172af9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - @@ -20,10 +19,11 @@ - - - - + + + + + \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java index 3dfb6e7..20c6f96 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java @@ -52,6 +52,7 @@ public class MainActivity extends BaseActivity { private FragmentManager fragmentManager; private String currentFragmentName = ""; private int currentCategoryId = -1; + private boolean isStartWithOrderHistory; private ArrayList categoryList = new ArrayList<>(); private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter; private Badge badge; @@ -63,9 +64,14 @@ public class MainActivity extends BaseActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); + getDataFromIntent(); initViews(); } + private void getDataFromIntent(){ + isStartWithOrderHistory = getIntent().getBooleanExtra("isStartWithOrderHistory", false); + } + private void initViews(){ initNavigationDrawer(); initBottomNavigationView(); @@ -75,7 +81,12 @@ public class MainActivity extends BaseActivity { private void showStartScreen(){ fragmentManager = getSupportFragmentManager(); - openProductsScreen(categoryList.get(2)); + if(isStartWithOrderHistory){ + bottomNavigationView.setCurrentItem(2); + } + else { + openProductsScreen(categoryList.get(2)); + } } private void initBottomNavigationView(){ diff --git a/app/src/main/java/ch/pizzalink/android/activity/OrderActivity.java b/app/src/main/java/ch/pizzalink/android/activity/OrderActivity.java new file mode 100644 index 0000000..0260669 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/OrderActivity.java @@ -0,0 +1,138 @@ +package ch.pizzalink.android.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.support.v4.view.ViewPager; +import android.view.View; +import android.widget.TextView; + +import com.badoualy.stepperindicator.StepperIndicator; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import ch.pizzalink.android.R; +import ch.pizzalink.android.adapter.pager.OrderPagerAdapter; +import ch.pizzalink.android.fragment.order.OrderResultFragment; +import ch.pizzalink.android.fragment.order.OrderSummaryFragment; +import ch.pizzalink.android.fragment.order.PaymentMethodFragment; +import ch.pizzalink.android.fragment.order.ShippingAddressFragment; +import ch.pizzalink.android.fragment.order.ShippingMethodFragment; +import ch.pizzalink.android.helper.SharedPrefsHelper; +import ch.pizzalink.android.view.NoSwipeViewPager; +import ch.pizzalink.android.view.PizzalinkToolbar; + +public class OrderActivity extends BaseActivity { + + @BindView(R.id.orderToolbar) PizzalinkToolbar orderToolbar; + @BindView(R.id.stepperIndicator) StepperIndicator stepperIndicator; + @BindView(R.id.previousTextView) TextView previousTextView; + @BindView(R.id.nextTextView) TextView nextTextView; + + private FragmentManager fragmentManager; + private String currentFragmentName = ""; + private int currentPosition; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_order); + ButterKnife.bind(this); + initViews(); + } + + @OnClick({R.id.previousTextView, R.id.nextTextView}) + protected void onClick(View view){ + switch (view.getId()){ + case R.id.previousTextView: + if(currentPosition == 0){ + onBackPressed(); + break; + } + openFragment(--currentPosition); + break; + case R.id.nextTextView: + if(currentPosition == 4){ + Intent mainActivityIntent = new Intent(this, MainActivity.class); + mainActivityIntent.putExtra("isStartWithOrderHistory", true); + startActivity(mainActivityIntent); + SharedPrefsHelper.setCartItemCount(0); + finishAffinity(); + break; + } + openFragment(++currentPosition); + break; + + } + } + + private void initViews(){ + orderToolbar.setBackIconClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onBackPressed(); + } + }); + fragmentManager = getSupportFragmentManager(); + initStepIndicator(); + openFragment(0); + } + + private void initStepIndicator(){ + /* + 5 fragment var, ama sonuncu step'te tik göstersin diye step sayısını, fragment sayısı - 1 yaptık + */ + stepperIndicator.setStepCount(4); + /* + stepperIndicator.addOnStepClickListener(new StepperIndicator.OnStepClickListener() { + @Override + public void onStepClicked(int step) { + openFragment(step); + } + }); + */ + } + + private void openFragment(int position){ + switch (position){ + case 0: + fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer, + ShippingMethodFragment.newInstance()).commit(); + break; + case 1: + fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer, + ShippingAddressFragment.newInstance()).commit(); + break; + case 2: + fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer, + PaymentMethodFragment.newInstance()).commit(); + break; + case 3: + fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer, + OrderSummaryFragment.newInstance()).commit(); + break; + case 4: + fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer, + OrderResultFragment.newInstance()).commit(); + break; + } + stepperIndicator.setCurrentStep(position); + + } + + /* + private void initOrderViewPager(){ + orderPagerAdapter = new OrderPagerAdapter(getSupportFragmentManager()); + orderViewPager.setAdapter(orderPagerAdapter); + stepperIndicator.setViewPager(orderViewPager, true); + stepperIndicator.setCurrentStep(); + stepperIndicator.addOnStepClickListener(new StepperIndicator.OnStepClickListener() { + @Override + public void onStepClicked(int step) { + orderViewPager.setCurrentItem(step, true); + } + }); + } + */ +} diff --git a/app/src/main/java/ch/pizzalink/android/adapter/pager/OrderPagerAdapter.java b/app/src/main/java/ch/pizzalink/android/adapter/pager/OrderPagerAdapter.java new file mode 100644 index 0000000..3d1cd6c --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/adapter/pager/OrderPagerAdapter.java @@ -0,0 +1,52 @@ +package ch.pizzalink.android.adapter.pager; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import ch.pizzalink.android.fragment.order.OrderResultFragment; +import ch.pizzalink.android.fragment.order.OrderSummaryFragment; +import ch.pizzalink.android.fragment.order.PaymentMethodFragment; +import ch.pizzalink.android.fragment.order.ShippingAddressFragment; +import ch.pizzalink.android.fragment.order.ShippingMethodFragment; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class OrderPagerAdapter extends FragmentPagerAdapter { + + public OrderPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + switch (position){ + case 0: + return ShippingMethodFragment.newInstance(); + case 1: + return ShippingAddressFragment.newInstance(); + case 2: + return PaymentMethodFragment.newInstance(); + case 3: + return OrderSummaryFragment.newInstance(); + case 4: + return OrderResultFragment.newInstance(); + default: + return ShippingMethodFragment.newInstance(); + } + } + + @Override + public int getCount() { + return 5; + } + + /* + @Override + public CharSequence getPageTitle(int position) { + return "Page " + position; + } + */ +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/adapter/recycler/PaymentMethodsRecyclerAdapter.java b/app/src/main/java/ch/pizzalink/android/adapter/recycler/PaymentMethodsRecyclerAdapter.java new file mode 100644 index 0000000..83088df --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/adapter/recycler/PaymentMethodsRecyclerAdapter.java @@ -0,0 +1,119 @@ +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.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.PaymentMethodModel; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class PaymentMethodsRecyclerAdapter extends RecyclerView.Adapter{ + + private final int HOLDER_PAYMENT_METHOD = 0; + private final int HOLDER_SPACE = 1; + + private ArrayList paymentMethodList = new ArrayList<>(); + private RecyclerItemClickListener recyclerItemClickListener; + + public static class OrderViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.paymentMethodRadioButton) AppCompatRadioButton paymentMethodRadioButton; + + public OrderViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) { + super(view); + ButterKnife.bind(this, view); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(recyclerItemClickListener != null) + recyclerItemClickListener.onItemClick(view, getAdapterPosition()); + } + }); + } + } + + public static class SpaceViewHolder extends RecyclerView.ViewHolder{ + public SpaceViewHolder(final View view) { + super(view); + } + } + + @Override + public int getItemViewType(int position) { + + if(position == paymentMethodList.size()) + return HOLDER_SPACE; + + return HOLDER_PAYMENT_METHOD; + } + + public PaymentMethodsRecyclerAdapter(ArrayList paymentMethodList, + RecyclerItemClickListener recyclerItemClickListener){ + this.paymentMethodList = paymentMethodList; + 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_PAYMENT_METHOD: + view = inflater.inflate(R.layout.row_payment_method, 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_payment_method, 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_PAYMENT_METHOD : + OrderViewHolder orderViewHolder = (OrderViewHolder) holder; + orderViewHolder.paymentMethodRadioButton.setText(paymentMethodList.get(position).getName()); + orderViewHolder.paymentMethodRadioButton.setChecked(paymentMethodList.get(position).isSelected()); + break; + + case HOLDER_SPACE : + SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder; + break; + } + + } + + @Override + public int getItemCount() { + return paymentMethodList.size() + 1 ; + } + +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingAddressesRecyclerAdapter.java b/app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingAddressesRecyclerAdapter.java new file mode 100644 index 0000000..2b6dcaf --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingAddressesRecyclerAdapter.java @@ -0,0 +1,119 @@ +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.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 17/10/2017. + */ + +public class ShippingAddressesRecyclerAdapter extends RecyclerView.Adapter{ + + private final int HOLDER_SHIPPING_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.shipmentAddressRadioButton) AppCompatRadioButton shipmentAddressRadioButton; + + public OrderViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) { + super(view); + ButterKnife.bind(this, view); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(recyclerItemClickListener != null) + recyclerItemClickListener.onItemClick(view, 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_SHIPPING_ADDRESS; + } + + public ShippingAddressesRecyclerAdapter(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_SHIPPING_ADDRESS: + view = inflater.inflate(R.layout.row_shipment_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_shipment_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_SHIPPING_ADDRESS : + OrderViewHolder orderViewHolder = (OrderViewHolder) holder; + orderViewHolder.shipmentAddressRadioButton.setText(addressList.get(position).getAddress()); + orderViewHolder.shipmentAddressRadioButton.setChecked(addressList.get(position).isSelected()); + 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/adapter/recycler/ShippingMethodsRecyclerAdapter.java b/app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingMethodsRecyclerAdapter.java new file mode 100644 index 0000000..38fe98e --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/adapter/recycler/ShippingMethodsRecyclerAdapter.java @@ -0,0 +1,121 @@ +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.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.ShippingMethodModel; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class ShippingMethodsRecyclerAdapter extends RecyclerView.Adapter{ + + private final int HOLDER_SHIPPING_METHOD = 0; + private final int HOLDER_SPACE = 1; + + private ArrayList shippingMethodList = new ArrayList<>(); + private RecyclerItemClickListener recyclerItemClickListener; + + public static class OrderViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.shipmentMethodRadioButton) AppCompatRadioButton shipmentMethodRadioButton; + @BindView(R.id.shipmentMethodPriceTextView) TextView shipmentMethodPriceTextView; + + public OrderViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) { + super(view); + ButterKnife.bind(this, view); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(recyclerItemClickListener != null) + recyclerItemClickListener.onItemClick(view, getAdapterPosition()); + } + }); + } + } + + public static class SpaceViewHolder extends RecyclerView.ViewHolder{ + public SpaceViewHolder(final View view) { + super(view); + } + } + + @Override + public int getItemViewType(int position) { + + if(position == shippingMethodList.size()) + return HOLDER_SPACE; + + return HOLDER_SHIPPING_METHOD; + } + + public ShippingMethodsRecyclerAdapter(ArrayList shippingMethodList, + RecyclerItemClickListener recyclerItemClickListener){ + this.shippingMethodList = shippingMethodList; + 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_SHIPPING_METHOD: + view = inflater.inflate(R.layout.row_shipment_method, 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_shipment_method, 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_SHIPPING_METHOD : + OrderViewHolder orderViewHolder = (OrderViewHolder) holder; + orderViewHolder.shipmentMethodPriceTextView.setText(shippingMethodList.get(position).getPrice()); + orderViewHolder.shipmentMethodRadioButton.setText(shippingMethodList.get(position).getName()); + orderViewHolder.shipmentMethodRadioButton.setChecked(shippingMethodList.get(position).isSelected()); + break; + + case HOLDER_SPACE : + SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder; + break; + } + + } + + @Override + public int getItemCount() { + return shippingMethodList.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 0b4e27a..40e422f 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java @@ -14,8 +14,10 @@ public class ApiEndPoints { public static final String API_GET_CLEAR_CART = PREFIX + "clearBasket" + SUFFIX; public static final String API_GET_PRODUCTS_BY_CATEGORY = PREFIX + "getProductsByCategory" + SUFFIX; public static final String API_GET_PRODUCT = PREFIX + "getProduct" + SUFFIX; - //public static final String API_ADD_PRODUCTS_TO_BASKET = PREFIX + "addProductsToBasket" + SUFFIX + "&token=sor37aVmOYP1v4OxpCsv11w3DkeGDttB"; - //public static final String API_ADD_PRODUCTS_TO_BASKET = PREFIX + "addProductsToBasket" + SUFFIX; public static final String API_ADD_PRODUCTS_TO_BASKET = PREFIX + "addProductsToBasket" + SUFFIX + "&token="; + public static final String API_GET_SHIPPING_METHODS = PREFIX + "getShippingMethods" + SUFFIX; + public static final String API_GET_CUSTOMER_ADDRESSES = PREFIX + "getAddresses" + SUFFIX; + public static final String API_GET_PAYMENT_METHODS = PREFIX + "getPaymentMethods" + SUFFIX; + } 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 6a41da4..cc2760c 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java @@ -3,6 +3,9 @@ package ch.pizzalink.android.api; import java.util.HashMap; import ch.pizzalink.android.model.AddProductToBasketResponseModel; +import ch.pizzalink.android.model.AddressModel; +import ch.pizzalink.android.model.PaymentMethodModel; +import ch.pizzalink.android.model.ShippingMethodModel; import ch.pizzalink.android.model.cart.CartInfoModel; import ch.pizzalink.android.model.CategoryModel; import ch.pizzalink.android.model.OrderModel; @@ -77,5 +80,13 @@ public interface ApiInterface { @POST Call> addProductsToBasket(@Url String url, @FieldMap HashMap body); + @GET(ApiEndPoints.API_GET_SHIPPING_METHODS) + Call> getShippingMethods(@Query("token") String token); + + @GET(ApiEndPoints.API_GET_CUSTOMER_ADDRESSES) + Call> getCustomerAddresses(@Query("token") String token); + + @GET(ApiEndPoints.API_GET_PAYMENT_METHODS) + Call> getPaymentMethods(@Query("token") String token); } diff --git a/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java index bfa6015..234086c 100644 --- a/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java +++ b/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java @@ -1,5 +1,6 @@ package ch.pizzalink.android.fragment; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; @@ -25,6 +26,7 @@ import butterknife.OnClick; import ch.pizzalink.android.R; import ch.pizzalink.android.activity.BaseActivity; import ch.pizzalink.android.activity.MainActivity; +import ch.pizzalink.android.activity.OrderActivity; import ch.pizzalink.android.adapter.recycler.CartRecyclerAdapter; import ch.pizzalink.android.api.ApiErrorUtils; import ch.pizzalink.android.api.ApiService; @@ -105,6 +107,7 @@ public class CartFragment extends BaseFragment { }); break; case R.id.continueCartButton: + startActivity(new Intent(BaseActivity.currentActivity, OrderActivity.class)); break; } } diff --git a/app/src/main/java/ch/pizzalink/android/fragment/order/OrderResultFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/order/OrderResultFragment.java new file mode 100644 index 0000000..9e5cea4 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/fragment/order/OrderResultFragment.java @@ -0,0 +1,42 @@ +package ch.pizzalink.android.fragment.order; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import butterknife.BindString; +import butterknife.ButterKnife; +import ch.pizzalink.android.R; +import ch.pizzalink.android.fragment.BaseFragment; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class OrderResultFragment extends BaseFragment { + + public static final java.lang.String FRAGMENT_NAME = "orderResultFragment"; + + public OrderResultFragment() {} + + public static OrderResultFragment newInstance() { + return new OrderResultFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_order_result, container, false); + ButterKnife.bind(this, view); + initViews(); + return view; + } + + private void initViews(){ + } +} \ No newline at end of file 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 new file mode 100644 index 0000000..1a2834d --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/fragment/order/OrderSummaryFragment.java @@ -0,0 +1,42 @@ +package ch.pizzalink.android.fragment.order; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import butterknife.BindString; +import butterknife.ButterKnife; +import ch.pizzalink.android.R; +import ch.pizzalink.android.fragment.BaseFragment; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class OrderSummaryFragment extends BaseFragment { + + public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment"; + + public OrderSummaryFragment() {} + + public static OrderSummaryFragment newInstance() { + return new OrderSummaryFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_order_summary, container, false); + ButterKnife.bind(this, view); + initViews(); + return view; + } + + private void initViews(){ + } +} diff --git a/app/src/main/java/ch/pizzalink/android/fragment/order/PaymentMethodFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/order/PaymentMethodFragment.java new file mode 100644 index 0000000..c44d0e3 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/fragment/order/PaymentMethodFragment.java @@ -0,0 +1,124 @@ +package ch.pizzalink.android.fragment.order; + +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; + +import butterknife.BindString; +import butterknife.BindView; +import butterknife.ButterKnife; +import ch.pizzalink.android.R; +import ch.pizzalink.android.activity.BaseActivity; +import ch.pizzalink.android.adapter.recycler.PaymentMethodsRecyclerAdapter; +import ch.pizzalink.android.api.ApiErrorUtils; +import ch.pizzalink.android.api.ApiService; +import ch.pizzalink.android.api.ResponseArray; +import ch.pizzalink.android.fragment.BaseFragment; +import ch.pizzalink.android.helper.DialogHelper; +import ch.pizzalink.android.helper.SessionHelper; +import ch.pizzalink.android.interfaces.RecyclerItemClickListener; +import ch.pizzalink.android.model.PaymentMethodModel; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class PaymentMethodFragment extends BaseFragment { + + @BindView(R.id.paymentMethodsRecyclerView) RecyclerView paymentMethodsRecyclerView; + + private ArrayList paymentMethodList = new ArrayList<>(); + private PaymentMethodsRecyclerAdapter paymentMethodsRecyclerAdapter; + + public static final java.lang.String FRAGMENT_NAME = "paymentMethodFragment"; + + public PaymentMethodFragment() {} + + public static PaymentMethodFragment newInstance() { + return new PaymentMethodFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_payment_method, container, false); + ButterKnife.bind(this, view); + initViews(); + //getPaymentMethods(); + createSamplePaymentModels(); + return view; + } + + private void initViews(){ + initRecyclerView(); + } + + private void getPaymentMethods(){ + DialogHelper.showLoadingDialog(); + Call> call = ApiService.apiInterface.getPaymentMethods( + 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 paymentMethodModels){ + PaymentMethodModel.checkNull(paymentMethodModels); + paymentMethodList.clear(); + paymentMethodList.addAll(paymentMethodModels); + paymentMethodsRecyclerAdapter.notifyDataSetChanged(); + } + + private void initRecyclerView(){ + paymentMethodsRecyclerAdapter = new PaymentMethodsRecyclerAdapter(paymentMethodList, new RecyclerItemClickListener() { + @Override + public void onItemClick(View view, int position) { + for (PaymentMethodModel paymentMethodModel : paymentMethodList){ + paymentMethodModel.setSelected(false); + } + paymentMethodList.get(position).setSelected(true); + paymentMethodsRecyclerAdapter.notifyDataSetChanged(); + } + }); + LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity); + paymentMethodsRecyclerView.setLayoutManager(layoutManager); + paymentMethodsRecyclerView.setAdapter(paymentMethodsRecyclerAdapter); + } + + private void createSamplePaymentModels(){ + paymentMethodList.add(new PaymentMethodModel("Kapıda Ödeme")); + paymentMethodList.add(new PaymentMethodModel("Havale")); + paymentMethodList.add(new PaymentMethodModel("Kredi Kartı")); + paymentMethodList.add(new PaymentMethodModel("Banka kartı")); + paymentMethodsRecyclerAdapter.notifyDataSetChanged(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingAddressFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingAddressFragment.java new file mode 100644 index 0000000..118059e --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingAddressFragment.java @@ -0,0 +1,114 @@ +package ch.pizzalink.android.fragment.order; + +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; + +import butterknife.BindView; +import butterknife.ButterKnife; +import ch.pizzalink.android.R; +import ch.pizzalink.android.activity.BaseActivity; +import ch.pizzalink.android.adapter.recycler.ShippingAddressesRecyclerAdapter; +import ch.pizzalink.android.api.ApiErrorUtils; +import ch.pizzalink.android.api.ApiService; +import ch.pizzalink.android.api.ResponseArray; +import ch.pizzalink.android.fragment.BaseFragment; +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 retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class ShippingAddressFragment extends BaseFragment { + + @BindView(R.id.shippingAddressesRecyclerView) RecyclerView shippingAddressesRecyclerView; + + private ArrayList addressList = new ArrayList<>(); + private ShippingAddressesRecyclerAdapter shippingAddressesRecyclerAdapter; + + public static final java.lang.String FRAGMENT_NAME = "shippingAddressMethod"; + + public ShippingAddressFragment() {} + + public static ShippingAddressFragment newInstance() { + return new ShippingAddressFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_shipping_address, container, false); + ButterKnife.bind(this, view); + initViews(); + getCustomerShippingAddresses(); + return view; + } + + private void initViews(){ + initRecyclerView(); + } + + private void getCustomerShippingAddresses(){ + 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); + shippingAddressesRecyclerAdapter.notifyDataSetChanged(); + } + + private void initRecyclerView(){ + shippingAddressesRecyclerAdapter = new ShippingAddressesRecyclerAdapter(addressList, new RecyclerItemClickListener() { + @Override + public void onItemClick(View view, int position) { + for(AddressModel addressModel : addressList){ + addressModel.setSelected(false); + } + addressList.get(position).setSelected(true); + shippingAddressesRecyclerAdapter.notifyDataSetChanged(); + } + }); + LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity); + shippingAddressesRecyclerView.setLayoutManager(layoutManager); + shippingAddressesRecyclerView.setAdapter(shippingAddressesRecyclerAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingMethodFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingMethodFragment.java new file mode 100644 index 0000000..1d89e05 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/fragment/order/ShippingMethodFragment.java @@ -0,0 +1,122 @@ +package ch.pizzalink.android.fragment.order; + +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import java.util.ArrayList; + +import butterknife.BindString; +import butterknife.BindView; +import butterknife.ButterKnife; +import ch.pizzalink.android.R; +import ch.pizzalink.android.activity.BaseActivity; +import ch.pizzalink.android.adapter.recycler.ShippingMethodsRecyclerAdapter; +import ch.pizzalink.android.api.ApiErrorUtils; +import ch.pizzalink.android.api.ApiService; +import ch.pizzalink.android.api.ResponseArray; +import ch.pizzalink.android.fragment.BaseFragment; +import ch.pizzalink.android.helper.DialogHelper; +import ch.pizzalink.android.helper.SessionHelper; +import ch.pizzalink.android.interfaces.RecyclerItemClickListener; +import ch.pizzalink.android.model.ShippingMethodModel; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class ShippingMethodFragment extends BaseFragment { + + @BindView(R.id.shippingMethodsRecyclerView) RecyclerView shippingMethodsRecyclerView; + + private ArrayList shippingMethodList = new ArrayList<>(); + private ShippingMethodsRecyclerAdapter shippingMethodsRecyclerAdapter; + + public static final java.lang.String FRAGMENT_NAME = "shippingMethodFragment"; + + public ShippingMethodFragment() {} + + public static ShippingMethodFragment newInstance() { + return new ShippingMethodFragment(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_shipping_method, container, false); + ButterKnife.bind(this, view); + initViews(); + //getShippingMethods(); + createSampleShippingMethods(); + return view; + } + + private void initViews(){ + initRecyclerView(); + } + + private void getShippingMethods(){ + DialogHelper.showLoadingDialog(); + Call> call = ApiService.apiInterface.getShippingMethods( + 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 shippingMethodModels){ + ShippingMethodModel.checkNull(shippingMethodModels); + shippingMethodList.clear(); + shippingMethodList.addAll(shippingMethodModels); + shippingMethodsRecyclerAdapter.notifyDataSetChanged(); + } + + private void initRecyclerView(){ + shippingMethodsRecyclerAdapter = new ShippingMethodsRecyclerAdapter(shippingMethodList, new RecyclerItemClickListener() { + @Override + public void onItemClick(View view, int position) { + for(ShippingMethodModel shippingMethodModel : shippingMethodList){ + shippingMethodModel.setSelected(false); + } + shippingMethodList.get(position).setSelected(true); + shippingMethodsRecyclerAdapter.notifyDataSetChanged(); + } + }); + LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity); + shippingMethodsRecyclerView.setLayoutManager(layoutManager); + shippingMethodsRecyclerView.setAdapter(shippingMethodsRecyclerAdapter); + } + + private void createSampleShippingMethods(){ + shippingMethodList.add(new ShippingMethodModel("Gel al", "CHF 0.00")); + shippingMethodList.add(new ShippingMethodModel("Kapına gelsin", "CHF 5.00")); + shippingMethodsRecyclerAdapter.notifyDataSetChanged(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/model/AddressModel.java b/app/src/main/java/ch/pizzalink/android/model/AddressModel.java new file mode 100644 index 0000000..6678308 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/model/AddressModel.java @@ -0,0 +1,59 @@ +package ch.pizzalink.android.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.ArrayList; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class AddressModel { + + @Expose + @SerializedName("address_id") + private String id; + + private String address; + private boolean isSelected; + + private void checkNull(){ + + if(id == null) + id = ""; + + if(address == null) + address = ""; + } + + public static void checkNull(ArrayList addressModelList){ + for(AddressModel addressModel : addressModelList){ + addressModel.checkNull(); + } + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean selected) { + isSelected = selected; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/model/CreateOrderModel.java b/app/src/main/java/ch/pizzalink/android/model/CreateOrderModel.java new file mode 100644 index 0000000..f672b58 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/model/CreateOrderModel.java @@ -0,0 +1,8 @@ +package ch.pizzalink.android.model; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class CreateOrderModel { +} diff --git a/app/src/main/java/ch/pizzalink/android/model/PaymentMethodModel.java b/app/src/main/java/ch/pizzalink/android/model/PaymentMethodModel.java new file mode 100644 index 0000000..a157fc6 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/model/PaymentMethodModel.java @@ -0,0 +1,52 @@ +package ch.pizzalink.android.model; + +import java.util.ArrayList; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class PaymentMethodModel { + + private String id; + private String name; + private boolean isSelected; + + public PaymentMethodModel(String name) { + this.name = name; + } + + private void checkNull(){ + + } + + public static void checkNull(ArrayList paymentMethodList){ + for(PaymentMethodModel paymentMethodModel : paymentMethodList){ + paymentMethodModel.checkNull(); + } + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean selected) { + isSelected = selected; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/model/ShippingMethodModel.java b/app/src/main/java/ch/pizzalink/android/model/ShippingMethodModel.java new file mode 100644 index 0000000..ec66810 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/model/ShippingMethodModel.java @@ -0,0 +1,53 @@ +package ch.pizzalink.android.model; + +import java.util.ArrayList; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class ShippingMethodModel { + + private String name; + private String price; + private boolean isSelected; + + public ShippingMethodModel(String name, String price) { + this.name = name; + this.price = price; + } + + private void checkNull(){ + + } + + public static void checkNull(ArrayList shippingMethodList){ + for(ShippingMethodModel shippingMethodModel : shippingMethodList){ + shippingMethodModel.checkNull(); + } + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public boolean isSelected() { + return isSelected; + } + + public void setSelected(boolean selected) { + isSelected = selected; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/view/NoSwipeViewPager.java b/app/src/main/java/ch/pizzalink/android/view/NoSwipeViewPager.java new file mode 100644 index 0000000..142d872 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/view/NoSwipeViewPager.java @@ -0,0 +1,47 @@ +package ch.pizzalink.android.view; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +/** + * Created by cimenmus on 17/10/2017. + */ + +public class NoSwipeViewPager extends ViewPager { + + private boolean enabled; + + public NoSwipeViewPager(Context context, AttributeSet attrs) { + super(context, attrs); + this.enabled = false; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (this.enabled) { + return super.onTouchEvent(event); + } + + return false; + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent event) { + if (this.enabled) { + return super.onInterceptTouchEvent(event); + } + + return false; + } + + public void setPagingEnabled(boolean enabled) { + this.enabled = enabled; + } + + @Override + public boolean canScrollHorizontally(int direction) { + return false; + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_order.xml b/app/src/main/res/layout/activity_order.xml new file mode 100644 index 0000000..aea5c41 --- /dev/null +++ b/app/src/main/res/layout/activity_order.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_order_result.xml b/app/src/main/res/layout/fragment_order_result.xml new file mode 100644 index 0000000..51fd1f0 --- /dev/null +++ b/app/src/main/res/layout/fragment_order_result.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_order_summary.xml b/app/src/main/res/layout/fragment_order_summary.xml new file mode 100644 index 0000000..7683b08 --- /dev/null +++ b/app/src/main/res/layout/fragment_order_summary.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_payment_method.xml b/app/src/main/res/layout/fragment_payment_method.xml new file mode 100644 index 0000000..9d799e8 --- /dev/null +++ b/app/src/main/res/layout/fragment_payment_method.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shipping_address.xml b/app/src/main/res/layout/fragment_shipping_address.xml new file mode 100644 index 0000000..9ae70f6 --- /dev/null +++ b/app/src/main/res/layout/fragment_shipping_address.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shipping_method.xml b/app/src/main/res/layout/fragment_shipping_method.xml new file mode 100644 index 0000000..89371c2 --- /dev/null +++ b/app/src/main/res/layout/fragment_shipping_method.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_payment_method.xml b/app/src/main/res/layout/row_payment_method.xml new file mode 100644 index 0000000..c650b71 --- /dev/null +++ b/app/src/main/res/layout/row_payment_method.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_shipment_address.xml b/app/src/main/res/layout/row_shipment_address.xml new file mode 100644 index 0000000..d1e794b --- /dev/null +++ b/app/src/main/res/layout/row_shipment_address.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_shipment_method.xml b/app/src/main/res/layout/row_shipment_method.xml new file mode 100644 index 0000000..e8d8401 --- /dev/null +++ b/app/src/main/res/layout/row_shipment_method.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + \ 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 120e3ba..98c9331 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -121,5 +121,17 @@ is not selected. Sepetinizdeki ürünleri silmek istediğinize emin misiniz? + Sipariş Ver + + NEXT + PREVIOUS + + + Shipping Method + Shipping Address + Payment Method + Summary + +