Browse Source

issue fixes and ui changes

new_design
Mohan Shiwakoti 1 year ago
parent
commit
8f774040d1
  1. 4
      .idea/assetWizardSettings.xml
  2. 7
      app/src/main/AndroidManifest.xml
  3. 2
      app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt
  4. 2
      app/src/main/java/com/remit/jmecustomer/features/depositslip/view/DepositSlipActivity.java
  5. 80
      app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt
  6. 110
      app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt
  7. 88
      app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/MyBeneficiariesAllAdapter.kt
  8. 59
      app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyBeneficiaryAllActivity.kt
  9. 12
      app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyTransfersFragment.kt
  10. 70
      app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt
  11. 10
      app/src/main/java/com/remit/jmecustomer/utils/Utils.java
  12. 1
      app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java
  13. BIN
      app/src/main/res/drawable-hdpi/icon_location.png
  14. BIN
      app/src/main/res/drawable-hdpi/icon_male_user.png
  15. BIN
      app/src/main/res/drawable-hdpi/icon_people.png
  16. BIN
      app/src/main/res/drawable-hdpi/icon_phone.png
  17. BIN
      app/src/main/res/drawable-ldpi/icon_location.png
  18. BIN
      app/src/main/res/drawable-ldpi/icon_male_user.png
  19. BIN
      app/src/main/res/drawable-ldpi/icon_people.png
  20. BIN
      app/src/main/res/drawable-ldpi/icon_phone.png
  21. BIN
      app/src/main/res/drawable-mdpi/icon_location.png
  22. BIN
      app/src/main/res/drawable-mdpi/icon_male_user.png
  23. BIN
      app/src/main/res/drawable-mdpi/icon_people.png
  24. BIN
      app/src/main/res/drawable-mdpi/icon_phone.png
  25. BIN
      app/src/main/res/drawable-xhdpi/icon_location.png
  26. BIN
      app/src/main/res/drawable-xhdpi/icon_male_user.png
  27. BIN
      app/src/main/res/drawable-xhdpi/icon_people.png
  28. BIN
      app/src/main/res/drawable-xhdpi/icon_phone.png
  29. BIN
      app/src/main/res/drawable-xxhdpi/icon_location.png
  30. BIN
      app/src/main/res/drawable-xxhdpi/icon_male_user.png
  31. BIN
      app/src/main/res/drawable-xxhdpi/icon_people.png
  32. BIN
      app/src/main/res/drawable-xxhdpi/icon_phone.png
  33. BIN
      app/src/main/res/drawable-xxxhdpi/icon_location.png
  34. BIN
      app/src/main/res/drawable-xxxhdpi/icon_male_user.png
  35. BIN
      app/src/main/res/drawable-xxxhdpi/icon_people.png
  36. BIN
      app/src/main/res/drawable-xxxhdpi/icon_phone.png
  37. BIN
      app/src/main/res/drawable/account.png
  38. 29
      app/src/main/res/drawable/account.xml
  39. 17
      app/src/main/res/drawable/change__password.xml
  40. 48
      app/src/main/res/drawable/change_pin.xml
  41. 23
      app/src/main/res/drawable/contact_us.xml
  42. 20
      app/src/main/res/drawable/refer_earn.xml
  43. 16
      app/src/main/res/drawable/reward_points.xml
  44. 19
      app/src/main/res/layout/activity_beneficiary_detail.xml
  45. 1
      app/src/main/res/layout/activity_home_v3.xml
  46. 20
      app/src/main/res/layout/fragment_beneficiary_all.xml
  47. 19
      app/src/main/res/layout/fragment_home_new.xml
  48. 11
      app/src/main/res/layout/fragment_my_transfers.xml
  49. 219
      app/src/main/res/layout/fragment_profile.xml
  50. 47
      app/src/main/res/layout/row_all_beneficiary.xml
  51. 4
      app/src/main/res/xml/file_paths.xml

4
.idea/assetWizardSettings.xml

@ -318,8 +318,8 @@
<option name="values"> <option name="values">
<map> <map>
<entry key="assetSourceType" value="FILE" /> <entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="ic_upload_slip" />
<entry key="sourceFile" value="$USER_HOME$/Downloads/JME 2/upload slip.svg" />
<entry key="outputName" value="reward_points" />
<entry key="sourceFile" value="$USER_HOME$/Downloads/Icons_JME 2/reward_points.svg" />
</map> </map>
</option> </option>
</PersistentState> </PersistentState>

7
app/src/main/AndroidManifest.xml

@ -21,6 +21,8 @@
android:allowBackup="false" android:allowBackup="false"
android:debuggable="false" android:debuggable="false"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
android:hardwareAccelerated="true"
android:label="@string/app_name" android:label="@string/app_name"
android:largeHeap="true" android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
@ -288,6 +290,11 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" /> android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".features.myTransfers.view.MyBeneficiaryAllActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity <activity
android:name="com.remit.jmecustomer.features.walletstatement.view.WalletStatementV2Activity" android:name="com.remit.jmecustomer.features.walletstatement.view.WalletStatementV2Activity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

2
app/src/main/java/com/remit/jmecustomer/features/beneficiaryDetail/BeneficiaryDetailActivity.kt

