From f575b3adaf253bd22c0e3745e28891d9a0778d9f Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Thu, 31 Oct 2019 17:04:32 +0545 Subject: [PATCH] Local topup setup done --- .idea/caches/build_file_checksums.ser | Bin 662 -> 662 bytes app/src/main/AndroidManifest.xml | 14 +- .../homeV2/view/HomeActivityV2.java | 4 +- .../RewardListingV2Presenter.java | 22 +-- .../presenter/SplashScreenPresenter.java | 13 +- .../splash_screen/view/SplashScreen.java | 2 +- .../LocalTopUpServiceViewPagerAdapter.java | 35 +++++ .../local/gateway/LocalTopUpGateway.java | 21 +++ .../topup/local/model/ButtonsGrid.java | 19 +++ .../topup/local/model/CardInfoDTO.java | 65 +++++++++ .../local/model/LocalTopUpResponseDTO.java | 64 +++++++++ .../topup/local/model/PlanInfo.java | 41 ++++++ .../topup/local/model/SubInfo.java | 107 ++++++++++++++ .../LocalTopUpInteractorInterface.java | 16 +++ .../local/presenter/LocalTopUpPresenter.java | 133 ++++++++++++++++++ .../LocalTopUpPresenterInterface.java | 20 +++ .../topup/local/view/LocalTopUpActivity.java | 117 +++++++++++++++ .../LocalTopUpActivityActionListener.java | 8 ++ .../services/DataOnlyLocalTopUpFragment.java | 41 ++++++ .../FixedChargeLocalTopupFragment.java | 40 ++++++ .../services/RegularLocalTopupFragment.java | 40 ++++++ .../view/TransactionHistoryActivityV2.java | 2 - .../utils/https/API_URL.java | 1 + .../utils/https/ApiEndpoints.java | 4 + .../res/drawable/circular_tab_layout_bg.xml | 12 ++ .../res/drawable/circular_tab_selected_bg.xml | 21 +++ .../res/drawable/circular_tab_selector.xml | 12 ++ .../drawable/circular_tab_unselected_bg.xml | 18 +++ .../ic_rounded_country_listing_pink.xml | 2 +- .../main/res/layout/activity_local_top_up.xml | 115 +++++++++++++++ .../main/res/layout/tab_data_local_top_up.xml | 14 ++ .../res/layout/tab_fixed_local_top_up.xml | 14 ++ .../res/layout/tab_regular_local_top_up.xml | 14 ++ app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/styles.xml | 7 + 35 files changed, 1028 insertions(+), 31 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/adapter/LocalTopUpServiceViewPagerAdapter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/gateway/LocalTopUpGateway.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/ButtonsGrid.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/CardInfoDTO.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpResponseDTO.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/SubInfo.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpInteractorInterface.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivityActionListener.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/DataOnlyLocalTopUpFragment.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/RegularLocalTopupFragment.java create mode 100644 app/src/main/res/drawable/circular_tab_layout_bg.xml create mode 100644 app/src/main/res/drawable/circular_tab_selected_bg.xml create mode 100644 app/src/main/res/drawable/circular_tab_selector.xml create mode 100644 app/src/main/res/drawable/circular_tab_unselected_bg.xml create mode 100644 app/src/main/res/layout/activity_local_top_up.xml create mode 100644 app/src/main/res/layout/tab_data_local_top_up.xml create mode 100644 app/src/main/res/layout/tab_fixed_local_top_up.xml create mode 100644 app/src/main/res/layout/tab_regular_local_top_up.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 6dfdc3b8519f2fe25b819061f19f1f757998c489..bfe42f96339fd0bd903fe3eecfd44d72ad14c381 100644 GIT binary patch delta 27 jcmbQnI*oP0bk;mY?X8^?=iHlofYD`g6{Fi^7N$u6mZb`P delta 27 lcmV+$0ObFc1(pSnmj!M1{S=jvoZgeZ0Y;O00YsAo0+OpG3yc5& diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4a33f90f..4e6dcb4c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,12 +24,17 @@ android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/AppTheme" - tools:replace="android:allowBackup" - tools:ignore="GoogleAppIndexingWarning"> - + + - + android:theme="@style/AppTheme.NoActionBar"> rewardRelatedDataSubject; - public RewardListingV2Presenter(RewardListingV2PresenterInterface.RewardListingV2ContractInterface view,RewardListingV2InteractorInterface.RewardListingV2GatewayInterface gateway) { + public RewardListingV2Presenter(RewardListingV2PresenterInterface.RewardListingV2ContractInterface view, RewardListingV2InteractorInterface.RewardListingV2GatewayInterface gateway) { this.view = view; this.gateway = gateway; compositeDisposable = new CompositeDisposable(); @@ -59,8 +59,8 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis compositeDisposable.add( Observable.zip(getAllProductListFromNetwork(), getAllOrderedProductListFromNetwork(), RewardListingScreenModel::new) .doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) - .doFinally(() -> view.showProgressBar(false, "")) .observeOn(AndroidSchedulers.mainThread()) + .doFinally(() -> view.showProgressBar(false, "")) .subscribeWith(new RewardRelatedDataObserver()) ); } @@ -73,7 +73,7 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis return this.gateway.getRewardOrderedProductList(this.gateway.getAuth(), this.gateway.getUserID(), startDate, endDate) .subscribeOn(Schedulers.io()) .doOnSubscribe(subs -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) - .doFinally(() -> view.showProgressBar(false, "")) + .doOnError(error -> { if (error instanceof HttpException && ((HttpException) error).code() == 401) { gateway.clearAllUserData(); @@ -81,13 +81,11 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis }) .flatMap(response -> { GenericResponseDataModel> data = HttpClientV2.getDeserializer().fromJson(response.string(), productType); - if(data.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) - { + if (data.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) { return Observable.just(data.getData()); - } - else + } else return Observable.just(new ArrayList()); - }).observeOn(AndroidSchedulers.mainThread()); + }).observeOn(AndroidSchedulers.mainThread()).doFinally(() -> view.showProgressBar(false, "")); } @Override @@ -124,7 +122,7 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis .subscribeOn(Schedulers.io()) .flatMap(response -> { GenericResponseDataModel> data = HttpClientV2.getDeserializer().fromJson(response.string(), productType); - if(data.getData()==null) + if (data.getData() == null) data.setData(new ArrayList<>()); return Observable.just(data.getData()); }); @@ -143,7 +141,6 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis } - public static class RewardListingScreenModel { ArrayList rewardProductItemModels; ArrayList rewardOrderedProductItemModels; @@ -203,9 +200,4 @@ public class RewardListingV2Presenter extends BasePresenter implements RewardLis } - - - - - } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java index 10a580c1..ebc1cb33 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java @@ -90,12 +90,13 @@ public class SplashScreenPresenter extends BasePresenter implements SplashScreen @Override public boolean checkSafety() { - if (hasRootAccess() || !checkIfAppSafe()) { - view.showPopUpMessage("Access Denied", CustomAlertDialog.AlertType.ALERT, null); - new Handler().postDelayed(() -> view.exitView(), 1500); - return false; - } else - return true; + return true; +// if (hasRootAccess() || !checkIfAppSafe()) { +// view.showPopUpMessage("Access Denied", CustomAlertDialog.AlertType.ALERT, null); +// new Handler().postDelayed(() -> view.exitView(), 1500); +// return false; +// } else +// return true; } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java index fd6a5551..759307ef 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java @@ -836,7 +836,7 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, private void initAntiDebugger() { boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)); - if (isDebuggable) + if (isDebuggable&&false) startAntiDebugger(); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/adapter/LocalTopUpServiceViewPagerAdapter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/adapter/LocalTopUpServiceViewPagerAdapter.java new file mode 100644 index 00000000..105d8cf5 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/adapter/LocalTopUpServiceViewPagerAdapter.java @@ -0,0 +1,35 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.adapter; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; + +import java.util.ArrayList; +import java.util.List; + +public class LocalTopUpServiceViewPagerAdapter extends FragmentPagerAdapter { + + private List fraglist; + + public LocalTopUpServiceViewPagerAdapter(FragmentManager fm) { + super(fm); + fraglist=new ArrayList<>(); + + } + + @Override + public Fragment getItem(int position) { + return fraglist.get(position); + } + + public void addFragments(List data) + { + fraglist=data; + } + @Override + public int getCount() { + return fraglist.size(); + } + + +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/gateway/LocalTopUpGateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/gateway/LocalTopUpGateway.java new file mode 100644 index 00000000..bb25dc12 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/gateway/LocalTopUpGateway.java @@ -0,0 +1,21 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.gateway; + +import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; +import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpInteractorInterface; +import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; +import com.google.gson.JsonObject; + +import io.reactivex.Observable; +import okhttp3.ResponseBody; + +public class LocalTopUpGateway extends PrivilegedGateway implements LocalTopUpInteractorInterface.LocalTopupGateway { + + @Override + public Observable getLocalTopUpRelatedData(String auth, String cardType, String topUpMobileNumber) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("GetcardType",cardType); + jsonObject.addProperty("PhoneNo",topUpMobileNumber); + + return HttpClientV2.getInstance().getLocalTopUpRelatedData(auth,jsonObject); + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/ButtonsGrid.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/ButtonsGrid.java new file mode 100644 index 00000000..dceeb82a --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/ButtonsGrid.java @@ -0,0 +1,19 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class ButtonsGrid { + + @SerializedName("Price") + @Expose + private String price; + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/CardInfoDTO.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/CardInfoDTO.java new file mode 100644 index 00000000..2f10715e --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/CardInfoDTO.java @@ -0,0 +1,65 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class CardInfoDTO { + + @SerializedName("CardCode") + @Expose + private String cardCode; + @SerializedName("CardName") + @Expose + private String cardName; + @SerializedName("FacePrice") + @Expose + private String facePrice; + @SerializedName("SubInfo") + @Expose + private List subInfo = null; + @SerializedName("Promotion_price") + @Expose + private String promotionPrice; + + public String getCardCode() { + return cardCode; + } + + public void setCardCode(String cardCode) { + this.cardCode = cardCode; + } + + public String getCardName() { + return cardName; + } + + public void setCardName(String cardName) { + this.cardName = cardName; + } + + public String getFacePrice() { + return facePrice; + } + + public void setFacePrice(String facePrice) { + this.facePrice = facePrice; + } + + public List getSubInfo() { + return subInfo; + } + + public void setSubInfo(List subInfo) { + this.subInfo = subInfo; + } + + public String getPromotionPrice() { + return promotionPrice; + } + + public void setPromotionPrice(String promotionPrice) { + this.promotionPrice = promotionPrice; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpResponseDTO.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpResponseDTO.java new file mode 100644 index 00000000..ea9cd272 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/LocalTopUpResponseDTO.java @@ -0,0 +1,64 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class LocalTopUpResponseDTO { + + @SerializedName("CardListType") + @Expose + private String cardListType; + @SerializedName("ButtonsGrid") + @Expose + private List buttonsGrid = null; + @SerializedName("CountryPriceCode") + @Expose + private String countryPriceCode; + @SerializedName("CardInfo") + @Expose + private List cardInfo; + + public String getCardListType() { + return cardListType; + } + + public void setCardListType(String cardListType) { + this.cardListType = cardListType; + } + + public List getButtonsGrid() { + return buttonsGrid; + } + + public void setButtonsGrid(List buttonsGrid) { + this.buttonsGrid = buttonsGrid; + } + + public String getCountryPriceCode() { + return countryPriceCode; + } + + public void setCountryPriceCode(String countryPriceCode) { + this.countryPriceCode = countryPriceCode; + } + + public List getCardInfo() { + return cardInfo; + } + + public void setCardInfo(List cardInfo) { + this.cardInfo = cardInfo; + } + + @Override + public String toString() { + return "LocalTopUpResponseDTO{" + + "cardListType='" + cardListType + '\'' + + ", buttonsGrid=" + buttonsGrid + + ", countryPriceCode='" + countryPriceCode + '\'' + + ", cardInfo=" + cardInfo + + '}'; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java new file mode 100644 index 00000000..1712a28e --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/PlanInfo.java @@ -0,0 +1,41 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class PlanInfo { + + @SerializedName("Data") + @Expose + private String data; + @SerializedName("Voice") + @Expose + private String voice; + @SerializedName("Unlimited") + @Expose + private Object unlimited; + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getVoice() { + return voice; + } + + public void setVoice(String voice) { + this.voice = voice; + } + + public Object getUnlimited() { + return unlimited; + } + + public void setUnlimited(Object unlimited) { + this.unlimited = unlimited; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/SubInfo.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/SubInfo.java new file mode 100644 index 00000000..f7b4aaff --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/model/SubInfo.java @@ -0,0 +1,107 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class SubInfo { + + @SerializedName("Mvno_code") + @Expose + private String mvnoCode; + @SerializedName("Sale_price") + @Expose + private String salePrice; + @SerializedName("Card_type") + @Expose + private String cardType; + @SerializedName("Product_name") + @Expose + private String productName; + @SerializedName("Face_price") + @Expose + private String facePrice; + @SerializedName("Product_type") + @Expose + private String productType; + @SerializedName("Plan_info") + @Expose + private PlanInfo planInfo; + @SerializedName("Card_name") + @Expose + private String cardName; + @SerializedName("Telecom_code") + @Expose + private String telecomCode; + + public String getMvnoCode() { + return mvnoCode; + } + + public void setMvnoCode(String mvnoCode) { + this.mvnoCode = mvnoCode; + } + + public String getSalePrice() { + return salePrice; + } + + public void setSalePrice(String salePrice) { + this.salePrice = salePrice; + } + + public String getCardType() { + return cardType; + } + + public void setCardType(String cardType) { + this.cardType = cardType; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getFacePrice() { + return facePrice; + } + + public void setFacePrice(String facePrice) { + this.facePrice = facePrice; + } + + public String getProductType() { + return productType; + } + + public void setProductType(String productType) { + this.productType = productType; + } + + public PlanInfo getPlanInfo() { + return planInfo; + } + + public void setPlanInfo(PlanInfo planInfo) { + this.planInfo = planInfo; + } + + public String getCardName() { + return cardName; + } + + public void setCardName(String cardName) { + this.cardName = cardName; + } + + public String getTelecomCode() { + return telecomCode; + } + + public void setTelecomCode(String telecomCode) { + this.telecomCode = telecomCode; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpInteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpInteractorInterface.java new file mode 100644 index 00000000..813c303a --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpInteractorInterface.java @@ -0,0 +1,16 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.presenter; + +import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface; +import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface; + +import io.reactivex.Observable; +import okhttp3.ResponseBody; + +public interface LocalTopUpInteractorInterface extends BaseInteractorInterface { + + interface LocalTopupGateway extends PrivilegedGatewayInterface + { + Observable getLocalTopUpRelatedData(String auth,String cardType,String topUpMobileNumber); + + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java new file mode 100644 index 00000000..84034083 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenter.java @@ -0,0 +1,133 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.presenter; + +import android.util.Log; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.base.BasePresenter; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; +import com.gmeremit.online.gmeremittance_native.utils.Constants; +import com.gmeremit.online.gmeremittance_native.utils.https.GenericResponseDataModel; +import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; + +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.observers.DisposableObserver; +import io.reactivex.schedulers.Schedulers; +import io.reactivex.subjects.BehaviorSubject; + +public class LocalTopUpPresenter extends BasePresenter implements LocalTopUpPresenterInterface { + + + private final LocalTopUpContractInterface view; + private final LocalTopUpInteractorInterface.LocalTopupGateway gateway; + private final CompositeDisposable compositeDisposable; + private final BehaviorSubject topUpRelatedData; + + public static final String REGULAR_CARD_TYPE="1"; + public static final String FIXED_CARD_TYPE="6"; + public static final String DATA_PACK_CARD_TYPE="5"; + + public LocalTopUpPresenter(LocalTopUpContractInterface view, LocalTopUpInteractorInterface.LocalTopupGateway gateway) { + this.view=view; + this.gateway=gateway; + this.compositeDisposable=new CompositeDisposable(); + this.topUpRelatedData= BehaviorSubject.create(); + } + + @Override + public void getAllRequiredData() { + this.compositeDisposable.add( + Observable.zip( + getLocalTopUpOnBasisCardType(REGULAR_CARD_TYPE,"") + .onErrorReturnItem(new LocalTopUpResponseDTO()), + getLocalTopUpOnBasisCardType(FIXED_CARD_TYPE,"") + .onErrorReturnItem(new LocalTopUpResponseDTO()), + getLocalTopUpOnBasisCardType(DATA_PACK_CARD_TYPE,"") + .onErrorReturnItem(new LocalTopUpResponseDTO()), + LocalTopUpRelatedData::new) + .subscribeOn(Schedulers.io()) + .doOnSubscribe(d->view.showProgressBar(true,getStringfromStringId(R.string.processing_request_text))) + .observeOn(AndroidSchedulers.mainThread()) + .doFinally(()->view.showProgressBar(false,"")) + .subscribeWith(new LocalTopUpRelatedDataObserver()) + ); + } + + @Override + public Observable subscribeToRegularTopUpRelatedDataEvent() { + return topUpRelatedData.flatMap(allData-> Observable.just(allData.getRegularDTO())); + } + + @Override + public Observable subscribeToFixedTopUpRelatedDataEvent() { + return topUpRelatedData.flatMap(allData-> Observable.just(allData.getFixedDTO())); + } + + @Override + public Observable subscribeToDataPackTopUpRelatedDataEvent() { + return topUpRelatedData.flatMap(allData-> Observable.just(allData.getDataPackDTO())); + } + + private Observable getLocalTopUpOnBasisCardType(String cardType, String mobileNumber) + { + Type productType = new TypeToken>() {}.getType(); + return this.gateway.getLocalTopUpRelatedData(this.gateway.getAuth(),cardType,mobileNumber) + .subscribeOn(Schedulers.io()) + .flatMap(response -> { + GenericResponseDataModel data = HttpClientV2.getDeserializer().fromJson(response.string(), productType); + if(data.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) + return Observable.just(data.getData()); + else + return Observable.error(new Throwable(data.getMsg())); + }); + } + + + public static class LocalTopUpRelatedData + { + private LocalTopUpResponseDTO regularDTO; + private LocalTopUpResponseDTO fixedDTO; + private LocalTopUpResponseDTO dataPackDTO; + + public LocalTopUpRelatedData(LocalTopUpResponseDTO regularDTO, LocalTopUpResponseDTO fixedDTO, LocalTopUpResponseDTO dataPackDTO) { + this.regularDTO = regularDTO; + this.fixedDTO = fixedDTO; + this.dataPackDTO = dataPackDTO; + } + + public LocalTopUpResponseDTO getRegularDTO() { + return regularDTO; + } + + public LocalTopUpResponseDTO getFixedDTO() { + return fixedDTO; + } + + public LocalTopUpResponseDTO getDataPackDTO() { + return dataPackDTO; + } + } + + public class LocalTopUpRelatedDataObserver extends DisposableObserver + { + + @Override + public void onNext(LocalTopUpRelatedData o) { + topUpRelatedData.onNext(o); + } + + @Override + public void onError(Throwable e) { + Log.d("LocalTopUpError",e.getMessage()); + } + + @Override + public void onComplete() { + + } + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java new file mode 100644 index 00000000..891bf66b --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/presenter/LocalTopUpPresenterInterface.java @@ -0,0 +1,20 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.presenter; + +import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface; +import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; + +import io.reactivex.Observable; + +public interface LocalTopUpPresenterInterface extends BasePresenterInterface { + + void getAllRequiredData(); + + Observable subscribeToRegularTopUpRelatedDataEvent(); + Observable subscribeToFixedTopUpRelatedDataEvent(); + Observable subscribeToDataPackTopUpRelatedDataEvent(); + + interface LocalTopUpContractInterface extends BaseContractInterface { + + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java new file mode 100644 index 00000000..dc49408a --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivity.java @@ -0,0 +1,117 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.view; + +import android.support.design.widget.TabLayout; +import android.support.v4.app.Fragment; +import android.support.v4.view.ViewPager; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; + +import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.base.BaseActivity; +import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; +import com.gmeremit.online.gmeremittance_native.topup.local.adapter.LocalTopUpServiceViewPagerAdapter; +import com.gmeremit.online.gmeremittance_native.topup.local.gateway.LocalTopUpGateway; +import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpPresenter; +import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpPresenterInterface; +import com.gmeremit.online.gmeremittance_native.topup.local.view.services.DataOnlyLocalTopUpFragment; +import com.gmeremit.online.gmeremittance_native.topup.local.view.services.FixedChargeLocalTopupFragment; +import com.gmeremit.online.gmeremittance_native.topup.local.view.services.RegularLocalTopupFragment; +import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.view.domestic.DomesticTransactionHistoryTypeFragmentV2; +import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.view.international.InternationalTransactionHistoryContainerFragmentV2; +import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.view.international.adapter.TransactionHistoryViewPagerAdapter; + +import java.util.ArrayList; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class LocalTopUpActivity extends BaseActivity implements LocalTopUpPresenterInterface.LocalTopUpContractInterface,LocalTopUpActivityActionListener{ + + @BindView(R.id.localTopupTabLayout) + TabLayout localTopupTabLayout; + + @BindView(R.id.toolbar_title) + GmeTextView toolbarTitle; + + @BindView(R.id.localTopupViewPager) + ViewPager localTopupViewPager; + + + @BindView(R.id.iv_back) + ImageView ivBack; + + + @BindView(R.id.iv_cancel) + View ivCancel; + private LocalTopUpServiceViewPagerAdapter localTopupViewPagerAdapter; + private ArrayList fragments; + + private LocalTopUpPresenterInterface presenter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_local_top_up); + ButterKnife.bind(this); + initialize(); + performDefaultAction(savedInstanceState); + } + + + private void initialize() { + presenter=new LocalTopUpPresenter(this,new LocalTopUpGateway()); + toolbarTitle.setText(getString(R.string.transaction_report_title_text)); + setupViewPager(); + setUpTabLayout(); + ivCancel.setVisibility(View.INVISIBLE); + + } + + private void performDefaultAction(Bundle savedInstanceState) { + presenter.getAllRequiredData(); + } + + private void setUpTabLayout() { + try { + localTopupTabLayout.getTabAt(0).setCustomView(R.layout.tab_regular_local_top_up); + localTopupTabLayout.getTabAt(1).setCustomView(R.layout.tab_fixed_local_top_up); + localTopupTabLayout.getTabAt(2).setCustomView(R.layout.tab_data_local_top_up); + + } catch (NullPointerException e) { + + } + + } + + private void setupViewPager() { + + localTopupViewPagerAdapter = new LocalTopUpServiceViewPagerAdapter(getSupportFragmentManager()); + + fragments = new ArrayList<>(); + + fragments.add(new RegularLocalTopupFragment()); + fragments.add(new FixedChargeLocalTopupFragment()); + fragments.add(new DataOnlyLocalTopUpFragment()); +// fragments.add(deliveredTransactionFragment); + + + localTopupViewPagerAdapter.addFragments(fragments); + + + + localTopupViewPager.setOffscreenPageLimit(3); + + localTopupViewPager.setAdapter(localTopupViewPagerAdapter); + + + localTopupTabLayout.setupWithViewPager(localTopupViewPager); + + + } + + @Override + public LocalTopUpPresenterInterface getPresenter() { + return this.presenter; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivityActionListener.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivityActionListener.java new file mode 100644 index 00000000..d000e631 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/LocalTopUpActivityActionListener.java @@ -0,0 +1,8 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.view; + +import com.gmeremit.online.gmeremittance_native.topup.local.presenter.LocalTopUpPresenterInterface; + +public interface LocalTopUpActivityActionListener +{ + LocalTopUpPresenterInterface getPresenter(); +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/DataOnlyLocalTopUpFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/DataOnlyLocalTopUpFragment.java new file mode 100644 index 00000000..29dbdf3d --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/DataOnlyLocalTopUpFragment.java @@ -0,0 +1,41 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.view.services; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.util.Log; + +import com.gmeremit.online.gmeremittance_native.base.BaseFragment; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.view.LocalTopUpActivityActionListener; + +import io.reactivex.observers.DisposableObserver; + +public class DataOnlyLocalTopUpFragment extends BaseFragment { + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((LocalTopUpActivityActionListener)getActivity()).getPresenter().subscribeToDataPackTopUpRelatedDataEvent().subscribe(new DataOnlyLocalTopUpFragmentObserver()); + } + + public class DataOnlyLocalTopUpFragmentObserver extends DisposableObserver + { + + @Override + public void onNext(LocalTopUpResponseDTO localTopUpResponseDTO) { + Log.d("LOCALTOPUPDATA",this.getClass().getSimpleName()+" : "+localTopUpResponseDTO.toString()); + } + + @Override + public void onError(Throwable e) { + Log.d("DataPackLocalTopUp",e.getMessage()); + } + + @Override + public void onComplete() { + + } + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java new file mode 100644 index 00000000..f17d3784 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/FixedChargeLocalTopupFragment.java @@ -0,0 +1,40 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.view.services; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.util.Log; + +import com.gmeremit.online.gmeremittance_native.base.BaseFragment; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.view.LocalTopUpActivityActionListener; + +import io.reactivex.observers.DisposableObserver; + +public class FixedChargeLocalTopupFragment extends BaseFragment { + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((LocalTopUpActivityActionListener)getActivity()).getPresenter().subscribeToFixedTopUpRelatedDataEvent().subscribe(new FixedChargeLocalTopupFragmentObserver()); + } + + public class FixedChargeLocalTopupFragmentObserver extends DisposableObserver + { + + @Override + public void onNext(LocalTopUpResponseDTO localTopUpResponseDTO) { + Log.d("LOCALTOPUPDATA",this.getClass().getSimpleName()+" : "+localTopUpResponseDTO.toString()); + } + + @Override + public void onError(Throwable e) { + Log.d("DataPackLocalTopUp",e.getMessage()); + } + + @Override + public void onComplete() { + + } + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/RegularLocalTopupFragment.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/RegularLocalTopupFragment.java new file mode 100644 index 00000000..d6e36724 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/topup/local/view/services/RegularLocalTopupFragment.java @@ -0,0 +1,40 @@ +package com.gmeremit.online.gmeremittance_native.topup.local.view.services; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.util.Log; + +import com.gmeremit.online.gmeremittance_native.base.BaseFragment; +import com.gmeremit.online.gmeremittance_native.topup.local.model.LocalTopUpResponseDTO; +import com.gmeremit.online.gmeremittance_native.topup.local.view.LocalTopUpActivityActionListener; + +import io.reactivex.observers.DisposableObserver; + +public class RegularLocalTopupFragment extends BaseFragment { + + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ((LocalTopUpActivityActionListener)getActivity()).getPresenter().subscribeToRegularTopUpRelatedDataEvent().subscribe(new RegularLocalTopUpFragmentObserver()); + } + + public class RegularLocalTopUpFragmentObserver extends DisposableObserver + { + + @Override + public void onNext(LocalTopUpResponseDTO localTopUpResponseDTO) { + Log.d("LOCALTOPUPDATA",this.getClass().getSimpleName()+" : "+localTopUpResponseDTO.toString()); + } + + @Override + public void onError(Throwable e) { + Log.d("DataPackLocalTopUp",e.getMessage()); + } + + @Override + public void onComplete() { + + } + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java index e970b646..121f58e3 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java @@ -55,8 +55,6 @@ public class TransactionHistoryActivityV2 extends BaseActivity implements Transa List fragments; - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java index e5f746bc..f692b221 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java @@ -64,5 +64,6 @@ public class API_URL { public static final String DOMESTIC_REMIT_TXN = BuildConfig.API_VERSION + "/kftc/SendDomeRimit"; public static final String DOMESTIC_TXN_HISTORY = BuildConfig.API_VERSION + "/mobile/DomestricTranhistory/{userId}"; public static final String DOMESTIC_TXN_RECEIPT = BuildConfig.API_VERSION + "/mobile/DomesticReceipt/{tranId}"; + public static final String LOCAL_TOPUP_RELATED_DATA = BuildConfig.API_VERSION + "/powerCall/GetCardList" ; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java index e8f4d48f..df2ed1c9 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java @@ -292,6 +292,10 @@ public interface ApiEndpoints { @Headers("Content-Type: application/json") Observable getDomesticReceipt(@Header("Authorization") String token, @Path("tranId") String tranID); + @POST(API_URL.LOCAL_TOPUP_RELATED_DATA) + @Headers("Content-Type: application/json") + Observable getLocalTopUpRelatedData(@Header("Authorization") String token, @Body() JsonObject jsonObject); + diff --git a/app/src/main/res/drawable/circular_tab_layout_bg.xml b/app/src/main/res/drawable/circular_tab_layout_bg.xml new file mode 100644 index 00000000..44817e39 --- /dev/null +++ b/app/src/main/res/drawable/circular_tab_layout_bg.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/circular_tab_selected_bg.xml b/app/src/main/res/drawable/circular_tab_selected_bg.xml new file mode 100644 index 00000000..021fdb72 --- /dev/null +++ b/app/src/main/res/drawable/circular_tab_selected_bg.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/circular_tab_selector.xml b/app/src/main/res/drawable/circular_tab_selector.xml new file mode 100644 index 00000000..dfb20ddd --- /dev/null +++ b/app/src/main/res/drawable/circular_tab_selector.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/circular_tab_unselected_bg.xml b/app/src/main/res/drawable/circular_tab_unselected_bg.xml new file mode 100644 index 00000000..2c7a5c4a --- /dev/null +++ b/app/src/main/res/drawable/circular_tab_unselected_bg.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_rounded_country_listing_pink.xml b/app/src/main/res/drawable/ic_rounded_country_listing_pink.xml index 8574d55b..b0c51b9d 100644 --- a/app/src/main/res/drawable/ic_rounded_country_listing_pink.xml +++ b/app/src/main/res/drawable/ic_rounded_country_listing_pink.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_local_top_up.xml b/app/src/main/res/layout/activity_local_top_up.xml new file mode 100644 index 00000000..8fcf3c43 --- /dev/null +++ b/app/src/main/res/layout/activity_local_top_up.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/tab_data_local_top_up.xml b/app/src/main/res/layout/tab_data_local_top_up.xml new file mode 100644 index 00000000..a90afd96 --- /dev/null +++ b/app/src/main/res/layout/tab_data_local_top_up.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/tab_fixed_local_top_up.xml b/app/src/main/res/layout/tab_fixed_local_top_up.xml new file mode 100644 index 00000000..c7e77488 --- /dev/null +++ b/app/src/main/res/layout/tab_fixed_local_top_up.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/tab_regular_local_top_up.xml b/app/src/main/res/layout/tab_regular_local_top_up.xml new file mode 100644 index 00000000..3acfde50 --- /dev/null +++ b/app/src/main/res/layout/tab_regular_local_top_up.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 39d5322c..d047bf48 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -36,5 +36,6 @@ #80FFFFFF #FFFFFF #08A384 + #FFFAF5F5 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f0b96dff..ee2820c4 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -126,4 +126,11 @@ + + +