Browse Source

Transaction History fixes

master
preyearegmi 6 years ago
parent
commit
764dde1844
  1. 14
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/TransactionHistoryV2ActionListener.java
  2. 8
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/gateway/TransactionHistoryV2Gateway.java
  3. 40
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/presenter/TransactionHistoryV2Presenter.java
  4. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/presenter/TransactionHistoryV2PresenterInterface.java
  5. 77
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionFragmentV2.java
  6. 16
      app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java
  7. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/HttpClientV2.java

14
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/TransactionHistoryV2ActionListener.java

@ -0,0 +1,14 @@
package com.gmeremit.online.gmeremittance_native.transactionhistoryV2;
import com.gmeremit.online.gmeremittance_native.kycV2.presenter.KYCV2PresenterInterface;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.presenter.TransactionHistoryV2PresenterInterface;
/**
* Created by Preyea
* Interface to bind transaction history child view to its parent view.
*/
public interface TransactionHistoryV2ActionListener {
TransactionHistoryV2PresenterInterface getPresenter();
}

8
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/gateway/TransactionHistoryV2Gateway.java

@ -67,10 +67,10 @@ public class TransactionHistoryV2Gateway extends PrivilegedGateway implements Tr
@Override @Override
public Observable<TransactionHistoryAPIResponse> getTransactionHistory(String auth,String userId,String startDate,String endDate) { public Observable<TransactionHistoryAPIResponse> getTransactionHistory(String auth,String userId,String startDate,String endDate) {
JsonObject jsonObject=new JsonObject();
jsonObject.addProperty("StartDate",startDate);
jsonObject.addProperty("EndDate",endDate);
// JsonObject jsonObject=new JsonObject();
// jsonObject.addProperty("StartDate",startDate);
// jsonObject.addProperty("EndDate",endDate);
//
// return HttpClientV2.getInstance().getTransactionHistoryV2(auth,userId,jsonObject); // return HttpClientV2.getInstance().getTransactionHistoryV2(auth,userId,jsonObject);
Gson gson= new GsonBuilder().create(); Gson gson= new GsonBuilder().create();

40
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/presenter/TransactionHistoryV2Presenter.java

@ -10,21 +10,23 @@ import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverRe
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.AsyncSubject;
public class TransactionHistoryV2Presenter extends BasePresenter implements TransactionHistoryV2PresenterInterface,TransactionHistoryV2InteractorInterface { public class TransactionHistoryV2Presenter extends BasePresenter implements TransactionHistoryV2PresenterInterface,TransactionHistoryV2InteractorInterface {
private final TransactionHistoryV2ContractInterface view; private final TransactionHistoryV2ContractInterface view;
private final TransactionHistoryV2GatewayInterface gateway; private final TransactionHistoryV2GatewayInterface gateway;
private final CompositeDisposable compositeDisposable;
private final AsyncSubject<TransactionHistory> transactionHistorySubject;
public TransactionHistoryV2Presenter(TransactionHistoryV2ContractInterface view) { public TransactionHistoryV2Presenter(TransactionHistoryV2ContractInterface view) {
this.view=view; this.view=view;
this.gateway=new TransactionHistoryV2Gateway(this); this.gateway=new TransactionHistoryV2Gateway(this);
this.compositeDisposable=new CompositeDisposable();
this.transactionHistorySubject= AsyncSubject.create();
} }
@ -34,8 +36,7 @@ public class TransactionHistoryV2Presenter extends BasePresenter implements Tran
startDate=""; startDate="";
if(endDate==null) if(endDate==null)
endDate=""; endDate="";
compositeDisposable.add
(this.gateway.getTransactionHistory(this.gateway.getAuth(), this.gateway.getUserID(),startDate,endDate)
this.gateway.getTransactionHistory(this.gateway.getAuth(), this.gateway.getUserID(),startDate,endDate)
.doOnSubscribe(subs->view.showProgressBar(true,"Fetching transaction history...")) .doOnSubscribe(subs->view.showProgressBar(true,"Fetching transaction history..."))
.doFinally(()->view.showProgressBar(false,"")) .doFinally(()->view.showProgressBar(false,""))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
@ -62,12 +63,16 @@ public class TransactionHistoryV2Presenter extends BasePresenter implements Tran
}) })
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new TransactionHistoryObserver())
);
.subscribe(transactionHistorySubject);
}
@Override
public Observable<TransactionHistory> subscribeToTransactionHistoryFetchinEvent() {
return this.transactionHistorySubject;
} }
public class TransactionHistory
public class TransactionHistory
{ {
List<TransactionHistoryItemModel> allHistory; List<TransactionHistoryItemModel> allHistory;
List<TransactionHistoryItemModel> deliveredHistory; List<TransactionHistoryItemModel> deliveredHistory;
@ -92,24 +97,5 @@ public class TransactionHistory
} }
} }
public class TransactionHistoryObserver extends GenericApiObserverResponse<TransactionHistory>
{
@Override
protected void onSuccess(TransactionHistory transactionHistoryAPIResponse) {
view.updateAllTransactionInView(transactionHistoryAPIResponse.getAllHistory());
view.updateDeliveredTransactionInView(transactionHistoryAPIResponse.getDeliveredHistory());
view.updateSentTransactionInView(transactionHistoryAPIResponse.getSentHistoryModel());
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,alertType -> view.exitView());
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED,alertType -> view.exitView());
}
}
} }

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/presenter/TransactionHistoryV2PresenterInterface.java