@ -48,7 +48,7 @@ class BeneficiaryDetailActivity : BaseActivity() {
override fun onItemClicked(paymentMethodV3Model: PaymentMethodV3Model) { override fun onItemClicked(paymentMethodV3Model: PaymentMethodV3Model) {
isPaymentSelected = true isPaymentSelected = true
receiverInfoModel?.paymentMethod = paymentMethodV3Model receiverInfoModel?.paymentMethod = paymentMethodV3Model
receiverInfoModel?.receiverId = paymentMethodV3Model.id
receiverInfoModel?.receiverId = paymentMethodV3Model.agent.id
receiverInfoModel?.agent = paymentMethodV3Model.agent receiverInfoModel?.agent = paymentMethodV3Model.agent
} }

2
app/src/main/java/com/remit/jmecustomer/features/depositslip/view/DepositSlipActivity.java

@ -71,7 +71,7 @@ public class DepositSlipActivity extends BaseActivity implements DepositSlipPres
public static final int GALLERY_REQUEST_ID_FRONT = 6000; public static final int GALLERY_REQUEST_ID_FRONT = 6000;
public static final int GALLERY_REQUEST_ID_BACK = 7000; public static final int GALLERY_REQUEST_ID_BACK = 7000;
private static final int COMPRESS_QUALITY = 70;
public static final int COMPRESS_QUALITY = 70;
@BindView(R.id.toolbar_title) @BindView(R.id.toolbar_title)
JmeTextView toolBarTitle; JmeTextView toolBarTitle;

80
app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt

@ -6,6 +6,7 @@ import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.text.Html import android.text.Html
import android.view.View import android.view.View
import android.view.ViewGroupOverlay
import android.widget.TextView import android.widget.TextView
import androidx.annotation.LayoutRes import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
@ -44,6 +45,7 @@ import com.remit.jmecustomer.features.home.presenter.HomeV2PresenterInterface
import com.remit.jmecustomer.features.home.presenter.HomeViewModel import com.remit.jmecustomer.features.home.presenter.HomeViewModel
import com.remit.jmecustomer.features.home.view.HomeActivityV2 import com.remit.jmecustomer.features.home.view.HomeActivityV2
import com.remit.jmecustomer.features.home.view.HomeFragmentV2 import com.remit.jmecustomer.features.home.view.HomeFragmentV2
import com.remit.jmecustomer.features.home.view.notifications.DimBackgroundView
import com.remit.jmecustomer.features.homeV3.HomePagerAdapter import com.remit.jmecustomer.features.homeV3.HomePagerAdapter
import com.remit.jmecustomer.features.kyc.existingCustomer.view.ExistingKYCV3Activity import com.remit.jmecustomer.features.kyc.existingCustomer.view.ExistingKYCV3Activity
import com.remit.jmecustomer.features.kyc.newCustomer.view.KYCV3Activity import com.remit.jmecustomer.features.kyc.newCustomer.view.KYCV3Activity
@ -65,9 +67,7 @@ import com.remit.jmecustomer.features.sendmoney.view.SendMoneyActionListener
import com.remit.jmecustomer.features.sendmoney.view.SendMoneyRequestSummaryActivity import com.remit.jmecustomer.features.sendmoney.view.SendMoneyRequestSummaryActivity
import com.remit.jmecustomer.features.sendmoney.view.SendMoneyScreenManager import com.remit.jmecustomer.features.sendmoney.view.SendMoneyScreenManager
import com.remit.jmecustomer.features.settings.view.FingerprintEnablePromptActivity import com.remit.jmecustomer.features.settings.view.FingerprintEnablePromptActivity
import com.remit.jmecustomer.features.transactionhistory.RemitTransactionViewModelFactory
import com.remit.jmecustomer.features.transactionhistory.presenter.TransactionHistoryV2Presenter import com.remit.jmecustomer.features.transactionhistory.presenter.TransactionHistoryV2Presenter
import com.remit.jmecustomer.features.transactionhistory.presenter.TransactionHistoryV2PresenterInterface
import com.remit.jmecustomer.features.transactionhistory.view.RemitTransactionHistoryActivity import com.remit.jmecustomer.features.transactionhistory.view.RemitTransactionHistoryActivity
import com.remit.jmecustomer.features.trustdock.view.TrustDockActivity import com.remit.jmecustomer.features.trustdock.view.TrustDockActivity
import com.remit.jmecustomer.features.userprofile.view.ProfileFragment import com.remit.jmecustomer.features.userprofile.view.ProfileFragment
@ -91,7 +91,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
// private HomeV2PresenterInterface presenter; // private HomeV2PresenterInterface presenter;
private var viewModel: HomeViewModel? = null private var viewModel: HomeViewModel? = null
private val notificationViewBoundry: Rect? = null
private var notificationViewBoundry: Rect? = null
private var isNotificaitonViewActive = false private var isNotificaitonViewActive = false
private var presenter: SendMoneyV2PresenterInterface? = null private var presenter: SendMoneyV2PresenterInterface? = null
private var sendMoneyRequiredData: SendMoneyRequiredDataV3? = null private var sendMoneyRequiredData: SendMoneyRequiredDataV3? = null
@ -202,7 +202,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showSendMoneyView() { override fun showSendMoneyView() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -214,12 +214,12 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
override fun showTodaysRateView() { override fun showTodaysRateView() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
startActivity(Intent(this, ExchangeRateActivity::class.java)) startActivity(Intent(this, ExchangeRateActivity::class.java))
} }
override fun showWalletStatment() { override fun showWalletStatment() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -230,7 +230,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showNoticeScreen() { override fun showNoticeScreen() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -241,7 +241,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showRecipientView() { override fun showRecipientView() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -252,7 +252,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showTransactionHistoryView() { override fun showTransactionHistoryView() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -263,7 +263,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showRenewIdScreen() { override fun showRenewIdScreen() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -274,7 +274,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showDepositSlipScreen() { override fun showDepositSlipScreen() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -285,7 +285,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showTrustDock() { override fun showTrustDock() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -304,26 +304,26 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
override fun dimOutMenu(notificationViewBoundry: Rect, action: Boolean) { override fun dimOutMenu(notificationViewBoundry: Rect, action: Boolean) {
// val viewGroupOverlay: ViewGroupOverlay = content_view.getOverlay()
// if (action && !isNotificaitonViewActive) {
// val view = DimBackgroundView(content_view.getContext())
// view.left = 0
// view.top = notificationViewBoundry.bottom - statusBarHeight
// view.right = content_view.getWidth()
// view.bottom = content_view.getHeight()
// viewGroupOverlay.clear()
// viewGroupOverlay.add(view)
// view.animate().alpha(.6f).setDuration(100).start()
// }
// if (!action) {
// viewGroupOverlay.clear()
// }
// notificationViewBoundry = notificationViewBoundry
// isNotificaitonViewActive = action
val viewGroupOverlay: ViewGroupOverlay = binding.contentView.getOverlay()
if (action && !isNotificaitonViewActive()) {
val view = DimBackgroundView(binding.contentView.getContext())
view.left = 0
view.top = notificationViewBoundry.bottom - statusBarHeight
view.right = binding.contentView.getWidth()
view.bottom = binding.contentView.getHeight()
viewGroupOverlay.clear()
viewGroupOverlay.add(view)
view.animate().alpha(.6f).setDuration(100).start()
}
if (!action) {
viewGroupOverlay.clear()
}
this.notificationViewBoundry = notificationViewBoundry
isNotificaitonViewActive = action
} }
override fun showBankDeposit() { override fun showBankDeposit() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -334,7 +334,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
} }
override fun showCashPickupRedeem() { override fun showCashPickupRedeem() {
if (isNotificaitonViewActive) return
if (isNotificaitonViewActive()) return
val unverifiedMessage: String = viewModel!!.checkIfUserVerified() val unverifiedMessage: String = viewModel!!.checkIfUserVerified()
if (unverifiedMessage == null) startActivity( if (unverifiedMessage == null) startActivity(
Intent( Intent(
@ -481,22 +481,6 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
Html.fromHtml("$jmeWalletNo\n <b><font color='#ed1c24'> $walletNumber</font></b>$bankName") Html.fromHtml("$jmeWalletNo\n <b><font color='#ed1c24'> $walletNumber</font></b>$bankName")
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// if (requestCode == APP_UPDATE_REQUEST && resultCode == RESULT_OK) {
// this.viewModel!!.storeAppUpdateDecision(
// data!!.getBooleanExtra(
// AppUpdateActivity.APP_UPDATE_NOT_NOW_TEMPORARY,
// false
// )
// )
// }
if (requestCode == 101 && resultCode == RESULT_OK) {
binding.vpDashboard.currentItem = 0
}
}
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
viewModel!!.onViewDestroyed() viewModel!!.onViewDestroyed()
@ -763,4 +747,8 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
true true
} else false } else false
} }
private fun isNotificaitonViewActive(): Boolean {
return isNotificaitonViewActive && notificationViewBoundry != null
}
} }

110
app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt

@ -6,23 +6,25 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.text.Editable import android.text.Editable
import android.view.* import android.view.*
import android.view.GestureDetector.SimpleOnGestureListener import android.view.GestureDetector.SimpleOnGestureListener
import android.view.ViewTreeObserver.OnGlobalLayoutListener
import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.AccelerateDecelerateInterpolator
import android.view.animation.Interpolator import android.view.animation.Interpolator
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.EditText
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import android.widget.*
import android.widget.TextView.OnEditorActionListener import android.widget.TextView.OnEditorActionListener
import android.widget.Toast
import androidx.core.view.GestureDetectorCompat import androidx.core.view.GestureDetectorCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper import androidx.recyclerview.widget.PagerSnapHelper
import androidx.transition.AutoTransition
import androidx.transition.Transition
import androidx.transition.TransitionListenerAdapter
import androidx.transition.TransitionManager
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import com.remit.jmecustomer.R import com.remit.jmecustomer.R
@ -40,9 +42,12 @@ import com.remit.jmecustomer.features.exrate.model.datav2.PaymentMode
import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenter import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenter
import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenterInterface import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenterInterface
import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenterInterface.ExchangeRateContractInterfacee import com.remit.jmecustomer.features.exrate.presenter.ExchangeRatePresenterInterface.ExchangeRateContractInterfacee
import com.remit.jmecustomer.features.home.HomeParentViewContractV2
import com.remit.jmecustomer.features.home.model.BannerImage import com.remit.jmecustomer.features.home.model.BannerImage
import com.remit.jmecustomer.features.home.model.HomeNotificationViewDTO
import com.remit.jmecustomer.features.home.model.HomeViewRelatedDTOV2 import com.remit.jmecustomer.features.home.model.HomeViewRelatedDTOV2
import com.remit.jmecustomer.features.home.presenter.HomeViewModel import com.remit.jmecustomer.features.home.presenter.HomeViewModel
import com.remit.jmecustomer.features.home.view.notifications.*
import com.remit.jmecustomer.features.homeV3.adpaters.BannerViewAdapter import com.remit.jmecustomer.features.homeV3.adpaters.BannerViewAdapter
import com.remit.jmecustomer.features.homeV3.adpaters.SendTypeAdapter import com.remit.jmecustomer.features.homeV3.adpaters.SendTypeAdapter
import com.remit.jmecustomer.features.myTransfers.view.MyTransfersFragment import com.remit.jmecustomer.features.myTransfers.view.MyTransfersFragment
@ -124,6 +129,9 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
viewLifecycleOwner viewLifecycleOwner
) { homeViewRelatedDTOV2: HomeViewRelatedDTOV2 -> ) { homeViewRelatedDTOV2: HomeViewRelatedDTOV2 ->
setBannerData(homeViewRelatedDTOV2.bannerImages) setBannerData(homeViewRelatedDTOV2.bannerImages)
if (homeViewRelatedDTOV2.homeNotificationViewDTO != null) {
showNotificationView(homeViewRelatedDTOV2.homeNotificationViewDTO)
}
homeViewModel?.showChangedNotification(homeViewRelatedDTOV2.notificationCount) homeViewModel?.showChangedNotification(homeViewRelatedDTOV2.notificationCount)
} }
} }
@ -195,6 +203,26 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
) )
) else showPopUpMessage(unverifiedMessage, CustomAlertDialog.AlertType.ALERT, null) ) else showPopUpMessage(unverifiedMessage, CustomAlertDialog.AlertType.ALERT, null)
} }
R.id.notificationViewContainer -> {
handleNotificationOnClick()
}
}
}
private fun handleNotificationOnClick() {
val notificationView: View = binding.notificationViewContainer.getChildAt(0)
if (notificationView == null) return else if (notificationView is KYCNotSubmittedNotificationView || notificationView is TermsNotAcceptedNotificationView) {
homeViewModel!!.showKYCScreen(notificationView is KYCNotSubmittedNotificationView)
} else if (notificationView is KYCNotVerifiedNotificationView) {
// homeViewModel.showKYCScreen();
} else if (notificationView is ChangePinNotificationView || notificationView is ChangePinView) {
homeViewModel!!.showChangePinScreen()
} else if (notificationView is ChangePinNPassNotificationView) {
homeViewModel!!.showChangePinNPassScreen()
} else if (notificationView is ChangePassNotificationView) {
homeViewModel!!.showChangePassScreen()
} else if (notificationView is EmailNotVerifiedView) {
homeViewModel!!.requestForOtp()
} }
} }
@ -207,7 +235,9 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
val homeActivityV3: HomeActivityV3 = requireActivity() as HomeActivityV3 val homeActivityV3: HomeActivityV3 = requireActivity() as HomeActivityV3
val transfersFragment = val transfersFragment =
requireActivity().supportFragmentManager.findFragmentByTag("android:switcher:" + homeActivityV3.binding.vpDashboard.id + ":" + 1) as MyTransfersFragment requireActivity().supportFragmentManager.findFragmentByTag("android:switcher:" + homeActivityV3.binding.vpDashboard.id + ":" + 1) as MyTransfersFragment
if (homeViewModel?.checkIfUserVerified() == null) {
transfersFragment.performDefaultAction(countryPaymentService.countryId) transfersFragment.performDefaultAction(countryPaymentService.countryId)
}
}) })
if (!countryListingDialog!!.isAdded) countryListingDialog?.show( if (!countryListingDialog!!.isAdded) countryListingDialog?.show(
requireActivity().supportFragmentManager, requireActivity().supportFragmentManager,
@ -445,4 +475,74 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
} }
}, 500, 3500) }, 500, 3500)
} }
private fun showNotificationView(notificationViewDTO: HomeNotificationViewDTO) {
Handler().postDelayed({
val notificationView =
HomeNotificiationViewFactory.getNotificationView(
notificationViewDTO,
binding.notificationViewContainer.getContext()
)
if (notificationView != null) {
val autoTransition =
AutoTransition()
if (notificationViewDTO.isFocused) {
val notificationViewHeight = IntArray(1)
notificationView.viewTreeObserver
.addOnGlobalLayoutListener(object : OnGlobalLayoutListener {
override fun onGlobalLayout() {
notificationViewHeight[0] = notificationView.height
notificationView.viewTreeObserver
.removeOnGlobalLayoutListener(this)
}
})
binding.scrollViewHomeFragment.setEnableScrolling(false)
autoTransition.addListener(object :
TransitionListenerAdapter() {
override fun onTransitionEnd(transition: Transition) {
super.onTransitionEnd(transition)
val notificationViewContainerPos = IntArray(2)
binding.notificationViewContainer.getLocationInWindow(
notificationViewContainerPos
)
val notificationViewContainerBoundry =
Rect(
0,
notificationViewContainerPos[0],
binding.notificationViewContainer.getWidth(),
notificationViewContainerPos[1] + notificationViewHeight[0]
)
if (activity != null && notificationViewHeight[0] != 0) (activity as HomeParentViewContractV2?)!!.dimOutMenu(
notificationViewContainerBoundry,
true
)
}
}
)
} else {
binding.scrollViewHomeFragment.setEnableScrolling(true)
if (activity != null) (activity as HomeParentViewContractV2?)!!.dimOutMenu(
null,
false
)
}
TransitionManager.beginDelayedTransition(
binding.homeContainerView,
autoTransition
)
notificationView.addNotificationTo(binding.notificationViewContainer)
binding.notificationViewContainer.setVisibility(View.VISIBLE)
binding.notificationViewContainer.setOnClickListener(this)
} else {
TransitionManager.beginDelayedTransition(binding.homeContainerView)
binding.notificationViewContainer.setVisibility(View.GONE)
binding.notificationViewContainer.removeAllViews()
binding.notificationViewContainer.setOnClickListener(null)
if (activity != null) (activity as HomeParentViewContractV2?)!!.dimOutMenu(
null,
false
)
}
}, 500)
}
} }

