initial commit

This commit is contained in:
2020-11-13 19:10:03 +03:00
parent b9397f117e
commit b96a56a7e3
151 changed files with 751 additions and 745 deletions

View File

@@ -0,0 +1,305 @@
package ch.pizzalemon.android.activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.FragmentManager;
import androidx.cardview.widget.CardView;
import android.view.View;
import android.webkit.WebView;
import com.badoualy.stepperindicator.StepperIndicator;
import com.braintreepayments.api.dropin.utils.PaymentMethodType;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import ch.pizzalemon.android.R;
import ch.pizzalemon.android.api.ApiConstants;
import ch.pizzalemon.android.fragment.createOrder.CreateOrderNoteFragment;
import ch.pizzalemon.android.fragment.createOrder.CreateOrderResultFragment;
import ch.pizzalemon.android.fragment.createOrder.CreateOrderSummaryFragment;
import ch.pizzalemon.android.fragment.createOrder.PaymentMethodFragment;
import ch.pizzalemon.android.fragment.createOrder.ShippingAddressFragment;
import ch.pizzalemon.android.fragment.createOrder.ShippingMethodFragment;
import ch.pizzalemon.android.helper.SharedPrefsHelper;
import ch.pizzalemon.android.model.AddressModel;
import ch.pizzalemon.android.model.PaymentMethodModel;
import ch.pizzalemon.android.model.ShippingMethodModel;
import ch.pizzalemon.android.model.cart.CartInfoModel;
public class CreateOrderActivity extends BaseActivity {
@BindView(R.id.createOrderCardView) CardView createOrderCardView;
@BindView(R.id.paymentWebView) WebView paymentWebView;
@BindView(R.id.stepperIndicator) StepperIndicator stepperIndicator;
private FragmentManager fragmentManager;
private CartInfoModel cartInfoModel;
private ShippingMethodModel selectedShippingMethod;
private AddressModel selectedShippingAddress;
private PaymentMethodModel selectedPaymentMethod;
private Boolean slicePizza;
private String orderNote;
private String discountAmount;
private String couponCode;
private ArrayList<PaymentMethodModel> paymentMethodList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_order);
ButterKnife.bind(this);
getDataFromIntent();
initViews();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
private void getDataFromIntent(){
cartInfoModel = (CartInfoModel) getIntent().getSerializableExtra("cartInfoModel");
}
private void initViews(){
fragmentManager = getSupportFragmentManager();
initStepIndicator();
openFragment(0);
}
private void initStepIndicator(){
/*
6 fragment var, ama sonuncu step'te tik göstersin diye step sayısını, fragment sayısı - 1 yaptık
*/
stepperIndicator.setStepCount(5);
/*
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,
CreateOrderNoteFragment.newInstance()).commit();
break;
case 4:
fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer,
CreateOrderSummaryFragment.newInstance()).commit();
break;
case 5:
fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer,
CreateOrderResultFragment.newInstance()).commit();
break;
}
stepperIndicator.setCurrentStep(position);
}
public void onNextClicked(String clickedFragmentName){
switch (clickedFragmentName){
case ShippingMethodFragment.FRAGMENT_NAME:
openFragment(1);
break;
case ShippingAddressFragment.FRAGMENT_NAME:
openFragment(2);
break;
case PaymentMethodFragment.FRAGMENT_NAME:
openFragment(3);
break;
case CreateOrderNoteFragment.FRAGMENT_NAME:
openFragment(4);
break;
case CreateOrderSummaryFragment.FRAGMENT_NAME:
openFragment(5);
break;
case CreateOrderResultFragment.FRAGMENT_NAME:
Intent mainActivityIntent = new Intent(this, MainActivity.class);
mainActivityIntent.putExtra("isStartWithOrderHistory", true);
startActivity(mainActivityIntent);
SharedPrefsHelper.setCartItemCount(0);
SharedPrefsHelper.setCartTotalPrice("0");
finishAffinity();
break;
}
}
public void onPreviousClicked(String clickedFragmentName){
switch (clickedFragmentName){
case ShippingAddressFragment.FRAGMENT_NAME:
openFragment(0);
break;
case PaymentMethodFragment.FRAGMENT_NAME:
openFragment(1);
break;
case CreateOrderNoteFragment.FRAGMENT_NAME:
openFragment(2);
break;
case CreateOrderSummaryFragment.FRAGMENT_NAME:
openFragment(3);
break;
}
}
public CartInfoModel getCartInfo(){
return cartInfoModel;
}
/**
* Kampanya urunu detay sayfasında urunun fiyatı 0 olan tum optionlarını seçiyor,
* bunun da düzeltilmesi gerekiyor!!
*/
/**
* eğer kampanya kullanıldıysa cartInfoModel de isPizzapassCampaignUsed
* alanalrını true olarak set ediyoruz. create order ekranlarında herhangi bir yerde sepet sorgusu yapınca
* buradaki cartInfoModel i de güncelliyoruz. fakat isPizzapassCampaignUsed alanları
* servisten gelmeyen değerler, bizim loaklde tuttuğumuz değişkenler. bu sebeple bu alanlar servisten hep false geliyor,
* buradakinde true olsa bile değişkeni guncellediğimiz için bu alanlar kayboluyor. bunu engellemek için bu metodu yazdım.
*/
public void setCartInfoSafeForCampaigns(CartInfoModel cartInfoModel) {
cartInfoModel.setPizzapassCampaignUsed(this.cartInfoModel.isPizzapassCampaignUsed());
this.cartInfoModel = cartInfoModel;
}
/*
public void setCartInfo(CartInfoModel cartInfoModel) {
this.cartInfoModel = cartInfoModel;
}
*/
public ShippingMethodModel getSelectedShippingMethod(){
return selectedShippingMethod;
}
public void setSelectedShippingMethod(ShippingMethodModel selectedShippingMethod){
this.selectedShippingMethod = selectedShippingMethod;
}
public AddressModel getSelectedShippingAddress(){
return selectedShippingAddress;
}
public void setSelectedShippingAddress(AddressModel selectedShippingAddress){
this.selectedShippingAddress = selectedShippingAddress;
}
public PaymentMethodModel getSelectedPaymentMethod(){
return selectedPaymentMethod;
}
public void setSelectedPaymentMethod(PaymentMethodModel selectedPaymentMethod){
this.selectedPaymentMethod = selectedPaymentMethod;
}
public void setSelectedPaymentMethodForBraintree(PaymentMethodType paymentMethodType){
String paymentMethodCode = "";
switch (paymentMethodType){
case PAYPAL:
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_PAYPAL;
break;
case ANDROID_PAY:
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_ANDROID_PAY;
break;
default:
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_CREDIT_DEBIT_CARD;
break;
}
for(PaymentMethodModel paymentMethodModel : paymentMethodList){
if(paymentMethodModel.getCode().equalsIgnoreCase(paymentMethodCode)){
selectedPaymentMethod = paymentMethodModel;
break;
}
}
}
public String getOrderNote(){
if(orderNote == null)
orderNote = "";
return orderNote;
}
public void setPaymentWebViewVisibility(final boolean show){
if(show){
createOrderCardView.setVisibility(View.GONE);
paymentWebView.setVisibility(View.VISIBLE);
}
else {
createOrderCardView.setVisibility(View.VISIBLE);
paymentWebView.setVisibility(View.GONE);
}
}
/*
@Override
public void onBackPressed() {
if(paymentWebView.getVisibility() == View.VISIBLE){
if(paymentWebView.canGoBack()){
paymentWebView.goBack();
}
else{
setPaymentWebViewVisibility(false);
}
}
else{
super.onBackPressed();
}
}
*/
public void setOrderNote(String orderNote){
this.orderNote = orderNote;
}
public Boolean getSlicePizza() {
return slicePizza;
}
public void setSlicePizza(Boolean slicePizza) {
this.slicePizza = slicePizza;
}
public String getDiscountAmount() {
return discountAmount;
}
public void setDiscountAmount(String discountAmount) {
this.discountAmount = discountAmount;
}
public String getCouponCode() {
return couponCode;
}
public void setCouponCode(String couponCode) {
this.couponCode = couponCode;
}
public void setPaymentMethodList(ArrayList<PaymentMethodModel> paymentMethodList) {
this.paymentMethodList = paymentMethodList;
}
public WebView getPaymentWebView() {
return paymentWebView;
}
}