Browse Source

kyc changes

new_design
Mohan Shiwakoti 1 year ago
parent
commit
b27de111d7
  1. 1
      SpinnerDatePickerLib-release/build/.transforms/06173abc94c4b343d4648341a0e07733/results.bin
  2. BIN
      SpinnerDatePickerLib-release/build/.transforms/06173abc94c4b343d4648341a0e07733/transformed/jetified-SpinnerDatePickerLib-release-runtime.jar
  3. 0
      SpinnerDatePickerLib-release/build/.transforms/0d565a87d8095d9be5f568296cf6628d/results.bin
  4. 0
      SpinnerDatePickerLib-release/build/.transforms/13761a05e75319c2d41ed2d29e449f7e/results.bin
  5. 0
      SpinnerDatePickerLib-release/build/.transforms/18f2c7689111ef6bcd63f709d23d80c5/results.bin
  6. 0
      SpinnerDatePickerLib-release/build/.transforms/1c6898b6b5e2219f756610653171cae9/results.bin
  7. 1
      SpinnerDatePickerLib-release/build/.transforms/1e31e009844f31a0b421ccf89ec578f2/results.bin
  8. 1
      SpinnerDatePickerLib-release/build/.transforms/1e70b8f6fb045be6edecd6a7c77ba6e3/results.bin
  9. BIN
      SpinnerDatePickerLib-release/build/.transforms/1e70b8f6fb045be6edecd6a7c77ba6e3/transformed/jetified-SpinnerDatePickerLib-release.aar
  10. 1
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/results.bin
  11. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker.xml.flat
  12. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_container.xml.flat
  13. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_dialog.xml.flat
  14. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_dialog_container.xml.flat
  15. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_range_picker_dialog_container.xml.flat
  16. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_number_picker_day_month.xml.flat
  17. BIN
      SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_number_picker_year.xml.flat
  18. 1
      SpinnerDatePickerLib-release/build/.transforms/35dbf8f58c1950889eb48acd993d1005/results.bin
  19. 0
      SpinnerDatePickerLib-release/build/.transforms/3d8a6897820fd012a437973ca8cd6b17/results.bin
  20. 0
      SpinnerDatePickerLib-release/build/.transforms/508f667d613fc98efa0ea9d960fefd9d/results.bin
  21. 0
      SpinnerDatePickerLib-release/build/.transforms/9cd8e2c0816ffb29222eb8287c206378/results.bin
  22. 1
      SpinnerDatePickerLib-release/build/.transforms/a155bfdc3afa7a6d54c841b1aa86cc8c/results.bin
  23. BIN
      SpinnerDatePickerLib-release/build/.transforms/a155bfdc3afa7a6d54c841b1aa86cc8c/transformed/jetified-SpinnerDatePickerLib-release-api.jar
  24. 1
      SpinnerDatePickerLib-release/build/.transforms/c306f61dffc34d52e276df133d0dba77/results.bin
  25. 0
      SpinnerDatePickerLib-release/build/.transforms/c5848b33105e03990b9bd190c7a082d1/results.bin
  26. 0
      SpinnerDatePickerLib-release/build/.transforms/ce2fafb0c5e3c72aee3fcb37df98fb88/results.bin
  27. 1
      SpinnerDatePickerLib-release/build/.transforms/cebbe8ee8de185a162c1310c7936a972/results.bin
  28. 18
      SpinnerDatePickerLib-release/build/.transforms/cebbe8ee8de185a162c1310c7936a972/transformed/com.tsongkha.spinnerdatepicker-r.txt
  29. 1
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/results.bin
  30. 14
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/AndroidManifest.xml
  31. 17
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/R.txt
  32. BIN
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/jars/classes.jar
  33. 71
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker.xml
  34. 41
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_container.xml
  35. 26
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_dialog.xml
  36. 8
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_dialog_container.xml
  37. 33
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_range_picker_dialog_container.xml
  38. 12
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/number_picker_day_month.xml
  39. 12
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/number_picker_year.xml
  40. 4
      SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/values/values.xml
  41. 1
      SpinnerDatePickerLib-release/build/.transforms/dc48666a57d7f583687c3a789acf9e56/results.bin
  42. 0
      SpinnerDatePickerLib-release/build/.transforms/f0ee582915d1d386580207d54c04989a/results.bin
  43. 1
      SpinnerDatePickerLib-release/build/.transforms/f24e4be2dcde46762fc6ac10e497d27a/results.bin
  44. BIN
      SpinnerDatePickerLib-release/build/.transforms/f24e4be2dcde46762fc6ac10e497d27a/transformed/jetified-SpinnerDatePickerLib-release-runtime/classes.dex
  45. 20
      app/build.gradle
  46. 10
      app/src/main/java/com/remit/jmecustomer/common/customwidgets/GenericViewPagerAdapter.java
  47. 1
      app/src/main/java/com/remit/jmecustomer/features/exrate/presenter/ExchangeRatePresenter.java
  48. 9
      app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeActivityV3.kt
  49. 21
      app/src/main/java/com/remit/jmecustomer/features/homeV3/view/HomeFragmentV3.kt
  50. 2
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/KYCV3ViewModelFactory.java
  51. 23
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/gateway/KYCV3Gateway.java
  52. 76
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Config.java
  53. 98
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Example.java
  54. 34
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/KycSettingData.java
  55. 96
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Option.java
  56. 12
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3GatewayInterface.java
  57. 11
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java
  58. 174
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java
  59. 60
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java
  60. 62
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/adapter/KycTypeAdapter.kt
  61. 53
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt
  62. 250
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java
  63. 279
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeViewLiveData.java
  64. 6
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java
  65. 2
      app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailViewLiveData.java
  66. 5
      app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/gateway/ExistingExistingKYCV4Gateway.java
  67. 2
      app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4GatewayInterface.java
  68. 2
      app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4PresenterInterface.java
  69. 52
      app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4ViewModel.java
  70. 18
      app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/view/ExistingKYCV4Activity.java
  71. 3
      app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/presenter/KYCV4PresenterInterface.java
  72. 6
      app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/presenter/KYCV4ViewModel.java
  73. 52
      app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/choose/ChooseKycFragment.kt
  74. 1
      app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/personal/CustomerDetailFragment.java
  75. 211
      app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/personal/CustomerDetailViewLiveData.java
  76. 2
      app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/amountdetail/AmountDetailSendMoneyFragment.java
  77. 2
      app/src/main/java/com/remit/jmecustomer/utils/Constants.java
  78. 4
      app/src/main/java/com/remit/jmecustomer/utils/https/API_URL.java
  79. 9
      app/src/main/java/com/remit/jmecustomer/utils/https/ApiEndpoints.java
  80. 64
      app/src/main/res/layout/ekyc_header.xml
  81. 27
      app/src/main/res/layout/fragment_choose_kyc.xml
  82. 533
      app/src/main/res/layout/fragment_ekyc_document.xml
  83. 147
      app/src/main/res/layout/fragment_kyc_document.xml
  84. 66
      app/src/main/res/layout/kyc_header.xml
  85. 93
      app/src/main/res/layout/row_kyc_type.xml
  86. 5
      app/src/main/res/values/strings.xml
  87. 1
      app/src/main/res/xml/network_security_config.xml

1
SpinnerDatePickerLib-release/build/.transforms/06173abc94c4b343d4648341a0e07733/results.bin

@ -0,0 +1 @@
o/jetified-SpinnerDatePickerLib-release-runtime.jar

BIN
SpinnerDatePickerLib-release/build/.transforms/06173abc94c4b343d4648341a0e07733/transformed/jetified-SpinnerDatePickerLib-release-runtime.jar

0
SpinnerDatePickerLib-release/build/.transforms/0d565a87d8095d9be5f568296cf6628d/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/13761a05e75319c2d41ed2d29e449f7e/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/18f2c7689111ef6bcd63f709d23d80c5/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/1c6898b6b5e2219f756610653171cae9/results.bin

1
SpinnerDatePickerLib-release/build/.transforms/1e31e009844f31a0b421ccf89ec578f2/results.bin

@ -0,0 +1 @@
i/res

1
SpinnerDatePickerLib-release/build/.transforms/1e70b8f6fb045be6edecd6a7c77ba6e3/results.bin

@ -0,0 +1 @@
o/jetified-SpinnerDatePickerLib-release.aar

BIN
SpinnerDatePickerLib-release/build/.transforms/1e70b8f6fb045be6edecd6a7c77ba6e3/transformed/jetified-SpinnerDatePickerLib-release.aar

1
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/results.bin

@ -0,0 +1 @@
o/com.tsongkha.spinnerdatepicker

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_container.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_dialog.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_picker_dialog_container.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_date_range_picker_dialog_container.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_number_picker_day_month.xml.flat

BIN
SpinnerDatePickerLib-release/build/.transforms/3226c86a03c27e0b52dc114426e60a45/transformed/com.tsongkha.spinnerdatepicker/layout_number_picker_year.xml.flat

1
SpinnerDatePickerLib-release/build/.transforms/35dbf8f58c1950889eb48acd993d1005/results.bin

@ -0,0 +1 @@
i/jars/classes.jar

0
SpinnerDatePickerLib-release/build/.transforms/3d8a6897820fd012a437973ca8cd6b17/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/508f667d613fc98efa0ea9d960fefd9d/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/9cd8e2c0816ffb29222eb8287c206378/results.bin

1
SpinnerDatePickerLib-release/build/.transforms/a155bfdc3afa7a6d54c841b1aa86cc8c/results.bin

@ -0,0 +1 @@
o/jetified-SpinnerDatePickerLib-release-api.jar

BIN
SpinnerDatePickerLib-release/build/.transforms/a155bfdc3afa7a6d54c841b1aa86cc8c/transformed/jetified-SpinnerDatePickerLib-release-api.jar

1
SpinnerDatePickerLib-release/build/.transforms/c306f61dffc34d52e276df133d0dba77/results.bin

@ -0,0 +1 @@
i/AndroidManifest.xml

0
SpinnerDatePickerLib-release/build/.transforms/c5848b33105e03990b9bd190c7a082d1/results.bin

0
SpinnerDatePickerLib-release/build/.transforms/ce2fafb0c5e3c72aee3fcb37df98fb88/results.bin

1
SpinnerDatePickerLib-release/build/.transforms/cebbe8ee8de185a162c1310c7936a972/results.bin

@ -0,0 +1 @@
o/com.tsongkha.spinnerdatepicker-r.txt

18
SpinnerDatePickerLib-release/build/.transforms/cebbe8ee8de185a162c1310c7936a972/transformed/com.tsongkha.spinnerdatepicker-r.txt

@ -0,0 +1,18 @@
com.tsongkha.spinnerdatepicker
id datePickerContainer
id dateRangePickerContainer
id day
id fromDateText
id month
id number_picker
id parent
id toDateText
id year
layout date_picker
layout date_picker_container
layout date_picker_dialog
layout date_picker_dialog_container
layout date_range_picker_dialog_container
layout number_picker_day_month
layout number_picker_year
string app_name

1
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/results.bin

@ -0,0 +1 @@
o/jetified-SpinnerDatePickerLib-release

14
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/AndroidManifest.xml

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tsongkha.spinnerdatepicker"
android:versionCode="106"
android:versionName="1.0.6" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="27" />
<application android:supportsRtl="true" >
</application>
</manifest>

17
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/R.txt

@ -0,0 +1,17 @@
int id datePickerContainer 0x7f0b0001
int id dateRangePickerContainer 0x7f0b0002
int id day 0x7f0b0003
int id fromDateText 0x7f0b0004
int id month 0x7f0b0005
int id number_picker 0x7f0b0006
int id parent 0x7f0b0007
int id toDateText 0x7f0b0008
int id year 0x7f0b0009
int layout date_picker 0x7f0e0001
int layout date_picker_container 0x7f0e0002
int layout date_picker_dialog 0x7f0e0003
int layout date_picker_dialog_container 0x7f0e0004
int layout date_range_picker_dialog_container 0x7f0e0005
int layout number_picker_day_month 0x7f0e0006
int layout number_picker_year 0x7f0e0007
int string app_name 0x7f140001

BIN
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/jars/classes.jar

71
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker.xml

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="270dip"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<LinearLayout
android:id="@+id/parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<!-- Month -->
<NumberPicker
android:id="@+id/month"
android:layout_width="80dip"
android:layout_height="wrap_content"
android:layout_marginEnd="1dip"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginStart="1dip"
android:focusable="true"
android:focusableInTouchMode="true"
/>
<!-- Day -->
<NumberPicker
android:id="@+id/day"
android:layout_width="80dip"
android:layout_height="wrap_content"
android:layout_marginEnd="1dip"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginStart="1dip"
android:focusable="true"
android:focusableInTouchMode="true"
/>
<!-- Year -->
<NumberPicker
android:id="@+id/year"
android:layout_width="95dip"
android:layout_height="wrap_content"
android:layout_marginEnd="1dip"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginStart="1dip"
android:focusable="true"
android:focusableInTouchMode="true"
/>
</LinearLayout>
</LinearLayout>

41
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_container.xml

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<!-- Layout of date picker-->
<!-- The width of this container is manually set a little bigger than the one of the children
contained in it. This helps to prevent rounding errors when toggling the "Show year" option -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:layout_width="270dip"
android:layout_height="wrap_content">
<!-- Warning: everything within the parent is removed and re-ordered depending
on the date format selected by the user. -->
<LinearLayout
android:id="@+id/parent"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</LinearLayout>

26
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_dialog.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<com.tsongkha.spinnerdatepicker.DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/datePickerContainer"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnersShown="true"
android:calendarViewShown="false"
/>
<!--android:dialogMode="true" -->

8
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_picker_dialog_container.xml

@ -0,0 +1,8 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/datePickerContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
</FrameLayout>

33
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/date_range_picker_dialog_container.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:id="@+id/dateRangePickerContainer"
android:layout_height="wrap_content">
<TextView
android:layout_marginStart="25dp"
android:layout_marginLeft="12dp"
android:layout_marginTop="10dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:text="From Date: "
android:id="@+id/fromDateText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
/>
<TextView
android:layout_marginTop="5dp"
android:layout_marginStart="25dp"
android:layout_marginLeft="25dp"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:text="To Date: "
android:id="@+id/toDateText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"/>
</LinearLayout>

12
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/number_picker_day_month.xml

@ -0,0 +1,12 @@
<NumberPicker
android:id="@+id/number_picker"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dip"
android:layout_height="wrap_content"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginStart="1dip"
android:layout_marginEnd="1dip"
android:focusable="true"
android:focusableInTouchMode="true"
/>

12
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/layout/number_picker_year.xml

@ -0,0 +1,12 @@
<NumberPicker
android:id="@+id/number_picker"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="95dip"
android:layout_height="wrap_content"
android:layout_marginLeft="1dip"
android:layout_marginRight="1dip"
android:layout_marginStart="1dip"
android:layout_marginEnd="1dip"
android:focusable="true"
android:focusableInTouchMode="true"
/>

4
SpinnerDatePickerLib-release/build/.transforms/db2aa8109c967949a3546dd8d237918e/transformed/jetified-SpinnerDatePickerLib-release/res/values/values.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SpinnerDatePicker</string>
</resources>

1
SpinnerDatePickerLib-release/build/.transforms/dc48666a57d7f583687c3a789acf9e56/results.bin

@ -0,0 +1 @@
i/

0
SpinnerDatePickerLib-release/build/.transforms/f0ee582915d1d386580207d54c04989a/results.bin

1
SpinnerDatePickerLib-release/build/.transforms/f24e4be2dcde46762fc6ac10e497d27a/results.bin

@ -0,0 +1 @@
o/jetified-SpinnerDatePickerLib-release-runtime

BIN
SpinnerDatePickerLib-release/build/.transforms/f24e4be2dcde46762fc6ac10e497d27a/transformed/jetified-SpinnerDatePickerLib-release-runtime/classes.dex

20
app/build.gradle