88
app/src/main/java/com/remit/jmecustomer/features/myTransfers/adapters/MyBeneficiariesAllAdapter.kt

@ -0,0 +1,88 @@
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.remit.jmecustomer.databinding.RowAllBeneficiaryBinding
import com.remit.jmecustomer.databinding.RowFragmentBeneficiariesBinding
import com.remit.jmecustomer.features.beneficiaryDetail.BeneficiaryDetailActivity
import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3
import com.remit.jmecustomer.features.recipientmanagement.adapter.RecipientListingV3RvAdapter
import com.remit.jmecustomer.features.recipientmanagement.model.recipientModelV5.Receiver
import com.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.ReceiverInfoV3Model
import com.remit.jmecustomer.features.sendmoney.model.SendMoneyRequiredDataV3
class MyBeneficiariesAllAdapter(
private var data: MutableList<Receiver>,
private val listener: RecipientSelectionListener? = null
) :
RecyclerView.Adapter<MyBeneficiariesAllAdapter.ViewHolder>() {
var mContext: Context? = null
init {
}
class ViewHolder(private val binding: RowAllBeneficiaryBinding) :
RecyclerView.ViewHolder(binding.root) {
val bindings: RowAllBeneficiaryBinding = binding
fun bind(item: String) {
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = RowAllBeneficiaryBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
mContext = parent.context;
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = data[position]
holder.bindings.rvInitials.setOnClickListener {
}
holder.bindings.constMain.setOnClickListener {
listener?.onRecipientSelected(item)
}
holder.bindings.rvInitials.setOnClickListener {
listener?.onRecipientSelected(item)
}
holder.bindings.tvName.text = item.fullName
holder.bindings.tvInitial.text = getInitials(item.fullName)
// holder.bind(item)
}
override fun getItemCount(): Int {
return data.size
}
fun setData(recievedData: MutableList<Receiver>?) {
if (recievedData != null && recievedData.size > 0) this.data =
recievedData else this.data.clear()
notifyDataSetChanged()
}
fun getInitials(fullName: String): String {
val names = fullName.split(" ") // Split the full name into separate names
var initials = ""
if (names.size >= 1) {
initials += names[0][0].toUpperCase() // Add the first character of the first name to the initials string
}
if (names.size >= 2) {
initials += names[names.size - 1][0].toUpperCase() // Add the first character of the last name to the initials string
}
return initials
}
interface RecipientSelectionListener {
fun onRecipientSelected(recipientInfoModel: Receiver)
fun proceedToDeleteRecipient(receiverInfoV3Model: Receiver)
fun proceedToEditRecipient(receiverInfoV3Model: Receiver)
fun onAllRecipientDeleted()
}
}

59
app/src/main/java/com/remit/jmecustomer/features/myTransfers/view/MyBeneficiaryAllActivity.kt

@ -0,0 +1,59 @@
package com.remit.jmecustomer.features.myTransfers.view
import MyBeneficiariesAllAdapter
import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.remit.jmecustomer.base.BaseActivity
import com.remit.jmecustomer.databinding.FragmentBeneficiaryAllBinding
import com.remit.jmecustomer.features.beneficiaryDetail.BeneficiaryDetailActivity
import com.remit.jmecustomer.features.recipientmanagement.model.recipientModelV5.Receiver
class MyBeneficiaryAllActivity : BaseActivity(),
MyBeneficiariesAllAdapter.RecipientSelectionListener {
private lateinit var binding: FragmentBeneficiaryAllBinding
private var adapter: MyBeneficiariesAllAdapter? = null
private var mainList: ArrayList<Receiver>? = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = FragmentBeneficiaryAllBinding.inflate(layoutInflater)
val view: View = binding.root
setContentView(view)
binding.toolbar.toolbarTitle.text = "All Recepients"
binding.toolbar.ivBack.setOnClickListener {
super.onBackPressed()
}
init()
}
fun init() {
mainList = intent?.getParcelableArrayListExtra("receiver")
var data: ArrayList<Receiver> = ArrayList()
adapter = MyBeneficiariesAllAdapter(data, this)
val layoutManagerVertical = LinearLayoutManager(this)
binding.recipientListRv.layoutManager = layoutManagerVertical
binding.recipientListRv.adapter = adapter
adapter?.setData(mainList)
}
override fun onRecipientSelected(recipientInfoModel: Receiver) {
val intent = Intent(this, BeneficiaryDetailActivity::class.java)
intent.putExtra("receiverInfoModel", recipientInfoModel)
startActivity(intent)
}
override fun proceedToDeleteRecipient(receiverInfoV3Model: Receiver) {
}
override fun proceedToEditRecipient(receiverInfoV3Model: Receiver) {
}
override fun onAllRecipientDeleted() {
}
}