@ -24,6 +24,9 @@ public interface TransactionHistoryV2PresenterInterface extends BasePresenterInt
void getTransactionHistory(String startDate,String endDate); void getTransactionHistory(String startDate,String endDate);
Observable<TransactionHistoryV2Presenter.TransactionHistory> subscribeToTransactionHistoryFetchinEvent();
interface TransactionHistoryV2ContractInterface extends BaseContractInterface interface TransactionHistoryV2ContractInterface extends BaseContractInterface
{ {

77
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionFragmentV2.java

@ -16,6 +16,7 @@ import android.widget.EditText;
import com.gmeremit.online.gmeremittance_native.R; import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseFragment; import com.gmeremit.online.gmeremittance_native.base.BaseFragment;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog;
import com.gmeremit.online.gmeremittance_native.customwidgets.genderdialog.Gender; import com.gmeremit.online.gmeremittance_native.customwidgets.genderdialog.Gender;
import com.gmeremit.online.gmeremittance_native.customwidgets.genderdialog.GenderListingDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.genderdialog.GenderListingDialog;
import com.gmeremit.online.gmeremittance_native.kycV2.KYCV2ActionListener; import com.gmeremit.online.gmeremittance_native.kycV2.KYCV2ActionListener;
@ -27,9 +28,11 @@ import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.KYCView1VModel;
import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.NativeCountryListingDialog; import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.NativeCountryListingDialog;
import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.OccupationListingDialog; import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.OccupationListingDialog;
import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.ProvinceListingDialog; import com.gmeremit.online.gmeremittance_native.kycV2.view.view1.ProvinceListingDialog;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.TransactionHistoryV2ActionListener;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryRVAdapter; import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryRVAdapter;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.model.TransactionHistoryItemModel; import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.model.TransactionHistoryItemModel;
import com.gmeremit.online.gmeremittance_native.utils.Utils; import com.gmeremit.online.gmeremittance_native.utils.Utils;
import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -39,6 +42,7 @@ import java.util.Locale;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import io.reactivex.Observable;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
public class TransactionFragmentV2 extends BaseFragment implements View.OnClickListener, TransactionHistoryRVAdapter.TransactionItemClickListener { public class TransactionFragmentV2 extends BaseFragment implements View.OnClickListener, TransactionHistoryRVAdapter.TransactionItemClickListener {
@ -48,6 +52,7 @@ public class TransactionFragmentV2 extends BaseFragment implements View.OnClickL
TransactionHistoryRVAdapter transactionHistoryRVAdapter; TransactionHistoryRVAdapter transactionHistoryRVAdapter;
private TransactionHistoryRVAdapter.TransactionItemClickListener listener; private TransactionHistoryRVAdapter.TransactionItemClickListener listener;
private TransactionHistoryActivityV2.TransactionHistoryViewType type;
@Override @Override
@ -91,35 +96,14 @@ public class TransactionFragmentV2 extends BaseFragment implements View.OnClickL
transactionRecyclerView.setAdapter(transactionHistoryRVAdapter); transactionRecyclerView.setAdapter(transactionHistoryRVAdapter);
} }
private void registerListeners(boolean action) {
}
public void setData(List<TransactionHistoryItemModel> data) { public void setData(List<TransactionHistoryItemModel> data) {
if (transactionHistoryRVAdapter != null)
transactionHistoryRVAdapter.setData(data);
else
new Handler().postDelayed(() -> {
if (transactionHistoryRVAdapter != null)
transactionHistoryRVAdapter.setData(data);
}, 300);
}
@Override
public void onStart() {
super.onStart();
registerListeners(true);
} }
@Override
public void onStop() {
super.onStop();
registerListeners(false);
}
@Override @Override
public void onDestroy() { public void onDestroy() {
@ -128,8 +112,21 @@ public class TransactionFragmentV2 extends BaseFragment implements View.OnClickL
} }
private void performDefaultAction(Bundle savedInstance) { private void performDefaultAction(Bundle savedInstance) {
if (savedInstance != null)
Log.d("KYC_FRAG", "On View Create called with bundle from frag 1");
if (savedInstance == null)
((TransactionHistoryV2ActionListener) getActivity()).getPresenter().subscribeToTransactionHistoryFetchinEvent()
.flatMap(history-> {
switch (this.type) {
case ALL:
return Observable.just( history.getAllHistory());
case SENT:
return Observable.just( history.getSentHistoryModel());
case DELIVERED:
return Observable.just( history.getDeliveredHistory());
default:
return Observable.just( history.getAllHistory());
}
}
).subscribeWith(new TransactionHistoryDataObserver());
} }
@ -152,4 +149,38 @@ public class TransactionFragmentV2 extends BaseFragment implements View.OnClickL
if (this.listener != null) if (this.listener != null)
listener.onTransactionClicked(itemModel); listener.onTransactionClicked(itemModel);
} }
public void setType(TransactionHistoryActivityV2.TransactionHistoryViewType type) {
this.type=type;
}
public class TransactionHistoryDataObserver extends GenericApiObserverResponse<List<TransactionHistoryItemModel>>
{
@Override
protected void onSuccess(List<TransactionHistoryItemModel> transactionHistoryItemModels) {
transactionHistoryRVAdapter.setData(transactionHistoryItemModels);
}
@Override
public void onFailed(String message) {
showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, new CustomAlertDialog.CustomDialogActionListener() {
@Override
public void onCutomDialogActionPressed(CustomAlertDialog.AlertType alertType) {
getActivity().finish();
}
});
}
@Override
protected void onConnectionNotEstablished(String message) {
showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, new CustomAlertDialog.CustomDialogActionListener() {
@Override
public void onCutomDialogActionPressed(CustomAlertDialog.AlertType alertType) {
getActivity().finish();
}
});
}
}
} }

