From f9a4a42d27ed68336588facfb8156e9235cf42af Mon Sep 17 00:00:00 2001 From: Mohan Shiwakoti Date: Sun, 21 May 2023 23:10:47 +0545 Subject: [PATCH] recent transactions filter changes --- .../features/homeV3/view/HomeActivityV3.kt | 7 ++ .../features/homeV3/view/HomeFragmentV3.kt | 2 + .../adapters/RecentTransactionsAdapter.kt | 4 +- .../view/MyBeneficiaryAllActivity.kt | 3 +- .../myTransfers/view/MyTransferActivity.kt | 2 +- .../myTransfers/view/MyTransfersFragment.kt | 87 ++++++++++++++++++- .../RecipientListingV3Gateway.java | 4 +- ...RecipientListingV3InteractorInterface.java | 3 +- .../RecipientListingV3Presenter.java | 9 +- .../RecipientListingV3PresenterInterface.java | 20 +++-- ...endMoneyV2TransactionCompleteActivity.java | 1 + .../jmecustomer/utils/https/ApiEndpoints.java | 5 +- .../main/res/layout/fragment_my_transfers.xml | 78 ++++++++++++++++- 13 files changed, 201 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt index 18c8c433..b5b7a27e 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt @@ -97,6 +97,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, private var sendMoneyRequiredData: SendMoneyRequiredDataV3? = null private var presenterTransaction: TransactionHistoryV2Presenter? = null lateinit var homeFragmentV3: HomeFragmentV3 + private var isTransactionComplete: Boolean = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityHomeV3Binding.inflate(layoutInflater) @@ -112,6 +113,8 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, intent.getBooleanExtra(HomeActivityV2.PROMPT_FINGERPRINT_BUNDLE_FLAG, false) ) + isTransactionComplete = intent?.extras?.getBoolean("trans", false) ?: false + viewModel = ViewModelProvider(this, homeViewModelFactory).get(HomeViewModel::class.java) viewModel!!.getRequiredData() sendMoneyRequiredData = SendMoneyRequiredDataV3(ReceiverInfoV3Model()) @@ -139,6 +142,10 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, binding.tabLayout.addTab(tab2) binding.tabLayout.addTab(tab3) + if (isTransactionComplete) { + binding.vpDashboard.currentItem = 1 + } + binding.vpDashboard.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrolled( position: Int, diff --git a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt index 3da7fb26..53520cf7 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt @@ -157,6 +157,8 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, if (homeViewRelatedDTOV2.homeNotificationViewDTO != null) { this.homeViewRelatedDTOV2 = homeViewRelatedDTOV2 showNotificationView(homeViewRelatedDTOV2.homeNotificationViewDTO) + } else { + removeNotification() } homeViewModel?.showChangedNotification(homeViewRelatedDTOV2.notificationCount) } diff --git a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/RecentTransactionsAdapter.kt b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/RecentTransactionsAdapter.kt index a1fb21ae..17e816b9 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/RecentTransactionsAdapter.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/RecentTransactionsAdapter.kt @@ -45,11 +45,11 @@ class RecentTransactionsAdapter(private var items: MutableList = ArrayList() adapter = MyBeneficiariesAllAdapter(data, this) val layoutManagerVertical = LinearLayoutManager(this) diff --git a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransferActivity.kt b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransferActivity.kt index 1c96742c..2bb1caa3 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransferActivity.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransferActivity.kt @@ -114,7 +114,7 @@ class MyTransferActivity : BaseActivity(), fun performDefaultAction(countryId: String?) { // iv_cancel!!.visibility = View.INVISIBLE - presenter!!.getAllRecipientListV5(null, countryId) + presenter!!.getAllRecipientListV5(null, countryId, "", "", "") } diff --git a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransfersFragment.kt b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransfersFragment.kt index 2d10668b..edb187c2 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransfersFragment.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransfersFragment.kt @@ -37,6 +37,11 @@ import com.remit.jmecustomer.features.sendmoney.view.SendMoneyV2TransactionCompl import com.remit.jmecustomer.features.transactionhistory.presenter.TransactionHistoryV2Presenter import com.remit.jmecustomer.features.transactionhistory.view.RemitTransactionHistoryActivity.TransactionHistoryViewType import com.remit.jmecustomer.features.transactionhistory.view.international.InternationalTransactionHistoryContainerFragmentV2.SearchableTransactionHistory +import com.remit.jmecustomer.utils.Constants +import com.remit.jmecustomer.utils.Utils +import com.tsongkha.spinnerdatepicker.DatePicker +import com.tsongkha.spinnerdatepicker.DateRangePickerDialog.OnRangeDateSetListener +import com.tsongkha.spinnerdatepicker.SpinnerDateRangePickerDialogBuilder import java.util.* class MyTransfersFragment : BaseFragment(), @@ -70,7 +75,7 @@ class MyTransfersFragment : BaseFragment(), init() Handler().postDelayed({ if (!(requireActivity() as HomeActivityV3).isNotificaitonViewActive()) { - performDefaultAction("151") + performDefaultAction(Constants.CURRENT_COUNTRY_ID) } }, 2000) setUpData() @@ -114,6 +119,7 @@ class MyTransfersFragment : BaseFragment(), override fun onResume() { super.onResume() + performDefaultAction(Constants.CURRENT_COUNTRY_ID) binding.edtSearchTransfers!!.addTextChangedListener(searchEditTextTextWatcher) } @@ -128,11 +134,12 @@ class MyTransfersFragment : BaseFragment(), binding.edtSearchTransfers!!.addTextChangedListener(searchEditTextTextWatcher) binding.addRecipientView.setOnClickListener(this) binding.rvInitials.setOnClickListener(this) + binding.ivCalendar.setOnClickListener(this) } fun performDefaultAction(countryId: String?) { // iv_cancel!!.visibility = View.INVISIBLE - presenter!!.getAllRecipientListV5(null, countryId) + presenter!!.getAllRecipientListV5(null, countryId, "", "", "") } @@ -344,6 +351,10 @@ class MyTransfersFragment : BaseFragment(), ), RecipientAddEditV3Activity.RECIPIENT_ACTION_EDIT_REQUEST_CODE_v3 ) R.id.iv_back -> requireActivity().onBackPressed() + + R.id.iv_calendar -> { + promptCalendarPicker() + } } } @@ -445,4 +456,76 @@ class MyTransfersFragment : BaseFragment(), } } } + + private fun promptCalendarPicker() { + SpinnerDateRangePickerDialogBuilder() + .context(requireContext()) + .spinnerTheme(R.style.NumberPickerStyle) + .showTitle(true) + .showDaySpinner(true) + .defaultDate(1990, 0, 1) + .setCurrentDateAsMaxDate() + .minDate(2017, 9, 10) + .dialogTheme(R.style.DatePickerTheme) + .showTitle(true) + .setTitle(getString(R.string.filter_by_date_text)) + .setFromTitle(getString(R.string.from_text) + " :") + .setToTitle(getString(R.string.to_text) + " :") + .setPositiveButtonText(getString(R.string.ok_text)) + .setNegativeButtonText(getString(R.string.cancel_text)) + .callback(object : OnRangeDateSetListener { + private var startDate = "" + private var endDate = "" + override fun onFromDateSet( + datePicker: DatePicker, + year: Int, + monthOfYear: Int, + dayOfMonth: Int + ) { + startDate = + Integer.toString(year) + "-" + Integer.toString(monthOfYear + 1) + "-" + Integer.toString( + dayOfMonth + ) + binding.tvFromDate.setText( + Utils.formateDateFromstring( + Utils.getDefaultDateFormat(), + "MMM d, yyyy", + startDate + ) + ) + } + + override fun onToDateSet( + datePicker: DatePicker, + year: Int, + monthOfYear: Int, + dayOfMonth: Int + ) { + endDate = + Integer.toString(year) + "-" + Integer.toString(monthOfYear + 1) + "-" + Integer.toString( + dayOfMonth + ) + binding.tvToDate.setText( + Utils.formateDateFromstring( + Utils.getDefaultDateFormat(), + "MMM d, yyyy", + endDate + ) + ) + } + + override fun onInvalidRangeSelected() { + showToastMessage(getString(R.string.invalid_date_range_selected)) + } + + override fun onDateRangeReceivedSucess() { + if (binding.dateContainer.getVisibility() != View.VISIBLE) binding.dateContainer.setVisibility( + View.VISIBLE + ) + presenter!!.getAllRecipientListV5(null, Constants.CURRENT_COUNTRY_ID, startDate, endDate, "5") + } + }) + .build() + .show() + } } \ No newline at end of file diff --git a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/gateway/recipientlistingV3/RecipientListingV3Gateway.java b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/gateway/recipientlistingV3/RecipientListingV3Gateway.java index 3f76337c..9daa508e 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/gateway/recipientlistingV3/RecipientListingV3Gateway.java +++ b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/gateway/recipientlistingV3/RecipientListingV3Gateway.java @@ -18,8 +18,8 @@ public class RecipientListingV3Gateway extends PrivilegedGateway implements Reci } @Override - public Observable getAllRecipientFromNetworkV5(String auth, String Uid, String countryId) { - return HttpClientV2.getInstance().getAllRecipientV5(auth, Uid , countryId); + public Observable getAllRecipientFromNetworkV5(String auth, String Uid, String countryId, JsonObject jsonObject) { + return HttpClientV2.getInstance().getAllRecipientV5(auth, Uid , countryId , jsonObject); } @Override diff --git a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java index e5960068..ae86247f 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java +++ b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3InteractorInterface.java @@ -1,5 +1,6 @@ package com.remit.jmecustomer.features.recipientmanagement.presenter.recipientlistingV3; +import com.google.gson.JsonObject; import com.remit.jmecustomer.base.BaseInteractorInterface; import com.remit.jmecustomer.base.PrivilegedGatewayInterface; @@ -12,7 +13,7 @@ public interface RecipientListingV3InteractorInterface extends BaseInteractorInt interface RecipientListingV3GatewayInterface extends PrivilegedGatewayInterface { Observable getAllRecipientFromNetwork(String auth, String Uid); - Observable getAllRecipientFromNetworkV5(String auth, String Uid , String countryId); + Observable getAllRecipientFromNetworkV5(String auth, String Uid , String countryId , JsonObject jsonObject); Observable deleteRecipientFromNetwork(String auth, String Uid, String recipientID); diff --git a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3Presenter.java b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3Presenter.java index 9d79d6a8..fd4fd6c6 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3Presenter.java +++ b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3Presenter.java @@ -1,5 +1,6 @@ package com.remit.jmecustomer.features.recipientmanagement.presenter.recipientlistingV3; +import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.remit.jmecustomer.R; import com.remit.jmecustomer.base.BasePresenter; @@ -61,12 +62,16 @@ public class RecipientListingV3Presenter extends BasePresenter implements Recipi } @Override - public void getAllRecipientListV5(Runnable task, String countryId) { + public void getAllRecipientListV5(Runnable task, String countryId, String fromDate, String toDate, String Page) { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("fromDate", fromDate); + jsonObject.addProperty("toDate", toDate); + jsonObject.addProperty("Page", Page); compositeDisposable.add( this.gateway.getAllRecipientFromNetworkV5( gateway.getAuth(), gateway.getUserIDNumber(), - countryId) + countryId, jsonObject) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text))) diff --git a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java index f86e12fa..64c2f109 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java +++ b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/presenter/recipientlistingV3/RecipientListingV3PresenterInterface.java @@ -14,13 +14,14 @@ public interface RecipientListingV3PresenterInterface extends BasePresenterInter void getAllRecipientList(Runnable task); - void getAllRecipientListV5(Runnable task , String countryId); + void getAllRecipientListV5(Runnable task, String countryId, + String fromDate, String toDate, String Page); + void deleteRecipient(String recipientId); void verifyEmailCode(String emailCode); - void saveSelectedRecipientInformationForSendMoney(ReceiverInfoV3Model recipientInfoModel); void searchForReciever(String keyword); @@ -29,16 +30,18 @@ public interface RecipientListingV3PresenterInterface extends BasePresenterInter void saveSelectedRecipientInfomation(ReceiverInfoV3Model recipientInfoModel); - void onRecipentUpdatedSucesss(String receiverId ); + void onRecipentUpdatedSucesss(String receiverId); void requestForOtp(ReceiverInfoV3Model recipientInfoModel); - interface RecipientListingV3ContractInterface extends BaseContractInterface - { + interface RecipientListingV3ContractInterface extends BaseContractInterface { void showAllRecipientToUser(List recipientInfoModelList, boolean changeLayoutBehavior); - default void showAllRecipientToUserV5(List recipientInfoModelList, List recentTransactionList, boolean changeLayoutBehavior){}; + default void showAllRecipientToUserV5(List recipientInfoModelList, List recentTransactionList, boolean changeLayoutBehavior) { + } + + ; void onRecipientDeletedSuccessfully(String recipientToBeDeleted); @@ -47,13 +50,14 @@ public interface RecipientListingV3PresenterInterface extends BasePresenterInter void showNoRecipientFoundView(boolean action); - void promptToSendMoney(GenericPromptDialog.GenericDialogPromptListener listener,String message); + void promptToSendMoney(GenericPromptDialog.GenericDialogPromptListener listener, String message); void redirectToSendMoney(SendMoneyRequiredDataV3 sendMoneyRequiredDataV3); void proceedToEditRecipient(ReceiverInfoV3Model recipientInfoModel); + void proceedToShowTermsConditions(ReceiverInfoV3Model recipientInfoModel); - void promptToEditRecipient(GenericPromptDialog.GenericDialogPromptListener genericDialogPromptListener,String message); + void promptToEditRecipient(GenericPromptDialog.GenericDialogPromptListener genericDialogPromptListener, String message); } } diff --git a/app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/SendMoneyV2TransactionCompleteActivity.java b/app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/SendMoneyV2TransactionCompleteActivity.java index 2a3f1236..ddb8ccee 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/SendMoneyV2TransactionCompleteActivity.java +++ b/app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/SendMoneyV2TransactionCompleteActivity.java @@ -323,6 +323,7 @@ public class SendMoneyV2TransactionCompleteActivity extends BaseActivity impleme a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); a.putExtra(BUNDLE_ACTION_FETCH_ALL_DATA, true); + a.putExtra("trans", true); startActivity(a); finish(); break; diff --git a/app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java b/app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java index d33c4f2d..c21e7b92 100644 --- a/app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java @@ -190,10 +190,11 @@ public interface ApiEndpoints { @Headers("Content-Type: application/json") Observable getAllRecipientV3(@Header("Authorization") String token, @Path("senderId") String senderId); - @GET(API_URL.GET_ALL_RECIPIENT_V5) + @POST(API_URL.GET_ALL_RECIPIENT_V5) @Headers("Content-Type: application/json") Observable getAllRecipientV5(@Header("Authorization") String token, @Path("customer") String senderId , - @Path("countryId") String countryId); + @Path("countryId") String countryId, + @Body() JsonObject jsonObject); @GET(API_URL.GET_COUNTRY_AND_RELATED_SERVICES) @Headers("Content-Type: application/json") diff --git a/app/src/main/res/layout/fragment_my_transfers.xml b/app/src/main/res/layout/fragment_my_transfers.xml index 5367776c..5a4497de 100644 --- a/app/src/main/res/layout/fragment_my_transfers.xml +++ b/app/src/main/res/layout/fragment_my_transfers.xml @@ -146,7 +146,7 @@ + + + + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/dateContainer" />