12
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 MyBeneficiariesAdapter
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -18,6 +19,7 @@ import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog
import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.GenericDialogPromptListener import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.GenericDialogPromptListener
import com.remit.jmecustomer.databinding.FragmentMyTransfersBinding import com.remit.jmecustomer.databinding.FragmentMyTransfersBinding
import com.remit.jmecustomer.features.beneficiaryDetail.BeneficiaryDetailActivity import com.remit.jmecustomer.features.beneficiaryDetail.BeneficiaryDetailActivity
import com.remit.jmecustomer.features.home.presenter.HomeViewModel
import com.remit.jmecustomer.features.myTransfers.adapters.RecentTransactionsAdapter import com.remit.jmecustomer.features.myTransfers.adapters.RecentTransactionsAdapter
import com.remit.jmecustomer.features.recipientmanagement.gateway.recipientlistingV3.RecipientListingV3Gateway import com.remit.jmecustomer.features.recipientmanagement.gateway.recipientlistingV3.RecipientListingV3Gateway
import com.remit.jmecustomer.features.recipientmanagement.model.recipientModelV5.Receiver import com.remit.jmecustomer.features.recipientmanagement.model.recipientModelV5.Receiver
@ -55,6 +57,7 @@ class MyTransfersFragment : BaseFragment(),
private var data: MutableList<RecentTransaction>? = null private var data: MutableList<RecentTransaction>? = null
private var presenterTransaction: TransactionHistoryV2Presenter? = null private var presenterTransaction: TransactionHistoryV2Presenter? = null
private var genericEditTextPromptDialog: GenericEditTextPromptDialog? = null private var genericEditTextPromptDialog: GenericEditTextPromptDialog? = null
private var homeViewModel: HomeViewModel? = null
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
@ -62,7 +65,9 @@ class MyTransfersFragment : BaseFragment(),
): View? { ): View? {
_binding = FragmentMyTransfersBinding.inflate(inflater, container, false) _binding = FragmentMyTransfersBinding.inflate(inflater, container, false)
init() init()
if (homeViewModel?.checkIfUserVerified() == null) {
performDefaultAction("151") performDefaultAction("151")
}
setUpData() setUpData()
return binding.root return binding.root
} }
@ -97,6 +102,7 @@ class MyTransfersFragment : BaseFragment(),
} }
private fun init() { private fun init() {
homeViewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java)
noTransactionFoundTextView = binding.noTransactionFoundTextView noTransactionFoundTextView = binding.noTransactionFoundTextView
presenter = RecipientListingV3Presenter(this, RecipientListingV3Gateway()) presenter = RecipientListingV3Presenter(this, RecipientListingV3Gateway())
searchEditTextTextWatcher = SearchEditTextTextWatcher() searchEditTextTextWatcher = SearchEditTextTextWatcher()
@ -176,6 +182,12 @@ class MyTransfersFragment : BaseFragment(),
} }
}) })
binding.tvSeeAll.setOnClickListener{
val intent = Intent(requireActivity(), MyBeneficiaryAllActivity::class.java)
intent.putParcelableArrayListExtra("receiver", recipientInfoModelList as ArrayList<out Parcelable>)
startActivity(intent)
}
} }
override fun onRecipientDeletedSuccessfully(recipientToBeDeleted: String?) {} override fun onRecipientDeletedSuccessfully(recipientToBeDeleted: String?) {}

70
app/src/main/java/com/remit/jmecustomer/features/userprofile/view/ProfileFragment.kt