@ -253,8 +253,8 @@ dependencies {
implementation 'androidx.biometric:biometric:1.1.0' implementation 'androidx.biometric:biometric:1.1.0'
// implementation 'io.trustdock.sdk:verification-sandbox-full:2.7.5'
implementation 'io.trustdock.sdk:verification-full:2.7.6'
implementation 'io.trustdock.sdk:verification-sandbox-full:2.7.6'
// implementation 'io.trustdock.sdk:verification-full:2.7.6'
implementation 'com.google.android.flexbox:flexbox:3.0.0' implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation 'me.relex:circleindicator:2.1.4' implementation 'me.relex:circleindicator:2.1.4'
@ -268,17 +268,17 @@ allprojects {
repositories { repositories {
maven { maven {
//PROD //PROD
url "https://native-app-sdk-repository.trustdock.io/android/release/content/repositories"
credentials {
username = "japanremit-1039"
password = "9sAWcB6ce3GSumTT"
}
// UAT
// url "https://native-app-sdk-repository.test.trustdock.io/android/release/content/repositories"
// url "https://native-app-sdk-repository.trustdock.io/android/release/content/repositories"
// credentials { // credentials {
// username = "japanremit-1039" // username = "japanremit-1039"
// password = "sHRf5Sf7S3r5Q4Hz"
// password = "9sAWcB6ce3GSumTT"
// } // }
// UAT
url "https://native-app-sdk-repository.test.trustdock.io/android/release/content/repositories"
credentials {
username = "japanremit-1039"
password = "sHRf5Sf7S3r5Q4Hz"
}
} }
maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' } maven { url 'https://raw.githubusercontent.com/iProov/android/master/maven/' }
} }

10
app/src/main/java/com/remit/jmecustomer/common/customwidgets/GenericViewPagerAdapter.java

@ -28,4 +28,14 @@ public class GenericViewPagerAdapter extends FragmentPagerAdapter {
return fragList.size(); return fragList.size();
} }
public void replaceFragment(int position, Fragment newFragment) {
fragList.remove(position);
fragList.add(position , newFragment);
}
public void clear(int position, Fragment newFragment) {
fragList.clear();
}
} }

1
app/src/main/java/com/remit/jmecustomer/features/exrate/presenter/ExchangeRatePresenter.java

@ -134,6 +134,7 @@ public class ExchangeRatePresenter extends BasePresenter implements ExchangeRate
@Override @Override
public void calcExrate() { public void calcExrate() {
Constants.ENTERED_SENDING_AMOUNT = Utils.removeCommaFromAmount(cAmount);
view.hideKeyBoard(); view.hideKeyBoard();
if (selectedCountryPaymentService == null) if (selectedCountryPaymentService == null)
return; return;

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

@ -502,14 +502,7 @@ class HomeActivityV3 : BaseActivity(), HomeParentViewContractV2,
residenceType residenceType
) else ExistingKYCV3Activity.startActivity(this, false, "", "", isKYCSubmitted) ) else ExistingKYCV3Activity.startActivity(this, false, "", "", isKYCSubmitted)
} else { } else {
if (redirectTo.equals("EKYC", ignoreCase = true)) KYCV4Activity.startActivity(
this,
false,
"",
"",
isKYCSubmitted,
residenceType
) else KYCV3Activity.startActivity(this, false, "", "", isKYCSubmitted)
KYCV3Activity.startActivity(this, false, "", "", isKYCSubmitted)
} }
} }

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

@ -264,18 +264,26 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
(requireActivity() as HomeActivityV3).binding.vpDashboard.currentItem = 1 (requireActivity() as HomeActivityV3).binding.vpDashboard.currentItem = 1
(requireActivity() as HomeActivityV3).transferHomeAmount(Utils.removeCommaFromAmount(
sendMoneyEditText?.text.toString().trim()))
(requireActivity() as HomeActivityV3).transferHomeAmount(
Utils.removeCommaFromAmount(
sendMoneyEditText?.text.toString().trim()
)
)
val myTransfersFragment: MyTransfersFragment = MyTransfersFragment() val myTransfersFragment: MyTransfersFragment = MyTransfersFragment()
val bundle = Bundle() val bundle = Bundle()
bundle.putString(Constants.TRANSFER_AMOUNT,
sendMoneyEditText?.text.toString().trim())
bundle.putString(
Constants.TRANSFER_AMOUNT,
sendMoneyEditText?.text.toString().trim()
)
myTransfersFragment.arguments = bundle myTransfersFragment.arguments = bundle
(requireActivity() as HomeActivityV3).transferHomeAmount(Utils.removeCommaFromAmount(
sendMoneyEditText?.text.toString().trim()))
(requireActivity() as HomeActivityV3).transferHomeAmount(
Utils.removeCommaFromAmount(
sendMoneyEditText?.text.toString().trim()
)
)
} }
R.id.countrySelectionSpinner, R.id.recepientCurrencyTextView, R.id.iv_currency_2, R.id.cl_country -> showCountryListinDialog() R.id.countrySelectionSpinner, R.id.recepientCurrencyTextView, R.id.iv_currency_2, R.id.cl_country -> showCountryListinDialog()
R.id.exRateCalculateButton -> presenter.calcExrate() R.id.exRateCalculateButton -> presenter.calcExrate()
@ -527,6 +535,7 @@ class HomeFragmentV3 : BaseFragment(), View.OnClickListener,
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {} override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
override fun afterTextChanged(s: Editable) { override fun afterTextChanged(s: Editable) {
super.afterTextChanged(s) super.afterTextChanged(s)
Constants.ENTERED_SENDING_AMOUNT = Utils.removeCommaFromAmount(s.toString())
presenter.setCalcByPayoutAmount(false) presenter.setCalcByPayoutAmount(false)
presenter.setCAmount(s.toString()) presenter.setCAmount(s.toString())
} }

2
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/KYCV3ViewModelFactory.java

@ -4,11 +4,11 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.remit.jmecustomer.features.kyc.newCustomer.gateway.FileDownloadGateway;
import com.remit.jmecustomer.features.kyc.newCustomer.gateway.KYCV3Gateway; import com.remit.jmecustomer.features.kyc.newCustomer.gateway.KYCV3Gateway;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.remit.jmecustomer.features.login.gateway.LoginV2Gateway; import com.remit.jmecustomer.features.login.gateway.LoginV2Gateway;
import com.remit.jmecustomer.features.newkyc.newCustomer.gateway.FileDownloadGateway;
public class KYCV3ViewModelFactory implements ViewModelProvider.Factory { public class KYCV3ViewModelFactory implements ViewModelProvider.Factory {
private final KYCV3PresenterInterface.KYCV3ViewContractInterface view; private final KYCV3PresenterInterface.KYCV3ViewContractInterface view;

23
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/gateway/KYCV3Gateway.java

@ -9,12 +9,12 @@ import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3GatewayInte
import com.remit.jmecustomer.RemitApplication; import com.remit.jmecustomer.RemitApplication;
import com.remit.jmecustomer.base.PrefKeys; import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.base.PrivilegedGateway; import com.remit.jmecustomer.base.PrivilegedGateway;
import com.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.NativeCountry;
import com.remit.jmecustomer.features.kyc.newCustomer.model.PersonalInfoDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.PicturesDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.NativeCountry;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PersonalInfoDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PicturesDTO;
import com.remit.jmecustomer.utils.Constants; import com.remit.jmecustomer.utils.Constants;
import com.remit.jmecustomer.utils.https.HttpClientV2; import com.remit.jmecustomer.utils.https.HttpClientV2;
@ -53,7 +53,7 @@ public class KYCV3Gateway extends PrivilegedGateway implements KYCV3GatewayInter
} }
@Override @Override
public Observable<ResponseBody> submitKYCForm(KYCRelatedDataDTO kycRelatedDataDTO,String auth, KYCRequestDataDTO requestBody) {
public Observable<ResponseBody> submitKYCForm(KYCRelatedDataDTO kycRelatedDataDTO, String auth, KYCRequestDataDTO requestBody) {
HashMap<String, RequestBody> map = new HashMap<>(); HashMap<String, RequestBody> map = new HashMap<>();
map.put("userId", createStringUploadValue(requestBody.getUserId())); map.put("userId", createStringUploadValue(requestBody.getUserId()));
map.put("type", createStringUploadValue(requestBody.getType())); map.put("type", createStringUploadValue(requestBody.getType()));
@ -209,4 +209,13 @@ public class KYCV3Gateway extends PrivilegedGateway implements KYCV3GatewayInter
return HttpClientV2.getInstance().agreeToTermsAndCondition(basicAuth,userID,agreed); return HttpClientV2.getInstance().agreeToTermsAndCondition(basicAuth,userID,agreed);
} }
@Override
public Observable<ResponseBody> getKycSettings(String auth, JsonObject jsonObject) {
return HttpClientV2.getInstance().getKycSetting(auth , jsonObject);
}
@Override
public Observable<ResponseBody> saveKycSettings(String auth, JsonObject jsonObject) {
return HttpClientV2.getInstance().saveKycSetting(auth , jsonObject);
}
} }

76
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Config.java

@ -0,0 +1,76 @@
package com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Config {
@SerializedName("URL")
@Expose
private String url;
@SerializedName("Authorization_Key")
@Expose
private String authorizationKey;
@SerializedName("Sdk_Token")
@Expose
private String sdkToken;
@SerializedName("MavenURL")
@Expose
private String mavenURL;
@SerializedName("Sdk_DownloadUser")
@Expose
private String sdkDownloadUser;
@SerializedName("Sdk_DownloadPass")
@Expose
private String sdkDownloadPass;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getAuthorizationKey() {
return authorizationKey;
}
public void setAuthorizationKey(String authorizationKey) {
this.authorizationKey = authorizationKey;
}
public String getSdkToken() {
return sdkToken;
}
public void setSdkToken(String sdkToken) {
this.sdkToken = sdkToken;
}
public String getMavenURL() {
return mavenURL;
}
public void setMavenURL(String mavenURL) {
this.mavenURL = mavenURL;
}
public String getSdkDownloadUser() {
return sdkDownloadUser;
}
public void setSdkDownloadUser(String sdkDownloadUser) {
this.sdkDownloadUser = sdkDownloadUser;
}
public String getSdkDownloadPass() {
return sdkDownloadPass;
}
public void setSdkDownloadPass(String sdkDownloadPass) {
this.sdkDownloadPass = sdkDownloadPass;
}
}

98
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Example.java

@ -0,0 +1,98 @@
package com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("ErrorCode")
@Expose
private String errorCode;
@SerializedName("Msg")
@Expose
private String msg;
@SerializedName("Id")
@Expose
private Object id;
@SerializedName("Extra")
@Expose
private Object extra;
@SerializedName("Extra2")
@Expose
private String extra2;
@SerializedName("Extra3")
@Expose
private String extra3;
@SerializedName("Data")
@Expose
private KycSettingData data;
@SerializedName("FootNoteMessage")
@Expose
private String footNoteMessage;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getId() {
return id;
}
public void setId(Object id) {
this.id = id;
}
public Object getExtra() {
return extra;
}
public void setExtra(Object extra) {
this.extra = extra;
}
public String getExtra2() {
return extra2;
}
public void setExtra2(String extra2) {
this.extra2 = extra2;
}
public String getExtra3() {
return extra3;
}
public void setExtra3(String extra3) {
this.extra3 = extra3;
}
public KycSettingData getData() {
return data;
}
public void setData(KycSettingData data) {
this.data = data;
}
public String getFootNoteMessage() {
return footNoteMessage;
}
public void setFootNoteMessage(String footNoteMessage) {
this.footNoteMessage = footNoteMessage;
}
}

34
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/KycSettingData.java

@ -0,0 +1,34 @@
package com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting;
import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class KycSettingData {
@SerializedName("Config")
@Expose
private Config config;
@SerializedName("Options")
@Expose
private List<Option> options;
public Config getConfig() {
return config;
}
public void setConfig(Config config) {
this.config = config;
}
public List<Option> getOptions() {
return options;
}
public void setOptions(List<Option> options) {
this.options = options;
}
}

96
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/model/kycSetting/Option.java

@ -0,0 +1,96 @@
package com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Option {
@SerializedName("Code")
@Expose
private String code;
@SerializedName("Name")
@Expose
private String name;
@SerializedName("Description")
@Expose
private String description;
@SerializedName("PlanId")
@Expose
private String planId;
@SerializedName("SelfieRequired")
@Expose
private String selfieRequired;
@SerializedName("Selfie_PlanId")
@Expose
private String selfiePlanId;
@SerializedName("Type")
@Expose
private String type;
boolean selected;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPlanId() {
return planId;
}
public void setPlanId(String planId) {
this.planId = planId;
}
public String getSelfieRequired() {
return selfieRequired;
}
public void setSelfieRequired(String selfieRequired) {
this.selfieRequired = selfieRequired;
}
public String getSelfiePlanId() {
return selfiePlanId;
}
public void setSelfiePlanId(String selfiePlanId) {
this.selfiePlanId = selfiePlanId;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}

12
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3GatewayInterface.java

@ -2,10 +2,12 @@ package com.remit.jmecustomer.features.kyc.newCustomer.presenter;
import android.content.Context; import android.content.Context;
import com.google.gson.JsonObject;
import com.remit.jmecustomer.base.PrivilegedGatewayInterface; import com.remit.jmecustomer.base.PrivilegedGatewayInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.NativeCountry;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.NativeCountry;
import java.util.List; import java.util.List;
@ -38,4 +40,8 @@ public interface KYCV3GatewayInterface extends PrivilegedGatewayInterface {
String requestFor); String requestFor);
Observable<ResponseBody> agreeToUserTermsAndConditions(String basicAuth, String userID, String agreed); Observable<ResponseBody> agreeToUserTermsAndConditions(String basicAuth, String userID, String agreed);
Observable<ResponseBody> getKycSettings(String auth , JsonObject jsonObject);
Observable<ResponseBody> saveKycSettings(String auth , JsonObject jsonObject);
} }

11
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3PresenterInterface.java

