Browse Source

Pre selected coupon added

master
Preyea Regmi 4 years ago
parent
commit
752580be34
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 3
      .idea/gradle.xml
  3. 1
      app/build.gradle
  4. 25
      app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java
  5. 32
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java
  6. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java
  7. 45
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java
  8. 9
      app/src/main/res/layout/activity_send_money_v2_transaction_complete.xml

BIN
.idea/caches/build_file_checksums.ser

3
.idea/gradle.xml

@ -4,9 +4,6 @@
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<compositeConfiguration>
<compositeBuild compositeDefinitionSource="SCRIPT" />
</compositeConfiguration>
<option name="delegatedBuild" value="false" /> <option name="delegatedBuild" value="false" />
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />

1
app/build.gradle

@ -159,6 +159,7 @@ dependencies {
implementation 'com.patloew.rxlocation:rxlocation:1.0.5' implementation 'com.patloew.rxlocation:rxlocation:1.0.5'
implementation 'com.google.android.gms:play-services-location:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.github.tbruyelle:rxpermissions:0.10.2' implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
implementation 'joda-time:joda-time:2.10.6'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'

25
app/src/main/java/com/gmeremit/online/gmeremittance_native/couponV2/model/CouponDTO.java

@ -3,7 +3,10 @@ package com.gmeremit.online.gmeremittance_native.couponV2.model;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
public class CouponDTO {
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
public class CouponDTO implements Comparable<CouponDTO> {
@SerializedName("discountType") @SerializedName("discountType")
@Expose @Expose
private String discountType; private String discountType;
@ -91,4 +94,24 @@ public class CouponDTO {
this.couponType = couponType; this.couponType = couponType;
this.discountValue = discountValue; this.discountValue = discountValue;
} }
private DateTime getComparingDate() {
return DateTime.parse(expireDate, DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss a"));
}
@Override
public int compareTo(CouponDTO o) {
if (getComparingDate().isAfter(o.getComparingDate()))
return 1;
if (getComparingDate().isEqual(o.getComparingDate()))
return 0;
if (getComparingDate().isBefore(o.getComparingDate()))
return -1;
return 0;
}
} }

32
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2Presenter.java

@ -1,8 +1,11 @@
package com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter; package com.gmeremit.online.gmeremittance_native.sendmoneyV2.presenter;
import android.util.Log;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.crashlytics.android.Crashlytics;
import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.AutoDebitAccount; import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.AutoDebitAccount;
import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.WebRequestModel; import com.gmeremit.online.gmeremittance_native.accountmanage.model.accountlisting.WebRequestModel;
@ -39,6 +42,7 @@ import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
@ -70,6 +74,7 @@ public class SendMoneyV2Presenter extends BaseViewModel implements SendMoneyV2Pr
private MutableLiveData<ExchangeCalculationModel> exchangeCalculationModelMutableLiveData; private MutableLiveData<ExchangeCalculationModel> exchangeCalculationModelMutableLiveData;
private MutableLiveData<Integer> exchangeRateCouponResetActionLiveData; private MutableLiveData<Integer> exchangeRateCouponResetActionLiveData;
private MutableLiveData<Boolean> exchangeRateCouponViewRequiredLiveData; private MutableLiveData<Boolean> exchangeRateCouponViewRequiredLiveData;
private MutableLiveData<AmountDetailSendMoneyFragment.CouponDetailViewDTO> couponSelectionLiveData;
private long countDownRemainingValue; private long countDownRemainingValue;
@ -90,6 +95,7 @@ public class SendMoneyV2Presenter extends BaseViewModel implements SendMoneyV2Pr
exchangeCalculationModelMutableLiveData = null; exchangeCalculationModelMutableLiveData = null;
exchangeRateCouponResetActionLiveData = new MutableLiveData<>(); exchangeRateCouponResetActionLiveData = new MutableLiveData<>();
exchangeRateCouponViewRequiredLiveData = new MutableLiveData<>(); exchangeRateCouponViewRequiredLiveData = new MutableLiveData<>();
couponSelectionLiveData = new MutableLiveData<>();
} }
@ -265,9 +271,25 @@ public class SendMoneyV2Presenter extends BaseViewModel implements SendMoneyV2Pr
} }
@Override @Override
public AmountDetailSendMoneyFragment.CouponDetailViewDTO onCouponSelected(CouponDTO selectedCoupon) {
public void onCouponSelected(CouponDTO selectedCoupon) {
this.selectedCoupon = selectedCoupon; this.selectedCoupon = selectedCoupon;
return calculateNetAppliedAmount();
couponSelectionLiveData.setValue(calculateNetAppliedAmount());
}
private void preSelectDefaultCouponIfAvailable() {
if (couponList == null || couponList.size() == 1)
return;
try {
List<CouponDTO> sortedCouponList = couponList.subList(1, couponList.size());
Collections.sort(sortedCouponList);
onCouponSelected(sortedCouponList.get(0));
}
catch (Exception e)
{
}
} }
private AmountDetailSendMoneyFragment.CouponDetailViewDTO calculateNetAppliedAmount() { private AmountDetailSendMoneyFragment.CouponDetailViewDTO calculateNetAppliedAmount() {
@ -517,6 +539,11 @@ public class SendMoneyV2Presenter extends BaseViewModel implements SendMoneyV2Pr
return exchangeRateCouponViewRequiredLiveData; return exchangeRateCouponViewRequiredLiveData;
} }
@Override
public LiveData<AmountDetailSendMoneyFragment.CouponDetailViewDTO> subscribeToCouponSelectedEvent() {
return couponSelectionLiveData;
}
private void resetCouponData() { private void resetCouponData() {
selectedCoupon = null; selectedCoupon = null;
exchangeRateCouponResetActionLiveData.setValue(couponList != null ? couponList.size() - 1 : 0); exchangeRateCouponResetActionLiveData.setValue(couponList != null ? couponList.size() - 1 : 0);
@ -538,6 +565,7 @@ public class SendMoneyV2Presenter extends BaseViewModel implements SendMoneyV2Pr
currentExchangeCalcResult = exchangeCalculationApiResponse.getData(); currentExchangeCalcResult = exchangeCalculationApiResponse.getData();
exchangeCalculationModelMutableLiveData.setValue(exchangeCalculationApiResponse.getData()); exchangeCalculationModelMutableLiveData.setValue(exchangeCalculationApiResponse.getData());
showCouponRelatedData(true); showCouponRelatedData(true);
preSelectDefaultCouponIfAvailable();
} else { } else {
view.showPopUpMessage(exchangeCalculationApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, null); view.showPopUpMessage(exchangeCalculationApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
showCouponRelatedData(false); showCouponRelatedData(false);

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/presenter/SendMoneyV2PresenterInterface.java

@ -37,6 +37,7 @@ public interface SendMoneyV2PresenterInterface extends BasePresenterInterface {
LiveData<ExchangeCalculationModel> subscribeToExRateData(); LiveData<ExchangeCalculationModel> subscribeToExRateData();
LiveData<Integer> subscribeToExRateCouponAvailableEvent(); LiveData<Integer> subscribeToExRateCouponAvailableEvent();
LiveData<Boolean> subscribeToExRateCouponRequireEvent(); LiveData<Boolean> subscribeToExRateCouponRequireEvent();
LiveData<AmountDetailSendMoneyFragment.CouponDetailViewDTO> subscribeToCouponSelectedEvent();
void clearPaymentData(); void clearPaymentData();
@ -69,7 +70,7 @@ public interface SendMoneyV2PresenterInterface extends BasePresenterInterface {
ArrayList<CouponDTO> getCouponList(); ArrayList<CouponDTO> getCouponList();
AmountDetailSendMoneyFragment.CouponDetailViewDTO onCouponSelected(CouponDTO coupon);
void onCouponSelected(CouponDTO coupon);
int getSelectedCouponIndex(); int getSelectedCouponIndex();
WebRequestModel getWebRequestDataForFraudWarning(); WebRequestModel getWebRequestDataForFraudWarning();

45
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/amountdetail/AmountDetailSendMoneyFragment.java

@ -260,7 +260,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
(ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).subscribeToExRateCouponAvailableEvent().observe(getViewLifecycleOwner(), this::resetCouponView); (ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).subscribeToExRateCouponAvailableEvent().observe(getViewLifecycleOwner(), this::resetCouponView);
(ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).subscribeToExRateCouponRequireEvent().observe(getViewLifecycleOwner(), this::showCouponRelatedView); (ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).subscribeToExRateCouponRequireEvent().observe(getViewLifecycleOwner(), this::showCouponRelatedView);
(ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).subscribeToCouponSelectedEvent().observe(getViewLifecycleOwner(), this::showCoupon);
viewmodel.getCouponRelatedData(); viewmodel.getCouponRelatedData();
} }
@ -416,46 +416,6 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
return false; return false;
} }
// private void showCoupon(String discountValue, String discountType, String schemeId, String discountPercent, String couponName, String appliedAmount) {
//
// if (couponName == null)
// couponName = "";
//
// if (discountPercent == null)
// discountPercent = "0";
//
// String couponString = "";
// if (schemeId == null || schemeId.length() < 1) {
// couponString = "0";
// hideAppliedAmountView(true);
// } else {
// String appliedAmountString = getContext().getString(R.string.applied_amount_text).replaceAll(" ", "\n");
// gmeCouponAppliedAmountTxt.setText(appliedAmountString);
// gmeCouponAppliedAmountValueTxt.setText(appliedAmount);
//
// String formattedDiscountValue = Utils.formatCurrencyWithoutTruncatingDecimal(discountValue);
//
// //Percent type discount
// if (discountType != null && discountType.equalsIgnoreCase("1")) {
// if ("0".equalsIgnoreCase(formattedDiscountValue))
// couponString = couponName + " " + discountPercent + "% (" + formattedDiscountValue + "KRW)";
// else
// couponString = couponName + " " + discountPercent + "% (-" + formattedDiscountValue + "KRW)";
// }
// //Value type discount
// else {
// if ("0".equalsIgnoreCase(formattedDiscountValue))
// couponString = couponName + " (" + formattedDiscountValue + " KRW)";
// else
// couponString = couponName + " (-" + formattedDiscountValue + " KRW)";
// }
// hideAppliedAmountView(false);
// }
// gmeCouponTxt.setText(couponString);
//
// couponViewContainer.setVisibility(View.VISIBLE);
// }
//
private void hideAppliedAmountView(boolean action) { private void hideAppliedAmountView(boolean action) {
TransitionManager.beginDelayedTransition(couponViewContainer); TransitionManager.beginDelayedTransition(couponViewContainer);
if (action) { if (action) {
@ -475,8 +435,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
CouponListBottomSheetDialog.showCouponList(objectList,currentSelectedIndex, new CouponListAdapter.CouponOnClickListener() { CouponListBottomSheetDialog.showCouponList(objectList,currentSelectedIndex, new CouponListAdapter.CouponOnClickListener() {
@Override @Override
public void onCouponClicked(CouponDTO coupon) { public void onCouponClicked(CouponDTO coupon) {
CouponDetailViewDTO couponDetail = (ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).onCouponSelected(coupon);
showCoupon(couponDetail);
(ViewModelProviders.of(getActivity()).get(SendMoneyV2Presenter.class)).onCouponSelected(coupon);
} }
@Override @Override

9
app/src/main/res/layout/activity_send_money_v2_transaction_complete.xml

@ -541,7 +541,7 @@
android:layout_below="@id/service_fee_layout" android:layout_below="@id/service_fee_layout"
android:background="@color/gray" /> android:background="@color/gray" />
<RelativeLayout
<LinearLayout
android:id="@+id/coupon_fee_layout" android:id="@+id/coupon_fee_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -557,14 +557,15 @@
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView <com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView
android:id="@+id/tv_coupon" android:id="@+id/tv_coupon"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="end"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="@dimen/_8sdp" android:padding="@dimen/_8sdp"
android:textColor="@color/darkgray" android:textColor="@color/darkgray"
android:textSize="@dimen/_11ssp" android:textSize="@dimen/_11ssp"
app:txtfontName="@string/semibold" /> app:txtfontName="@string/semibold" />
</RelativeLayout>
</LinearLayout>
<!----> <!---->
<View <View
android:id="@+id/exrate_divider" android:id="@+id/exrate_divider"

Loading…
Cancel
Save