@ -23,22 +23,27 @@ import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.signature.ObjectKey import com.bumptech.glide.signature.ObjectKey
import com.remit.jmecustomer.BuildConfig
import com.remit.jmecustomer.R import com.remit.jmecustomer.R
import com.remit.jmecustomer.RemitApplication
import com.remit.jmecustomer.base.BaseFragment import com.remit.jmecustomer.base.BaseFragment
import com.remit.jmecustomer.base.PrefKeys
import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog
import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.GenericDialogPromptListener import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialog.GenericDialogPromptListener
import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialogSingleButton import com.remit.jmecustomer.common.customwidgets.common.GenericPromptDialogSingleButton
import com.remit.jmecustomer.databinding.FragmentProfileBinding import com.remit.jmecustomer.databinding.FragmentProfileBinding
import com.remit.jmecustomer.features.aboutscreen.view.AboutJMERemit import com.remit.jmecustomer.features.aboutscreen.view.AboutJMERemit
import com.remit.jmecustomer.features.changepassNPin.view.ChangePassNPinActivity
import com.remit.jmecustomer.features.changetxnpin.view.ChangeTxnPinActivity import com.remit.jmecustomer.features.changetxnpin.view.ChangeTxnPinActivity
import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragment import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragment
import com.remit.jmecustomer.features.depositinfo.view.DepositInfo import com.remit.jmecustomer.features.depositinfo.view.DepositInfo
import com.remit.jmecustomer.features.depositslip.view.DepositSlipActivity
import com.remit.jmecustomer.features.home.model.HomeViewRelatedDTOV2 import com.remit.jmecustomer.features.home.model.HomeViewRelatedDTOV2
import com.remit.jmecustomer.features.home.presenter.HomeViewModel import com.remit.jmecustomer.features.home.presenter.HomeViewModel
import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3 import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3
import com.remit.jmecustomer.features.loyaltypoints.view.LoyaltyPointsActivity import com.remit.jmecustomer.features.loyaltypoints.view.LoyaltyPointsActivity
import com.remit.jmecustomer.features.mynotifications.view.MyNotificationActivity import com.remit.jmecustomer.features.mynotifications.view.MyNotificationActivity
import com.remit.jmecustomer.features.renewId.view.RenewIdActivity
import com.remit.jmecustomer.features.rewards.view.RewardActivity
import com.remit.jmecustomer.features.security.RemitAuthManager import com.remit.jmecustomer.features.security.RemitAuthManager
import com.remit.jmecustomer.features.security.RemitAuthManager1 import com.remit.jmecustomer.features.security.RemitAuthManager1
import com.remit.jmecustomer.features.security.RemitAuthManagerGateway import com.remit.jmecustomer.features.security.RemitAuthManagerGateway
@ -52,7 +57,6 @@ import com.remit.jmecustomer.features.settings.view.LanguageSelectionListingDial
import com.remit.jmecustomer.features.settings.view.SettingsView import com.remit.jmecustomer.features.settings.view.SettingsView
import com.remit.jmecustomer.features.splashscreen.model.LanguageModel import com.remit.jmecustomer.features.splashscreen.model.LanguageModel
import com.remit.jmecustomer.features.userprofile.UserProfileViewModelFactory import com.remit.jmecustomer.features.userprofile.UserProfileViewModelFactory
import com.remit.jmecustomer.features.userprofile.model.UploadProfileResponse
import com.remit.jmecustomer.features.userprofile.model.UserProfile import com.remit.jmecustomer.features.userprofile.model.UserProfile
import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterInterface import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterInterface
import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterV2 import com.remit.jmecustomer.features.userprofile.presenter.UserProfilePresenterV2
@ -61,10 +65,9 @@ import com.remit.jmecustomer.utils.Constants
import com.remit.jmecustomer.utils.FileUtils import com.remit.jmecustomer.utils.FileUtils
import com.remit.jmecustomer.utils.Utils import com.remit.jmecustomer.utils.Utils
import com.remit.jmecustomer.utils.other.Utility import com.remit.jmecustomer.utils.other.Utility
import id.zelory.compressor.Compressor
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody import okhttp3.MultipartBody
import okhttp3.RequestBody
import java.io.* import java.io.*
class ProfileFragment : BaseFragment(), View.OnClickListener, class ProfileFragment : BaseFragment(), View.OnClickListener,
@ -72,7 +75,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
CompoundButton.OnCheckedChangeListener { CompoundButton.OnCheckedChangeListener {
private var TAG: String? = "TAG" private var TAG: String? = "TAG"
var selectedImagePath: String = "" var selectedImagePath: String = ""
var imgReport1: String? = ""
var imgReport1: String = ""
private var isFromGallery = false private var isFromGallery = false
private var mCapturedImageURI: Uri? = null private var mCapturedImageURI: Uri? = null
private val RequestPermissionCode = 9686 private val RequestPermissionCode = 9686
@ -110,6 +113,9 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
viewModel = ViewModelProvider(this, UserProfileViewModelFactory(this)).get( viewModel = ViewModelProvider(this, UserProfileViewModelFactory(this)).get(
UserProfilePresenterV2::class.java UserProfilePresenterV2::class.java
) )
binding.tvRewardPoint.setText(
RemitApplication.getStorage().getString(PrefKeys.REWARD_POINTS, "")
)
homeViewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java) homeViewModel = ViewModelProvider(requireActivity()).get(HomeViewModel::class.java)
binding.llPaymentLayout.setOnClickListener(this) binding.llPaymentLayout.setOnClickListener(this)
binding.llAboutUsLayout.setOnClickListener(this) binding.llAboutUsLayout.setOnClickListener(this)
@ -119,6 +125,10 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
binding.llLanguage.setOnClickListener(this) binding.llLanguage.setOnClickListener(this)
binding.llContactUsLayout.setOnClickListener(this) binding.llContactUsLayout.setOnClickListener(this)
binding.ivProfileImage.setOnClickListener(this) binding.ivProfileImage.setOnClickListener(this)
binding.llChangePassword.setOnClickListener(this)
binding.llReferEarn.setOnClickListener(this)
binding.llLoyaltyPoints.setOnClickListener(this)
binding.llRenewId.setOnClickListener(this)
viewModel!!.subscribeToUserProfileInfoFetchEvent().observe( viewModel!!.subscribeToUserProfileInfoFetchEvent().observe(
this this
) { body: UserProfile? -> ) { body: UserProfile? ->
@ -230,6 +240,22 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
R.id.iv_profile_image -> R.id.iv_profile_image ->
takeUserImageData() takeUserImageData()
R.id.ll_change_password -> {
startActivity(Intent(requireActivity(), ChangePassNPinActivity::class.java))
}
R.id.ll_refer_earn -> {
startActivity(Intent(requireActivity(), RewardActivity::class.java))
}
R.id.ll_loyalty_points -> {
startActivity(Intent(requireActivity(), LoyaltyPointsActivity::class.java))
}
R.id.ll_renew_id -> {
startActivity(Intent(requireActivity(), RenewIdActivity::class.java))
}
} }
} }
@ -684,7 +710,9 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
out.flush() out.flush()
return filename return filename
} catch (e: FileNotFoundException) { } catch (e: FileNotFoundException) {
e.printStackTrace()
} catch (e: IOException) { } catch (e: IOException) {
e.printStackTrace()
} }
} else { } else {
// Change according to user requirement // Change according to user requirement
@ -717,6 +745,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
Bitmap.createBitmap(actualWidth, actualHeight, Bitmap.Config.ARGB_8888) Bitmap.createBitmap(actualWidth, actualHeight, Bitmap.Config.ARGB_8888)
} catch (exception: OutOfMemoryError) { } catch (exception: OutOfMemoryError) {
//IMEPayLogger.Log(exception); //IMEPayLogger.Log(exception);
exception.fillInStackTrace()
} }
val ratioX = actualWidth / options.outWidth.toFloat() val ratioX = actualWidth / options.outWidth.toFloat()
val ratioY = actualHeight / options.outHeight.toFloat() val ratioY = actualHeight / options.outHeight.toFloat()
@ -759,14 +788,14 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
) )
} catch (e: IOException) { } catch (e: IOException) {
// IMEPayLogger.Log(e) // IMEPayLogger.Log(e)
e.printStackTrace()
} }
val out: FileOutputStream val out: FileOutputStream
val filename = getFilename() val filename = getFilename()
try { try {
imgReport1 = filename
out = FileOutputStream(filename) out = FileOutputStream(filename)
// write the compressed bitmap at the destination specified by filename. // write the compressed bitmap at the destination specified by filename.
scaledBitmap!!.compress(Bitmap.CompressFormat.JPEG, 80, out)
scaledBitmap!!.compress(Bitmap.CompressFormat.JPEG, 100, out)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val file = File(filename) val file = File(filename)
Utils.savebitmap(context, scaledBitmap, file.name) Utils.savebitmap(context, scaledBitmap, file.name)
@ -775,6 +804,7 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
Log.d(TAG, "TEST:") Log.d(TAG, "TEST:")
} }
Log.d(TAG, "compressImageFileName: $filename") Log.d(TAG, "compressImageFileName: $filename")
imgReport1 = filename
return filename return filename
} }
return "" return ""
@ -812,12 +842,12 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
* @return * @return
*/ */
fun getFilename(): String { fun getFilename(): String {
val targetImageFile: String = Utils.targetFilePath(context, "/IMEpay/profile/")
val targetImageFile: String = Utils.targetFilePath(context, "/JME/profile/")
val file = File(targetImageFile) val file = File(targetImageFile)
if (!file.exists()) { if (!file.exists()) {
file.mkdirs() file.mkdirs()
} }
return file.absolutePath + "/" + System.currentTimeMillis() + ".jpg"
return file.absolutePath + "/" + System.currentTimeMillis() + ""
} }
var options = RequestOptions() var options = RequestOptions()
@ -830,13 +860,21 @@ class ProfileFragment : BaseFragment(), View.OnClickListener,
.into(binding.ivProfileImage) .into(binding.ivProfileImage)
} }
private fun getRequestParamsProfileImage(): MultipartBody.Part? {
private fun getRequestParamsProfileImage(): MultipartBody.Part {
val profileImageFile = File(imgReport1) val profileImageFile = File(imgReport1)
val profileImageRequest: RequestBody =
RequestBody.create("image*//*".toMediaTypeOrNull(), profileImageFile)
return MultipartBody.Part.createFormData(
"CustomerProfile", profileImageFile.name,
profileImageRequest
)
return Utils.createImageUploadFieldFromFile("CustomerProfile", profileImageFile)
}
private fun createCompressedImageFileFromUri(data: Uri): File? {
var compressedBitmap: File? = null
try {
compressedBitmap = Compressor(requireContext())
.setCompressFormat(Bitmap.CompressFormat.JPEG)
.setQuality(DepositSlipActivity.COMPRESS_QUALITY)
.compressToFile(File(data.path))
} catch (e: Exception) {
e.printStackTrace()
}
return compressedBitmap
} }
} }