@ -3,9 +3,10 @@ package com.remit.jmecustomer.features.kyc.newCustomer.presenter;
import com.remit.jmecustomer.base.BaseContractInterface; import com.remit.jmecustomer.base.BaseContractInterface;
import com.remit.jmecustomer.base.BasePresenterInterface; import com.remit.jmecustomer.base.BasePresenterInterface;
import com.remit.jmecustomer.common.view.AnswerInputDialog; import com.remit.jmecustomer.common.view.AnswerInputDialog;
import com.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData; import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@ -27,7 +28,9 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
void setNewToken(String newToken); void setNewToken(String newToken);
void getKycSettings();
void saveKycSetting(String registrationType , String code);
List<IDTextDTO> getOccupationList(); List<IDTextDTO> getOccupationList();
@ -68,12 +71,16 @@ public interface KYCV3PresenterInterface extends BasePresenterInterface {
void showDocumentDetailForm(); void showDocumentDetailForm();
void showPersonalInformation();
void showTermsAndCondition(); void showTermsAndCondition();
void promptToInputAnswer(String question, AnswerInputDialog.AnswerInputDialogListener listener); void promptToInputAnswer(String question, AnswerInputDialog.AnswerInputDialogListener listener);
void onTermsPostSuccess(); void onTermsPostSuccess();
void onKycSettingSuccess(List<Option> kycOptions);
interface KYCV3CustomerDetailViewContractInterface extends BaseContractInterface { interface KYCV3CustomerDetailViewContractInterface extends BaseContractInterface {
} }

174
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/presenter/KYCV3ViewModel.java

@ -1,10 +1,25 @@
package com.remit.jmecustomer.features.kyc.newCustomer.presenter; package com.remit.jmecustomer.features.kyc.newCustomer.presenter;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.remit.jmecustomer.BuildConfig;
import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.KycSettingData;
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option;
import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.login.model.LoginV2DataApiResponse; import com.remit.jmecustomer.features.login.model.LoginV2DataApiResponse;
import com.remit.jmecustomer.features.login.presenter.LoginV2InteractorInterface; import com.remit.jmecustomer.features.login.presenter.LoginV2InteractorInterface;
import com.remit.jmecustomer.R; import com.remit.jmecustomer.R;
@ -13,15 +28,13 @@ import com.remit.jmecustomer.base.BaseViewModel;
import com.remit.jmecustomer.common.customwidgets.CustomAlertDialog; import com.remit.jmecustomer.common.customwidgets.CustomAlertDialog;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.common.view.AnswerInputDialog; import com.remit.jmecustomer.common.view.AnswerInputDialog;
import com.remit.jmecustomer.features.kyc.newCustomer.gateway.FileDownloadGateway;
import com.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.PersonalInfoDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.model.PicturesDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.gateway.FileDownloadGateway;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRelatedDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRequestDataDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PersonalInfoDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PicturesDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.utils.Constants; import com.remit.jmecustomer.utils.Constants;
import com.remit.jmecustomer.utils.ImageUtils; import com.remit.jmecustomer.utils.ImageUtils;
import com.remit.jmecustomer.utils.Utils; import com.remit.jmecustomer.utils.Utils;
@ -33,7 +46,9 @@ import com.remit.jmecustomer.utils.https.MessageResponseDataModel;
import java.io.File; import java.io.File;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
@ -42,9 +57,14 @@ import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.observers.DisposableObserver; import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.PublishSubject; import io.reactivex.subjects.PublishSubject;
import io.trustdock.sdk.TrustdockPlan;
import io.trustdock.sdk.TrustdockVerificationParams;
import io.trustdock.sdk.TrustdockVerificationSDK;
import static android.app.Activity.RESULT_OK; import static android.app.Activity.RESULT_OK;
import org.json.JSONObject;
public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInterface { public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInterface {
public static final String TAG = "KYCV3Process"; public static final String TAG = "KYCV3Process";
private static final int THUMBNAIL_HEIGHT = 150; private static final int THUMBNAIL_HEIGHT = 150;
@ -67,6 +87,10 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
private String newToken; private String newToken;
private boolean isKYCSubmitted; private boolean isKYCSubmitted;
private Option selectedOption;
private String trustDockId = "";
public KYCV3ViewModel(KYCV3ViewContractInterface view, KYCV3GatewayInterface gatewayInterface, FileDownloadGateway fileDownloadGateway, LoginV2InteractorInterface.Login2GatewayInterface loginGateway, String userId, String userPwd) { public KYCV3ViewModel(KYCV3ViewContractInterface view, KYCV3GatewayInterface gatewayInterface, FileDownloadGateway fileDownloadGateway, LoginV2InteractorInterface.Login2GatewayInterface loginGateway, String userId, String userPwd) {
this.compositeDisposable = new CompositeDisposable(); this.compositeDisposable = new CompositeDisposable();
@ -195,6 +219,78 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
} }
@Override
public void getKycSettings() {
String selectedNationality = RemitApplication.getStorage().getString(PrefKeys.SELECTED_NATIONALITY, "");
RemitApplication.AppRelatedMetaData appRelatedMetaData = RemitApplication.getAppRelatedMetaData(view.getContext());
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("UserId", gateway.getUserID());
jsonObject.addProperty("DeviceType", "ANDROID");
jsonObject.addProperty("OsVersion", appRelatedMetaData.getOsVersion());
jsonObject.addProperty("CustomerType", selectedNationality);
compositeDisposable.add(
this.gateway.getKycSettings(gateway.getAuth(), jsonObject)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(new KycSettingObserver())
);
}
@Override
public void saveKycSetting(String registrationType, String code) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("UserId", gateway.getUserID());
jsonObject.addProperty("RegistrationType", registrationType);
jsonObject.addProperty("Code", code);
compositeDisposable.add(
this.gateway.getKycSettings(gateway.getAuth(), jsonObject)
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(null)
);
}
public class KycSettingObserver extends GenericApiObserverResponseV2<KycSettingData> {
@Override
protected Type getDataType() {
return TypeToken.getParameterized(KycSettingData.class).getType();
}
@Override
protected void onSuccess(GenericResponseDataModel<KycSettingData> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
view.onKycSettingSuccess(t.getData().getOptions());
} else
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void unauthorizedAccess(String message) {
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
private void bindCustomerDetailView(CustomerDetailViewLiveData.CustomerDetailViewBinding mViewBindings) { private void bindCustomerDetailView(CustomerDetailViewLiveData.CustomerDetailViewBinding mViewBindings) {
viewBindings = mViewBindings; viewBindings = mViewBindings;
@ -755,7 +851,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override @Override
public void sendFullKYCDataUpdate() { public void sendFullKYCDataUpdate() {
postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getFullFormPostData(gateway.getUserID()), view::showTermsAndCondition);
postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getForm1PostData(gateway.getUserID(), trustDockId), view::showDocumentDetailForm);
} }
private void postKYCFormToServer(KYCRelatedDataDTO kycRelatedDataDTO, KYCRequestDataDTO requestDataDTO, Runnable endWithTask) { private void postKYCFormToServer(KYCRelatedDataDTO kycRelatedDataDTO, KYCRequestDataDTO requestDataDTO, Runnable endWithTask) {
@ -771,7 +867,11 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
@Override @Override
public void sendForm1KYCUpdate() { public void sendForm1KYCUpdate() {
postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getForm1PostData(gateway.getUserID()), view::showDocumentDetailForm);
postKYCFormToServer(validator.getKycRelatedDataDTO(), validator.getKycRelatedDataDTO().getForm1PostData(gateway.getUserID(), trustDockId), view::showDocumentDetailForm);
}
public void redirectToInformation() {
view.showPersonalInformation();
} }
@Override @Override
@ -894,7 +994,7 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
public KYCRequestDataDTO getKYCFullFormPostData(String userId) { public KYCRequestDataDTO getKYCFullFormPostData(String userId) {
return kycRelatedDataDTO.getFullFormPostData(userId);
return kycRelatedDataDTO.getFullFormPostData(userId , trustDockId);
} }
@ -1304,4 +1404,54 @@ public class KYCV3ViewModel extends BaseViewModel implements KYCV3PresenterInter
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
} }
} }
public void requestWithSomeHttpHeaders(List<TrustdockPlan> plan) {
RequestQueue queue = Volley.newRequestQueue(view.getContext());
String url = BuildConfig.TrustDockVerificationUrl;
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.POST, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
String publicKey = response.getString("public_id");
trustDockId = response.getString("id");
//setupPlans()
String nativeAppSdkToken = BuildConfig.TrustDockNativeAppSdkToken;
TrustdockVerificationParams param = new TrustdockVerificationParams(
publicKey,
nativeAppSdkToken,
plan
);
TrustdockVerificationSDK.Companion.start((Context) view.getContext(), param);
} catch (Exception ex) {
Log.d("ERROR", "error => " + ex.toString());
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
Log.d("ERROR", "error => " + error.toString());
}
}
) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Authorization", "Bearer " + BuildConfig.TrustDockAuthorizationId);
return params;
}
};
queue.add(getRequest);
}
public Option getKycSelectedOption() {
return selectedOption;
}
public void setSelectedOption(Option option) {
this.selectedOption = option;
}
} }

60
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/KYCV3Activity.java