16
app/src/main/java/com/gmeremit/online/gmeremittance_native/transactionhistoryV2/view/TransactionHistoryActivityV2.java

@ -10,6 +10,7 @@ import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView; import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView;
import com.gmeremit.online.gmeremittance_native.sendmoneyV2.view.SendMoneyV2TransactionCompleteActivity; import com.gmeremit.online.gmeremittance_native.sendmoneyV2.view.SendMoneyV2TransactionCompleteActivity;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.TransactionHistoryV2ActionListener;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryRVAdapter; import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryRVAdapter;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryViewPagerAdapter; import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.adapter.TransactionHistoryViewPagerAdapter;
import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.model.TransactionHistoryItemModel; import com.gmeremit.online.gmeremittance_native.transactionhistoryV2.model.TransactionHistoryItemModel;
@ -22,7 +23,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public class TransactionHistoryActivityV2 extends BaseActivity implements ViewPager.OnPageChangeListener, TransactionHistoryV2PresenterInterface.TransactionHistoryV2ContractInterface, TransactionHistoryRVAdapter.TransactionItemClickListener {
public class TransactionHistoryActivityV2 extends BaseActivity implements TransactionHistoryV2ActionListener, ViewPager.OnPageChangeListener, TransactionHistoryV2PresenterInterface.TransactionHistoryV2ContractInterface, TransactionHistoryRVAdapter.TransactionItemClickListener {
@BindView(R.id.transactionTabLayout) @BindView(R.id.transactionTabLayout)
@ -93,6 +94,10 @@ public class TransactionHistoryActivityV2 extends BaseActivity implements ViewPa
deliveredTransactionFragment.setTransactionListener(this); deliveredTransactionFragment.setTransactionListener(this);
sentTransactionFragment.setTransactionListener(this); sentTransactionFragment.setTransactionListener(this);
allTransactionFragment.setType(TransactionHistoryViewType.ALL);
deliveredTransactionFragment.setType(TransactionHistoryViewType.DELIVERED);
sentTransactionFragment.setType(TransactionHistoryViewType.SENT);
fragments.add(allTransactionFragment); fragments.add(allTransactionFragment);
fragments.add(sentTransactionFragment); fragments.add(sentTransactionFragment);
fragments.add(deliveredTransactionFragment); fragments.add(deliveredTransactionFragment);
@ -153,4 +158,13 @@ public class TransactionHistoryActivityV2 extends BaseActivity implements ViewPa
startReceiptActivity.putExtra(SendMoneyV2TransactionCompleteActivity.SEND_MONEY_TID,itemModel.getTranId()); startReceiptActivity.putExtra(SendMoneyV2TransactionCompleteActivity.SEND_MONEY_TID,itemModel.getTranId());
startActivity(startReceiptActivity); startActivity(startReceiptActivity);
} }
@Override
public TransactionHistoryV2PresenterInterface getPresenter() {
return this.presenter;
}
public enum TransactionHistoryViewType {
ALL,SENT,DELIVERED
}
} }

2
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/HttpClientV2.java

@ -26,7 +26,7 @@ public class HttpClientV2 {
OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.connectTimeout(10, TimeUnit.SECONDS);
httpClient.connectTimeout(30, TimeUnit.SECONDS);
httpClient.readTimeout(30, TimeUnit.SECONDS); httpClient.readTimeout(30, TimeUnit.SECONDS);
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); HttpLoggingInterceptor logging = new HttpLoggingInterceptor();

Loading…
Cancel
Save