10
app/src/main/java/com/remit/jmecustomer/utils/Utils.java

@ -60,6 +60,7 @@ import static com.remit.jmecustomer.utils.Constants.OTHER_ERROR;
import static com.remit.jmecustomer.utils.Constants.SERVER_ERROR; import static com.remit.jmecustomer.utils.Constants.SERVER_ERROR;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody; import okhttp3.RequestBody;
/** /**
@ -665,4 +666,13 @@ public class Utils {
return body; return body;
} }
public static MultipartBody.Part createImageUploadFieldFromFile(String key, File file) {
if (file == null)
return null;
Log.d("file is ", "createImageUploadFieldFromFile: "+file);
RequestBody idImageRequest = RequestBody.create(MediaType.parse("image*//*"), file);
return MultipartBody.Part.createFormData(key, file.getName() + ".jpeg", idImageRequest);
}
} }

1
app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java

@ -383,7 +383,6 @@ public interface ApiEndpoints {
@Multipart @Multipart
@POST(API_URL.UPLOAD_PROFILE_IMAGE) @POST(API_URL.UPLOAD_PROFILE_IMAGE)
@Headers("Content-Type: application/json")
Observable<ResponseBody> uploadProfileImage(@Header("Authorization") String token, Observable<ResponseBody> uploadProfileImage(@Header("Authorization") String token,
@Path("customer") String customerId, @Path("customer") String customerId,
@PartMap() Map<String, RequestBody> partMap, @PartMap() Map<String, RequestBody> partMap,

BIN
app/src/main/res/drawable-hdpi/icon_location.png

After

Width: 36  |  Height: 36  |  Size: 3.3 KiB

BIN
app/src/main/res/drawable-hdpi/icon_male_user.png

After

Width: 36  |  Height: 36  |  Size: 2.5 KiB

BIN
app/src/main/res/drawable-hdpi/icon_people.png

After

Width: 36  |  Height: 36  |  Size: 2.5 KiB

BIN
app/src/main/res/drawable-hdpi/icon_phone.png

After

Width: 36  |  Height: 36  |  Size: 1.6 KiB

BIN
app/src/main/res/drawable-ldpi/icon_location.png

After

Width: 18  |  Height: 18  |  Size: 1.1 KiB

BIN
app/src/main/res/drawable-ldpi/icon_male_user.png

After

Width: 18  |  Height: 18  |  Size: 1.0 KiB

BIN
app/src/main/res/drawable-ldpi/icon_people.png

After

Width: 18  |  Height: 18  |  Size: 979 B

BIN
app/src/main/res/drawable-ldpi/icon_phone.png

After

Width: 18  |  Height: 18  |  Size: 766 B

BIN
app/src/main/res/drawable-mdpi/icon_location.png

After

Width: 24  |  Height: 24  |  Size: 1.7 KiB

BIN
app/src/main/res/drawable-mdpi/icon_male_user.png

After

Width: 24  |  Height: 24  |  Size: 1.4 KiB

BIN
app/src/main/res/drawable-mdpi/icon_people.png

After

Width: 24  |  Height: 24  |  Size: 1.3 KiB

BIN
app/src/main/res/drawable-mdpi/icon_phone.png

After

Width: 24  |  Height: 24  |  Size: 935 B

BIN
app/src/main/res/drawable-xhdpi/icon_location.png

After

Width: 48  |  Height: 48  |  Size: 5.2 KiB

BIN
app/src/main/res/drawable-xhdpi/icon_male_user.png

After

Width: 48  |  Height: 48  |  Size: 3.8 KiB

BIN
app/src/main/res/drawable-xhdpi/icon_people.png

After

Width: 48  |  Height: 48  |  Size: 3.8 KiB

BIN
app/src/main/res/drawable-xhdpi/icon_phone.png

After

Width: 48  |  Height: 48  |  Size: 2.4 KiB

BIN
app/src/main/res/drawable-xxhdpi/icon_location.png

After

Width: 72  |  Height: 72  |  Size: 10 KiB

BIN
app/src/main/res/drawable-xxhdpi/icon_male_user.png

After

Width: 72  |  Height: 72  |  Size: 7.3 KiB

BIN
app/src/main/res/drawable-xxhdpi/icon_people.png

After

Width: 72  |  Height: 72  |  Size: 7.3 KiB

BIN
app/src/main/res/drawable-xxhdpi/icon_phone.png

After

Width: 72  |  Height: 72  |  Size: 4.5 KiB

BIN
app/src/main/res/drawable-xxxhdpi/icon_location.png

After

Width: 96  |  Height: 96  |  Size: 17 KiB

BIN
app/src/main/res/drawable-xxxhdpi/icon_male_user.png

After

Width: 96  |  Height: 96  |  Size: 12 KiB

BIN
app/src/main/res/drawable-xxxhdpi/icon_people.png

After

Width: 96  |  Height: 96  |  Size: 12 KiB

BIN
app/src/main/res/drawable-xxxhdpi/icon_phone.png

After

Width: 96  |  Height: 96  |  Size: 6.7 KiB

BIN
app/src/main/res/drawable/account.png

Before

Width: 64  |  Height: 64  |  Size: 1.8 KiB

29
app/src/main/res/drawable/account.xml

@ -0,0 +1,29 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M20,17v2H4V17a2,2 0,0 0,0 4H20a2,2 0,0 0,0 -4Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M17,2.414h0a1.415,1.415 0,0 1,-2 0h0a1.415,1.415 0,0 0,-2 0h0a1.415,1.415 0,0 1,-2 0h0a1.415,1.415 0,0 0,-2 0H9a1.415,1.415 0,0 1,-2 0H7a1.415,1.415 0,0 0,-2 0L4.414,3A1.415,1.415 0,0 0,4 4V19H20V4a1.415,1.415 0,0 0,-0.414 -1L19,2.414A1.415,1.415 0,0 0,17 2.414Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M16,9H8A1,1 0,0 1,8 7h8a1,1 0,0 1,0 2Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M12,13H8a1,1 0,0 1,0 -2h4a1,1 0,0 1,0 2Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M16,12m-1,0a1,1 0,1 1,2 0a1,1 0,1 1,-2 0"
android:fillColor="#2e89ff"/>
<path
android:pathData="M12,17H8a1,1 0,0 1,0 -2h4a1,1 0,0 1,0 2Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M16,16m-1,0a1,1 0,1 1,2 0a1,1 0,1 1,-2 0"
android:fillColor="#2e89ff"/>
</vector>

17
app/src/main/res/drawable/change__password.xml

@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,15m-9,0a9,9 0,1 1,18 0a9,9 0,1 1,-18 0"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M12,13a2,2 0,1 0,2 2A2,2 0,0 0,12 13Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M8.006,6.944a3.994,3.994 0,0 1,7.988 0A9.023,9.023 0,0 1,18 8.3L18,7A6,6 0,0 0,6 7L6,8.3A9.023,9.023 0,0 1,8.006 6.944Z"
android:fillColor="#2e89ff"/>
</vector>

48
app/src/main/res/drawable/change_pin.xml

@ -0,0 +1,48 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12.5,6h-1A1.5,1.5 0,0 1,10 4.5v-1A1.5,1.5 0,0 1,11.5 2h1A1.5,1.5 0,0 1,14 3.5v1A1.5,1.5 0,0 1,12.5 6Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M6.5,6h-1A1.5,1.5 0,0 1,4 4.5v-1A1.5,1.5 0,0 1,5.5 2h1A1.5,1.5 0,0 1,8 3.5v1A1.5,1.5 0,0 1,6.5 6Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M18.5,6h-1A1.5,1.5 0,0 1,16 4.5v-1A1.5,1.5 0,0 1,17.5 2h1A1.5,1.5 0,0 1,20 3.5v1A1.5,1.5 0,0 1,18.5 6Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M12.5,12h-1A1.5,1.5 0,0 1,10 10.5v-1A1.5,1.5 0,0 1,11.5 8h1A1.5,1.5 0,0 1,14 9.5v1A1.5,1.5 0,0 1,12.5 12Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M6.5,12h-1A1.5,1.5 0,0 1,4 10.5v-1A1.5,1.5 0,0 1,5.5 8h1A1.5,1.5 0,0 1,8 9.5v1A1.5,1.5 0,0 1,6.5 12Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M18.5,12h-1A1.5,1.5 0,0 1,16 10.5v-1A1.5,1.5 0,0 1,17.5 8h1A1.5,1.5 0,0 1,20 9.5v1A1.5,1.5 0,0 1,18.5 12Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M12.5,18h-1A1.5,1.5 0,0 1,10 16.5v-1A1.5,1.5 0,0 1,11.5 14h1A1.5,1.5 0,0 1,14 15.5v1A1.5,1.5 0,0 1,12.5 18Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M6.5,18h-1A1.5,1.5 0,0 1,4 16.5v-1A1.5,1.5 0,0 1,5.5 14h1A1.5,1.5 0,0 1,8 15.5v1A1.5,1.5 0,0 1,6.5 18Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M18.5,18h-1A1.5,1.5 0,0 1,16 16.5v-1A1.5,1.5 0,0 1,17.5 14h1A1.5,1.5 0,0 1,20 15.5v1A1.5,1.5 0,0 1,18.5 18Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M12.5,24h-1A1.5,1.5 0,0 1,10 22.5v-1A1.5,1.5 0,0 1,11.5 20h1A1.5,1.5 0,0 1,14 21.5v1A1.5,1.5 0,0 1,12.5 24Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
</vector>

23
app/src/main/res/drawable/contact_us.xml

@ -0,0 +1,23 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M9.501,2A7.488,7.488 0,0 0,2.783 12.82l-0.754,3.014a0.937,0.937 0,0 0,1.137 1.137l3.014,-0.754A7.5,7.5 0,1 0,9.501 2Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M20.851,16.35l1.121,4.484a0.937,0.937 0,0 1,-1.137 1.137L16.351,20.85Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M16.678,7.323a7.5,7.5 0,0 1,-9.354 9.354,7.5 7.5,0 1,0 9.354,-9.354Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M13.001,9L7.001,9A1,1 0,0 1,7.001 7h6a1,1 0,0 1,0 2Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M11.001,13L7.001,13a1,1 0,0 1,0 -2h4a1,1 0,0 1,0 2Z"
android:fillColor="#2e89ff"/>
</vector>

20
app/src/main/res/drawable/refer_earn.xml

@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M6,6L18,6a3,3 0,0 1,3 3v3L3,12L3,9A3,3 0,0 1,6 6Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillAlpha="0.35"/>
<path
android:pathData="M6,22L18,22a3,3 0,0 0,3 -3L21,12L3,12v7A3,3 0,0 0,6 22Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M12,4L12,6L10,6a2,2 0,1 1,2 -2Z"
android:fillColor="#2e89ff"/>
<path
android:pathData="M12,4L12,6h2a2,2 0,1 0,-2 -2Z"
android:fillColor="#2e89ff"/>
</vector>

16
app/src/main/res/drawable/reward_points.xml

@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M18,2H6A1,1 0,0 0,5 3v0.487a2.031,2.031 0,0 0,0.857 1.658l4.757,3.372a2.387,2.387 0,0 0,2.767 0l4.763,-3.377A2.025,2.025 0,0 0,19 3.487V3A1,1 0,0 0,18 2Z"
android:fillColor="#2e89ff"
android:fillType="evenOdd"/>
<path
android:pathData="M11.159,9.506a0.952,0.952 0,0 1,1.682 0l1.6,3.009a0.258,0.258 0,0 0,0.076 0.088,0.266 0.266,0 0,0 0.108,0.046l3.354,0.588a0.952,0.952 0,0 1,0.52 1.6l-2.368,2.447a0.262,0.262 0,0 0,-0.06 0.1,0.254 0.254,0 0,0 -0.01,0.116l0.478,3.372a0.952,0.952 0,0 1,-1.36 0.988l-3.059,-1.5a0.263,0.263 0,0 0,-0.228 0l-3.059,1.5a0.952,0.952 0,0 1,-1.36 -0.988L7.946,17.5a0.259,0.259 0,0 0,-0.07 -0.216L5.508,14.836a0.952,0.952 0,0 1,0.52 -1.6l3.354,-0.588A0.253,0.253 0,0 0,9.49 12.6a0.248,0.248 0,0 0,0.076 -0.088Z"
android:strokeAlpha="0.35"
android:fillColor="#2e89ff"
android:fillType="evenOdd"
android:fillAlpha="0.35"/>
</vector>

19
app/src/main/res/layout/activity_beneficiary_detail.xml

@ -71,10 +71,10 @@
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
android:layout_marginStart="@dimen/_11sdp" android:layout_marginStart="@dimen/_11sdp"
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:src="@drawable/ico_user"
android:src="@drawable/icon_male_user"
app:layout_constraintStart_toEndOf="@id/rv_initials" app:layout_constraintStart_toEndOf="@id/rv_initials"
app:layout_constraintTop_toBottomOf="@+id/toolbar" app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:tint="@color/light_blue" />
/>
<TextView <TextView
@ -107,10 +107,9 @@
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
android:layout_marginStart="@dimen/_11sdp" android:layout_marginStart="@dimen/_11sdp"
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:src="@drawable/ic_mobile"
android:src="@drawable/icon_phone"
app:layout_constraintStart_toEndOf="@id/rv_initials" app:layout_constraintStart_toEndOf="@id/rv_initials"
app:layout_constraintTop_toBottomOf="@id/tv_name"
app:tint="@color/light_blue" />
app:layout_constraintTop_toBottomOf="@id/tv_name" />
<TextView <TextView
@ -143,10 +142,9 @@
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
android:layout_marginStart="@dimen/_11sdp" android:layout_marginStart="@dimen/_11sdp"
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:src="@drawable/ico_user"
android:src="@drawable/icon_people"
app:layout_constraintStart_toEndOf="@id/rv_initials" app:layout_constraintStart_toEndOf="@id/rv_initials"
app:layout_constraintTop_toBottomOf="@id/tv_mobile"
app:tint="@color/light_blue" />
app:layout_constraintTop_toBottomOf="@id/tv_mobile" />
<TextView <TextView
@ -178,10 +176,9 @@
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
android:layout_marginStart="@dimen/_11sdp" android:layout_marginStart="@dimen/_11sdp"
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:src="@drawable/ic_agent_location"
android:src="@drawable/icon_location"
app:layout_constraintStart_toEndOf="@id/rv_initials" app:layout_constraintStart_toEndOf="@id/rv_initials"
app:layout_constraintTop_toBottomOf="@id/tv_relation"
app:tint="@color/light_blue" />
app:layout_constraintTop_toBottomOf="@id/tv_relation" />
<TextView <TextView

1
app/src/main/res/layout/activity_home_v3.xml

@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/content_view"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<include android:id="@+id/toolbar_head" <include android:id="@+id/toolbar_head"

20
app/src/main/res/layout/fragment_beneficiary_all.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbaar_new"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recipientListRv"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

19
app/src/main/res/layout/fragment_home_new.xml

@ -1,15 +1,28 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<com.remit.jmecustomer.common.customwidgets.LockableScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/scrollViewHomeFragment"
android:background="#F7F7F7" android:background="#F7F7F7"
> >
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/homeContainerView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
app:cardUseCompatPadding="false"
android:visibility="gone"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/notificationViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/const_top" android:id="@+id/const_top"
android:paddingHorizontal="@dimen/_20sdp" android:paddingHorizontal="@dimen/_20sdp"
@ -18,7 +31,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/card_bottom_rounded_white" android:background="@drawable/card_bottom_rounded_white"
android:elevation="@dimen/_3sdp" android:elevation="@dimen/_3sdp"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toBottomOf="@id/notificationViewContainer">
<TextView <TextView
android:id="@+id/txt_accountNo" android:id="@+id/txt_accountNo"
@ -421,4 +434,4 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</com.remit.jmecustomer.common.customwidgets.LockableScrollView>

11
app/src/main/res/layout/fragment_my_transfers.xml

@ -17,6 +17,8 @@
android:layout_marginTop="@dimen/_10sdp" android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp" android:layout_marginEnd="@dimen/_10sdp"
android:textColor="@color/light_blue" android:textColor="@color/light_blue"
android:inputType="text"
android:imeOptions="actionDone"
android:background="@drawable/blue_border_background" android:background="@drawable/blue_border_background"
android:hint="Search your transfers" android:hint="Search your transfers"
android:padding="@dimen/_10sdp" android:padding="@dimen/_10sdp"
@ -90,14 +92,11 @@
android:layout_height="@dimen/_45sdp"> android:layout_height="@dimen/_45sdp">
<ImageView <ImageView
android:textSize="@dimen/_24sdp"
android:layout_centerInParent="true"
android:text="R"
android:textColor="@color/light_blue"
android:src="@drawable/ic_add_vd"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:tint="@color/light_blue" />
android:layout_centerInParent="true"
android:src="@drawable/ic_add_new"
android:textSize="@dimen/_24sdp" />
</RelativeLayout> </RelativeLayout>

219
app/src/main/res/layout/fragment_profile.xml

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:id="@+id/swipeRefreshLayout" android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -174,7 +175,7 @@
android:layout_width="@dimen/_20sdp" android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/account" app:srcCompat="@drawable/account"
app:tint="@color/light_blue" />
/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -222,6 +223,140 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/_13sdp"
android:visibility="visible">
<ImageView
android:id="@+id/ic_reward"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/reward_points"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginLeft="@dimen/_26sdp"
android:layout_toEndOf="@+id/ic_reward"
android:layout_toRightOf="@+id/ic_reward"
android:orientation="vertical">
<TextView
style="@style/TextStyle.SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/reward_points_text"
android:textColor="@color/black_opacity_87" />
<TextView
android:id="@+id/tv_reward_point"
style="@style/TextStyle.VolteSemiBold14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_4sdp"
android:layout_marginRight="@dimen/_2sdp"
android:layout_toEndOf="@+id/ic_lock_app"
android:layout_toRightOf="@+id/ic_lock_app"
android:text=""
android:textColor="@color/black_opacity_60" />
</LinearLayout>
<ImageView
android:visibility="gone"
style="@style/TextStyle.VolteSemiBold14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/_5sdp"
android:paddingRight="@dimen/_5sdp"
android:src="@drawable/ic_copy_new" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/ll_loyalty_points"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/_13sdp"
android:visibility="visible">
<ImageView
android:id="@+id/ic_loyalty_points"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/icv_menu_loyalty_point"
app:tint="@color/light_blue" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginLeft="@dimen/_26sdp"
android:layout_toEndOf="@+id/ic_loyalty_points"
android:layout_toRightOf="@+id/ic_loyalty_points"
android:orientation="vertical">
<TextView
style="@style/TextStyle.SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loyalty_points_text"
android:textColor="@color/black_opacity_87" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/ll_refer_earn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/_13sdp"
android:visibility="visible">
<ImageView
android:id="@+id/ic_refer_earn"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/refer_earn"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginLeft="@dimen/_26sdp"
android:layout_toEndOf="@+id/ic_refer_earn"
android:layout_toRightOf="@+id/ic_refer_earn"
android:orientation="vertical">
<TextView
style="@style/TextStyle.SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/refer_and_earn_text"
android:textColor="@color/black_opacity_87" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/ll_payment_layout" android:id="@+id/ll_payment_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -285,6 +420,42 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/ll_renew_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/_13sdp"
android:visibility="visible">
<ImageView
android:id="@+id/ic_renew_id"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/round_person_24px" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginLeft="@dimen/_26sdp"
android:layout_toEndOf="@+id/ic_renew_id"
android:layout_toRightOf="@+id/ic_renew_id"
android:orientation="vertical">
<TextView
style="@style/TextStyle.SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/renewId_text"
android:textColor="@color/black_opacity_87" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/ll_language" android:id="@+id/ll_language"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -317,7 +488,6 @@
android:text="Language Selection" android:text="Language Selection"
android:textColor="@color/black_opacity_87" /> android:textColor="@color/black_opacity_87" />
\
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>
@ -335,7 +505,7 @@
android:id="@+id/ic_change_pin" android:id="@+id/ic_change_pin"
android:layout_width="@dimen/_20sdp" android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/round_person_24px" />
app:srcCompat="@drawable/change_pin" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -356,6 +526,41 @@
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/ll_change_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/_13sdp"
android:visibility="visible">
<ImageView
android:id="@+id/ic_change_password"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/change__password" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_26sdp"
android:layout_marginLeft="@dimen/_26sdp"
android:layout_toEndOf="@+id/ic_change_password"
android:layout_toRightOf="@+id/ic_change_password"
android:orientation="vertical">
<TextView
style="@style/TextStyle.SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/change_password_text"
android:textColor="@color/black_opacity_87" />
</LinearLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/fingerprintLockScreen" android:id="@+id/fingerprintLockScreen"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -457,7 +662,7 @@
android:layout_gravity="center" android:layout_gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="@dimen/_13sdp" android:padding="@dimen/_13sdp"
android:visibility="visible">
android:visibility="gone">
<ImageView <ImageView
android:id="@+id/ic_profile_faq" android:id="@+id/ic_profile_faq"
@ -503,7 +708,7 @@
android:id="@+id/ic_profile_contact_us" android:id="@+id/ic_profile_contact_us"
android:layout_width="@dimen/_20sdp" android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp" android:layout_height="@dimen/_20sdp"
app:srcCompat="@drawable/round_help_24px" />
app:srcCompat="@drawable/contact_us" />
<TextView <TextView
@ -632,4 +837,4 @@
</RelativeLayout> </RelativeLayout>
</ScrollView> </ScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>

47
app/src/main/res/layout/row_all_beneficiary.xml

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/const_main"
android:paddingStart="@dimen/_10sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:id="@+id/rv_initials"
android:background="@drawable/light_blue_circular"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_width="@dimen/_45sdp"
android:layout_height="@dimen/_45sdp">
<TextView
android:id="@+id/tv_initial"
style="@style/TextStyle.VolteSemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="R"
android:textColor="@color/light_blue"
android:textSize="@dimen/_24sdp" />
</RelativeLayout>
<TextView
android:paddingStart="@dimen/_10sdp"
android:id="@+id/tv_name"
android:text="Rajesh"
android:layout_marginTop="@dimen/_5sdp"
android:textColor="@color/black_opacity_87"
style="@style/TextStyle.VolteSemiBold14"
android:gravity="center"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/rv_initials"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>

4
app/src/main/res/xml/file_paths.xml

@ -2,6 +2,8 @@
<paths > <paths >
<external-files-path name="my_images" path="/" /> <external-files-path name="my_images" path="/" />
<cache-path name="cache" path="/" /> <cache-path name="cache" path="/" />
<external-path
name="external_files"
path="." />
</paths> </paths>
Loading…
Cancel
Save