diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml index 54626a7e..c385b7eb 100644 --- a/.idea/assetWizardSettings.xml +++ b/.idea/assetWizardSettings.xml @@ -318,8 +318,8 @@ diff --git a/app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt b/app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt index 81926d1c..7f701579 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt @@ -48,7 +48,7 @@ class BeneficiaryDetailActivity : BaseActivity() { override fun onItemClicked(paymentMethodV3Model: PaymentMethodV3Model) { isPaymentSelected = true receiverInfoModel?.paymentMethod = paymentMethodV3Model - receiverInfoModel?.receiverId = paymentMethodV3Model.agent.id + receiverInfoModel?.receiverId = paymentMethodV3Model.receiverId receiverInfoModel?.agent = paymentMethodV3Model.agent } 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 6fa2bc52..ea0922d7 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 @@ -132,7 +132,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, val tab2: TabLayout.Tab = binding.tabLayout.newTab().setIcon(R.drawable.ic_transfers_unselected) val tab3: TabLayout.Tab = - binding.tabLayout.newTab().setIcon(R.drawable.ic_transfers_unselected) + binding.tabLayout.newTab().setIcon(R.drawable.profile_unselected) // Add tabs to the TabLayout binding.tabLayout.addTab(tab1) @@ -148,12 +148,20 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, } override fun onPageSelected(position: Int) { + if (viewModel?.notificationViewActive == true) { + if (position == 1) { + return + } + } if (viewModel?.notificationViewActive == true) { if (binding.vpDashboard.currentItem == 0) { homeFragmentV3.showNotification() + homeFragmentV3.focusHome(false) } else { homeFragmentV3.removeNotification() } + } else { + homeFragmentV3.focusHome(true) } binding.tabLayout.selectTab(binding.tabLayout.getTabAt(position)); } @@ -166,6 +174,11 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { override fun onTabSelected(tab: TabLayout.Tab) { + if (viewModel?.notificationViewActive == true) { + if (tab.position == 1) { + return + } + } when (tab.position) { 0 -> { resetTabs() @@ -179,7 +192,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, } 2 -> { resetTabs() - tab.setIcon(R.drawable.ic_transfers_selected) + tab.setIcon(R.drawable.profile_selected) binding.vpDashboard.currentItem = 2 } } @@ -201,7 +214,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, fun resetTabs() { binding.tabLayout.getTabAt(0)?.setIcon(R.drawable.ic_home_unselected) binding.tabLayout.getTabAt(1)?.setIcon(R.drawable.ic_transfers_unselected) - binding.tabLayout.getTabAt(2)?.setIcon(R.drawable.ic_transfers_unselected) + binding.tabLayout.getTabAt(2)?.setIcon(R.drawable.profile_unselected) } override fun getContext(): AppCompatActivity { @@ -325,15 +338,15 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, if (!action) { viewGroupOverlay.clear() } - if (binding.vpDashboard.currentItem == 2) { - viewGroupOverlay.clear() - } this.notificationViewBoundry = notificationViewBoundry isNotificaitonViewActive = action if (isNotificaitonViewActive()) { viewModel?.notificationViewActive = true } + if (viewModel?.notificationViewActive == true) { + homeFragmentV3.focusHome(false) + } } override fun showBankDeposit() { @@ -764,7 +777,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2, } else false } - private fun isNotificaitonViewActive(): Boolean { + public fun isNotificaitonViewActive(): Boolean { return isNotificaitonViewActive && notificationViewBoundry != null } } \ No newline at end of file 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 597749eb..d2f1a92e 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 @@ -25,6 +25,7 @@ import androidx.transition.AutoTransition import androidx.transition.Transition import androidx.transition.TransitionListenerAdapter import androidx.transition.TransitionManager +import androidx.transition.Visibility import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.signature.ObjectKey @@ -134,6 +135,9 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, homeViewModel!!.subscribeToHomeRelatedDataEvent().observe( viewLifecycleOwner ) { homeViewRelatedDTOV2: HomeViewRelatedDTOV2 -> + if (binding.swiperefresh.isRefreshing) { + binding.swiperefresh.isRefreshing = false + } Glide.with(context!!) .load(homeViewRelatedDTOV2.profileImage) .apply(options.signature(ObjectKey(System.currentTimeMillis()))) @@ -141,12 +145,18 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, .placeholder(R.drawable.ic_user) .into((requireActivity() as HomeActivityV3).binding.toolbarHead.ivProfileImage) setBannerData(homeViewRelatedDTOV2.bannerImages) + this.displayUserInfo( + homeViewRelatedDTOV2 + ) if (homeViewRelatedDTOV2.homeNotificationViewDTO != null) { this.homeViewRelatedDTOV2 = homeViewRelatedDTOV2 showNotificationView(homeViewRelatedDTOV2.homeNotificationViewDTO) } homeViewModel?.showChangedNotification(homeViewRelatedDTOV2.notificationCount) } + binding.swiperefresh.setOnRefreshListener { + homeViewModel!!.getRequiredData() + } } fun showNotification() { @@ -157,8 +167,12 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, } } - fun focusHome(){ - + fun focusHome(focus: Boolean) { + if (!focus) { + binding.overlayLayout.visibility = View.VISIBLE + } else { + binding.overlayLayout.visibility = View.GONE + } } private fun setUpData() { @@ -170,9 +184,9 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, viewModel!!.subscribeToUserProfileInfoFetchEvent().observe( this ) { body: UserProfile? -> - this.displayUserInfo( - body!! - ) +// this.displayUserInfo( +// body!! +// ) } } @@ -198,15 +212,15 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener, gestureDetector = GestureDetectorCompat(requireContext(), myViewGestureDetector) } - fun displayUserInfo(body: UserProfile) { - binding.tvAccNo.text = body.walletNumber + fun displayUserInfo(body: HomeViewRelatedDTOV2) { + binding.tvAccNo.text = body.referralCode binding.tvAvlBalance.text = body.availableBalance (requireActivity() as HomeActivityV3).binding.toolbarHead.tvProfileName.text = - "Hi " + body.firstName + "Hi " + body.userName binding.ivCopy.setOnClickListener { val clipboardManager = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val clipData = ClipData.newPlainText("label", body.walletNumber) + val clipData = ClipData.newPlainText("label", body.referralCode) clipboardManager.setPrimaryClip(clipData) Toast.makeText(requireContext(), "Copied to clipboard", Toast.LENGTH_SHORT).show() } 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 bd356bc5..9403a4fd 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 @@ -3,6 +3,7 @@ package com.remit.jmecustomer.features.myTransfers.view import MyBeneficiariesAdapter import android.content.Intent import android.os.Bundle +import android.os.Handler import android.os.Parcelable import android.text.Editable import android.view.LayoutInflater @@ -21,6 +22,7 @@ import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.Gen import com.remit.jmecustomer.databinding.FragmentMyTransfersBinding import com.remit.jmecustomer.features.beneficiaryDetail.BeneficiaryDetailActivity import com.remit.jmecustomer.features.home.presenter.HomeViewModel +import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3 import com.remit.jmecustomer.features.myTransfers.adapters.RecentTransactionsAdapter import com.remit.jmecustomer.features.recipientmanagement.gateway.recipientlistingV3.RecipientListingV3Gateway import com.remit.jmecustomer.features.recipientmanagement.model.recipientModelV5.Receiver @@ -67,9 +69,11 @@ class MyTransfersFragment : BaseFragment(), ): View? { _binding = FragmentMyTransfersBinding.inflate(inflater, container, false) init() - if (homeViewModel?.checkIfUserVerified() == null) { - performDefaultAction("151") - } + Handler().postDelayed({ + if (!(requireActivity() as HomeActivityV3).isNotificaitonViewActive()) { + performDefaultAction("151") + } + }, 2000) setUpData() return binding.root } diff --git a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/model/recipientlistingV3/PaymentMethodV3Model.java b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/model/recipientlistingV3/PaymentMethodV3Model.java index cd328629..1113deee 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/model/recipientlistingV3/PaymentMethodV3Model.java +++ b/app/src/main/java/com/remit/jmecustomer/features/recipientmanagement/model/recipientlistingV3/PaymentMethodV3Model.java @@ -11,6 +11,9 @@ import java.util.List; public class PaymentMethodV3Model implements Parcelable { + @SerializedName("receiverId") + @Expose + private String receiverId; @SerializedName("id") @Expose private String id; @@ -33,6 +36,14 @@ public class PaymentMethodV3Model implements Parcelable { boolean selected; + public String getReceiverId() { + return receiverId; + } + + public void setReceiverId(String receiverId) { + this.receiverId = receiverId; + } + public String getId() { return id; } @@ -103,6 +114,7 @@ public class PaymentMethodV3Model implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.receiverId); dest.writeString(this.id); dest.writeString(this.name); dest.writeString(this.localizedName); @@ -111,6 +123,7 @@ public class PaymentMethodV3Model implements Parcelable { } protected PaymentMethodV3Model(Parcel in) { + this.receiverId = in.readString(); this.id = in.readString(); this.name = in.readString(); this.localizedName = in.readString(); diff --git a/app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt b/app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt index 1040d87d..b6da46a7 100644 --- a/app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt +++ b/app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt @@ -32,7 +32,10 @@ import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.Gen import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialogSingleButton import com.remit.jmecustomer.databinding.FragmentProfileBinding import com.remit.jmecustomer.features.aboutscreen.view.AboutJMERemit -import com.remit.jmecustomer.features.changepassNPin.view.ChangePassNPinActivity +import com.remit.jmecustomer.features.aboutscreen.viewModel.AboutUsPresenterInterface.AboutUsContractInterface +import com.remit.jmecustomer.features.aboutscreen.viewModel.AboutUsViewModel +import com.remit.jmecustomer.features.aboutscreen.viewModel.AboutUsViewModelFactory +import com.remit.jmecustomer.features.changepassword.view.UserPasswordChangeV2Activity import com.remit.jmecustomer.features.changetxnpin.view.ChangeTxnPinActivity import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragment import com.remit.jmecustomer.features.depositinfo.view.DepositInfo @@ -49,6 +52,7 @@ import com.remit.jmecustomer.features.security.RemitAuthManager1 import com.remit.jmecustomer.features.security.RemitAuthManagerGateway import com.remit.jmecustomer.features.security.model.RemitAuthFailedResult import com.remit.jmecustomer.features.security.model.RemitAuthSuccessResult +import com.remit.jmecustomer.features.sendmoney.view.verification.TermsAndConditionV2BrowserActivity import com.remit.jmecustomer.features.settings.gateway.LanguageSelectionGateway import com.remit.jmecustomer.features.settings.gateway.LanguageSelectionGatewayInterface import com.remit.jmecustomer.features.settings.view.FingerSetUpPasswordFragment @@ -61,6 +65,8 @@ import com.remit.jmecustomer.features.userprofile.model.UserProfile import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterInterface import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterV2 import com.remit.jmecustomer.features.walletstatement.view.WalletStatementV2Activity +import com.remit.jmecustomer.features.webbrowser.WebBrowserV2Activity +import com.remit.jmecustomer.features.webbrowser.model.WebRequestModel import com.remit.jmecustomer.utils.Constants import com.remit.jmecustomer.utils.FileUtils import com.remit.jmecustomer.utils.Utils @@ -72,7 +78,7 @@ import java.io.* class ProfileFragment : BaseFragment(), View.OnClickListener, UserProfilePresenterInterface.UserProfileContractInterface, RemitSucessFailureCallBack, - CompoundButton.OnCheckedChangeListener { + CompoundButton.OnCheckedChangeListener, AboutUsContractInterface { private var TAG: String? = "TAG" var selectedImagePath: String = "" var imgReport1: String = "" @@ -95,6 +101,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, var remitAuthManagerGateway: RemitAuthManagerGateway? = null val STORAGE_INTENT_REQUEST = 9992 private var homeViewModel: HomeViewModel? = null + private var aboutUsViewModel: AboutUsViewModel? = null override fun onCreateView( @@ -113,8 +120,13 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, viewModel = ViewModelProvider(this, UserProfileViewModelFactory(this)).get( UserProfilePresenterV2::class.java ) - binding.tvRewardPoint.setText( - RemitApplication.getStorage().getString(PrefKeys.REWARD_POINTS, "") + aboutUsViewModel = + ViewModelProvider(this, AboutUsViewModelFactory(this)).get( + AboutUsViewModel::class.java + ) + binding.tvRewardPointRefer.setText( + RemitApplication.getStorage() + .getString(PrefKeys.REWARD_POINTS, "") + " " + "reward points" ) homeViewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java) binding.llPaymentLayout.setOnClickListener(this) @@ -130,6 +142,9 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, binding.llLoyaltyPoints.setOnClickListener(this) binding.llRenewId.setOnClickListener(this) binding.llRewards.setOnClickListener(this) + binding.tvPrivacyPolicy.setOnClickListener(this) + binding.tvTermAndCondition.setOnClickListener(this) + binding.tvFraudGuarantee.setOnClickListener(this) viewModel!!.subscribeToUserProfileInfoFetchEvent().observe( this ) { body: UserProfile? -> @@ -243,7 +258,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, takeUserImageData() R.id.ll_change_password -> { - startActivity(Intent(requireActivity(), ChangePassNPinActivity::class.java)) + startActivity(Intent(requireActivity(), UserPasswordChangeV2Activity::class.java)) } R.id.ll_refer_earn -> { @@ -261,6 +276,18 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, R.id.ll_rewards -> { // startActivity(Intent(requireActivity(), RewardActivity::class.java)) } + + R.id.tv_term_and_condition -> { + aboutUsViewModel?.getWebRequestDataForTermsAndCondition() + } + + R.id.tv_privacy_policy -> { + aboutUsViewModel?.getWebRequestDataForPrivacyPolicy() + } + + R.id.tv_fraud_guarantee -> { + aboutUsViewModel?.getFraudGuaranteePolicy() + } } } @@ -882,4 +909,31 @@ class ProfileFragment : BaseFragment(), View.OnClickListener, } return compressedBitmap } + + override fun navigateToTermsAndCondition(webRequestModel: WebRequestModel?) { + val intent = Intent(requireActivity(), TermsAndConditionV2BrowserActivity::class.java) + intent.putExtra(WebBrowserV2Activity.WEB_BROWSWER_URL_BUNDLE_KEY, webRequestModel) + startActivity(intent) + } + + override fun navigateToPrivacyAndPolicy(webRequestModel: WebRequestModel?) { + val intent = Intent(requireActivity(), TermsAndConditionV2BrowserActivity::class.java) + intent.putExtra(WebBrowserV2Activity.WEB_BROWSWER_URL_BUNDLE_KEY, webRequestModel) + startActivity(intent) + } + + + override fun navigateToFaceBookPage(webRequestModel: WebRequestModel?) { + val facebookIntent = Intent(Intent.ACTION_VIEW) + val facebookUrl = Utils.getFacebookPageURL(requireActivity()) + facebookIntent.data = Uri.parse(facebookUrl) + startActivity(facebookIntent) + } + + + override fun navigateToFraudGuaranteePolicy(webRequestModel: WebRequestModel?) { + val intent = Intent(requireActivity(), TermsAndConditionV2BrowserActivity::class.java) + intent.putExtra(WebBrowserV2Activity.WEB_BROWSWER_URL_BUNDLE_KEY, webRequestModel) + startActivity(intent) + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_loyalty.xml b/app/src/main/res/drawable/ic_loyalty.xml new file mode 100644 index 00000000..3f3e677b --- /dev/null +++ b/app/src/main/res/drawable/ic_loyalty.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/ic_renew_id.xml b/app/src/main/res/drawable/ic_renew_id.xml new file mode 100644 index 00000000..b17a5f89 --- /dev/null +++ b/app/src/main/res/drawable/ic_renew_id.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/app/src/main/res/drawable/profile_selected.xml b/app/src/main/res/drawable/profile_selected.xml new file mode 100644 index 00000000..200197cf --- /dev/null +++ b/app/src/main/res/drawable/profile_selected.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/app/src/main/res/drawable/profile_unselected.xml b/app/src/main/res/drawable/profile_unselected.xml new file mode 100644 index 00000000..2357744b --- /dev/null +++ b/app/src/main/res/drawable/profile_unselected.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/app/src/main/res/layout/activity_home_v3.xml b/app/src/main/res/layout/activity_home_v3.xml index 5511e2a8..68840ca2 100644 --- a/app/src/main/res/layout/activity_home_v3.xml +++ b/app/src/main/res/layout/activity_home_v3.xml @@ -41,7 +41,7 @@ app:tabPaddingStart="10dp" app:tabPaddingEnd="10dp" app:tabIndicatorHeight="2dp" - app:tabIndicatorColor="@color/colorPrimary" + app:tabIndicatorColor="@color/light_blue" /> diff --git a/app/src/main/res/layout/fragment_home_new.xml b/app/src/main/res/layout/fragment_home_new.xml index edb0e9bb..78379971 100644 --- a/app/src/main/res/layout/fragment_home_new.xml +++ b/app/src/main/res/layout/fragment_home_new.xml @@ -1,11 +1,17 @@ - + + + @@ -438,6 +444,19 @@ + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index f75084ba..ecca7c33 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -231,7 +231,7 @@ android:gravity="center" android:orientation="horizontal" android:padding="@dimen/_13sdp" - android:visibility="visible"> + android:visibility="gone"> + app:srcCompat="@drawable/ic_loyalty" + /> + + + @@ -435,7 +445,7 @@ android:id="@+id/ic_renew_id" android:layout_width="@dimen/_20sdp" android:layout_height="@dimen/_20sdp" - app:srcCompat="@drawable/round_person_24px" /> + app:srcCompat="@drawable/ic_renew_id" /> - - + + + + +