@ -3,6 +3,7 @@ package com.remit.jmecustomer.features.kyc.newCustomer.view;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
@ -16,8 +17,10 @@ import androidx.transition.TransitionManager;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragment; import com.remit.jmecustomer.features.customersupport.view.CustomerSupportFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.choose.ChooseKycFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.documents.KYCIDTypeFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailFragment;
import com.remit.jmecustomer.features.kyc.newCustomer.view.termsAndCondition.NewKycTermsAndConditionFragment; import com.remit.jmecustomer.features.kyc.newCustomer.view.termsAndCondition.NewKycTermsAndConditionFragment;
@ -53,23 +56,30 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
@BindView(R.id.page1TxtView) @BindView(R.id.page1TxtView)
TextView page1TxtView; TextView page1TxtView;
@BindView(R.id.page3TxtView)
@BindView(R.id.page2TxtView)
TextView page2TxtView; TextView page2TxtView;
@BindView(R.id.page4TxtView)
@BindView(R.id.page3TxtView)
TextView page3TxtView; TextView page3TxtView;
@BindView(R.id.page4TxtView)
TextView page4TxtView;
@BindView(R.id.toolbar_title) @BindView(R.id.toolbar_title)
JmeTextView toolbarTitle; JmeTextView toolbarTitle;
private ChooseKycFragment chooseKycFragment;
private CustomerDetailFragment customerDetailFragment; private CustomerDetailFragment customerDetailFragment;
private KYCIDTypeFragment documentFragment; private KYCIDTypeFragment documentFragment;
private NewKycTermsAndConditionFragment newKycTermsAndConditionFragment; private NewKycTermsAndConditionFragment newKycTermsAndConditionFragment;
private GenericViewPagerAdapter kycViewPagerAdapter; private GenericViewPagerAdapter kycViewPagerAdapter;
private KYCV3ViewModel viewModel; private KYCV3ViewModel viewModel;
private GenericEditTextPromptDialog genericPromptDialog; private GenericEditTextPromptDialog genericPromptDialog;
private static boolean isKYCSubmitted = false; private static boolean isKYCSubmitted = false;
List<Option> kycOptions;
public static void startActivityForResult(Activity context, boolean shouldRedirectToPennyTestScreen, String userId, String userPwd) { public static void startActivityForResult(Activity context, boolean shouldRedirectToPennyTestScreen, String userId, String userPwd) {
Intent intent = new Intent(context, KYCV3Activity.class); Intent intent = new Intent(context, KYCV3Activity.class);
intent.putExtra(SHOULD_REDIRECT_TO_PENNY_TEST_BUNDLE_KEY, shouldRedirectToPennyTestScreen); intent.putExtra(SHOULD_REDIRECT_TO_PENNY_TEST_BUNDLE_KEY, shouldRedirectToPennyTestScreen);
@ -100,6 +110,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
private void performDefaultAction(Bundle savedInstanceState) { private void performDefaultAction(Bundle savedInstanceState) {
viewModel.getKycRelatedData(isKYCSubmitted); viewModel.getKycRelatedData(isKYCSubmitted);
// viewModel.getKycSettings();
} }
private void initialize() { private void initialize() {
@ -116,15 +127,16 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
} }
private void setupViewPager() {
private void setupViewPager(List<Option> kycOptions, boolean isEkyc) {
List<Fragment> fragments = new ArrayList<>(); List<Fragment> fragments = new ArrayList<>();
chooseKycFragment = new ChooseKycFragment(kycOptions);
customerDetailFragment = CustomerDetailFragment.newInstance(); customerDetailFragment = CustomerDetailFragment.newInstance();
documentFragment = KYCIDTypeFragment.newInstance(); documentFragment = KYCIDTypeFragment.newInstance();
newKycTermsAndConditionFragment = NewKycTermsAndConditionFragment.newInstance(); newKycTermsAndConditionFragment = NewKycTermsAndConditionFragment.newInstance();
fragments.add(chooseKycFragment);
fragments.add(customerDetailFragment); fragments.add(customerDetailFragment);
fragments.add(documentFragment); fragments.add(documentFragment);
fragments.add(newKycTermsAndConditionFragment); fragments.add(newKycTermsAndConditionFragment);
@ -139,22 +151,33 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
Log.d(TAG, "setupViewPager: we are here"); Log.d(TAG, "setupViewPager: we are here");
} }
public void onCustomerRegistration() {
public void onChooseKycType() {
TransitionManager.beginDelayedTransition(kyc_header_view); TransitionManager.beginDelayedTransition(kyc_header_view);
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setDefaultBg(page2TxtView); setDefaultBg(page2TxtView);
setDefaultBg(page3TxtView); setDefaultBg(page3TxtView);
setDefaultBg(page4TxtView);
Fragment activeFragment = kycViewPagerAdapter.getItem(kycFormViewPager.getCurrentItem()); Fragment activeFragment = kycViewPagerAdapter.getItem(kycFormViewPager.getCurrentItem());
((CustomerDetailFragment) activeFragment).onFragmentedSelected();
((ChooseKycFragment) activeFragment).onFragmentedSelected();
} }
public void onDocumentDetailScreenShown() {
public void onCustomerRegistration() {
TransitionManager.beginDelayedTransition(kyc_header_view); TransitionManager.beginDelayedTransition(kyc_header_view);
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setBlueBg(page2TxtView); setBlueBg(page2TxtView);
setDefaultBg(page3TxtView); setDefaultBg(page3TxtView);
setDefaultBg(page4TxtView);
Fragment activeFragment = kycViewPagerAdapter.getItem(kycFormViewPager.getCurrentItem()); Fragment activeFragment = kycViewPagerAdapter.getItem(kycFormViewPager.getCurrentItem());
((KYCIDTypeFragment) activeFragment).onFragmentedSelected();
((CustomerDetailFragment) activeFragment).onFragmentedSelected();
}
public void onDocumentDetailScreenShown() {
TransitionManager.beginDelayedTransition(kyc_header_view);
setBlueBg(page1TxtView);
setBlueBg(page2TxtView);
setBlueBg(page3TxtView);
setDefaultBg(page4TxtView);
documentFragment.onFragmentedSelection();
} }
public void onTermsConditionScreenShown() { public void onTermsConditionScreenShown() {
@ -162,6 +185,7 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setBlueBg(page2TxtView); setBlueBg(page2TxtView);
setBlueBg(page3TxtView); setBlueBg(page3TxtView);
setBlueBg(page4TxtView);
} }
@ -236,11 +260,22 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
@Override @Override
public void lazyLoadForms() { public void lazyLoadForms() {
setupViewPager();
viewModel.getKycSettings();
}
@Override
public void onKycSettingSuccess(List<Option> kycOptions) {
this.kycOptions = kycOptions;
setupViewPager(kycOptions, false);
} }
@Override @Override
public void showDocumentDetailForm() { public void showDocumentDetailForm() {
kycFormViewPager.setCurrentItem(2);
}
@Override
public void showPersonalInformation() {
kycFormViewPager.setCurrentItem(1); kycFormViewPager.setCurrentItem(1);
} }
@ -264,12 +299,15 @@ public class KYCV3Activity extends BaseActivity implements KYCV3PresenterInterfa
public void onPageSelected(int position) { public void onPageSelected(int position) {
switch (position) { switch (position) {
case 0: case 0:
onCustomerRegistration();
onChooseKycType();
break; break;
case 1: case 1:
onDocumentDetailScreenShown();
onCustomerRegistration();
break; break;
case 2: case 2:
onDocumentDetailScreenShown();
break;
case 3:
onTermsConditionScreenShown(); onTermsConditionScreenShown();
break; break;

62
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/adapter/KycTypeAdapter.kt

@ -0,0 +1,62 @@
package com.remit.jmecustomer.features.kyc.newCustomer.view.adapter
import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.remit.jmecustomer.databinding.RowKycTypeBinding
import com.remit.jmecustomer.features.exrate.model.PaymentModeMapper
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option
import com.remit.jmecustomer.features.recipientmanagement.model.recipientlistingV3.PaymentMethodV3Model
class KycTypeAdapter(private val items: List<Option>) :
RecyclerView.Adapter<KycTypeAdapter.ViewHolder>() {
var itemClickListener: ItemClickListener? = null
private var lastPosition = 0
class ViewHolder(private val binding: RowKycTypeBinding) :
RecyclerView.ViewHolder(binding.root) {
val bindings: RowKycTypeBinding = binding
fun bind(item: Option) {
binding.rdBtn.isChecked = item.isSelected
binding.tvName.text = item.name
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = RowKycTypeBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
return ViewHolder(binding)
}
@SuppressLint("NotifyDataSetChanged")
override fun onBindViewHolder(holder: ViewHolder, @SuppressLint("RecyclerView") position: Int) {
val item = items[position]
if (lastPosition == 0) {
itemClickListener?.onItemClicked(items[0])
}
holder.itemView.setOnClickListener {
items[lastPosition].isSelected = false
itemClickListener?.onItemClicked(item)
item.isSelected = true
lastPosition = position
notifyDataSetChanged()
}
holder.bindings.tvAccountNumber.text = item.description
holder.bind(item)
}
override fun getItemCount(): Int = items.size
fun setOnItemClickListener(itemClickListener: ItemClickListener) {
this.itemClickListener = itemClickListener
}
interface ItemClickListener {
fun onItemClicked(option: Option)
}
}

53
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/choose/ChooseKycFragment.kt

@ -0,0 +1,53 @@
package com.remit.jmecustomer.features.kyc.newCustomer.view.choose
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.remit.jmecustomer.base.BaseFragment
import com.remit.jmecustomer.databinding.FragmentChooseKycBinding
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel
import com.remit.jmecustomer.features.kyc.newCustomer.view.adapter.KycTypeAdapter
class ChooseKycFragment(private var options: List<Option>? = null) : BaseFragment() {
private var _binding: FragmentChooseKycBinding? = null
private val binding get() = _binding!!
private var kycv3ViewModel: KYCV3ViewModel? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentChooseKycBinding.inflate(inflater, container, false)
init()
return binding.root
}
fun onFragmentedSelected() {}
fun init() {
val layoutManagerVertical = LinearLayoutManager(requireActivity())
binding.rvChooseKyc.layoutManager = layoutManagerVertical
kycv3ViewModel = ViewModelProvider(requireActivity())[KYCV3ViewModel::class.java]
val adapter = KycTypeAdapter(options!!)
binding.rvChooseKyc.adapter = adapter
adapter.setOnItemClickListener(object : KycTypeAdapter.ItemClickListener {
override fun onItemClicked(option: Option) {
kycv3ViewModel?.setSelectedOption(option)
kycv3ViewModel?.saveKycSetting(option.type, option.code)
}
})
binding.btnSubmit1.setOnClickListener {
kycv3ViewModel?.redirectToInformation()
}
}
}

250
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeFragment.java

@ -2,7 +2,9 @@ package com.remit.jmecustomer.features.kyc.newCustomer.view.documents;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ClipData; import android.content.ClipData;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@ -11,8 +13,10 @@ import android.media.Image;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.provider.Settings; import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -28,10 +32,14 @@ import androidx.appcompat.app.AlertDialog;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import androidx.core.widget.NestedScrollView; import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import com.remit.jmecustomer.RemitApplication;
import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.features.homeV3.view.HomeActivityV3;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel; import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.remit.jmecustomer.BuildConfig; import com.remit.jmecustomer.BuildConfig;
@ -39,20 +47,32 @@ import com.remit.jmecustomer.R;
import com.remit.jmecustomer.base.BaseFragment; import com.remit.jmecustomer.base.BaseFragment;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.common.view.OnFragmentSelectedListener; import com.remit.jmecustomer.common.view.OnFragmentSelectedListener;
import com.remit.jmecustomer.features.newkyc.newCustomer.presenter.KYCV4ViewModel;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.utils.other.Utility; import com.remit.jmecustomer.utils.other.Utility;
import com.theartofdev.edmodo.cropper.CropImage; import com.theartofdev.edmodo.cropper.CropImage;
import java.io.File; import java.io.File;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import id.zelory.compressor.Compressor; import id.zelory.compressor.Compressor;
import io.reactivex.subjects.PublishSubject; import io.reactivex.subjects.PublishSubject;
import io.trustdock.sdk.TrustdockPlan;
import io.trustdock.sdk.TrustdockVerificationException;
import io.trustdock.sdk.TrustdockVerificationSDK;
import kotlin.collections.CollectionsKt;
import kotlin.jvm.internal.Intrinsics;
import static android.app.Activity.RESULT_OK; import static android.app.Activity.RESULT_OK;
import static com.remit.jmecustomer.utils.Constants.FOREIGNER_TYPE;
import org.jetbrains.annotations.NotNull;
public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDocumentViewContractInterface, OnFragmentSelectedListener { public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInterface.KYCV3ViewContractInterface.KYCV3CustomerDocumentViewContractInterface, OnFragmentSelectedListener {
@ -85,6 +105,9 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
@BindView(R.id.rootView) @BindView(R.id.rootView)
LinearLayout rootView; LinearLayout rootView;
@BindView(R.id.ekyc_view)
LinearLayout ekycView;
@BindView(R.id.scrollView) @BindView(R.id.scrollView)
NestedScrollView scrollView; NestedScrollView scrollView;
@ -191,12 +214,16 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
private KYCV3ViewModel kycv3ViewModel; private KYCV3ViewModel kycv3ViewModel;
private PublishSubject<Boolean> faceImageLoadedSubject; private PublishSubject<Boolean> faceImageLoadedSubject;
private PublishSubject<Boolean> frontIdLoadedSubject; private PublishSubject<Boolean> frontIdLoadedSubject;
private PublishSubject<Boolean> backIdLoadedSubject; private PublishSubject<Boolean> backIdLoadedSubject;
private PublishSubject<Boolean> sideIdLoadedSubject; private PublishSubject<Boolean> sideIdLoadedSubject;
private PublishSubject<Boolean> additionalIdLoadedSubject; private PublishSubject<Boolean> additionalIdLoadedSubject;
private PublishSubject<Boolean> additionalIdBackLoadedSubject; private PublishSubject<Boolean> additionalIdBackLoadedSubject;
private Activity kYCV4Activity;
private KYCV4ViewModel kycv4ViewModel;
public static KYCIDTypeFragment newInstance() { public static KYCIDTypeFragment newInstance() {
KYCIDTypeFragment kycidTypeFragment = new KYCIDTypeFragment(); KYCIDTypeFragment kycidTypeFragment = new KYCIDTypeFragment();
@ -222,29 +249,11 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
} }
private void performDefaultAction(Bundle savedInstance) { private void performDefaultAction(Bundle savedInstance) {
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), true); subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), true);
} }
private KYCIDTypeViewLiveData.KYCIDTypeViewBindings getIDTypeViewBinding() {
frontIdLoadedSubject = PublishSubject.create();
backIdLoadedSubject = PublishSubject.create();
sideIdLoadedSubject = PublishSubject.create();
faceImageLoadedSubject = PublishSubject.create();
additionalIdLoadedSubject = PublishSubject.create();
additionalIdBackLoadedSubject = PublishSubject.create();
return new KYCIDTypeViewLiveData.KYCIDTypeViewBindings(
faceImageLoadedSubject,
frontIdLoadedSubject,
backIdLoadedSubject,
sideIdLoadedSubject,
additionalIdLoadedSubject,
additionalIdBackLoadedSubject
);
}
private void subscribeToIdTypeImageLiveData(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings, Boolean isBackRequired) { private void subscribeToIdTypeImageLiveData(KYCIDTypeViewLiveData.KYCIDTypeViewBindings viewBindings, Boolean isBackRequired) {
KYCIDTypeViewLiveData liveData = kycv3ViewModel.getKYCIdTypeViewEvents(viewBindings, isBackRequired); KYCIDTypeViewLiveData liveData = kycv3ViewModel.getKYCIdTypeViewEvents(viewBindings, isBackRequired);
@ -275,6 +284,23 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
} }
private KYCIDTypeViewLiveData.KYCIDTypeViewBindings getIDTypeViewBinding() {
frontIdLoadedSubject = PublishSubject.create();
backIdLoadedSubject = PublishSubject.create();
sideIdLoadedSubject = PublishSubject.create();
faceImageLoadedSubject = PublishSubject.create();
additionalIdLoadedSubject = PublishSubject.create();
additionalIdBackLoadedSubject = PublishSubject.create();
return new KYCIDTypeViewLiveData.KYCIDTypeViewBindings(
faceImageLoadedSubject,
frontIdLoadedSubject,
backIdLoadedSubject,
sideIdLoadedSubject,
additionalIdLoadedSubject,
additionalIdBackLoadedSubject
);
}
private void onFaceImageReceived(FormInputStateDTO<Bitmap> data) { private void onFaceImageReceived(FormInputStateDTO<Bitmap> data) {
if (data.isValid()) { if (data.isValid()) {
if (data.hasData()) { if (data.hasData()) {
@ -502,32 +528,6 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
} }
@OnClick(R.id.additionalIdSampleTextView)
public void onAdditionalIdSamplePhotoClicked() {
// Utility.showImageDialog(getActivity(), getString(R.string.passport_text), R.drawable.ic_selfie_example);
}
@SuppressLint("ClickableViewAccessibility")
@Override
public void onStart() {
super.onStart();
//
// rootView.setOnTouchListener((view, motionevent) -> {
// hideKeyBoard();
// return true;
// });
}
@Override
public void onStop() {
super.onStop();
// rootView.setOnTouchListener(null);
}
@OnClick(R.id.btn_submit3) @OnClick(R.id.btn_submit3)
public void onClick3() { public void onClick3() {
if (kycv3ViewModel.validateAllImages()) { if (kycv3ViewModel.validateAllImages()) {
@ -728,41 +728,6 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
return image; return image;
} }
// @Override
// public void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// try {
// if (resultCode == RESULT_OK) {
// if (requestCode == CAMERA_REQUEST_ID_BACK ||
// requestCode == CAMERA_REQUEST_ID_FRONT ||
// requestCode == CAMERA_REQUEST_ID_SIDE ||
// requestCode == CAMERA_REQUEST_ADDITIONAL_ID ||
// requestCode == CAMERA_REQUEST_ADDITIONAL_ID_BACK ||
// requestCode == CAMERA_REQUEST_FACE_PHOTO
// ) {
// requestToCropImage(requestCode);
// } else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
// CropImage.ActivityResult result = CropImage.getActivityResult(data);
// if (result.isSuccessful()) {
// Uri resultUri = result.getUri();
// File imageFile = createCompressedImageFileFromUri(resultUri);
// kycv3ViewModel.checkImageStatus(currentRequest, resultCode, imageFile);
//
// } else {
// showToastMessage(result.getError().getMessage());
// }
// } else {
// photoURI = data.getData();
// requestToCropImage(requestCode);
// }
// }
// } catch (NullPointerException ex) {
// ex.printStackTrace();
// }
//
// }
@Override @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
@ -846,20 +811,129 @@ public class KYCIDTypeFragment extends BaseFragment implements KYCV3PresenterInt
return compressedBitmap; return compressedBitmap;
} }
@Override
public void showHideAdditionalBack(Boolean isBackRequired) {
//@Todo
}
@Override
public void onFragmentedSelected() {
public void onFragmentedSelection() {
if (kycv3ViewModel.getKycSelectedOption().getCode().equals("MANUAL_KYC")) {
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), kycv3ViewModel.getBackAdditionalRequired()); subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), kycv3ViewModel.getBackAdditionalRequired());
if (kycv3ViewModel.getBackAdditionalRequired()) { if (kycv3ViewModel.getBackAdditionalRequired()) {
additionalIDBackImageViewContainer.setVisibility(View.VISIBLE); additionalIDBackImageViewContainer.setVisibility(View.VISIBLE);
} else { } else {
additionalIDBackImageViewContainer.setVisibility(View.GONE); additionalIDBackImageViewContainer.setVisibility(View.GONE);
} }
// btnSubmit3.setEnabled(false);
btnSubmit3.setEnabled(false);
}
if (kycv3ViewModel.getKycSelectedOption().getCode().equals("MANUAL_KYC")) {
rootView.setVisibility(View.VISIBLE);
ekycView.setVisibility(View.GONE);
} else {
rootView.setVisibility(View.GONE);
ekycView.setVisibility(View.VISIBLE);
trustDockInit();
}
}
@Override
public void onFragmentedSelected() {
}
private void trustDockInit() {
subscribeToIdTypeImageLiveData(getIDTypeViewBinding(), true);
TrustdockVerificationSDK.Companion.init();
TrustdockVerificationSDK.Listener listener = new TrustdockVerificationSDK.Listener() {
public void onDocumentSubmitted() {
Log.d("ds", "ds");
}
public void onCompleted() {
if (kYCV4Activity != null)
kycv3ViewModel.sendFullKYCDataUpdate();
else {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
kycv3ViewModel.sendFullKYCDataUpdate();
}
}, 5000);
}
}
public void onCanceled(@NotNull TrustdockVerificationException e) {
try {
Intrinsics.checkNotNullParameter(e, "e");
} catch (Exception exception) {
}
}
};
TrustdockVerificationSDK.Companion.registerListener((TrustdockVerificationSDK.Listener) listener);
String selectedNationality = RemitApplication.getStorage().getString(PrefKeys.SELECTED_NATIONALITY, "");
if (selectedNationality.equalsIgnoreCase(FOREIGNER_TYPE))
additionalIdTypeLabelTxtView.setText(R.string.scan_residence_card_text);
else
additionalIdTypeLabelTxtView.setText(R.string.scan_driver_license_text);
}
@OnClick(R.id.additionalIdSampleTextView)
public void onAdditionalIdSamplePhotoClicked() {
// Utility.showImageDialog(getActivity(), getString(R.string.passport_text), R.drawable.ic_selfie_example);
}
@SuppressLint("ClickableViewAccessibility")
@Override
public void onStart() {
super.onStart();
//
// rootView.setOnTouchListener((view, motionevent) -> {
// hideKeyBoard();
// return true;
// });
}
@Override
public void onStop() {
super.onStop();
// rootView.setOnTouchListener(null);
}
@OnClick(R.id.additionalIDImageViewContainer1)
public void promptKYCSubmit() {
openTrustDockSDK(false);
//kycv4ViewModel.getTrustDockVerificationDetail();
//askPermission(CAMERA_REQUEST_ADDITIONAL_ID, GALLERY_REQUEST_ADDITIONAL_ID, REQUEST_PERMISSION_ADDITIONAL);
}
public void openTrustDockSDK(boolean retryNFC) {
String selectedNationality = RemitApplication.getStorage().getString(PrefKeys.SELECTED_NATIONALITY, "");
String useNFC = RemitApplication.getStorage().getString(PrefKeys.USE_NFC, "");
List plan = null;
if (retryNFC || useNFC.equalsIgnoreCase("N")) {
plan = CollectionsKt.listOf(new TrustdockPlan(BuildConfig.ResidenceCardWithoutNFCPlanId, (String) null, (List) null));
//plan = CollectionsKt.listOf(new TrustdockPlan[]{new TrustdockPlan("9390019a-d41f-42a8-b044-0f41a9825847", (String) null, (List) null), new TrustdockPlan("ee46f7fd-3988-49cd-a972-1056e498302f", "9390019a-d41f-42a8-b044-0f41a9825847", (List) null)});
} else if (selectedNationality.equalsIgnoreCase(FOREIGNER_TYPE)) {
//plan = CollectionsKt.listOf(new TrustdockPlan("b1da18ee-fabe-42f0-b7f6-0d375e1f505d", (String) null, (List) null));
plan = CollectionsKt.listOf(new TrustdockPlan[]{new TrustdockPlan(BuildConfig.ResidenceCardWithNFCPlanId, (String) null, (List) null), new TrustdockPlan(BuildConfig.SelfieVerificationPlanId, BuildConfig.ResidenceCardWithNFCPlanId, (List) null)});
}
// else if (selectedNationality.equalsIgnoreCase("0")){
// plan = CollectionsKt.listOf(new TrustdockPlan[]{new TrustdockPlan("e103a0db-ae3c-4eda-8dcb-6fff06cdfcc9", (String) null, (List) null), new TrustdockPlan("ee46f7fd-3988-49cd-a972-1056e498302f", "e103a0db-ae3c-4eda-8dcb-6fff06cdfcc9", (List) null)});
// }
else {
//plan = CollectionsKt.listOf(new TrustdockPlan[]{new TrustdockPlan("e103a0db-ae3c-4eda-8dcb-6fff06cdfcc9", (String) null, (List) null), new TrustdockPlan("ee46f7fd-3988-49cd-a972-1056e498302f", "e103a0db-ae3c-4eda-8dcb-6fff06cdfcc9", (List) null)});
//plan = CollectionsKt.listOf(new TrustdockPlan[]{new TrustdockPlan("f8d1f271-7c95-43bf-bdf8-f84ebe96671d", (String) null, (List) null), new TrustdockPlan("ee46f7fd-3988-49cd-a972-1056e498302f", "f8d1f271-7c95-43bf-bdf8-f84ebe96671d", (List) null)});
plan = CollectionsKt.listOf(new TrustdockPlan(BuildConfig.ResidenceCardWithoutNFCPlanId, (String) null, (List) null));
}
kycv3ViewModel.requestWithSomeHttpHeaders(plan);
}
@Override
public void showHideAdditionalBack(Boolean isBackRequired) {
//@Todo
} }
} }

279
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/documents/KYCIDTypeViewLiveData.java

@ -1,279 +0,0 @@
package com.remit.jmecustomer.features.kyc.newCustomer.view.documents;
import android.graphics.Bitmap;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.remit.jmecustomer.common.model.FormInputStateDTO;
import io.reactivex.Observable;
public class KYCIDTypeViewLiveData {
private MutableLiveData<FormInputStateDTO<Bitmap>> idTypeFrontImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> idTypeFrontImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> idTypeFrontImageLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> idTypeBackImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> idTypeBackImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> idTypeBackImageLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> idTypeSideImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> idTypeSideImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> idTypeSideImageLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> additionalIdTypeImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> additionalIdTypeImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> additionalIdTypeImageLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> additionalIdBackTypeImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> additionalIdBackTypeImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> additionalIdBackTypeImageLabelLiveData;
private MutableLiveData<FormInputStateDTO<Bitmap>> faceImageLiveData;
private MutableLiveData<FormInputStateDTO<Boolean>> faceImageIsLoadingLiveData;
private MutableLiveData<FormInputStateDTO<String>> faceImageLabelLiveData;
private MutableLiveData<Boolean> allIdTypeImageValidLiveData;
public KYCIDTypeViewLiveData() {
idTypeFrontImageLiveData = new MutableLiveData<>();
idTypeFrontImageIsLoadingLiveData = new MutableLiveData<>();
idTypeFrontImageLabelLiveData = new MutableLiveData<>();
idTypeBackImageLiveData = new MutableLiveData<>();
idTypeBackImageIsLoadingLiveData = new MutableLiveData<>();
idTypeBackImageLabelLiveData = new MutableLiveData<>();
idTypeSideImageLiveData = new MutableLiveData<>();
idTypeSideImageIsLoadingLiveData = new MutableLiveData<>();
idTypeSideImageLabelLiveData = new MutableLiveData<>();
additionalIdTypeImageLiveData = new MutableLiveData<>();
additionalIdTypeImageIsLoadingLiveData = new MutableLiveData<>();
additionalIdTypeImageLabelLiveData = new MutableLiveData<>();
additionalIdBackTypeImageLiveData = new MutableLiveData<>();
additionalIdBackTypeImageIsLoadingLiveData = new MutableLiveData<>();
additionalIdBackTypeImageLabelLiveData = new MutableLiveData<>();
faceImageLiveData = new MutableLiveData<>();
faceImageIsLoadingLiveData = new MutableLiveData<>();
faceImageLabelLiveData = new MutableLiveData<>();
allIdTypeImageValidLiveData = new MutableLiveData<>();
}
public LiveData<FormInputStateDTO<Bitmap>> getIdTypeFrontImageLiveData() {
return idTypeFrontImageLiveData;
}
public void setIdTypeFrontImageLiveData(FormInputStateDTO<Bitmap> idTypeFrontImageLiveData) {
this.idTypeFrontImageLiveData.postValue(idTypeFrontImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getIdTypeFrontImageIsLoadingLiveData() {
return idTypeFrontImageIsLoadingLiveData;
}
public void setIdTypeFrontImageIsLoadingLiveData(FormInputStateDTO<Boolean> idTypeFrontImageIsLoadingLiveData) {
this.idTypeFrontImageIsLoadingLiveData.postValue(idTypeFrontImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getIdTypeFrontImageLabelLiveData() {
return idTypeFrontImageLabelLiveData;
}
public void setIdTypeFrontImageLabelLiveData(FormInputStateDTO<String> idTypeFrontImageLabelLiveData) {
this.idTypeFrontImageLabelLiveData.postValue(idTypeFrontImageLabelLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getIdTypeBackImageLiveData() {
return idTypeBackImageLiveData;
}
public void setIdTypeBackImageLiveData(FormInputStateDTO<Bitmap> idTypeBackImageLiveData) {
this.idTypeBackImageLiveData.postValue(idTypeBackImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getIdTypeBackImageIsLoadingLiveData() {
return idTypeBackImageIsLoadingLiveData;
}
public void setIdTypeBackImageIsLoadingLiveData(FormInputStateDTO<Boolean> idTypeBackImageIsLoadingLiveData) {
this.idTypeBackImageIsLoadingLiveData.postValue(idTypeBackImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getIdTypeBackImageLabelLiveData() {
return idTypeBackImageLabelLiveData;
}
public void setIdTypeBackImageLabelLiveData(FormInputStateDTO<String> idTypeBackImageLabelLiveData) {
this.idTypeBackImageLabelLiveData.postValue(idTypeBackImageLabelLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getIdTypeSideImageLiveData() {
return idTypeSideImageLiveData;
}
public void setIdTypeSideImageLiveData(FormInputStateDTO<Bitmap> idTypeSideImageLiveData) {
this.idTypeSideImageLiveData.postValue(idTypeSideImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getIdTypeSideImageIsLoadingLiveData() {
return idTypeSideImageIsLoadingLiveData;
}
public void setIdTypeSideImageIsLoadingLiveData(FormInputStateDTO<Boolean> idTypeSideImageIsLoadingLiveData) {
this.idTypeSideImageIsLoadingLiveData.postValue(idTypeSideImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getIdTypeSideImageLabelLiveData() {
return idTypeSideImageLabelLiveData;
}
public void setIdTypeSideImageLabelLiveData(FormInputStateDTO<String> idTypeSideImageLabelLiveData) {
this.idTypeSideImageLabelLiveData.postValue(idTypeSideImageLabelLiveData);
}
public LiveData<Boolean> getAllIdTypeImageValidLiveData() {
return allIdTypeImageValidLiveData;
}
public void setAllIdTypeImageValidLiveData(Boolean allIdTypeImageValidLiveData) {
this.allIdTypeImageValidLiveData.postValue(allIdTypeImageValidLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getAdditionalIdBackTypeImageLiveData() {
return additionalIdBackTypeImageLiveData;
}
public void setAdditionalIdBackTypeImageLiveData(FormInputStateDTO<Bitmap> additionalIdBackTypeImageLiveData) {
this.additionalIdBackTypeImageLiveData.postValue(additionalIdBackTypeImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getAdditionalIdBackTypeImageIsLoadingLiveData() {
return additionalIdBackTypeImageIsLoadingLiveData;
}
public void setAdditionalIdBackTypeImageIsLoadingLiveData(FormInputStateDTO<Boolean> additionalIdBackTypeImageIsLoadingLiveData) {
this.additionalIdBackTypeImageIsLoadingLiveData.postValue(additionalIdBackTypeImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getAdditionalIdBackTypeImageLabelLiveData() {
return additionalIdBackTypeImageLabelLiveData;
}
public void setAdditionalIdBackTypeImageLabelLiveData(FormInputStateDTO<String> additionalIdBackTypeImageLabelLiveData) {
this.additionalIdBackTypeImageLabelLiveData.postValue(additionalIdBackTypeImageLabelLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getAdditionalIdTypeImageLiveData() {
return additionalIdTypeImageLiveData;
}
public void setAdditionalIdTypeImageLiveData(FormInputStateDTO<Bitmap> additionalIdTypeImageLiveData) {
this.additionalIdTypeImageLiveData.postValue(additionalIdTypeImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getAdditionalIdTypeImageIsLoadingLiveData() {
return additionalIdTypeImageIsLoadingLiveData;
}
public void setAdditionalIdTypeImageIsLoadingLiveData(FormInputStateDTO<Boolean> additionalIdTypeImageIsLoadingLiveData) {
this.additionalIdTypeImageIsLoadingLiveData.postValue(additionalIdTypeImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getAdditionalIdTypeImageLabelLiveData() {
return additionalIdTypeImageLabelLiveData;
}
public void setAdditionalIdTypeImageLabelLiveData(FormInputStateDTO<String> additionalIdTypeImageLabelLiveData) {
this.additionalIdTypeImageLabelLiveData.postValue(additionalIdTypeImageLabelLiveData);
}
public LiveData<FormInputStateDTO<Bitmap>> getFaceImageLiveData() {
return faceImageLiveData;
}
public void setFaceImageLiveData(FormInputStateDTO<Bitmap> faceImageLiveData) {
this.faceImageLiveData.postValue(faceImageLiveData);
}
public LiveData<FormInputStateDTO<Boolean>> getFaceImageIsLoadingLiveData() {
return faceImageIsLoadingLiveData;
}
public void setFaceImageIsLoadingLiveData(FormInputStateDTO<Boolean> faceImageIsLoadingLiveData) {
this.faceImageIsLoadingLiveData.postValue(faceImageIsLoadingLiveData);
}
public LiveData<FormInputStateDTO<String>> getFaceImageLabelLiveData() {
return faceImageLabelLiveData;
}
public void setFaceImageLabelLiveData(FormInputStateDTO<String> faceImageLabelLiveData) {
this.faceImageLabelLiveData.postValue(faceImageLabelLiveData);
}
public static class KYCIDTypeViewBindings {
private Observable<Boolean> facePictureNewImageRequestObservable;
private Observable<Boolean> idTypeFrontDocImageLoadedResultObservable;
private Observable<Boolean> idTypeBackDocImageLoadedResultObservable;
private Observable<Boolean> idTypeSideDocImageLoadedResultObservable;
private Observable<Boolean> additionalidTypeDocImageLoadedResultObservable;
private Observable<Boolean> additionalidBackTypeDocImageLoadedResultObservable;
public KYCIDTypeViewBindings(
Observable<Boolean> facePictureNewImageRequestObservable,
Observable<Boolean> idTypeFrontDocNewImageRequestObservable,
Observable<Boolean> idTypeBackDocNewImageRequestObservable,
Observable<Boolean> idTypeSideDocNewImageRequestObservable,
Observable<Boolean> additionalidTypeDocImageLoadedResultObservable,
Observable<Boolean> additionalidBackTypeDocImageLoadedResultObservable
) {
this.idTypeFrontDocImageLoadedResultObservable = idTypeFrontDocNewImageRequestObservable;
this.idTypeBackDocImageLoadedResultObservable = idTypeBackDocNewImageRequestObservable;
this.idTypeSideDocImageLoadedResultObservable = idTypeSideDocNewImageRequestObservable;
this.facePictureNewImageRequestObservable = facePictureNewImageRequestObservable;
this.additionalidTypeDocImageLoadedResultObservable = additionalidTypeDocImageLoadedResultObservable;
this.additionalidBackTypeDocImageLoadedResultObservable = additionalidBackTypeDocImageLoadedResultObservable;
}
public Observable<Boolean> getIdTypeFrontDocImageLoadedResultObservable() {
return idTypeFrontDocImageLoadedResultObservable;
}
public Observable<Boolean> getIdTypeBackDocImageLoadedResultObservable() {
return idTypeBackDocImageLoadedResultObservable;
}
public Observable<Boolean> getIdTypeSideDocImageLoadedResultObservable() {
return idTypeSideDocImageLoadedResultObservable;
}
public Observable<Boolean> getFacePictureNewImageRequestObservable() {
return facePictureNewImageRequestObservable;
}
public Observable<Boolean> getAdditionalidTypeDocImageLoadedResultObservable() {
return additionalidTypeDocImageLoadedResultObservable;
}
public Observable<Boolean> getAdditionalidBackTypeDocImageLoadedResultObservable() {
return additionalidBackTypeDocImageLoadedResultObservable;
}
}
}

6
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailFragment.java

@ -20,9 +20,6 @@ import com.google.android.material.textfield.TextInputLayout;
import com.google.firebase.installations.FirebaseInstallations; import com.google.firebase.installations.FirebaseInstallations;
import com.google.firebase.messaging.FirebaseMessaging; import com.google.firebase.messaging.FirebaseMessaging;
import com.jakewharton.rxbinding3.widget.RxTextView; import com.jakewharton.rxbinding3.widget.RxTextView;
import com.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.remit.jmecustomer.R; import com.remit.jmecustomer.R;
import com.remit.jmecustomer.RemitApplication; import com.remit.jmecustomer.RemitApplication;
import com.remit.jmecustomer.base.BaseFragment; import com.remit.jmecustomer.base.BaseFragment;
@ -30,6 +27,9 @@ import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.common.customwidgets.common.GenericTextListingDialog; import com.remit.jmecustomer.common.customwidgets.common.GenericTextListingDialog;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.common.view.OnFragmentSelectedListener; import com.remit.jmecustomer.common.view.OnFragmentSelectedListener;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3PresenterInterface;
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.utils.RxUtils; import com.remit.jmecustomer.utils.RxUtils;
import butterknife.BindView; import butterknife.BindView;

2
app/src/main/java/com/remit/jmecustomer/features/kyc/newCustomer/view/personal/CustomerDetailViewLiveData.java

@ -2,8 +2,8 @@ package com.remit.jmecustomer.features.kyc.newCustomer.view.personal;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.remit.jmecustomer.features.kyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import io.reactivex.Observable; import io.reactivex.Observable;

5
app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/gateway/ExistingExistingKYCV4Gateway.java

@ -100,6 +100,11 @@ public class ExistingExistingKYCV4Gateway extends PrivilegedGateway implements E
} }
@Override
public Observable<ResponseBody> getKycSettings(String auth) {
return HttpClientV2.getInstance().getKycSetting(auth , null);
}
private MultipartBody.Part createImageUploadFieldFromFile(String key, File file) { private MultipartBody.Part createImageUploadFieldFromFile(String key, File file) {

2
app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4GatewayInterface.java

@ -23,6 +23,8 @@ public interface ExistingKYCV4GatewayInterface extends PrivilegedGatewayInterfac
Observable<ResponseBody> submitKYCForm(String auth, ExistingKYCRequestDataDTO requestBody); Observable<ResponseBody> submitKYCForm(String auth, ExistingKYCRequestDataDTO requestBody);
Observable<ResponseBody> getKycSettings(String auth);
void saveSenderId(String senderId); void saveSenderId(String senderId);
ExistingKYCRelatedDataDTO getMockedData(); ExistingKYCRelatedDataDTO getMockedData();

2
app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4PresenterInterface.java

@ -49,6 +49,8 @@ public interface ExistingKYCV4PresenterInterface extends BasePresenterInterface
void kycSubmitSucessForPopUp(); void kycSubmitSucessForPopUp();
void getKycSettings();
interface KYCV3ViewContractInterface extends BaseContractInterface { interface KYCV3ViewContractInterface extends BaseContractInterface {
KYCV3CustomerDetailViewContractInterface getCustomerDetailViewContract(); KYCV3CustomerDetailViewContractInterface getCustomerDetailViewContract();

52
app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/presenter/ExistingKYCV4ViewModel.java

@ -553,6 +553,18 @@ public class ExistingKYCV4ViewModel extends BaseViewModel implements ExistingKYC
view.showPopUpMessage(view.getContext().getResources().getString(R.string.kycSubmitSucessMessage_text), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitView()); view.showPopUpMessage(view.getContext().getResources().getString(R.string.kycSubmitSucessMessage_text), CustomAlertDialog.AlertType.SUCCESS, alertType -> view.exitView());
} }
@Override
public void getKycSettings() {
compositeDisposable.add(
this.gateway.getKycSettings(gateway.getAuth())
.doOnSubscribe(d -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doFinally(() -> view.showProgressBar(false, ""))
.subscribeWith(new KycSettingObserver(null))
);
}
private void getNewAccessToken(Runnable task) { private void getNewAccessToken(Runnable task) {
RemitApplication.AppRelatedMetaData appRelatedMetaData = RemitApplication.getAppRelatedMetaData(view.getContext()); RemitApplication.AppRelatedMetaData appRelatedMetaData = RemitApplication.getAppRelatedMetaData(view.getContext());
String fcmID = null; String fcmID = null;
@ -894,6 +906,46 @@ public class ExistingKYCV4ViewModel extends BaseViewModel implements ExistingKYC
} }
} }
public class KycSettingObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
Runnable task;
public KycSettingObserver(Runnable task) {
this.task = task;
}
@Override
protected void onSuccess(GenericResponseDataModel<MessageResponseDataModel> t) {
if (t.getErrorCode().equalsIgnoreCase(Constants.SUCCESS_CODE_V2)) {
if (task != null)
task.run();
} else
view.showPopUpMessage(t.getMsg(), CustomAlertDialog.AlertType.FAILED, null);
}
@Override
public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void onConnectionNotEstablished(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null);
}
@Override
protected void unauthorizedAccess(String message) {
gateway.clearAllUserData();
view.showPopUpMessage(message, CustomAlertDialog.AlertType.ALERT, alertType -> view.logout());
}
}
public class KYCFormUploadObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> { public class KYCFormUploadObserver extends GenericApiObserverResponseV2<MessageResponseDataModel> {
Runnable task; Runnable task;

18
app/src/main/java/com/remit/jmecustomer/features/newkyc/existingCustomer/view/ExistingKYCV4Activity.java

@ -52,11 +52,13 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
@BindView(R.id.page1TxtView) @BindView(R.id.page1TxtView)
TextView page1TxtView; TextView page1TxtView;
@BindView(R.id.page3TxtView)
@BindView(R.id.page2TxtView)
TextView page2TxtView; TextView page2TxtView;
@BindView(R.id.page3TxtView)
TextView page3TxtView;
@BindView(R.id.page4TxtView) @BindView(R.id.page4TxtView)
TextView page3TxtView;
TextView page4TxtView;
@BindView(R.id.toolbar_title) @BindView(R.id.toolbar_title)
@ -77,7 +79,7 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
context.startActivityForResult(intent, KYC_EXISTING_FORM_REQUEST_CODE); context.startActivityForResult(intent, KYC_EXISTING_FORM_REQUEST_CODE);
} }
public static void startActivity(Activity context, boolean shouldRedirectToPennyTestScreen, String userId, String userPwd, boolean isKYCSubmittedKey,String residenceType) {
public static void startActivity(Activity context, boolean shouldRedirectToPennyTestScreen, String userId, String userPwd, boolean isKYCSubmittedKey, String residenceType) {
isKYCSubmitted = isKYCSubmittedKey; isKYCSubmitted = isKYCSubmittedKey;
Intent intent = new Intent(context, ExistingKYCV4Activity.class); Intent intent = new Intent(context, ExistingKYCV4Activity.class);
intent.putExtra(SHOULD_REDIRECT_TO_PENNY_TEST_BUNDLE_KEY, shouldRedirectToPennyTestScreen); intent.putExtra(SHOULD_REDIRECT_TO_PENNY_TEST_BUNDLE_KEY, shouldRedirectToPennyTestScreen);
@ -144,6 +146,7 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setDefaultBg(page2TxtView); setDefaultBg(page2TxtView);
setDefaultBg(page3TxtView); setDefaultBg(page3TxtView);
setDefaultBg(page4TxtView);
} }
public void onDocumentDetailScreenShown() { public void onDocumentDetailScreenShown() {
@ -151,6 +154,7 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setBlueBg(page2TxtView); setBlueBg(page2TxtView);
setDefaultBg(page3TxtView); setDefaultBg(page3TxtView);
setDefaultBg(page4TxtView);
} }
public void onTermsConditionScreenShown() { public void onTermsConditionScreenShown() {
@ -158,6 +162,7 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
setBlueBg(page1TxtView); setBlueBg(page1TxtView);
setBlueBg(page2TxtView); setBlueBg(page2TxtView);
setBlueBg(page3TxtView); setBlueBg(page3TxtView);
setBlueBg(page4TxtView);
} }
@ -210,15 +215,18 @@ public class ExistingKYCV4Activity extends BaseActivity implements ExistingKYCV4
} }
@OnClick({R.id.page1TxtView, R.id.page3TxtView})
@OnClick({R.id.page1TxtView, R.id.page2TxtView, R.id.page3TxtView})
public void onPageIndextClicked(View view) { public void onPageIndextClicked(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.page1TxtView: case R.id.page1TxtView:
changePageIndexTo(0); changePageIndexTo(0);
break; break;
case R.id.page3TxtView:
case R.id.page2TxtView:
changePageIndexTo(1); changePageIndexTo(1);
break; break;
case R.id.page3TxtView:
changePageIndexTo(2);
break;
} }

3
app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/presenter/KYCV4PresenterInterface.java

@ -3,11 +3,10 @@ package com.remit.jmecustomer.features.newkyc.newCustomer.presenter;
import com.remit.jmecustomer.base.BaseContractInterface; import com.remit.jmecustomer.base.BaseContractInterface;
import com.remit.jmecustomer.base.BasePresenterInterface; import com.remit.jmecustomer.base.BasePresenterInterface;
import com.remit.jmecustomer.common.view.AnswerInputDialog; import com.remit.jmecustomer.common.view.AnswerInputDialog;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO; import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData; import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import java.io.File;
import java.util.List; import java.util.List;
public interface KYCV4PresenterInterface extends BasePresenterInterface { public interface KYCV4PresenterInterface extends BasePresenterInterface {

6
app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/presenter/KYCV4ViewModel.java

@ -1,7 +1,5 @@
package com.remit.jmecustomer.features.newkyc.newCustomer.presenter; package com.remit.jmecustomer.features.newkyc.newCustomer.presenter;
import static android.app.Activity.RESULT_OK;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
@ -23,6 +21,7 @@ import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.common.customwidgets.CustomAlertDialog; import com.remit.jmecustomer.common.customwidgets.CustomAlertDialog;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.common.view.AnswerInputDialog; import com.remit.jmecustomer.common.view.AnswerInputDialog;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.login.model.LoginV2DataApiResponse; import com.remit.jmecustomer.features.login.model.LoginV2DataApiResponse;
import com.remit.jmecustomer.features.login.presenter.LoginV2InteractorInterface; import com.remit.jmecustomer.features.login.presenter.LoginV2InteractorInterface;
import com.remit.jmecustomer.features.newkyc.newCustomer.gateway.FileDownloadGateway; import com.remit.jmecustomer.features.newkyc.newCustomer.gateway.FileDownloadGateway;
@ -32,13 +31,10 @@ import com.remit.jmecustomer.features.newkyc.newCustomer.model.KYCRequestDataDTO
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PersonalInfoDTO; import com.remit.jmecustomer.features.newkyc.newCustomer.model.PersonalInfoDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.PicturesDTO; import com.remit.jmecustomer.features.newkyc.newCustomer.model.PicturesDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.TrustDockVerificationDTO; import com.remit.jmecustomer.features.newkyc.newCustomer.model.TrustDockVerificationDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeFragment;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData; import com.remit.jmecustomer.features.newkyc.newCustomer.view.documents.KYCIDTypeViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.utils.Constants; import com.remit.jmecustomer.utils.Constants;
import com.remit.jmecustomer.utils.ImageUtils; import com.remit.jmecustomer.utils.ImageUtils;
import com.remit.jmecustomer.utils.Utils; import com.remit.jmecustomer.utils.Utils;
import com.remit.jmecustomer.utils.https.API_URL;
import com.remit.jmecustomer.utils.https.GenericApiObserverResponse; import com.remit.jmecustomer.utils.https.GenericApiObserverResponse;
import com.remit.jmecustomer.utils.https.GenericApiObserverResponseV2; import com.remit.jmecustomer.utils.https.GenericApiObserverResponseV2;
import com.remit.jmecustomer.utils.https.GenericResponseDataModel; import com.remit.jmecustomer.utils.https.GenericResponseDataModel;

52
app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/choose/ChooseKycFragment.kt

@ -0,0 +1,52 @@
package com.remit.jmecustomer.features.newkyc.newCustomer.view.choose
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.remit.jmecustomer.base.BaseFragment
import com.remit.jmecustomer.databinding.FragmentChooseKycBinding
import com.remit.jmecustomer.features.kyc.newCustomer.model.kycSetting.Option
import com.remit.jmecustomer.features.kyc.newCustomer.presenter.KYCV3ViewModel
import com.remit.jmecustomer.features.kyc.newCustomer.view.adapter.KycTypeAdapter
class ChooseKycFragment(private var options: List<Option>? = null) : BaseFragment() {
private var _binding: FragmentChooseKycBinding? = null
private val binding get() = _binding!!
private var kycv3ViewModel: KYCV3ViewModel? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentChooseKycBinding.inflate(inflater, container, false)
init()
return binding.root
}
fun onFragmentedSelected() {}
fun init() {
val layoutManagerVertical = LinearLayoutManager(requireActivity())
binding.rvChooseKyc.layoutManager = layoutManagerVertical
kycv3ViewModel = ViewModelProvider(requireActivity())[KYCV3ViewModel::class.java]
val adapter = KycTypeAdapter(options!!)
binding.rvChooseKyc.adapter = adapter
adapter.setOnItemClickListener(object : KycTypeAdapter.ItemClickListener{
override fun onItemClicked(option: Option) {
kycv3ViewModel?.setSelectedOption(option)
}
})
binding.btnSubmit1.setOnClickListener {
kycv3ViewModel?.redirectToInformation()
}
}
}

1
app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/personal/CustomerDetailFragment.java

@ -26,6 +26,7 @@ import com.remit.jmecustomer.base.PrefKeys;
import com.remit.jmecustomer.common.customwidgets.common.GenericTextListingDialog; import com.remit.jmecustomer.common.customwidgets.common.GenericTextListingDialog;
import com.remit.jmecustomer.common.model.FormInputStateDTO; import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.common.view.OnFragmentSelectedListener; import com.remit.jmecustomer.common.view.OnFragmentSelectedListener;
import com.remit.jmecustomer.features.kyc.newCustomer.view.personal.CustomerDetailViewLiveData;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO; import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.presenter.KYCV4PresenterInterface; import com.remit.jmecustomer.features.newkyc.newCustomer.presenter.KYCV4PresenterInterface;
import com.remit.jmecustomer.features.newkyc.newCustomer.presenter.KYCV4ViewModel; import com.remit.jmecustomer.features.newkyc.newCustomer.presenter.KYCV4ViewModel;

211
app/src/main/java/com/remit/jmecustomer/features/newkyc/newCustomer/view/personal/CustomerDetailViewLiveData.java

@ -1,211 +0,0 @@
package com.remit.jmecustomer.features.newkyc.newCustomer.view.personal;
import androidx.lifecycle.MutableLiveData;
import com.remit.jmecustomer.common.model.FormInputStateDTO;
import com.remit.jmecustomer.features.newkyc.newCustomer.model.IDTextDTO;
import io.reactivex.Observable;
public class CustomerDetailViewLiveData {
private MutableLiveData<FormInputStateDTO<String>> employerNameLiveData;
private MutableLiveData<FormInputStateDTO<IDTextDTO>> occupationsLiveData;
private MutableLiveData<FormInputStateDTO<String>> monthlyIncomeLiveData;
private MutableLiveData<FormInputStateDTO<String>> mobileNumberLiveData;
private MutableLiveData<FormInputStateDTO<IDTextDTO>> businessTypeLiveData;
private MutableLiveData<FormInputStateDTO<String>> addressLiveData;
private MutableLiveData<FormInputStateDTO<IDTextDTO>> idTypeLiveData;
private MutableLiveData<FormInputStateDTO<IDTextDTO>> additionalIdTypeLiveData;
private MutableLiveData<FormInputStateDTO<IDTextDTO>> purposeOfRegistrationLiveData;
private MutableLiveData<Boolean> allFieldsValid;
public CustomerDetailViewLiveData() {
employerNameLiveData = new MutableLiveData<>();
occupationsLiveData = new MutableLiveData<>();
monthlyIncomeLiveData = new MutableLiveData<>();
mobileNumberLiveData = new MutableLiveData<>();
businessTypeLiveData = new MutableLiveData<>();
addressLiveData = new MutableLiveData<>();
idTypeLiveData = new MutableLiveData<>();
additionalIdTypeLiveData = new MutableLiveData<>();
purposeOfRegistrationLiveData = new MutableLiveData<>();
allFieldsValid = new MutableLiveData<>();
}
public MutableLiveData<FormInputStateDTO<String>> getEmployerNameLiveData() {
return employerNameLiveData;
}
public void setEmployerNameLiveData(MutableLiveData<FormInputStateDTO<String>> employerNameLiveData) {
this.employerNameLiveData = employerNameLiveData;
}
public MutableLiveData<FormInputStateDTO<IDTextDTO>> getOccupationsLiveData() {
return occupationsLiveData;
}
public void setOccupationsLiveData(MutableLiveData<FormInputStateDTO<IDTextDTO>> occupationsLiveData) {
this.occupationsLiveData = occupationsLiveData;
}
public MutableLiveData<FormInputStateDTO<IDTextDTO>> getPurposeOfRegistrationLiveData() {
return purposeOfRegistrationLiveData;
}
public void setPurposeOfRegistrationLiveData(MutableLiveData<FormInputStateDTO<IDTextDTO>> purposeOfRegistrationLiveData) {
this.purposeOfRegistrationLiveData = purposeOfRegistrationLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getMonthlyIncomeLiveData() {
return monthlyIncomeLiveData;
}
public void setMonthlyIncomeLiveData(MutableLiveData<FormInputStateDTO<String>> monthlyIncomeLiveData) {
this.monthlyIncomeLiveData = monthlyIncomeLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getMobileNumberLiveData() {
return mobileNumberLiveData;
}
public void setMobileNumberLiveData(MutableLiveData<FormInputStateDTO<String>> mobileNumberLiveData) {
this.mobileNumberLiveData = mobileNumberLiveData;
}
public MutableLiveData<FormInputStateDTO<IDTextDTO>> getBusinessTypeLiveData() {
return businessTypeLiveData;
}
public void setBusinessTypeLiveData(MutableLiveData<FormInputStateDTO<IDTextDTO>> businessTypeLiveData) {
this.businessTypeLiveData = businessTypeLiveData;
}
public MutableLiveData<FormInputStateDTO<String>> getAddressLiveData() {
return addressLiveData;
}
public void setAddressLiveData(MutableLiveData<FormInputStateDTO<String>> addressLiveData) {
this.addressLiveData = addressLiveData;
}
public MutableLiveData<FormInputStateDTO<IDTextDTO>> getIdTypeLiveData() {
return idTypeLiveData;
}
public void setIdTypeLiveData(MutableLiveData<FormInputStateDTO<IDTextDTO>> idTypeLiveData) {
this.idTypeLiveData = idTypeLiveData;
}
public MutableLiveData<FormInputStateDTO<IDTextDTO>> getAdditionalIdTypeLiveData() {
return additionalIdTypeLiveData;
}
public void setAdditionalIdTypeLiveData(MutableLiveData<FormInputStateDTO<IDTextDTO>> additionalIdTypeLiveData) {
this.additionalIdTypeLiveData = additionalIdTypeLiveData;
}
public MutableLiveData<Boolean> getAllFieldsValidLiveData() {
return allFieldsValid;
}
public static class CustomerDetailViewBinding {
private Observable<CharSequence> employerNameObservable;
private Observable<CharSequence> monthlyIncomeObservable;
private Observable<CharSequence> mobileNumberObservable;
private Observable<IDTextDTO> businessTypeObservable;
private Observable<CharSequence> addressObservable;
private Observable<IDTextDTO> idTypeObservable;
private Observable<IDTextDTO> additionalIdTypeObservable;
private Observable<IDTextDTO> purposeOfRegistrationObservable;
private Observable<IDTextDTO> occupationObservable;
public CustomerDetailViewBinding(
Observable<CharSequence> employerNameObservable,
Observable<IDTextDTO> occupationObservable,
Observable<CharSequence> monthlyIncomeObservable,
Observable<CharSequence> mobileNumberObservable,
Observable<IDTextDTO> businessTypeObservable,
Observable<CharSequence> addressObservable,
Observable<IDTextDTO> idTypeObservable,
Observable<IDTextDTO> additionalIdTypeObservable,
Observable<IDTextDTO> purposeOfRegistrationObservable
) {
this.employerNameObservable = employerNameObservable;
this.occupationObservable = occupationObservable;
this.monthlyIncomeObservable = monthlyIncomeObservable;
this.mobileNumberObservable = mobileNumberObservable;
this.businessTypeObservable = businessTypeObservable;
this.addressObservable = addressObservable;
this.idTypeObservable = idTypeObservable;
this.additionalIdTypeObservable = additionalIdTypeObservable;
this.purposeOfRegistrationObservable = purposeOfRegistrationObservable;
}
public Observable<CharSequence> getEmployerNameObservable() {
return employerNameObservable;
}
public Observable<CharSequence> getMonthlyIncomeObservable() {
return monthlyIncomeObservable;
}
public Observable<CharSequence> getMobileNumberObservable() {
return mobileNumberObservable;
}
public Observable<IDTextDTO> getBusinessTypeObservable() {
if(businessTypeObservable!=null){
return businessTypeObservable;
}else{
return Observable.empty();
}
}
public Observable<IDTextDTO> getPurposeOfRegistrationObservable() {
if(purposeOfRegistrationObservable!=null){
return purposeOfRegistrationObservable;
}else{
return Observable.empty();
}
}
public Observable<CharSequence> getAddressObservable() {
return addressObservable;
}
public Observable<IDTextDTO> getIdTypeObservable() {
if(idTypeObservable!=null){
return idTypeObservable;
}else{
return Observable.empty();
}
}
public Observable<IDTextDTO> getAdditionalIdTypeObservable() {
if(additionalIdTypeObservable!=null){
return additionalIdTypeObservable;
}else{
return Observable.empty();
}
}
public Observable<IDTextDTO> getOccupationObservable() {
if(occupationObservable!=null ){
return occupationObservable;
}else{
return Observable.empty();
}
}
}
}

2
app/src/main/java/com/remit/jmecustomer/features/sendmoney/view/amountdetail/AmountDetailSendMoneyFragment.java

@ -159,7 +159,7 @@ public class AmountDetailSendMoneyFragment extends BaseFragment implements View.
// sendMoneyEditText.setText(getArguments().getString(Constants.TRANSFER_AMOUNT)); // sendMoneyEditText.setText(getArguments().getString(Constants.TRANSFER_AMOUNT));
// //
// } else { // } else {
sendMoneyEditText.setText("100000");
sendMoneyEditText.setText(Constants.ENTERED_SENDING_AMOUNT);
// } // }
getForex(); getForex();

2
app/src/main/java/com/remit/jmecustomer/utils/Constants.java

@ -128,5 +128,7 @@ public class Constants {
public static String CURRENT_COUNTRY_ID = "151"; public static String CURRENT_COUNTRY_ID = "151";
public static String ENTERED_SENDING_AMOUNT = "100000";
public static int UPDATE_DELETE_CODE = 2008; public static int UPDATE_DELETE_CODE = 2008;
} }

4
app/src/main/java/com/remit/jmecustomer/utils/https/API_URL.java

@ -86,6 +86,10 @@ public class API_URL {
public static final String UPLOAD_EXISTING_KYC_V3 = "v1/mobile/RegisterKycExistingCustomer"; public static final String UPLOAD_EXISTING_KYC_V3 = "v1/mobile/RegisterKycExistingCustomer";
public static final String KYC_RELATED_DATA_V3 = "v4/mobile/loadform/{customer}/{type}"; public static final String KYC_RELATED_DATA_V3 = "v4/mobile/loadform/{customer}/{type}";
public static final String FETCH_AUTO_DEBIT_DATA_V4 = "v4/GetKftcParameters/{userId}"; public static final String FETCH_AUTO_DEBIT_DATA_V4 = "v4/GetKftcParameters/{userId}";
public static final String KYC_SETTING = "v5/mobile/GetKycSettings";
public static final String SAVE_KYC_SETTING = "v5/mobile/SaveKycSettings";
public static final String RENEW_USER_ID = BuildConfig.API_VERSION + "/mobile/RenewID"; public static final String RENEW_USER_ID = BuildConfig.API_VERSION + "/mobile/RenewID";
public static final String EMAIL_VERIFY_SUBMIT = BuildConfig.API_VERSION + "/mobile/submitOTP"; public static final String EMAIL_VERIFY_SUBMIT = BuildConfig.API_VERSION + "/mobile/submitOTP";
public static final String EMAIL_VERIFY_REQUEST = BuildConfig.API_VERSION + "/mobile/requestOTP"; public static final String EMAIL_VERIFY_REQUEST = BuildConfig.API_VERSION + "/mobile/requestOTP";

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

@ -265,6 +265,15 @@ public interface ApiEndpoints {
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
Observable<ResponseBody> getTermsAndConditionRelatedDData(@Header("Authorization") String token, @Path("userID") String userId, @Body() JsonObject jsonObject); Observable<ResponseBody> getTermsAndConditionRelatedDData(@Header("Authorization") String token, @Path("userID") String userId, @Body() JsonObject jsonObject);
@POST(API_URL.SAVE_KYC_SETTING)
@Headers("Content-Type: application/json")
Observable<ResponseBody> saveKycSetting(@Header("Authorization") String token , @Body() JsonObject requestBody);
@POST(API_URL.KYC_SETTING)
@Headers("Content-Type: application/json")
Observable<ResponseBody> getKycSetting(@Header("Authorization") String token , @Body() JsonObject requestBody);
@GET(API_URL.AGREE_TO_TERMS_AND_CONDITION) @GET(API_URL.AGREE_TO_TERMS_AND_CONDITION)
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
Observable<ResponseBody> agreeToTermsAndCondition(@Header("Authorization") String token, @Path("userID") String userId, @Query("agreeYn") String hasAgreed); Observable<ResponseBody> agreeToTermsAndCondition(@Header("Authorization") String token, @Path("userID") String userId, @Query("agreeYn") String hasAgreed);

64
app/src/main/res/layout/ekyc_header.xml

@ -5,6 +5,17 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<View
android:layout_width="0dp"
android:layout_height="@dimen/_2sdp"
android:layout_gravity="top"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp"
android:background="@color/gray"
app:layout_constraintBottom_toTopOf="@+id/page2TitleTxtView"
app:layout_constraintEnd_toStartOf="@+id/page2TxtView"
app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintTop_toTopOf="@+id/page2TxtView" />
<View <View
android:layout_width="0dp" android:layout_width="0dp"
@ -15,7 +26,7 @@
android:background="@color/gray" android:background="@color/gray"
app:layout_constraintBottom_toTopOf="@+id/page3TitleTxtView" app:layout_constraintBottom_toTopOf="@+id/page3TitleTxtView"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView" app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintStart_toEndOf="@+id/page2TxtView"
app:layout_constraintTop_toTopOf="@+id/page3TxtView" /> app:layout_constraintTop_toTopOf="@+id/page3TxtView" />
<View <View
@ -38,23 +49,23 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp" android:layout_marginTop="@dimen/_4sdp"
android:layout_marginStart="@dimen/_35sdp"
android:background="@drawable/circular_valid_bg" android:background="@drawable/circular_valid_bg"
android:gravity="center" android:gravity="center"
android:text="1" android:text="1"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page1TitleTxtView" android:id="@+id/page1TitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/step1_sub_title_text"
android:text="@string/choose"
android:textColor="@color/darkgray2" android:textColor="@color/darkgray2"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -62,8 +73,9 @@
app:layout_constraintStart_toStartOf="@+id/page1TxtView" app:layout_constraintStart_toStartOf="@+id/page1TxtView"
app:layout_constraintTop_toBottomOf="@+id/page1TxtView" /> app:layout_constraintTop_toBottomOf="@+id/page1TxtView" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TxtView"
android:id="@+id/page2TxtView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
@ -73,15 +85,45 @@
android:background="@drawable/circular_empty_bg" android:background="@drawable/circular_empty_bg"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page4TxtView"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/page1TxtView" app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TitleTxtView"
android:id="@+id/page2TitleTxtView"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center"
android:paddingTop="@dimen/_3sdp"
android:text="@string/personal_information_text"
android:textColor="@color/darkgray2"
android:textSize="@dimen/_9ssp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/page2TxtView"
app:layout_constraintStart_toStartOf="@+id/page2TxtView"
app:layout_constraintTop_toBottomOf="@+id/page2TxtView" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TxtView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp"
android:gravity="center"
android:text="3"
android:background="@drawable/circular_empty_bg"
android:textColor="@color/black"
android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page4TxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/page2TxtView"
app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TitleTxtView"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/scan_text" android:text="@string/scan_text"
@ -100,7 +142,7 @@
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp" android:layout_marginTop="@dimen/_4sdp"
android:gravity="center" android:gravity="center"
android:text="3"
android:text="4"
android:background="@drawable/circular_empty_bg" android:background="@drawable/circular_empty_bg"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
@ -111,8 +153,8 @@
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page4TitleTxtView" android:id="@+id/page4TitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/terms_and_condition_title_text" android:text="@string/terms_and_condition_title_text"

27
app/src/main/res/layout/fragment_choose_kyc.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_choose_kyc"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.GmeButton
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginHorizontal="@dimen/_10sdp"
android:id="@+id/btn_submit1"
style="@style/MButton"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_15sdp"
android:enabled="true"
android:text="@string/next_text" />
</androidx.constraintlayout.widget.ConstraintLayout>

533
app/src/main/res/layout/fragment_ekyc_document.xml

@ -18,437 +18,6 @@
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="@dimen/_10sdp"> android:paddingBottom="@dimen/_10sdp">
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- style="@style/MFormTitleDescriptionTextView"-->
<!-- android:layout_marginTop="@dimen/_10sdp"-->
<!-- android:layout_marginBottom="@dimen/_10sdp"-->
<!-- android:layout_marginStart="@dimen/_8sdp"-->
<!-- android:layout_marginEnd="@dimen/_8sdp"-->
<!-- android:drawablePadding="@dimen/_5sdp"-->
<!-- android:gravity="bottom"-->
<!-- android:text="@string/primaryIdDocuments_text"-->
<!-- android:textColor="@android:color/black"-->
<!-- app:drawableStartCompat="@drawable/icv_vd_media" />-->
<!-- <androidx.cardview.widget.CardView-->
<!-- android:id="@+id/frontIDImageViewContainer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/_4sdp"-->
<!-- app:cardCornerRadius="@dimen/_8sdp"-->
<!-- app:cardElevation="@dimen/_2sdp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="6dp"-->
<!-- android:background="@drawable/ic_rounded_white"-->
<!-- android:orientation="horizontal">-->
<!-- <ImageView-->
<!-- android:id="@+id/frontIDImageview"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:layout_height="@dimen/_72sdp"-->
<!-- android:layout_marginStart="@dimen/_20sdp"-->
<!-- android:layout_marginEnd="@dimen/_20sdp"-->
<!-- android:scaleType="centerCrop"-->
<!-- app:srcCompat="@drawable/icv_upload_image"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/view9"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ProgressBar-->
<!-- android:id="@+id/frontIdProgressView"-->
<!-- android:layout_width="@dimen/_24sdp"-->
<!-- android:layout_height="@dimen/_24sdp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/frontIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintStart_toStartOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="@id/frontIDImageview" />-->
<!-- <View-->
<!-- android:id="@+id/view9"-->
<!-- android:layout_width="@dimen/_1sdp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginTop="@dimen/_5sdp"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:background="@color/gray"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/idTypeFrontLabelTxtView"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeFrontLabelTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="0dp"-->
<!-- android:gravity="start"-->
<!-- android:paddingStart="@dimen/_20sdp"-->
<!-- android:paddingEnd="@dimen/_20sdp"-->
<!-- android:text="@string/front_id_text"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/view9"-->
<!-- app:layout_constraintTop_toTopOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintVertical_bias="0.019" />-->
<!-- <com.remit.jmecustomer.common.customwidgets.JmeTextView-->
<!-- android:id="@+id/frontIdSampleTextView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:padding="@dimen/_5sdp"-->
<!-- android:text="@string/view_sample_text"-->
<!-- android:textColor="@color/m_blue_text_link"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/frontIDImageview"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeFrontHintTxtView"-->
<!-- app:layout_constraintEnd_toEndOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeFrontHintTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_marginStart="@dimen/_10sdp"-->
<!-- android:layout_marginEnd="@dimen/_10sdp"-->
<!-- android:gravity="start"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/pleaseProvideFrontPhoto_text"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/frontIDImageview" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
<!-- <androidx.cardview.widget.CardView-->
<!-- android:id="@+id/backIDImageViewContainer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/_4sdp"-->
<!-- app:cardCornerRadius="@dimen/_8sdp"-->
<!-- app:cardElevation="@dimen/_2sdp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="6dp"-->
<!-- android:orientation="horizontal">-->
<!-- <ImageView-->
<!-- android:id="@+id/backIDImageview"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:layout_height="@dimen/_72sdp"-->
<!-- android:layout_marginStart="@dimen/_20sdp"-->
<!-- android:layout_marginEnd="@dimen/_20sdp"-->
<!-- android:scaleType="centerCrop"-->
<!-- app:srcCompat="@drawable/icv_upload_image"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/view10"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ProgressBar-->
<!-- android:id="@+id/backIdProgressView"-->
<!-- android:layout_width="@dimen/_24sdp"-->
<!-- android:layout_height="@dimen/_24sdp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/backIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/backIDImageview"-->
<!-- app:layout_constraintStart_toStartOf="@+id/backIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="@id/backIDImageview" />-->
<!-- <View-->
<!-- android:id="@+id/view10"-->
<!-- android:layout_width="@dimen/_1sdp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginTop="@dimen/_5sdp"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:background="@color/gray"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/idTypeBackLabelTxtView"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/backIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeBackLabelTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="0dp"-->
<!-- android:gravity="start"-->
<!-- android:paddingStart="@dimen/_20sdp"-->
<!-- android:paddingEnd="@dimen/_20sdp"-->
<!-- android:text="@string/backId_text"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/backIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/view10"-->
<!-- app:layout_constraintTop_toTopOf="@+id/backIDImageview"-->
<!-- app:layout_constraintVertical_bias="0.019999999" />-->
<!-- <com.remit.jmecustomer.common.customwidgets.JmeTextView-->
<!-- android:id="@+id/backIdSampleTextView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:padding="@dimen/_5sdp"-->
<!-- android:text="@string/view_sample_text"-->
<!-- android:textColor="@color/m_blue_text_link"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/backIDImageview"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeBackHintTxtView"-->
<!-- app:layout_constraintEnd_toEndOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeBackHintTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_marginStart="@dimen/_10sdp"-->
<!-- android:layout_marginEnd="@dimen/_10sdp"-->
<!-- android:gravity="start"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/provideBackIdPhoto_text"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/backIDImageview" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
<!-- <androidx.cardview.widget.CardView-->
<!-- android:id="@+id/sideIDImageViewContainer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/_4sdp"-->
<!-- app:cardCornerRadius="@dimen/_8sdp"-->
<!-- android:visibility="gone"-->
<!-- app:cardElevation="@dimen/_2sdp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="6dp"-->
<!-- android:orientation="horizontal">-->
<!-- <ImageView-->
<!-- android:id="@+id/sideIDImageview"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:layout_height="@dimen/_72sdp"-->
<!-- android:layout_marginStart="@dimen/_20sdp"-->
<!-- android:layout_marginEnd="@dimen/_20sdp"-->
<!-- android:scaleType="centerCrop"-->
<!-- app:srcCompat="@drawable/icv_upload_image"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/view13"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ProgressBar-->
<!-- android:id="@+id/sideIdProgressView"-->
<!-- android:layout_width="@dimen/_24sdp"-->
<!-- android:layout_height="@dimen/_24sdp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/sideIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintStart_toStartOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="@id/sideIDImageview" />-->
<!-- <View-->
<!-- android:id="@+id/view13"-->
<!-- android:layout_width="@dimen/_1sdp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginTop="@dimen/_5sdp"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:background="@color/gray"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/idTypeSideLabelTxtView"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeSideLabelTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="0dp"-->
<!-- android:gravity="start"-->
<!-- android:paddingStart="@dimen/_20sdp"-->
<!-- android:paddingEnd="@dimen/_20sdp"-->
<!-- android:text="@string/sideId_text"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/view13"-->
<!-- app:layout_constraintTop_toTopOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintVertical_bias="0.019999999" />-->
<!-- <com.remit.jmecustomer.common.customwidgets.JmeTextView-->
<!-- android:id="@+id/sideIdSampleTextView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:padding="@dimen/_5sdp"-->
<!-- android:text="@string/view_sample_text"-->
<!-- android:textColor="@color/m_blue_text_link"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/sideIDImageview"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/idTypeSideHintTxtView"-->
<!-- app:layout_constraintEnd_toEndOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/idTypeSideHintTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_marginStart="@dimen/_10sdp"-->
<!-- android:layout_marginEnd="@dimen/_10sdp"-->
<!-- android:gravity="start"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/provideSideFacingIdPhoto_text"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/sideIDImageview" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- style="@style/MFormTitleDescriptionTextView"-->
<!-- android:layout_marginTop="@dimen/_10sdp"-->
<!-- android:layout_marginBottom="@dimen/_10sdp"-->
<!-- android:layout_marginStart="@dimen/_8sdp"-->
<!-- android:layout_marginEnd="@dimen/_8sdp"-->
<!-- android:drawablePadding="@dimen/_5sdp"-->
<!-- android:gravity="bottom"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/your_face_picture_text"-->
<!-- android:textColor="@android:color/black"-->
<!-- app:drawableStartCompat="@drawable/icv_vd_media" />-->
<!-- <androidx.cardview.widget.CardView-->
<!-- android:id="@+id/customerImageViewContainer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:visibility="gone"-->
<!-- android:layout_margin="@dimen/_4sdp"-->
<!-- app:cardCornerRadius="@dimen/_8sdp"-->
<!-- app:cardElevation="@dimen/_2sdp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="6dp"-->
<!-- android:background="@drawable/ic_rounded_white"-->
<!-- android:orientation="horizontal">-->
<!-- <ImageView-->
<!-- android:id="@+id/customerImageview"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:layout_height="@dimen/_72sdp"-->
<!-- android:layout_marginStart="@dimen/_20sdp"-->
<!-- android:layout_marginEnd="@dimen/_20sdp"-->
<!-- android:scaleType="centerCrop"-->
<!-- app:srcCompat="@drawable/icv_upload_image"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/customerHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/view12"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ProgressBar-->
<!-- android:id="@+id/customerProgressView"-->
<!-- android:layout_width="@dimen/_24sdp"-->
<!-- android:layout_height="@dimen/_24sdp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/customerImageview"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/customerImageview"-->
<!-- app:layout_constraintStart_toStartOf="@+id/customerImageview"-->
<!-- app:layout_constraintTop_toTopOf="@id/customerImageview" />-->
<!-- <View-->
<!-- android:id="@+id/view12"-->
<!-- android:layout_width="@dimen/_1sdp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginTop="@dimen/_5sdp"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:background="@color/gray"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/customerHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/customerLabelTxtView"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/customerImageview"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/customerLabelTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="0dp"-->
<!-- android:gravity="start"-->
<!-- android:paddingStart="@dimen/_20sdp"-->
<!-- android:paddingEnd="@dimen/_20sdp"-->
<!-- android:text="@string/your_face_picture_text"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/customerImageview"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/view12"-->
<!-- app:layout_constraintTop_toTopOf="@+id/customerImageview"-->
<!-- app:layout_constraintVertical_bias="0.019" />-->
<!-- <com.remit.jmecustomer.common.customwidgets.JmeTextView-->
<!-- android:id="@+id/customerSampleTextView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:padding="@dimen/_5sdp"-->
<!-- android:text="@string/view_sample_text"-->
<!-- android:textColor="@color/m_blue_text_link"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/customerImageview"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/customerHintTxtView"-->
<!-- app:layout_constraintEnd_toEndOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/customerHintTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_marginStart="@dimen/_10sdp"-->
<!-- android:layout_marginEnd="@dimen/_10sdp"-->
<!-- android:gravity="start"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/provideFrontFacingPic_text"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/customerImageview" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
<com.remit.jmecustomer.common.view.MTextView <com.remit.jmecustomer.common.view.MTextView
style="@style/MFormTitleDescriptionTextView" style="@style/MFormTitleDescriptionTextView"
android:layout_marginStart="@dimen/_8sdp" android:layout_marginStart="@dimen/_8sdp"
@ -562,108 +131,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<!-- <androidx.cardview.widget.CardView-->
<!-- android:id="@+id/additionalIDBackImageViewContainer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/_4sdp"-->
<!-- app:cardCornerRadius="@dimen/_8sdp"-->
<!-- app:cardElevation="@dimen/_2sdp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="6dp"-->
<!-- android:orientation="horizontal">-->
<!-- <ImageView-->
<!-- android:id="@+id/additionalIDBackImageview"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:layout_height="@dimen/_72sdp"-->
<!-- android:layout_marginStart="@dimen/_20sdp"-->
<!-- android:layout_marginEnd="@dimen/_20sdp"-->
<!-- android:scaleType="centerCrop"-->
<!-- app:srcCompat="@drawable/icv_upload_image"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/additionalIdBackTypeHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/view14"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <ProgressBar-->
<!-- android:id="@+id/additionalIdBackProgressView"-->
<!-- android:layout_width="@dimen/_24sdp"-->
<!-- android:layout_height="@dimen/_24sdp"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="@id/additionalIDBackImageview"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintStart_toStartOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintTop_toTopOf="@id/additionalIDBackImageview" />-->
<!-- <View-->
<!-- android:id="@+id/view14"-->
<!-- android:layout_width="@dimen/_1sdp"-->
<!-- android:layout_height="0dp"-->
<!-- android:layout_marginTop="@dimen/_5sdp"-->
<!-- android:layout_marginBottom="@dimen/_5sdp"-->
<!-- android:background="@color/gray"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/additionalIdBackTypeHintTxtView"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/additionalIdBackTypeLabelTxtView"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/additionalIdBackTypeLabelTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="0dp"-->
<!-- android:gravity="start"-->
<!-- android:paddingStart="@dimen/_20sdp"-->
<!-- android:paddingEnd="@dimen/_20sdp"-->
<!-- android:text="@string/additional_id_back_txt"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toEndOf="@+id/view14"-->
<!-- app:layout_constraintTop_toTopOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintVertical_bias="0.19999999" />-->
<!-- <com.remit.jmecustomer.common.customwidgets.JmeTextView-->
<!-- android:id="@+id/additionalIdBackSampleTextView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_marginBottom="@dimen/_8sdp"-->
<!-- android:padding="@dimen/_8sdp"-->
<!-- android:text="@string/view_sample_text"-->
<!-- android:visibility="invisible"-->
<!-- android:textColor="@color/m_blue_text_link"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/additionalIDBackImageview"-->
<!-- app:layout_constraintBottom_toTopOf="@+id/additionalIdBackTypeHintTxtView"-->
<!-- app:layout_constraintEnd_toEndOf="parent" />-->
<!-- <com.remit.jmecustomer.common.view.MTextView-->
<!-- android:id="@+id/additionalIdBackTypeHintTxtView"-->
<!-- style="@style/MLabelTextView"-->
<!-- android:layout_marginStart="@dimen/_10sdp"-->
<!-- android:layout_marginEnd="@dimen/_10sdp"-->
<!-- android:gravity="start"-->
<!-- android:visibility="gone"-->
<!-- android:text="@string/selectAdditionalBackPhoto_text"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.5"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/additionalIDBackImageview" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
<com.remit.jmecustomer.common.customwidgets.GmeButton <com.remit.jmecustomer.common.customwidgets.GmeButton
android:id="@+id/btn_submit3" android:id="@+id/btn_submit3"
style="@style/MButton" style="@style/MButton"

147
app/src/main/res/layout/fragment_kyc_document.xml

@ -4,6 +4,151 @@
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:visibility="gone"
android:id="@+id/ekyc_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginTop="@dimen/_5sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:paddingBottom="@dimen/_10sdp">
<com.remit.jmecustomer.common.view.MTextView
style="@style/MFormTitleDescriptionTextView"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_10sdp"
android:drawablePadding="@dimen/_5sdp"
android:gravity="bottom"
android:text="@string/scan_doc_text"
android:textColor="@android:color/black"
app:drawableStartCompat="@drawable/icv_vd_media" />
<androidx.cardview.widget.CardView
android:id="@+id/additionalIDImageViewContainer1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_4sdp"
app:cardCornerRadius="@dimen/_8sdp"
app:cardElevation="@dimen/_2sdp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/additionalIDImageview1"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_72sdp"
android:layout_marginStart="@dimen/_20sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@+id/additionalIdTypeHintTxtView1"
app:layout_constraintEnd_toStartOf="@+id/view18"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/icv_upload_image" />
<ProgressBar
android:id="@+id/additionalIdProgressView1"
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/additionalIDImageview1"
app:layout_constraintEnd_toEndOf="@+id/additionalIDImageview1"
app:layout_constraintStart_toStartOf="@+id/additionalIDImageview1"
app:layout_constraintTop_toTopOf="@id/additionalIDImageview1" />
<View
android:id="@+id/view18"
android:layout_width="@dimen/_1sdp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/_5sdp"
android:layout_marginBottom="@dimen/_5sdp"
android:background="@color/gray"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/additionalIdTypeHintTxtView1"
app:layout_constraintEnd_toStartOf="@+id/additionalIdTypeLabelTxtView1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/additionalIDImageview1"
app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.view.MTextView
android:id="@+id/additionalIdTypeLabelTxtView1"
style="@style/MLabelTextView"
android:layout_width="0dp"
android:gravity="start"
android:paddingStart="@dimen/_20sdp"
android:paddingEnd="@dimen/_20sdp"
android:text="@string/additional_id_front_txt"
app:layout_constraintBottom_toBottomOf="@+id/additionalIDImageview1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/view18"
app:layout_constraintTop_toTopOf="@+id/additionalIDImageview1"
app:layout_constraintVertical_bias="0.019999999" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/additionalIdSampleTextView1"
style="@style/MLabelTextView"
android:layout_width="wrap_content"
android:layout_marginBottom="@dimen/_5sdp"
android:padding="@dimen/_5sdp"
android:text="@string/view_sample_text"
android:textColor="@color/m_blue_text_link"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@+id/additionalIdTypeHintTxtView1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/additionalIDImageview1" />
<com.remit.jmecustomer.common.view.MTextView
android:id="@+id/additionalIdTypeHintTxtView1"
style="@style/MLabelTextView"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:gravity="start"
android:text="@string/selectAdditionalFrontPhoto_text"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/additionalIDImageview1" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<com.remit.jmecustomer.common.customwidgets.GmeButton
android:id="@+id/btn_submit4"
style="@style/MButton"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_15sdp"
android:enabled="true"
android:text="@string/save_and_next_text"
android:visibility="gone" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/rootView" android:id="@+id/rootView"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -673,4 +818,6 @@
android:text="@string/save_and_next_text" /> android:text="@string/save_and_next_text" />
</LinearLayout> </LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

66
app/src/main/res/layout/kyc_header.xml

@ -5,6 +5,17 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<View
android:layout_width="0dp"
android:layout_height="@dimen/_2sdp"
android:layout_gravity="top"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp"
android:background="@color/gray"
app:layout_constraintBottom_toTopOf="@+id/page2TitleTxtView"
app:layout_constraintEnd_toStartOf="@+id/page2TxtView"
app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintTop_toTopOf="@+id/page2TxtView" />
<View <View
android:layout_width="0dp" android:layout_width="0dp"
@ -15,7 +26,7 @@
android:background="@color/gray" android:background="@color/gray"
app:layout_constraintBottom_toTopOf="@+id/page3TitleTxtView" app:layout_constraintBottom_toTopOf="@+id/page3TitleTxtView"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView" app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintStart_toEndOf="@+id/page2TxtView"
app:layout_constraintTop_toTopOf="@+id/page3TxtView" /> app:layout_constraintTop_toTopOf="@+id/page3TxtView" />
<View <View
@ -38,23 +49,23 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp" android:layout_marginTop="@dimen/_4sdp"
android:layout_marginStart="@dimen/_35sdp"
android:background="@drawable/circular_valid_bg" android:background="@drawable/circular_valid_bg"
android:gravity="center" android:gravity="center"
android:text="1" android:text="1"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page1TitleTxtView" android:id="@+id/page1TitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/step1_sub_title_text"
android:text="@string/choose"
android:textColor="@color/darkgray2" android:textColor="@color/darkgray2"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -62,8 +73,9 @@
app:layout_constraintStart_toStartOf="@+id/page1TxtView" app:layout_constraintStart_toStartOf="@+id/page1TxtView"
app:layout_constraintTop_toBottomOf="@+id/page1TxtView" /> app:layout_constraintTop_toBottomOf="@+id/page1TxtView" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TxtView"
android:id="@+id/page2TxtView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
@ -73,18 +85,48 @@
android:background="@drawable/circular_empty_bg" android:background="@drawable/circular_empty_bg"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page4TxtView"
app:layout_constraintEnd_toStartOf="@+id/page3TxtView"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/page1TxtView" app:layout_constraintStart_toEndOf="@+id/page1TxtView"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TitleTxtView"
android:id="@+id/page2TitleTxtView"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center"
android:paddingTop="@dimen/_3sdp"
android:text="@string/personal_information_text"
android:textColor="@color/darkgray2"
android:textSize="@dimen/_9ssp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/page2TxtView"
app:layout_constraintStart_toStartOf="@+id/page2TxtView"
app:layout_constraintTop_toBottomOf="@+id/page2TxtView" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TxtView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp"
android:gravity="center"
android:text="3"
android:background="@drawable/circular_empty_bg"
android:textColor="@color/black"
android:textSize="@dimen/_9ssp"
app:layout_constraintEnd_toStartOf="@+id/page4TxtView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/page2TxtView"
app:layout_constraintTop_toTopOf="parent" />
<com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page3TitleTxtView"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/documents_text"
android:text="@string/scan_text"
android:textColor="@color/darkgray2" android:textColor="@color/darkgray2"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -100,7 +142,7 @@
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/_4sdp" android:layout_marginTop="@dimen/_4sdp"
android:gravity="center" android:gravity="center"
android:text="3"
android:text="4"
android:background="@drawable/circular_empty_bg" android:background="@drawable/circular_empty_bg"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/_9ssp" android:textSize="@dimen/_9ssp"
@ -111,8 +153,8 @@
<com.remit.jmecustomer.common.customwidgets.JmeTextView <com.remit.jmecustomer.common.customwidgets.JmeTextView
android:id="@+id/page4TitleTxtView" android:id="@+id/page4TitleTxtView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_80sdp"
android:layout_height="@dimen/_30sdp"
android:gravity="center" android:gravity="center"
android:paddingTop="@dimen/_3sdp" android:paddingTop="@dimen/_3sdp"
android:text="@string/terms_and_condition_title_text" android:text="@string/terms_and_condition_title_text"

93
app/src/main/res/layout/row_kyc_type.xml

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
android:layout_marginHorizontal="@dimen/_10sdp"
android:layout_marginBottom="@dimen/_5sdp"
android:paddingVertical="@dimen/_15sdp">
<RelativeLayout
android:id="@+id/rv_initials"
android:layout_width="@dimen/_25sdp"
android:layout_height="@dimen/_25sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_weight="0.2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<RadioButton
android:id="@+id/rd_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:checked="true"
android:clickable="false" />
</RelativeLayout>
<LinearLayout
android:orientation="horizontal"
android:id="@+id/const_row"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_10sdp"
android:background="@drawable/light_blue_background"
android:paddingTop="@dimen/_10sdp"
android:paddingBottom="@dimen/_10sdp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/rv_initials"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_marginRight="@dimen/_12sdp"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:visibility="gone"
android:id="@+id/iv_icon"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
android:layout_marginStart="@dimen/_8sdp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_name"
style="@style/TextStyle.VolteSemiBold14"
android:layout_width="0dp"
android:paddingRight="@dimen/_25sdp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_8sdp"
android:text="Rajesh Sharma"
android:textColor="@color/black_opacity_87"
app:layout_constraintStart_toEndOf="@id/iv_icon"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_account_number"
style="@style/TextStyle.VolteSemiBold12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_8sdp"
android:textColor="@color/black_opacity_50"
app:layout_constraintStart_toEndOf="@id/iv_icon"
app:layout_constraintTop_toBottomOf="@id/tv_name" />
<TextView
android:id="@+id/tv_branch"
style="@style/TextStyle.VolteSemiBold12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_8sdp"
android:textColor="@color/black_opacity_50"
app:layout_constraintStart_toEndOf="@id/iv_icon"
app:layout_constraintTop_toBottomOf="@id/tv_account_number" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

5
app/src/main/res/values/strings.xml

@ -709,9 +709,8 @@
<string name="choose_from_gallery_text">Choose from gallery</string> <string name="choose_from_gallery_text">Choose from gallery</string>
<string name="beneficiary_detail_text">Beneficiary Detail</string> <string name="beneficiary_detail_text">Beneficiary Detail</string>
<string name="support_text">Support</string> <string name="support_text">Support</string>
<string name="choose">Choose</string>
<string name="next_text">Next</string>
</resources><!----> </resources><!---->

1
app/src/main/res/xml/network_security_config.xml

@ -8,5 +8,6 @@
<domain includeSubdomains="true">202.166.220.36</domain> <domain includeSubdomains="true">202.166.220.36</domain>
<domain includeSubdomains="true">japanremit.com</domain> <domain includeSubdomains="true">japanremit.com</domain>
<domain includeSubdomains="true">192.168.50.21</domain> <domain includeSubdomains="true">192.168.50.21</domain>
<domain includeSubdomains="true">192.168.53.21</domain>
</domain-config> </domain-config>
</network-security-config> </network-security-config>
Loading…
Cancel
Save