From 1f983cc280422f14a55a85da91ae5cddcf71d873 Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Tue, 28 Mar 2023 19:31:55 +0530 Subject: [PATCH] cleaned code --- app/build.gradle | 18 +- .../bajajfd/ExampleInstrumentedTest.kt | 4 +- app/src/main/AndroidManifest.xml | 14 +- .../niveshfd/fd/adapter/BankListAdapter.kt | 83 - .../fd/adapter/CustomerListAdapter.kt | 54 - .../niveshfd/fd/adapter/DisableAdapter.kt | 24 - .../adapter/HorizontalRecyclerViewAdapter.kt | 124 - .../niveshfd/fd/adapter/PaymentModeAdapter.kt | 90 - .../fd/adapter/RecommendedBankListAdapter.kt | 35 - .../fd/adapter/SectionsPagerAdapter.kt | 18 - .../niveshfd/fd/api/TokenAuthenticator.kt | 19 - .../niveshfd/fd/interfaces/ApiInterface.kt | 175 -- .../fd/interfaces/OnClickListener.java | 5 - .../niveshfd/fd/interfaces/SendData.kt | 8 - .../niveshfd/fd/model/ApplicantDetails.kt | 24 - .../fd/model/ApplicantRelationDetails.kt | 10 - .../production/niveshfd/fd/model/Bank.kt | 6 - .../production/niveshfd/fd/model/BankList.kt | 15 - .../fd/model/BankValidationApiRequest.kt | 10 - .../fd/model/BankValidationApiResponse.kt | 8 - .../niveshfd/fd/model/CheckFDKYCRequest.kt | 8 - .../niveshfd/fd/model/CityListResponse.kt | 6 - .../niveshfd/fd/model/CityRequest.kt | 15 - .../niveshfd/fd/model/ClientBanklist.kt | 11 - .../niveshfd/fd/model/ClientDetails.kt | 22 - .../niveshfd/fd/model/ClientMasterMFD.kt | 40 - .../fd/model/CreateFDApplicationRequest.kt | 10 - .../fd/model/CreateFDApplicationResponse.kt | 5 - .../niveshfd/fd/model/CreateFDRequest.kt | 5 - .../niveshfd/fd/model/DataObject.kt | 17 - .../niveshfd/fd/model/DataObjectX.kt | 10 - .../niveshfd/fd/model/DeviceInfo.kt | 12 - .../niveshfd/fd/model/DocumentUpload.kt | 10 - .../production/niveshfd/fd/model/Errors.kt | 6 - .../fd/model/FDCreationDetailsResponse.kt | 7 - .../niveshfd/fd/model/FDDataResponse.kt | 12 - .../niveshfd/fd/model/FDInvestmentDetails.kt | 19 - .../niveshfd/fd/model/FDStepsCountRequest.kt | 6 - .../niveshfd/fd/model/FdBankDetails.kt | 10 - .../niveshfd/fd/model/FinaliseFD.kt | 7 - .../niveshfd/fd/model/FinalizeFDRequest.kt | 5 - .../niveshfd/fd/model/FinalizeFDResponse.kt | 5 - .../niveshfd/fd/model/FinalizeKYCRequest.kt | 7 - .../GetCalculateMaturityAmountResponse.kt | 5 - .../niveshfd/fd/model/GetCodeRequest.kt | 8 - .../niveshfd/fd/model/GetCodeResponse.kt | 5 - .../production/niveshfd/fd/model/GetCodes.kt | 11 - .../fd/model/GetFDBankListResponse.kt | 5 - .../niveshfd/fd/model/GetFDDetailsRequest.kt | 7 - .../niveshfd/fd/model/GetFDDetailsResponse.kt | 5 - .../fd/model/GetIFSCCodeListResponse.kt | 6 - .../niveshfd/fd/model/GetIFSCCodeResponse.kt | 5 - .../fd/model/GetMaturityAmountRequest.kt | 9 - .../niveshfd/fd/model/GetRatesRequest.kt | 9 - .../niveshfd/fd/model/GetRatesResponse.kt | 5 - .../fd/model/IFSCCODEServiceResult.kt | 10 - .../production/niveshfd/fd/model/Nominee.kt | 12 - .../niveshfd/fd/model/NomineeDetails.kt | 18 - .../fd/model/NomineeGuardianDetails.kt | 14 - .../niveshfd/fd/model/ObjectResponse.kt | 9 - .../niveshfd/fd/model/PanCheckRequest.kt | 14 - .../niveshfd/fd/model/PanCheckResponse.kt | 5 - .../fd/model/PaymentReQueryRequest.kt | 6 - .../fd/model/PaymentReQueryResponse.kt | 5 - .../niveshfd/fd/model/ROIDataList.kt | 13 - .../production/niveshfd/fd/model/Response.kt | 11 - .../production/niveshfd/fd/model/ResponseX.kt | 9 - .../niveshfd/fd/model/ResponseXX.kt | 9 - .../niveshfd/fd/model/ResponseXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXX.kt | 9 - .../niveshfd/fd/model/ResponseXXXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXXXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXXXXXX.kt | 9 - .../niveshfd/fd/model/ResponseXXXXXXXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXXXXXXXX.kt | 7 - .../niveshfd/fd/model/ResponseXXXXXXXXXXX.kt | 9 - .../niveshfd/fd/model/ResponseXXXXXXXXXXXX.kt | 11 - .../fd/model/ResponseXXXXXXXXXXXXX.kt | 8 - .../fd/model/ResponseXXXXXXXXXXXXXX.kt | 7 - .../fd/model/ResponseXXXXXXXXXXXXXXX.kt | 8 - .../fd/model/ResponseXXXXXXXXXXXXXXXX.kt | 10 - .../fd/model/SaveFDOtherDataRequest.kt | 8 - .../fd/model/SaveFDOtherDataResponse.kt | 5 - .../niveshfd/fd/model/StateListResponse.kt | 8 - .../niveshfd/fd/model/StepsCountResponse.kt | 5 - .../niveshfd/fd/model/UploadResponse.kt | 5 - .../niveshfd/fd/model/UserRequest.kt | 10 - .../fd/model/getClientDetailsRequest.kt | 8 - .../fd/model/getClientDetailsResponse.kt | 8 - .../fd/repositories/MainRepository.kt | 111 - .../fd/ui/activity/NiveshFdMainActivity.kt | 481 ---- .../fd/ui/activity/PaymentActivity.kt | 187 -- .../ui/fragment/StepFiveNiveshFDFragment.kt | 208 -- .../ui/fragment/StepFourNiveshFDFragment.kt | 329 --- .../fd/ui/fragment/StepOneNiveshFDFragment.kt | 592 ----- .../ui/fragment/StepThreeNiveshFDFragment.kt | 725 ------ .../fd/ui/fragment/StepTwoNiveshFDFragment.kt | 2224 ----------------- .../providerfactory/FDModelProviderFactory.kt | 15 - .../niveshfd/fd/viewModel/BajajFDViewModel.kt | 369 --- .../partnerOnBoarding/api1/ApiCallback1.kt | 32 - .../partnerOnBoarding/api1/ApiClient1.kt | 66 - .../interfaces1/ApiInterface1.kt | 175 -- .../ui/activities1/BasActivity.kt | 13 - .../NiveshFdApplication.kt | 2 +- .../adapters}/DisableAdapter1.kt | 2 +- .../NewDistributorSignStepOneAdapter.kt | 7 +- .../adapters}/SectionsPagerAdapter1.kt | 2 +- .../api/ApiCallback.kt | 4 +- .../fd => partnerOnBoarding}/api/ApiClient.kt | 8 +- .../db/PreferenceManager.kt | 11 +- .../interfaces/ApiInterface.kt | 22 + .../interfaces/IPreferenceHelper.kt | 2 +- .../OnBoardingModelProviderFactory.kt | 15 + .../repositories/MainRepository.kt | 15 + .../ui/activities}/BaseActivity.kt | 6 +- .../ui/activities}/LoginActivity.kt | 7 +- .../ui/activities}/RegisterActivity.kt | 9 +- .../ui/activities}/SignUpActivity.kt | 17 +- .../ui/activities}/ViewPagerActivity.kt | 17 +- .../ui/fragments}/AlmostThereFragment.kt | 21 +- .../ui/fragments}/BaseFragment.kt | 4 +- .../ui/fragments}/GetStartedFragment.kt | 44 +- .../fragments}/NewDistributorSignStepOne.kt | 8 +- .../ui/fragments}/OTPFragment.kt | 10 +- .../ui/fragments}/SignUpFragment.kt | 20 +- .../ui/fragments}/StepOnePagerFragment.kt | 7 +- .../ui/fragments}/StepThreePagerFragment.kt | 6 +- .../ui/fragments}/StepTwoPagerFragment.kt | 6 +- .../fd => partnerOnBoarding}/util/Colors.kt | 2 +- .../fd => partnerOnBoarding}/util/Common.kt | 107 +- .../util/Constants.kt | 2 +- .../util/ImageUtil.kt | 2 +- .../partnerOnBoarding/util/MaskWatcher.kt | 2 +- .../util/ProgressUtil.kt | 2 +- .../fd => partnerOnBoarding}/util/Resource.kt | 2 +- .../viewModels/MyObservable.kt} | 4 +- .../viewModels/OnBoardingViewModel.kt | 32 + app/src/main/res/drawable/bajaj_logo.png | Bin 8296 -> 0 bytes app/src/main/res/drawable/camera.png | Bin 29092 -> 0 bytes app/src/main/res/drawable/card_bg.xml | 5 - app/src/main/res/drawable/cursor_color.xml | 5 - app/src/main/res/drawable/dot_background.xml | 6 - app/src/main/res/drawable/gallery.png | Bin 98804 -> 0 bytes app/src/main/res/drawable/ic_add_icon.xml | 5 - app/src/main/res/drawable/ic_arrow_down.xml | 5 - .../res/drawable/ic_baseline_check_24.xml | 6 - app/src/main/res/drawable/ic_minus.xml | 5 - app/src/main/res/drawable/ic_select_green.xml | 5 - .../main/res/drawable/ic_select_outline.xml | 5 - .../main/res/drawable/round_corner_button.xml | 5 - .../res/drawable/round_corner_grey_button.xml | 2 +- .../round_corner_grey_button_fill.xml | 2 +- .../res/drawable/round_corner_with_red_bg.xml | 11 - .../drawable/rounded_corner_green_fill.xml | 6 - .../rounded_corner_with_line_blue.xml | 6 - app/src/main/res/drawable/sp_bg.xml | 37 - app/src/main/res/drawable/svg_back.xml | 11 - app/src/main/res/drawable/svg_cal.xml | 36 - app/src/main/res/drawable/svg_camera.xml | 6 - app/src/main/res/drawable/svg_cross.xml | 20 - app/src/main/res/drawable/svg_down_arrow.xml | 5 - app/src/main/res/drawable/svg_grey_bullet.xml | 14 - app/src/main/res/drawable/svg_image.xml | 5 - app/src/main/res/drawable/svg_rect_dot.xml | 12 - app/src/main/res/drawable/svg_rs.xml | 17 - app/src/main/res/drawable/svg_star.xml | 5 - .../main/res/drawable/svg_step_process.xml | 13 - .../main/res/drawable/upload_background.xml | 15 - .../main/res/layout/activity_nivesh_fd.xml | 158 -- .../main/res/layout/activity_viewpager.xml | 2 +- .../main/res/layout/bank_detail_select.xml | 129 - .../main/res/layout/camera_gallery_layout.xml | 71 - app/src/main/res/layout/dot_layout.xml | 15 - .../main/res/layout/fragment_get_started.xml | 6 +- .../layout/fragment_niveshfd_step_five.xml | 163 -- .../layout/fragment_niveshfd_step_four.xml | 297 --- .../res/layout/fragment_niveshfd_step_one.xml | 389 --- .../layout/fragment_niveshfd_step_three.xml | 331 --- .../res/layout/fragment_niveshfd_step_two.xml | 1117 --------- .../res/layout/fragment_pager_step_one.xml | 2 +- .../res/layout/fragment_pager_step_three.xml | 2 +- .../res/layout/fragment_pager_step_two.xml | 2 +- .../res/layout/item_bank_list_preview.xml | 96 - .../res/layout/item_customer_list_preview.xml | 29 - .../res/layout/item_payment_list_preview.xml | 56 - app/src/main/res/layout/layout_bank_list.xml | 54 - app/src/main/res/layout/row_bank_list.xml | 18 - app/src/main/res/layout/row_dropdown.xml | 37 - app/src/main/res/layout/row_fd_pay1.xml | 43 - app/src/main/res/layout/spinner_dropdown.xml | 14 - app/src/main/res/xml/backup_rules.xml | 4 - .../production/bajajfd/ExampleUnitTest.kt | 2 +- 193 files changed, 224 insertions(+), 10426 deletions(-) delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/BankListAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/CustomerListAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/DisableAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/HorizontalRecyclerViewAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/PaymentModeAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/RecommendedBankListAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/SectionsPagerAdapter.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/api/TokenAuthenticator.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/ApiInterface.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/OnClickListener.java delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/SendData.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantRelationDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/Bank.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankList.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CheckFDKYCRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityListResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientBanklist.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientMasterMFD.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObject.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObjectX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/DeviceInfo.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/DocumentUpload.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/Errors.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDCreationDetailsResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDDataResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDInvestmentDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDStepsCountRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FdBankDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinaliseFD.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeKYCRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCalculateMaturityAmountResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodes.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDBankListResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeListResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetMaturityAmountRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/IFSCCODEServiceResult.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/Nominee.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeGuardianDetails.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ObjectResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ROIDataList.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/Response.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXXX.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/StateListResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/StepsCountResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/UploadResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/UserRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsRequest.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsResponse.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/repositories/MainRepository.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/NiveshFdMainActivity.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/PaymentActivity.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFiveNiveshFDFragment.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFourNiveshFDFragment.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepOneNiveshFDFragment.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepThreeNiveshFDFragment.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepTwoNiveshFDFragment.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/ui/providerfactory/FDModelProviderFactory.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/BajajFDViewModel.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiCallback1.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiClient1.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/interfaces1/ApiInterface1.kt delete mode 100644 app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/BasActivity.kt rename app/src/main/java/com/nivesh/production/{niveshfd => partnerOnBoarding}/NiveshFdApplication.kt (87%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/adapters1 => partnerOnBoarding/adapters}/DisableAdapter1.kt (92%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/adapters1 => partnerOnBoarding/adapters}/NewDistributorSignStepOneAdapter.kt (94%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/adapters1 => partnerOnBoarding/adapters}/SectionsPagerAdapter1.kt (89%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/api/ApiCallback.kt (89%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/api/ApiClient.kt (90%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/db/PreferenceManager.kt (93%) create mode 100644 app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/interfaces/IPreferenceHelper.kt (92%) create mode 100644 app/src/main/java/com/nivesh/production/partnerOnBoarding/providerfactory/OnBoardingModelProviderFactory.kt create mode 100644 app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt rename app/src/main/java/com/nivesh/production/{niveshfd/fd/ui/activity => partnerOnBoarding/ui/activities}/BaseActivity.kt (67%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/activities1 => partnerOnBoarding/ui/activities}/LoginActivity.kt (85%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/activities1 => partnerOnBoarding/ui/activities}/RegisterActivity.kt (88%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/activities1 => partnerOnBoarding/ui/activities}/SignUpActivity.kt (66%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/activities1 => partnerOnBoarding/ui/activities}/ViewPagerActivity.kt (79%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/AlmostThereFragment.kt (90%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/BaseFragment.kt (90%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/GetStartedFragment.kt (92%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/NewDistributorSignStepOne.kt (81%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/OTPFragment.kt (95%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/SignUpFragment.kt (78%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/StepOnePagerFragment.kt (72%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/StepThreePagerFragment.kt (80%) rename app/src/main/java/com/nivesh/production/{niveshfd/partnerOnBoarding/ui/fragments1 => partnerOnBoarding/ui/fragments}/StepTwoPagerFragment.kt (80%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/Colors.kt (54%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/Common.kt (72%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/Constants.kt (83%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/ImageUtil.kt (93%) rename app/src/main/java/com/nivesh/production/{niveshfd => }/partnerOnBoarding/util/MaskWatcher.kt (94%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/ProgressUtil.kt (97%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd => partnerOnBoarding}/util/Resource.kt (88%) rename app/src/main/java/com/nivesh/production/{niveshfd/fd/viewModel/MyObseravble.kt => partnerOnBoarding/viewModels/MyObservable.kt} (65%) create mode 100644 app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt delete mode 100644 app/src/main/res/drawable/bajaj_logo.png delete mode 100644 app/src/main/res/drawable/camera.png delete mode 100644 app/src/main/res/drawable/card_bg.xml delete mode 100644 app/src/main/res/drawable/cursor_color.xml delete mode 100644 app/src/main/res/drawable/dot_background.xml delete mode 100644 app/src/main/res/drawable/gallery.png delete mode 100644 app/src/main/res/drawable/ic_add_icon.xml delete mode 100644 app/src/main/res/drawable/ic_arrow_down.xml delete mode 100644 app/src/main/res/drawable/ic_baseline_check_24.xml delete mode 100644 app/src/main/res/drawable/ic_minus.xml delete mode 100644 app/src/main/res/drawable/ic_select_green.xml delete mode 100644 app/src/main/res/drawable/ic_select_outline.xml delete mode 100644 app/src/main/res/drawable/round_corner_button.xml delete mode 100644 app/src/main/res/drawable/round_corner_with_red_bg.xml delete mode 100644 app/src/main/res/drawable/rounded_corner_green_fill.xml delete mode 100644 app/src/main/res/drawable/rounded_corner_with_line_blue.xml delete mode 100644 app/src/main/res/drawable/sp_bg.xml delete mode 100644 app/src/main/res/drawable/svg_back.xml delete mode 100644 app/src/main/res/drawable/svg_cal.xml delete mode 100644 app/src/main/res/drawable/svg_camera.xml delete mode 100644 app/src/main/res/drawable/svg_cross.xml delete mode 100644 app/src/main/res/drawable/svg_down_arrow.xml delete mode 100644 app/src/main/res/drawable/svg_grey_bullet.xml delete mode 100644 app/src/main/res/drawable/svg_image.xml delete mode 100644 app/src/main/res/drawable/svg_rect_dot.xml delete mode 100644 app/src/main/res/drawable/svg_rs.xml delete mode 100644 app/src/main/res/drawable/svg_star.xml delete mode 100644 app/src/main/res/drawable/svg_step_process.xml delete mode 100644 app/src/main/res/drawable/upload_background.xml delete mode 100644 app/src/main/res/layout/activity_nivesh_fd.xml delete mode 100644 app/src/main/res/layout/bank_detail_select.xml delete mode 100644 app/src/main/res/layout/camera_gallery_layout.xml delete mode 100644 app/src/main/res/layout/dot_layout.xml delete mode 100644 app/src/main/res/layout/fragment_niveshfd_step_five.xml delete mode 100644 app/src/main/res/layout/fragment_niveshfd_step_four.xml delete mode 100644 app/src/main/res/layout/fragment_niveshfd_step_one.xml delete mode 100644 app/src/main/res/layout/fragment_niveshfd_step_three.xml delete mode 100644 app/src/main/res/layout/fragment_niveshfd_step_two.xml delete mode 100644 app/src/main/res/layout/item_bank_list_preview.xml delete mode 100644 app/src/main/res/layout/item_customer_list_preview.xml delete mode 100644 app/src/main/res/layout/item_payment_list_preview.xml delete mode 100644 app/src/main/res/layout/layout_bank_list.xml delete mode 100644 app/src/main/res/layout/row_bank_list.xml delete mode 100644 app/src/main/res/layout/row_dropdown.xml delete mode 100644 app/src/main/res/layout/row_fd_pay1.xml delete mode 100644 app/src/main/res/layout/spinner_dropdown.xml diff --git a/app/build.gradle b/app/build.gradle index 95d83d1..01106c4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,11 +4,11 @@ plugins { } android { - namespace 'com.nivesh.production.niveshfd' + namespace 'com.nivesh.production.partnerOnBoarding' compileSdk 33 defaultConfig { - applicationId "com.nivesh.production.niveshfd" + applicationId "com.nivesh.production.partnerOnBoarding" minSdk 21 targetSdk 33 versionCode 1 @@ -44,30 +44,30 @@ ext{ dependencies { implementation 'androidx.core:core-ktx:1.9.0' - implementation 'androidx.appcompat:appcompat:1.5.1' - implementation 'com.google.android.material:material:1.7.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' // Architectural Components - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1" // Coroutines implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' // Coroutine Lifecycle Scopes - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1" + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1" // Retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' - implementation "com.squareup.okhttp3:logging-interceptor:4.7.2" + implementation "com.squareup.okhttp3:logging-interceptor:4.10.0" // Navigation Components implementation "androidx.navigation:navigation-fragment-ktx:2.5.3" diff --git a/app/src/androidTest/java/com/nivesh/production/bajajfd/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/nivesh/production/bajajfd/ExampleInstrumentedTest.kt index 1d32d4e..23f9307 100644 --- a/app/src/androidTest/java/com/nivesh/production/bajajfd/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/nivesh/production/bajajfd/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd +package com.nivesh.production.partnerOnBoarding import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -19,6 +19,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.nivesh.production.niveshfd", appContext.packageName) + assertEquals("com.nivesh.production.partnerOnBoarding", appContext.packageName) } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4b2c4f3..c330fde 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,9 +31,8 @@ android:theme="@style/Theme.NiveshFDSDK" tools:targetApi="31"> - @@ -42,26 +41,21 @@ - diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/BankListAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/BankListAdapter.kt deleted file mode 100644 index dae92e6..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/BankListAdapter.kt +++ /dev/null @@ -1,83 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.model.ClientBanklist - -class BankListAdapter( - private val bankList: List?, - private val selectedAccount: String? = null, - private val width: Double? -) : RecyclerView.Adapter() { - inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val bankSelector: ImageView = itemView.findViewById(R.id.bankSelector) - val tvBankName: TextView = itemView.findViewById(R.id.tvBankName) - val tvBankAccountNumber: TextView = itemView.findViewById(R.id.tvBankAccountNumber) - val tvBankIFSC: TextView = itemView.findViewById(R.id.tvBankIFSC) - } - - private var checkedPosition: Int = -2 - - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): BankListViewHolder { - val view = LayoutInflater.from(parent.context) - .inflate(R.layout.item_bank_list_preview, parent, false); - view.layoutParams = width?.div(1.35) - ?.let { ViewGroup.LayoutParams(it.toInt(), ViewGroup.LayoutParams.WRAP_CONTENT) } - return BankListViewHolder(view) - } - - override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { - val bankList = bankList?.get(position) - if (bankList != null) { - holder.itemView.apply { - holder.tvBankName.text = bankList.BankName - holder.tvBankIFSC.text = bankList.IFSCCode - holder.tvBankAccountNumber.text = bankList.AccountNumber - - if (selectedAccount == bankList.AccountNumber && (checkedPosition == -2)) { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - checkedPosition = holder.adapterPosition - } else if (checkedPosition == -1) { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } else if (checkedPosition == holder.adapterPosition) { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - } else { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_outline) - } - - holder.itemView.setOnClickListener { - holder.bankSelector.setBackgroundResource(R.drawable.ic_select_green) - if (checkedPosition != holder.adapterPosition) { - notifyItemChanged(checkedPosition) - checkedPosition = holder.adapterPosition - } - } - } - } - } - - override fun getItemCount(): Int { - return bankList?.size!! - } - - private var onItemClickListener: ((ClientBanklist) -> Unit)? = null - - fun setOnItemClickListener(listener: (ClientBanklist) -> Unit) { - onItemClickListener = listener - } - - fun getSelected(): ClientBanklist? { - return if (checkedPosition != -1) { - bankList?.get(checkedPosition) - } else null - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/CustomerListAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/CustomerListAdapter.kt deleted file mode 100644 index 6398fa0..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/CustomerListAdapter.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.switchmaterial.SwitchMaterial -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.model.GetCodes - -class CustomerListAdapter( - private val customerList: MutableList? -) : RecyclerView.Adapter() { - inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val tvCustomerName: SwitchMaterial = itemView.findViewById(R.id.tvCustomerName) - val txtLabel: TextView = itemView.findViewById(R.id.txtLabel) - } - - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): BankListViewHolder { - return BankListViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.item_customer_list_preview, - parent, - false - ) - ) - } - - override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { - val cList = customerList?.get(position) - if (cList != null) { - holder.txtLabel.text = cList.Label - if(holder.txtLabel.text.contains("outside of india",true) ) { - holder.tvCustomerName.isChecked = true - holder.tvCustomerName.setOnCheckedChangeListener { _, isChecked -> - cList.isSelected = isChecked - } - }else { - holder.tvCustomerName.setOnCheckedChangeListener { _, isChecked -> - cList.isSelected = isChecked - } - } - } - } - - override fun getItemCount(): Int { - return customerList?.size!! - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/DisableAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/DisableAdapter.kt deleted file mode 100644 index e1c4a8e..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/DisableAdapter.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import android.annotation.SuppressLint -import android.content.Context -import android.util.AttributeSet -import android.view.MotionEvent -import androidx.viewpager.widget.ViewPager - - -class DisableAdapter (context: Context, attrs: AttributeSet) : ViewPager(context, attrs) { - private var isPagingEnabled = true // change this value for enable and disable the viewpager swipe - - @SuppressLint("ClickableViewAccessibility") - override fun onTouchEvent(event: MotionEvent?): Boolean { - return this.isPagingEnabled && super.onTouchEvent(event) - } - - override fun onInterceptTouchEvent(event: MotionEvent?): Boolean { - return this.isPagingEnabled && super.onInterceptTouchEvent(event) - } - - fun setPagingEnabled(b: Boolean) { isPagingEnabled = b - } -} diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/HorizontalRecyclerViewAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/HorizontalRecyclerViewAdapter.kt deleted file mode 100644 index 2ae0dc2..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/HorizontalRecyclerViewAdapter.kt +++ /dev/null @@ -1,124 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import com.nivesh.production.niveshfd.fd.model.ROIDataList -import android.annotation.SuppressLint -import android.app.Activity -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.LinearLayout -import android.widget.TextView -import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat -import androidx.recyclerview.widget.RecyclerView -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.adapter.HorizontalRecyclerViewAdapter.HistoryAdapterViewHolder2 -import com.nivesh.production.niveshfd.fd.interfaces.OnClickListener - - -class HorizontalRecyclerViewAdapter( - private val activity: Activity, - dropdownList: MutableList, - onClickListener: OnClickListener -) : RecyclerView.Adapter() { - private var dropdownList: MutableList - private var rowIndex = -1 - private var onClickListener: OnClickListener - - inner class HistoryAdapterViewHolder2(view: View?) : RecyclerView.ViewHolder( - view!! - ) { - var txtYear: TextView = itemView.findViewById(R.id.txtYear) - var txtInterestRate: TextView = itemView.findViewById(R.id.txtInterestRate) - var rlParent: LinearLayout = itemView.findViewById(R.id.rlParent) - - } - - init { - this.dropdownList = dropdownList - this.onClickListener = onClickListener - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HistoryAdapterViewHolder2 { - val itemView = - LayoutInflater.from(parent.context).inflate(R.layout.row_dropdown, parent, false) - return HistoryAdapterViewHolder2(itemView) - } - - override fun onBindViewHolder( - holder: HistoryAdapterViewHolder2, - @SuppressLint("RecyclerView") position: Int - ) { - if (dropdownList.isNotEmpty()) { - val roiDataList: ROIDataList = dropdownList[position] - getYear(holder.txtYear, roiDataList, holder) - holder.txtInterestRate.text = roiDataList.ROI.toString().plus(" % ") - holder.rlParent.setOnClickListener { - rowIndex = position - notifyDataSetChanged() - } - if (rowIndex == position) { - onClickListener.onclickCategory(position) - holder.txtYear.background = - ResourcesCompat.getDrawable( - activity.resources, - R.drawable.rounded_corner_green_fill, - null - ) - holder.txtYear.setTextColor(ContextCompat.getColor(activity, R.color.white)) - } else { - holder.txtYear.background = - ResourcesCompat.getDrawable( - activity.resources, - R.drawable.rounded_corner_with_line1, - null - ) - holder.txtYear.setTextColor( - ContextCompat.getColor(activity, R.color.black) - ) - } - } - } - - private fun getYear(txtYear: TextView, option: ROIDataList, holder: HistoryAdapterViewHolder2) { - when (option.Tenure) { - "12" -> { - holder.rlParent.visibility = View.VISIBLE - txtYear.text = activity.getString(R.string.OneYear) - } - "24" -> { - holder.rlParent.visibility = View.VISIBLE - txtYear.text = activity.getString(R.string.TwoYears) - } - "36" -> { - holder.rlParent.visibility = View.VISIBLE - txtYear.text = activity.getString(R.string.ThreeYears) - } - "48" -> { - holder.rlParent.visibility = View.VISIBLE - txtYear.text = activity.getString(R.string.FourYears) - } - "60" -> { - holder.rlParent.visibility = View.VISIBLE - txtYear.text = activity.getString(R.string.FiveYears) - } - else -> { - holder.rlParent.visibility = View.GONE - } - - } - } - - override fun getItemCount(): Int { - return dropdownList.size - } - - override fun getItemViewType(position: Int): Int { - return position - } - - fun refresh() { - rowIndex = -1 - notifyDataSetChanged() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/PaymentModeAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/PaymentModeAdapter.kt deleted file mode 100644 index fb162b5..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/PaymentModeAdapter.kt +++ /dev/null @@ -1,90 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.model.GetCodes - -class PaymentModeAdapter( - private val listOfPayMode: MutableList, - - private var selectedAmount: String? = null -) : RecyclerView.Adapter() { - inner class BankListViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val paymentSelector: ImageView = itemView.findViewById(R.id.paymentSelector) - val paymentMethod: TextView = itemView.findViewById(R.id.paymentMethod) - val tvUpiMsg: TextView = itemView.findViewById(R.id.tvUpiMsg) - } - - private var checkedPosition: Int = -2 - - - override fun onCreateViewHolder( - parent: ViewGroup, - viewType: Int - ): BankListViewHolder { - return BankListViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.item_payment_list_preview, - parent, - false - ) - ) - } - - override fun onBindViewHolder(holder: BankListViewHolder, position: Int) { - val listOfPayMode = listOfPayMode[position] - holder.itemView.apply { - - holder.paymentMethod.text = listOfPayMode.Value - if (listOfPayMode.Value == "UPI") { - holder.tvUpiMsg.text = context.getString(R.string.upto1LakhOnly) - } else { - holder.tvUpiMsg.text = "" - } - - - - if (selectedAmount != null && (checkedPosition == -2)) { - holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_green) - checkedPosition = holder.adapterPosition - } else if (checkedPosition == -1) { - holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_outline) - } else if (checkedPosition == holder.adapterPosition) { - holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_green) - } else { - holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_outline) - } - - holder.itemView.setOnClickListener { - holder.paymentSelector.setBackgroundResource(R.drawable.ic_select_green) - if (checkedPosition != holder.adapterPosition) { - notifyItemChanged(checkedPosition) - checkedPosition = holder.adapterPosition - } - } - } - } - - override fun getItemCount(): Int { - return listOfPayMode.size - } - - private var onItemClickListener: ((GetCodes) -> Unit)? = null - - fun setOnItemClickListener(listener: (GetCodes) -> Unit) { - onItemClickListener = listener - } - - - fun getSelected(): GetCodes? { - return if (checkedPosition != -1) { - listOfPayMode[checkedPosition] - } else null - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/RecommendedBankListAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/RecommendedBankListAdapter.kt deleted file mode 100644 index 64e6217..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/RecommendedBankListAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.model.Bank - -class RecommendedBankListAdapter( - private val bankList: List -) : RecyclerView.Adapter() { - - class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) { - val txtYear :TextView = view.findViewById(R.id.txtYear) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { - val itemView: View = LayoutInflater.from(parent.context) - .inflate(R.layout.row_bank_list, parent, false) - return MyViewHolder(itemView) - } - - override fun onBindViewHolder(holder: MyViewHolder, position: Int) { - val bank: Bank = bankList[position] - holder.txtYear.text = bank.BankName - - } - - override fun getItemCount(): Int { - return bankList.size - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/SectionsPagerAdapter.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/SectionsPagerAdapter.kt deleted file mode 100644 index 359b008..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/adapter/SectionsPagerAdapter.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.nivesh.production.niveshfd.fd.adapter - -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentPagerAdapter - - -class SectionsPagerAdapter(manager: FragmentManager,private val fragments: Array) : FragmentPagerAdapter(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { - - private val titles = ArrayList() - - override fun getItem(position: Int): Fragment = fragments[position] - - override fun getCount(): Int = fragments.size - - override fun getPageTitle(position: Int): CharSequence = titles[position] - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/TokenAuthenticator.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/api/TokenAuthenticator.kt deleted file mode 100644 index 32e2814..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/TokenAuthenticator.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.nivesh.production.niveshfd.fd.api - -import okhttp3.Authenticator -import okhttp3.Request -import okhttp3.Response -import okhttp3.Route - -class TokenAuthenticator { -// override fun authenticate(route: Route?, response: Response): Request? { -//// newAccessToken = service.refreshToken(); -//// -//// // Add new header to rejected request and retry it -//// return response.request().newBuilder() -//// .header(AUTHORIZATION, newAccessToken) -//// .build(); -// -// -// } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/ApiInterface.kt deleted file mode 100644 index 4f435b3..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/ApiInterface.kt +++ /dev/null @@ -1,175 +0,0 @@ -package com.nivesh.production.niveshfd.fd.interfaces - -import com.google.gson.JsonObject -import com.nivesh.production.niveshfd.fd.model.* -import okhttp3.RequestBody -import retrofit2.Response -import retrofit2.http.* - -interface ApiInterface { - - @POST("GetRates") - suspend fun getRates( - @Body getRatesRequest: GetRatesRequest, - @Header("token") token: String - ): Response - - @POST("CheckFDCKYC") - suspend fun checkFDKYC( - @Body checkFDKYCRequest: CheckFDKYCRequest, - @Header("token") token: String - ): Response - - @POST("CreateFDApplication") - suspend fun createFDApp( - @Body createFDRequest: CreateFDRequest, - @Header("token") token: String - ): Response - - @POST("DocumentsUpload") - suspend fun documentsUpload( - @Body requestBody: DocumentUpload, - @Header("token") token: String - ): Response - - @POST("SaveFDOtherData") - suspend fun saveFDOtherData( - @Body requestBody: SaveFDOtherDataRequest, - @Header("token") token: String - ): Response - - @POST("GetFDDetails") - suspend fun getFDDetails( - @Body requestBody: GetFDDetailsRequest, - @Header("token") token: String - ): Response - - @POST("FinaliseFD") - suspend fun finaliseFD( - @Body requestBody: FinalizeFDRequest, - @Header("token") token: String - ): Response - - @POST("FinaliseKYC") - suspend fun finaliseKYC( - @Body requestBody: FinalizeKYCRequest, - @Header("token") token: String - ): Response - - @POST("PaymentRequery") - suspend fun paymentReQuery( - @Body requestBody: PaymentReQueryRequest, - @Header("token") token: String - ): Response - - // @FormUrlEncoded - @POST("GetCodes") - suspend fun getCodes( - @Body requestBody: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("CalculateFDMaturityAmount") - suspend fun getCalculateFDMaturityAmount( - @Body requestBody: GetMaturityAmountRequest, - @Header("token") token: String - ): Response - - @POST("PanCheck_S") - suspend fun panCheckApi( - @Body panCheck: PanCheckRequest, - @Header("token") token: String - ): Response - - @POST("getFDStepsCount") - suspend fun getFDStepsCount( - @Body fdStepsCountRequest: FDStepsCountRequest, - @Header("token") token: String - ): Response - - @POST("GetClientDetailV2_S") - suspend fun getClientDetails( - @Body getClientDetailsRequest: getClientDetailsRequest, - @Header("token") token: String - ): Response - - - @POST("GetCodes") - suspend fun titleApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun genderApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun annualIncomeApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun relationShipApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun maritalStatusApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun occupationApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetStateMaster") - suspend fun stateApi(@Header("token") token: String): Response - - @POST("GetCity") - suspend fun cityApi( - @Body cityRequest: CityRequest, - @Header("token") token: String - ): Response - - @GET("GetFDBankList?FDProvider=Bajaj") - suspend fun bankListApi(@Header("token") token: String, @Query("Language") language : String): Response - - @GET("GetIFSC_Autofill?") - suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response - - @GET("GetbankNames") - suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun payModeApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun customerListApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("BankValidationAPI_S") - suspend fun bankValidationApi( - @Body bankValidationApiRequest: BankValidationApiRequest, - @Header("token") token: String - ): Response - - - @POST("BankValidationAPI_S") - suspend fun getToken( - @Body bankValidationApiRequest: BankValidationApiRequest, - @Header("token") token: String - ): Response -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/OnClickListener.java b/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/OnClickListener.java deleted file mode 100644 index 75d6b4a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/OnClickListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.interfaces; - -public interface OnClickListener { - void onclickCategory(int position); -} diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/SendData.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/SendData.kt deleted file mode 100644 index e952475..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/SendData.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.interfaces - -import com.nivesh.production.niveshfd.fd.model.CreateFDApplicationResponse - -interface SendData { - fun sendDataFragment(message: CreateFDApplicationResponse) - fun sendDataFragmentStepFour(message: CreateFDApplicationResponse) -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantDetails.kt deleted file mode 100644 index 252ab36..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantDetails.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ApplicantDetails( - var AnnualIncome: String?= null, - var ApplicantAddress1: String?= null, - var ApplicantAddress2: String?= null, - var ApplicantAddress3: String?= null, - var ApplicantCity: String?= null, - var ApplicantCountry: String?= null, - var ApplicantDOB: String?= null, - var ApplicantEmail: String?= null, - var ApplicantFirstName: String?= null, - var ApplicantGender: String?= null, - var ApplicantLastName: String?= null, - var ApplicantMaritalStatus: String?= null, - var ApplicantMiddleName: String?= null, - var ApplicantMobile: String?= null, - var ApplicantOccupation: String?= null, - var ApplicantPAN: String?= null, - var ApplicantPincode: Int?= 0, - var ApplicantQualification: String?= null, - var ApplicantSalutation: String?= null, - var ApplicantState: String?= null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantRelationDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantRelationDetails.kt deleted file mode 100644 index f871b4d..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ApplicantRelationDetails.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ApplicantRelationDetails( - var ApplicantMotherFirstName: String? = null, - var ApplicantMotherLastName: String? = null, - var ApplicantRelation: String? = null, - var ApplicantRelationFirstName: String? = null, - var ApplicantRelationLastName: String? = null, - var ApplicantRelationSalutation: String? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Bank.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Bank.kt deleted file mode 100644 index 82cc887..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Bank.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class Bank( - val BankName: String, - val IFSCInitials: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankList.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankList.kt deleted file mode 100644 index 87014f3..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankList.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import java.io.Serializable - -data class BankList( - val BankName: String?, - val IFSCCode: String?, - val AccountNumber: String?, - val BranchName: String?, - val DefaultBankFlag: String?, - val IsValBank: String?, - val AccountType: String? -): Serializable - - diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiRequest.kt deleted file mode 100644 index 41673a6..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiRequest.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class BankValidationApiRequest( - var BankAccountNo: String?="", - var BankNo: Int?= 0, - var IFSC: String?= "", - var Name: String? = "", - var PhoneNo: String? = "", - var RoleId: Int? = 0 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiResponse.kt deleted file mode 100644 index bbdbf98..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/BankValidationApiResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class BankValidationApiResponse( - val DataObject: Any, - val Message: String, - val ObjectResponse: Any, - val response: ResponseXXXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CheckFDKYCRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CheckFDKYCRequest.kt deleted file mode 100644 index ac57b79..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CheckFDKYCRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CheckFDKYCRequest( - var DOB: String? ="", - var Mobile: String? = "", - var NiveshClientCode: String? = "", - var PAN: String?= "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityListResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityListResponse.kt deleted file mode 100644 index c41a7a3..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityListResponse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CityListResponse( - val DataObject: List, - val response: ResponseXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityRequest.kt deleted file mode 100644 index 3f5ac27..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CityRequest.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CityRequest( - var APIName: String? = "", - var APP_Web: String?="", - var ClientCode: String?="", - var HOCode: String?="", - var RMCode: String?="", - var RoleID: Int = 0, - var Source: String? = "", - var StateCode: Int? = 0, - var Subbroker_Code: String? = "", - var Type: String?= "", - var UID: Int = 0 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientBanklist.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientBanklist.kt deleted file mode 100644 index e58a34a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientBanklist.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ClientBanklist( - var AccountNumber: String?="", - var AccountType: String?="", - var BankName: String?="", - var BranchName: String?="", - val DefaultBankFlag: String?="", - var IFSCCode: String?="", - var IsValBank: Int? = 0 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientDetails.kt deleted file mode 100644 index 27cf480..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientDetails.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ClientDetails( - val ARNexpiredFlag: Boolean, - val EditProfileMessage: String, - val IsPartiallyFilled: Boolean, - val KYCstatus: String, - val ProfileMessage: String, - val ProfileStatus: String, - val UnifiedMessage: String, - val appliaction1_image_name: String, - val city_of_birth: String, - val clientMasterMFD: ClientMasterMFD, - val country_of_birth: String, - val created_by: String, - val created_date: String, - val email: String, - val mobile: String, - val modified_by: String, - val modified_date: String, - val sub_broker_code: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientMasterMFD.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientMasterMFD.kt deleted file mode 100644 index 0422577..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ClientMasterMFD.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ClientMasterMFD( - val CLIENT_ACCNO1: String, - val CLIENT_ACCTYPE1: String, - val CLIENT_ADD1: String, - val CLIENT_ADD2: String, - val CLIENT_ADD3: String, - val CLIENT_APPNAME1: String, - val CLIENT_CITY: String, - val CLIENT_CODE: String, - val CLIENT_COMMMODE: String, - val CLIENT_COUNTRY: String, - val CLIENT_DIVPAYMODE: String, - val CLIENT_DOB: String, - val CLIENT_EMAIL: String, - val CLIENT_FATHER_HUSBAND_GUARDIAN: String, - val CLIENT_GENDER: String, - val CLIENT_GUARDIANPAN: String, - val CLIENT_HOLDING: String, - val CLIENT_NEFT_IFSCCODE1: String, - val CLIENT_OCCUPATION_CODE: String, - val CLIENT_PAN: String, - val CLIENT_PINCODE: String, - val CLIENT_STATE: String, - val CLIENT_TAXSTATUS: String, - val CLIENT_TYPE: String, - val CM_MOBILE: String, - val Client_Title: String, - val DEFAULT_BLANK_FLAG1: String, - val Filler1: String, - val Filler2: String, - val Filler3: Any, - val NominationAuthMode: String, - val NominationOptFlag: String, - val Nominee_Title: String, - val Nominees: List, - val ParentName: String, - val ums_id: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationRequest.kt deleted file mode 100644 index 18a6a18..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationRequest.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CreateFDApplicationRequest( - var ApplicantDetails: ApplicantDetails ? = null, - var ApplicantRelationDetails: ApplicantRelationDetails? = null, - var FDInvestmentDetails: FDInvestmentDetails? = null, - var FdBankDetails: FdBankDetails? = null, - var NomineeDetails: NomineeDetails? = null, - var NomineeGuardianDetails: NomineeGuardianDetails ? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationResponse.kt deleted file mode 100644 index eb40b4f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDApplicationResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CreateFDApplicationResponse( - val Response: ResponseXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDRequest.kt deleted file mode 100644 index 9f3b856..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/CreateFDRequest.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class CreateFDRequest( - var CreateFDApplicationRequest: CreateFDApplicationRequest? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObject.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObject.kt deleted file mode 100644 index 8de55cc..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObject.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import java.io.Serializable - -data class DataObject( - var BSE_State_Code: String? = "", - var CAMS_statecode: String? = "", - var Country_Id: Int? = 0, - var State_Code: String?= "", - var State_Id: Int? = 0, - var State_Name: String? = "", - var signzyCode: String? = "" -): Serializable { - override fun toString(): String { - return State_Name.toString() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObjectX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObjectX.kt deleted file mode 100644 index e15380b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DataObjectX.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class DataObjectX( - val city_id: Int, - val city_name: String -) { - override fun toString(): String { - return city_name - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DeviceInfo.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DeviceInfo.kt deleted file mode 100644 index db72cc0..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DeviceInfo.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class DeviceInfo( - var app_version: String? = "", - var device_id: String? = "", - var device_model: String? = "", - var device_name: String? ="", - var device_os_version: String? = "", - var device_token: String? = "", - var device_type: String? = "", - var device_id_for_UMSId : String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DocumentUpload.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DocumentUpload.kt deleted file mode 100644 index 6d6eb22..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/DocumentUpload.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class DocumentUpload( - var Description: String? = null, - var DocumentType: String? = null, - var FDProvider: String? = null, - var ImageEncodeToBase64: String? = null, - var NiveshClientCode: String? = null, - var UniqueId: String? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Errors.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Errors.kt deleted file mode 100644 index eb709d5..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Errors.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class Errors( - val ErrorCode: Int, - val ErrorMessage: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDCreationDetailsResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDCreationDetailsResponse.kt deleted file mode 100644 index e78e205..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDCreationDetailsResponse.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FDCreationDetailsResponse( - val DocumentUploadFlag: Int, - val UniqueId: String, - val kycFlag: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDDataResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDDataResponse.kt deleted file mode 100644 index 912dcd3..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDDataResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FDDataResponse( - val FDAmount: Double, - val Frequency: String, - val ParameterName: String, - val PaymentUrl: String, - val RateOfInterest: Double, - val Tenure: Int, - val UniqueId: String, - val Value: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDInvestmentDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDInvestmentDetails.kt deleted file mode 100644 index 60e0c4a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDInvestmentDetails.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FDInvestmentDetails( - var CKYCNumber: String? = null, - var CitizenType: String? = null, - var CustomerType: String? = null, - var Device: String? = null, - var FDAmount: Double? = 0.0, - var Frequency: String? = null, - var IPAddress: String? = null, - var Interest: Double? = 0.0, - var NiveshClientCode: String? = null, - var Provider: String? = null, - var Source: String? = null, - var Tenure: Int? = 0, - var UniqueId: String? = "", - var RenewOption : String = "" - -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDStepsCountRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDStepsCountRequest.kt deleted file mode 100644 index 5594f46..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FDStepsCountRequest.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FDStepsCountRequest( - var FDProvider: String? = "", - var NiveshClientCode: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FdBankDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FdBankDetails.kt deleted file mode 100644 index 7341474..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FdBankDetails.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FdBankDetails( - var AccountNumber: String?= null, - var AccountType: String?= null, - var BankBranch: String?= null, - var BankName: String?= null, - var IFSCCode: String?= null, - var PaymentMode: String?= null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinaliseFD.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinaliseFD.kt deleted file mode 100644 index 650a45f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinaliseFD.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FinaliseFD( - var FDProvider: String? = "", - var NiveshClientCode: String? = "", - var UniqueId: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDRequest.kt deleted file mode 100644 index cdf23ed..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDRequest.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FinalizeFDRequest( - var FinaliseFD: FinaliseFD? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDResponse.kt deleted file mode 100644 index 12b0c7c..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeFDResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FinalizeFDResponse( - val Response: ResponseXXXXXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeKYCRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeKYCRequest.kt deleted file mode 100644 index 271d506..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/FinalizeKYCRequest.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class FinalizeKYCRequest( - var FDProvider: String? = "", - var NiveshClientCode: String? = "", - var UniqueId: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCalculateMaturityAmountResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCalculateMaturityAmountResponse.kt deleted file mode 100644 index cc51c66..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCalculateMaturityAmountResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetCalculateMaturityAmountResponse( - val Response: ResponseXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeRequest.kt deleted file mode 100644 index ea289e0..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetCodeRequest( - var Category: String ? = null, - var InputValue: String? = null, - var Language: String ? = null, - var ProductName: String? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeResponse.kt deleted file mode 100644 index a354e56..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodeResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetCodeResponse( - val Response: ResponseX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodes.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodes.kt deleted file mode 100644 index 7e5ef1a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetCodes.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetCodes( - val Label: String, - var Value: String, - var isSelected : Boolean -) { - override fun toString(): String { - return Label - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDBankListResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDBankListResponse.kt deleted file mode 100644 index bc05683..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDBankListResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetFDBankListResponse( - val Response: ResponseXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsRequest.kt deleted file mode 100644 index ddf5bd3..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsRequest.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetFDDetailsRequest( - var FDProvider: String? = "", - var NiveshClientCode: String? = "", - var UniqueId: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsResponse.kt deleted file mode 100644 index afe61cc..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetFDDetailsResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetFDDetailsResponse( - val Response: ResponseXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeListResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeListResponse.kt deleted file mode 100644 index dbc616b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeListResponse.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetIFSCCodeListResponse( - val IFSCCodes: MutableList, - val Response: ResponseXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeResponse.kt deleted file mode 100644 index a58cd9b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetIFSCCodeResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetIFSCCodeResponse( - val IFSCCODEServiceResult: List -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetMaturityAmountRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetMaturityAmountRequest.kt deleted file mode 100644 index 8898e06..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetMaturityAmountRequest.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetMaturityAmountRequest( - var FDAmount: Int? = 0, - var FDProvider: String? = "", - var Frequency: String? = "", - var Interest: Double? = 0.0, - var Tenure: Int? = 0 -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesRequest.kt deleted file mode 100644 index 8118874..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesRequest.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import com.google.gson.annotations.SerializedName - -data class GetRatesRequest( - @SerializedName("FDProvider") var fdProvider: String? = null, - @SerializedName("Frequency") var frequency: String? = null, - @SerializedName("Type") var type: String? = null -) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesResponse.kt deleted file mode 100644 index eee3ae5..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/GetRatesResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class GetRatesResponse( - val Response: Response -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/IFSCCODEServiceResult.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/IFSCCODEServiceResult.kt deleted file mode 100644 index 0f1c418..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/IFSCCODEServiceResult.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class IFSCCODEServiceResult( - val BankBranch: String, - val BnkDescr: String, - val BnkShrtDescr: String, - val Code: String, - val IfscCode: String, - val intCustbnk_pk: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Nominee.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Nominee.kt deleted file mode 100644 index 1afb890..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Nominee.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class Nominee( - val NomineeApplicablePercent: Double, - val NomineeDOB: String, - val NomineeGuardian: String, - val NomineeGuardianPAN: String, - val NomineeMinorFlag: String, - val NomineeName: String, - val NomineePAN: String, - val NomineeRelationship: String -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeDetails.kt deleted file mode 100644 index ab83dd2..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeDetails.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class NomineeDetails( - var NomineeAddress1: String?= null, - var NomineeAddress2: String?= null, - var NomineeAddress3: String?= null, - var NomineeCity: String?= null, - var NomineeCountry: String?= null, - var NomineeDOB: String?= null, - var NomineeFirstName: String?= null, - var NomineeGender: String?= null, - var NomineeLastName: String?= null, - var NomineeMiddleName: String?= null, - var NomineePincode: Int?= 0, - var NomineeRelation: String?= null, - var NomineeSalutation: String?= null, - var NomineeState: String?= null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeGuardianDetails.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeGuardianDetails.kt deleted file mode 100644 index 9f1764c..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/NomineeGuardianDetails.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class NomineeGuardianDetails( - var GuardianAddress1: String?= null, - var GuardianAddress2: String?= null, - var GuardianAddress3: String?= null, - var GuardianAge: Int?= 0, - var GuardianCity: String?= null, - var GuardianCountry: String?= null, - var GuardianName: String?= null, - var GuardianPincode: Int?= 0, - var GuardianSalutation: String?= null, - var GuardianState: String?= null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ObjectResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ObjectResponse.kt deleted file mode 100644 index 908f534..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ObjectResponse.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ObjectResponse( - val TransactionCount: Int, - val clientDetails: ClientDetails, - val languageid: Int, - val membersList: List, - val ClientBanklist : List -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckRequest.kt deleted file mode 100644 index 970e1c8..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckRequest.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import com.google.gson.annotations.SerializedName - -data class PanCheckRequest( - @SerializedName("client_code") - var clientCode: String? = null, - @SerializedName("sub_broker_code") - var subBrokerCode: String? = null, - @SerializedName("pan_number") - var panNumber: String? = null, - @SerializedName("mobile_number") - var mobileNumber: String? = null -) diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckResponse.kt deleted file mode 100644 index 3f266c6..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PanCheckResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class PanCheckResponse( - val response: ResponseXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryRequest.kt deleted file mode 100644 index 6bcb24a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryRequest.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class PaymentReQueryRequest( - var NiveshClientCode: String? = "", - var UniqueId: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryResponse.kt deleted file mode 100644 index bbc8030..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/PaymentReQueryResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class PaymentReQueryResponse( - val Response: ResponseXXXXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ROIDataList.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ROIDataList.kt deleted file mode 100644 index fdf77f9..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ROIDataList.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ROIDataList( - val Frequency: String, - val Provider: String, - val ROI: Double, - val Tenure: String, - val Type: String -) { - override fun toString(): String { - return Tenure.plus(" Months ").plus(" | ").plus(ROI).plus("%") - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Response.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Response.kt deleted file mode 100644 index 99d7db9..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/Response.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import com.nivesh.production.niveshfd.fd.model.Errors - -data class Response( - val Errors: List, - val Message: String, - var ROIDatalist: MutableList, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseX.kt deleted file mode 100644 index 0d9f528..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseX.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseX( - val Errors: List, - val GetCodesList: MutableList, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXX.kt deleted file mode 100644 index 8aed9bf..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXX.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXX( - val Errors: List, - val MaturityAmount: Double, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXX.kt deleted file mode 100644 index 8fec636..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXX.kt deleted file mode 100644 index 8ccd6cf..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXX.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXX( - val Errors: List, - val Message: String, - val Status: String, - val StatusCode: Int, - val StepsCount: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXX.kt deleted file mode 100644 index 5edfa7f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXX.kt deleted file mode 100644 index 8978bf0..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXX.kt deleted file mode 100644 index 0c6cb79..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXX.kt deleted file mode 100644 index dd3406a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXX.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXX( - val BankList: List, - val Errors: List, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXX.kt deleted file mode 100644 index 9d04f0b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXX.kt deleted file mode 100644 index 6b10d8d..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXX.kt deleted file mode 100644 index 2cf920c..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXX.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXXX( - val Errors: List, - val FDCreationDetailsResponse: FDCreationDetailsResponse, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXX.kt deleted file mode 100644 index a76524a..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXX.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -import com.nivesh.production.niveshfd.fd.util.Resource - -data class ResponseXXXXXXXXXXXX( - val Errors: List, - val FDDataResponse: FDDataResponse, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXX.kt deleted file mode 100644 index 9282411..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXX.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXXXXX( - val Errors: List, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXX.kt deleted file mode 100644 index 9d63740..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXX.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXXXXXX( - val message: String, - val status: String, - val status_code: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXX.kt deleted file mode 100644 index d46306c..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXX.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXXXXXXX( - val Errors: List, - val Message: String, - val Status: String, - val StatusCode: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXXX.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXXX.kt deleted file mode 100644 index 34df53f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/ResponseXXXXXXXXXXXXXXXX.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class ResponseXXXXXXXXXXXXXXXX( - val Errors: List, - val Message: String, - val Status: String, - val StatusCode: Int, - val UniqueId: String, - val KYCFlag: Int -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataRequest.kt deleted file mode 100644 index cfc420b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class SaveFDOtherDataRequest( - var FDProvider: String?= "", - var NiveshClientCode: String? = "", - var UniqueId: String? = "", - var Values: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataResponse.kt deleted file mode 100644 index b6178c1..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/SaveFDOtherDataResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class SaveFDOtherDataResponse( - val Response: ResponseXXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StateListResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StateListResponse.kt deleted file mode 100644 index 93bed5b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StateListResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class StateListResponse( - val DataObject: List, - val Message: Any, - val ObjectResponse: Any, - val response: ResponseXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StepsCountResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StepsCountResponse.kt deleted file mode 100644 index 3669447..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/StepsCountResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class StepsCountResponse( - val Response: ResponseXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UploadResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UploadResponse.kt deleted file mode 100644 index f3b63c1..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UploadResponse.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class UploadResponse( - val Response: ResponseXXXXXXXXXXXX -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UserRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UserRequest.kt deleted file mode 100644 index 4941ab0..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/UserRequest.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class UserRequest( - var AppOrWeb: String? = "", - var IPAddress: String? = "", - var LoggedInRoleId: Int = 0, - var Source: String? = "", - var UID: Int? = 0, - var deviceInfo: DeviceInfo? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsRequest.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsRequest.kt deleted file mode 100644 index 12d39c2..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class getClientDetailsRequest( - var AppOrWeb: String? = "", - var UserRequest: UserRequest? = null, - var client_code: String? = "", - var sub_broker_code: String? = "" -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsResponse.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsResponse.kt deleted file mode 100644 index fec61c6..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/model/getClientDetailsResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.nivesh.production.niveshfd.fd.model - -data class getClientDetailsResponse( -// val DataObject: Any ?, -// val Message: Any, - val ObjectResponse: ObjectResponse? = null, - val response: ResponseXXXXXXX? = null -) \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/repositories/MainRepository.kt deleted file mode 100644 index e9d5273..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/repositories/MainRepository.kt +++ /dev/null @@ -1,111 +0,0 @@ -package com.nivesh.production.niveshfd.fd.repositories - -import com.nivesh.production.niveshfd.fd.interfaces.ApiInterface -import com.nivesh.production.niveshfd.fd.model.* - - -class MainRepository constructor(private val apiInterface: ApiInterface) { - - // MainActivity - suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) = - apiInterface.getFDStepsCount(requestBody, token) - - suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) = - apiInterface.getClientDetails(getClientDetails, token) - - - // Step One - suspend fun getRatesResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) - - suspend fun getCodesResponse(requestBody: GetCodeRequest, token: String) = - apiInterface.getCodes(requestBody, token) - - suspend fun createCalculateFDMaturityAmount( - requestBody: GetMaturityAmountRequest, - token: String - ) = - apiInterface.getCalculateFDMaturityAmount(requestBody, token) - - - // Step Two - suspend fun createFDKYCResponse(createFDRequest: CreateFDRequest, token: String) = - apiInterface.createFDApp(createFDRequest, token) - - suspend fun panCheck(panCheck: PanCheckRequest, token: String) = - apiInterface.panCheckApi(panCheck, token) - - suspend fun titleCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.titleApi(getCodeRequest, token) - - suspend fun genderCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.genderApi(getCodeRequest, token) - - suspend fun annualIncomeCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.annualIncomeApi(getCodeRequest, token) - - suspend fun relationShipCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.relationShipApi(getCodeRequest, token) - - suspend fun maritalStatusCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.maritalStatusApi(getCodeRequest, token) - - suspend fun occupationCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.occupationApi(getCodeRequest, token) - - suspend fun stateCheck(token: String) = - apiInterface.stateApi(token) - - suspend fun cityCheck(cityRequest: CityRequest, token: String) = - apiInterface.cityApi(cityRequest, token) - - suspend fun bankListCheck(token: String, language: String) = - apiInterface.bankListApi(token, language) - - suspend fun ifscCodeCheck(str: String) = - apiInterface.getIFSCApi(str) - - suspend fun ifscCodeBankDetailsCheck(str: String, token: String) = - apiInterface.getIFSCBankDetailsApi(str, token) - - suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.payModeApi(getCodeRequest, token) - - suspend fun bankValidationApiRequest(bankValidationApiRequest: BankValidationApiRequest, token: String) = - apiInterface.bankValidationApi(bankValidationApiRequest, token) - - - - // Step Three - suspend fun documentsUploadResponse(getRatesRequest: DocumentUpload, token: String) = - apiInterface.documentsUpload(getRatesRequest, token) - - - suspend fun saveFDOtherDataResponse(getRatesRequest: SaveFDOtherDataRequest, token: String) = - apiInterface.saveFDOtherData(getRatesRequest, token) - - suspend fun getFDDetailsResponse(getRatesRequest: GetFDDetailsRequest, token: String) = - apiInterface.getFDDetails(getRatesRequest, token) - - suspend fun updateFDPaymentStatusResponse(getRatesRequest: GetRatesRequest, token: String) = - apiInterface.getRates(getRatesRequest, token) - - - // Step 4 - suspend fun customerListCheck(getCodeRequest: GetCodeRequest, token: String) = - apiInterface.customerListApi(getCodeRequest, token) - - suspend fun checkFDKYCRequest(checkFDKYCRequest: CheckFDKYCRequest, token: String) = - apiInterface.checkFDKYC(checkFDKYCRequest, token) - - - // Step 5 - suspend fun finaliseFDResponse(getRatesRequest: FinalizeFDRequest, token: String) = - apiInterface.finaliseFD(getRatesRequest, token) - - suspend fun finaliseKYCResponse(getRatesRequest: FinalizeKYCRequest, token: String) = - apiInterface.finaliseKYC(getRatesRequest, token) - - suspend fun paymentReQueryResponse(getRatesRequest: PaymentReQueryRequest, token: String) = - apiInterface.paymentReQuery(getRatesRequest, token) -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/NiveshFdMainActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/NiveshFdMainActivity.kt deleted file mode 100644 index 7f72314..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/NiveshFdMainActivity.kt +++ /dev/null @@ -1,481 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.activity - -import android.annotation.SuppressLint -import android.app.Dialog -import android.content.Intent -import android.graphics.Bitmap -import android.graphics.drawable.Drawable -import android.os.Bundle -import android.util.Log -import android.view.View -import android.view.WindowManager -import android.webkit.WebView -import android.webkit.WebViewClient -import android.widget.TextView -import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider -import androidx.viewpager.widget.ViewPager -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.ActivityNiveshFdBinding -import com.nivesh.production.niveshfd.fd.adapter.DisableAdapter -import com.nivesh.production.niveshfd.fd.adapter.SectionsPagerAdapter -import com.nivesh.production.niveshfd.fd.api.ApiClient -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.CreateFDRequest -import com.nivesh.production.niveshfd.fd.model.FdBankDetails -import com.nivesh.production.niveshfd.fd.model.NomineeDetails -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.repositories.MainRepository -import com.nivesh.production.niveshfd.fd.ui.fragment.* -import com.nivesh.production.niveshfd.fd.ui.providerfactory.* -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.defaultShape -import com.nivesh.production.niveshfd.fd.util.Common.Companion.selectedShape -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showDialogValidation -import com.nivesh.production.niveshfd.fd.util.ProgressUtil.hideLoading -import com.nivesh.production.niveshfd.fd.util.ProgressUtil.showLoading -import com.nivesh.production.niveshfd.fd.util.Resource -import com.nivesh.production.niveshfd.fd.viewModel.* -import com.nivesh.production.niveshfd.fd.ui.fragment.StepThreeNiveshFDFragment - - -class NiveshFdMainActivity : BaseActivity() { - lateinit var binding: ActivityNiveshFdBinding - lateinit var viewModel: BajajFDViewModel - - private val stepOneNiveshFDFragment = StepOneNiveshFDFragment() - private val stepTwoNiveshFDFragment = StepTwoNiveshFDFragment() - private val stepThreeNiveshFDFragment = StepThreeNiveshFDFragment() - private val stepFourBajajFDFragment = StepFourNiveshFDFragment() - private val stepFiveNiveshFDFragment = StepFiveNiveshFDFragment() - - var createFDRequest: CreateFDRequest = CreateFDRequest() - var createFDApplicantRequest: CreateFDApplicationRequest = CreateFDApplicationRequest() - var applicantDetails: ApplicantDetails = ApplicantDetails() - var fdInvestmentDetails: FDInvestmentDetails = FDInvestmentDetails() - var applicantRelationDetails: ApplicantRelationDetails = ApplicantRelationDetails() - var fdBankDetails: FdBankDetails = FdBankDetails() - var nomineeDetails: NomineeDetails = NomineeDetails() - var nomineeGuardianDetails: NomineeGuardianDetails = NomineeGuardianDetails() - var getClientDetailsResponse: getClientDetailsResponse = getClientDetailsResponse() - - private lateinit var sectionsPagerAdapter: SectionsPagerAdapter - private lateinit var fragments: Array - var dialogWebView: Dialog? = null - var stepCount: Int = 0 - var uniqueId: String = "" - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - init() - } - - - private fun init() { - //start Repository - viewModel = ViewModelProvider( - this@NiveshFdMainActivity, - FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[BajajFDViewModel::class.java] - binding = ActivityNiveshFdBinding.inflate(layoutInflater) - binding.apply { - setContentView(this.root) - } - - PreferenceManager(this@NiveshFdMainActivity).setLoginRole(5) - PreferenceManager(this@NiveshFdMainActivity).setClientCode("8872") - PreferenceManager(this@NiveshFdMainActivity).setSubBrokerID("1038") - PreferenceManager(this@NiveshFdMainActivity).setToken("636F8F63-06C4-4D95-8562-392B34025FB0") - - if (Common.isNetworkAvailable(this)) { - getStepsCountApi() - } - - binding.imgBack.setOnClickListener { - finish() - } - } - - private fun getStepsCountApi() { - if (Common.isNetworkAvailable(this)) { - val fdStepsCount = FDStepsCountRequest() - fdStepsCount.FDProvider = getString(R.string.bajaj) - fdStepsCount.NiveshClientCode = - PreferenceManager(this@NiveshFdMainActivity).getClientCode() - viewModel.getStepsCount( - fdStepsCount, - PreferenceManager(this@NiveshFdMainActivity).getToken(), - this - ) - viewModel.getStepsCountMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->${response.data.toString()}") - val stepsCountResponse: StepsCountResponse = - Gson().fromJson( - response.data?.toString(), - StepsCountResponse::class.java - ) - stepsCountResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - stepCount = stepsCountResponse.Response.StepsCount - if (stepCount == 3) { - binding.llStep4.visibility = View.GONE - } - getClientDetailsApi(stepsCountResponse.Response.StepsCount) - } - 650 -> "" - else -> { - if (stepsCountResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - this@NiveshFdMainActivity, - stepsCountResponse.Response.Errors[0].ErrorMessage - ) - }else{ - showDialogValidation( - this@NiveshFdMainActivity, - "".plus(stepsCountResponse.Response.Message) - ) - } - } - } - } - } - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(this@NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - else -> { - showDialogValidation(this@NiveshFdMainActivity, response.message) - } - - } - } - } - } - - private fun getClientDetailsApi(stepsCount: Int) { - if (Common.isNetworkAvailable(this@NiveshFdMainActivity)) { - val getClientDetailsRequest = getClientDetailsRequest() - getClientDetailsRequest.client_code = - PreferenceManager(this@NiveshFdMainActivity).getClientCode() - getClientDetailsRequest.AppOrWeb = getString(R.string.app) - getClientDetailsRequest.sub_broker_code = - PreferenceManager(this@NiveshFdMainActivity).getSubBrokerID() - val userRequest = UserRequest() - userRequest.UID = 0 - userRequest.IPAddress = "" - userRequest.Source = getString(R.string.source) - userRequest.AppOrWeb = getString(R.string.app) - userRequest.LoggedInRoleId = PreferenceManager(this@NiveshFdMainActivity).getLoginRole() - - val deviceInfo = DeviceInfo() - deviceInfo.device_id = "" - deviceInfo.device_id_for_UMSId = "" - deviceInfo.device_type = getString(R.string.app) - deviceInfo.device_model = "" - deviceInfo.device_token = "" - deviceInfo.device_name = "" - deviceInfo.app_version = "" - deviceInfo.device_os_version = "" - userRequest.deviceInfo = deviceInfo - getClientDetailsRequest.UserRequest = userRequest - Log.e("getClientDetail ", " Request -->" + Gson().toJson(getClientDetailsRequest)) - showLoading(this@NiveshFdMainActivity) - viewModel.getClientDetails( - getClientDetailsRequest, - PreferenceManager(this@NiveshFdMainActivity).getToken(), - this - ) - viewModel.getClientDetailsMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("getClientDetail ", " response -->${response.data.toString()}") - getClientDetailsResponse = - Gson().fromJson( - response.data?.toString(), - getClientDetailsResponse::class.java - ) - getClientDetailsResponse.response?.status_code.let { code -> - when (code) { - 200 -> { - setViewPager(stepsCount) - } - 650 -> "" - else -> { - showDialogValidation( - this@NiveshFdMainActivity, - response.message - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(this@NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - hideLoading() - } - is Resource.DataError -> { - - } - else -> { - showDialogValidation(this@NiveshFdMainActivity, response.message) - } - } - } - } - } - - private fun setViewPager(stepsCount: Int) { - // steps setting - setBackground(selectedShape(), defaultShape(), defaultShape(), defaultShape(), stepsCount) - - if (stepCount == 3) { - fragments = arrayOf( - stepOneNiveshFDFragment, - stepTwoNiveshFDFragment, - stepFourBajajFDFragment, - stepFiveNiveshFDFragment - ) - } else if (stepCount == 4) { - fragments = arrayOf( - stepOneNiveshFDFragment, - stepTwoNiveshFDFragment, - stepThreeNiveshFDFragment, - stepFourBajajFDFragment, - stepFiveNiveshFDFragment - ) - } - - // set viewPager - sectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager, fragments) - val viewPager: DisableAdapter = binding.viewPager - viewPager.adapter = sectionsPagerAdapter - viewPager.setPagingEnabled(false) - // if (sectionsPagerAdapter.count > 1) { - viewPager.offscreenPageLimit = stepCount - // } else { - // viewPager.offscreenPageLimit = 1 - // } - viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { - override fun onPageScrolled( - position: Int, - positionOffset: Float, - positionOffsetPixels: Int - ) { - } - - override fun onPageSelected(position: Int) { - when (position) { - 0 -> { - setBackground( - defaultShape(), - defaultShape(), - defaultShape(), - defaultShape(), - stepsCount - ) - } - 1 -> { - setBackground( - selectedShape(), - defaultShape(), - defaultShape(), - defaultShape(), - stepsCount - ) - } - 2 -> { - setBackground( - selectedShape(), - selectedShape(), - defaultShape(), - defaultShape(), - stepsCount - ) - } - 3 -> { - setBackground( - selectedShape(), - selectedShape(), - selectedShape(), - defaultShape(), - stepsCount - ) - } - 4 -> { - setBackground( - selectedShape(), - selectedShape(), - selectedShape(), - selectedShape(), - stepsCount - ) - } - } - } - - override fun onPageScrollStateChanged(state: Int) { - - } - }) - - } - - - // set background for selected/ default step - private fun setBackground( - drawable: Drawable?, - drawable1: Drawable?, - drawable2: Drawable?, - drawable3: Drawable?, - stepsCount: Int - ) { - binding.stepOne.background = drawable - binding.stepTwo.background = drawable1 - binding.stepThree.background = drawable2 - if (stepsCount == 4) { - binding.stepFour.background = drawable3 - } - - } - - // step 1 response - fun stepOneApi() { - binding.viewPager.currentItem = 1 - } - - // step 2 response - fun stepTwoApi() { - binding.viewPager.currentItem = 2 - if (stepCount == 3) { - stepFourBajajFDFragment.displayReceivedData() - } - } - - // step 3 response - fun stepThreeApi() { - binding.viewPager.currentItem = 3 - stepFourBajajFDFragment.displayReceivedData() - } - - // step 4 response - fun stepFourApi(payUrl: String, value: String) { - paymentDialog(payUrl, value) - } - - @SuppressLint("SetJavaScriptEnabled") - fun paymentDialog(payUrl: String, value: String) { - Log.e("payUrl", "-->$payUrl") - Log.e("value", "-->$value") - dialogWebView = Dialog(this@NiveshFdMainActivity) - dialogWebView!!.setContentView(R.layout.row_fd_pay1) - dialogWebView!!.setCancelable(true) - val tvCancel = dialogWebView!!.findViewById(R.id.tvCancel) - tvCancel.setOnClickListener { - dialogWebView!!.dismiss() - } - val lp = WindowManager.LayoutParams() - lp.copyFrom(dialogWebView!!.window?.attributes) - lp.width = WindowManager.LayoutParams.MATCH_PARENT - lp.height = WindowManager.LayoutParams.MATCH_PARENT - dialogWebView!!.window?.attributes = lp - val wVPay = dialogWebView!!.findViewById(R.id.wVPay) - wVPay.settings.javaScriptEnabled = true - wVPay.settings.domStorageEnabled = true - wVPay.loadData( - "
\n" + " \n" + "
\n" + - "", - "text/html", - "UTF-8" - ) - wVPay.webViewClient = object : WebViewClient() { - override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { - super.onPageStarted(view, url, favicon) - Log.e("onPageStarted", "-->$url") - if (url.isNotEmpty() && url.contains("https://uat.nivesh.com/bajajFD/OrderStatus")) { - if (dialogWebView!!.isShowing) { - dialogWebView!!.dismiss() - paymentReQueryApi() - } - } - } - } - dialogWebView!!.show() - } - - fun paymentReQueryApi() { - if (Common.isNetworkAvailable(this)) { - val paymentReQueryRequest = PaymentReQueryRequest() - paymentReQueryRequest.UniqueId = uniqueId - paymentReQueryRequest.NiveshClientCode = - getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - showLoading(this@NiveshFdMainActivity) - viewModel.getPaymentReQuery( - paymentReQueryRequest, - PreferenceManager(this@NiveshFdMainActivity).getToken(), - this - ) - viewModel.getPaymentReQueryMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("paymentReQueryApi ", "response -->$response") - val paymentReQueryResponse: PaymentReQueryResponse = - Gson().fromJson( - response.data?.toString(), - PaymentReQueryResponse::class.java - ) - paymentReQueryResponse.Response.StatusCode.let { code -> - when (code) { - 650 -> "" - else -> { - if (stepCount == 4) { - binding.viewPager.currentItem = 4 - } else { - binding.viewPager.currentItem = 3 - } - stepFiveNiveshFDFragment.getData(paymentReQueryResponse) - } - } - } - } - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(this@NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - hideLoading() - } - is Resource.DataError -> { - - } - else -> { - showDialogValidation(this@NiveshFdMainActivity, response.message) - } - } - } - } - } - - fun retryMethod() { - val intent: Intent = intent - finish() - startActivity(intent) - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/PaymentActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/PaymentActivity.kt deleted file mode 100644 index 2a98259..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/PaymentActivity.kt +++ /dev/null @@ -1,187 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.activity - -import android.app.Dialog -import android.graphics.Bitmap -import android.os.Bundle -import android.util.Log -import android.view.View -import android.view.WindowManager -import android.webkit.WebView -import android.webkit.WebViewClient -import android.widget.TextView -import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProvider -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepFiveBinding -import com.nivesh.production.niveshfd.fd.api.ApiClient -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.PaymentReQueryRequest -import com.nivesh.production.niveshfd.fd.model.PaymentReQueryResponse -import com.nivesh.production.niveshfd.fd.repositories.MainRepository -import com.nivesh.production.niveshfd.fd.ui.providerfactory.FDModelProviderFactory -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Constants -import com.nivesh.production.niveshfd.fd.util.ProgressUtil -import com.nivesh.production.niveshfd.fd.util.Resource -import com.nivesh.production.niveshfd.fd.viewModel.BajajFDViewModel - -class PaymentActivity : BaseActivity() { - - private lateinit var binding: FragmentNiveshfdStepFiveBinding - var dialogWebView: Dialog? = null - lateinit var viewModel: BajajFDViewModel - private var clientCode : String = "" - var uniqueId : String = "" - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - viewModel = ViewModelProvider( - this@PaymentActivity, - FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) - )[BajajFDViewModel::class.java] - binding = FragmentNiveshfdStepFiveBinding.inflate(layoutInflater) - - binding.btnViewOrder.setOnClickListener { - (this@PaymentActivity).setResult(RESULT_OK) - (this@PaymentActivity).finish() - } - - binding.tvRetry.setOnClickListener { - (this@PaymentActivity).setResult(RESULT_OK) - (this@PaymentActivity).finish() - } - if (intent != null){ - - clientCode = intent.getStringExtra("clientCode").toString() - paymentDialog(intent.getStringExtra("url").toString(), intent.getStringExtra("value").toString()) - } - - } - - private fun paymentDialog(payUrl: String, value: String) { - Log.e("payUrl", "-->$payUrl") - Log.e("value", "-->$value") - dialogWebView = Dialog(this@PaymentActivity) - dialogWebView!!.setContentView(R.layout.row_fd_pay1) - dialogWebView!!.setCancelable(true) - val tvCancel = dialogWebView!!.findViewById(R.id.tvCancel) - tvCancel.setOnClickListener { - dialogWebView!!.dismiss() - (this@PaymentActivity).setResult(RESULT_OK) - (this@PaymentActivity).finish() - } - val lp = WindowManager.LayoutParams() - lp.copyFrom(dialogWebView!!.window?.attributes) - lp.width = WindowManager.LayoutParams.MATCH_PARENT - lp.height = WindowManager.LayoutParams.MATCH_PARENT - dialogWebView!!.window?.attributes = lp - val wVPay = dialogWebView!!.findViewById(R.id.wVPay) - wVPay.settings.javaScriptEnabled = true - wVPay.settings.domStorageEnabled = true - wVPay.loadData( - "
\n" + " \n" + "
\n" + - "", - "text/html", - "UTF-8" - ) - wVPay.webViewClient = object : WebViewClient() { - override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) { - super.onPageStarted(view, url, favicon) - Log.e("onPageStarted", "-->$url") - if (url.isNotEmpty() && url.contains(Constants.paymentUrl)) { - if (dialogWebView!!.isShowing) { - dialogWebView!!.dismiss() - paymentReQueryApi() - } - } - } - } - dialogWebView!!.show() - } - - fun paymentReQueryApi() { - if (Common.isNetworkAvailable(this)) { - val paymentReQueryRequest = PaymentReQueryRequest() - paymentReQueryRequest.UniqueId = uniqueId - paymentReQueryRequest.NiveshClientCode = clientCode - ProgressUtil.showLoading(this@PaymentActivity) - viewModel.getPaymentReQuery( - paymentReQueryRequest, - PreferenceManager(this@PaymentActivity).getToken(), - this - ) - viewModel.getPaymentReQueryMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("paymentReQueryApi ", "response -->$response") - val paymentReQueryResponse: PaymentReQueryResponse = - Gson().fromJson( - response.data?.toString(), - PaymentReQueryResponse::class.java - ) - paymentReQueryResponse.Response.StatusCode.let { code -> - when (code) { - 650 -> "" - else -> { - getData(paymentReQueryResponse) - } - } - } - } - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(this@PaymentActivity, message) - } - } - is Resource.Loading -> { - ProgressUtil.hideLoading() - } - is Resource.DataError -> { - - } - else -> { - Common.showDialogValidation(this@PaymentActivity, response.message) - } - } - } - } - } - - - private fun getData(paymentReQueryResponse: PaymentReQueryResponse) { - if (paymentReQueryResponse.Response.StatusCode == 200) { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - val arrOfStr: List = - paymentReQueryResponse.Response.Message.split(" ", limit = 2) - binding.tvCongrats.text = arrOfStr[0] - binding.tvCongrats.setTextColor( - ContextCompat.getColor( - this@PaymentActivity, - R.color.green - ) - ) - binding.tvSuccessMessage.text = arrOfStr[1] - } - } else { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - binding.tvCongrats.text = paymentReQueryResponse.Response.Status - binding.tvCongrats.setTextColor( - ContextCompat.getColor( - this@PaymentActivity, - R.color.red - ) - ) - binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message - } - } - binding.tvRetry.visibility = View.VISIBLE - binding.btnViewOrder.visibility = View.GONE - } - - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFiveNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFiveNiveshFDFragment.kt deleted file mode 100644 index c97801f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFiveNiveshFDFragment.kt +++ /dev/null @@ -1,208 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.fragment - -import android.app.Activity -import android.os.Bundle -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepFiveBinding -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Resource - -class StepFiveNiveshFDFragment : Fragment() { - - private var _binding: FragmentNiveshfdStepFiveBinding? = null - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - - _binding = FragmentNiveshfdStepFiveBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - binding.btnViewOrder.setOnClickListener { - (activity as NiveshFdMainActivity).setResult(Activity.RESULT_OK) - (activity as NiveshFdMainActivity).finish() - } - - binding.tvRetry.setOnClickListener { - (activity as NiveshFdMainActivity).retryMethod() - } - } - - fun getData(paymentReQueryResponse: PaymentReQueryResponse) { - if (paymentReQueryResponse.Response.StatusCode == 200) { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - val arrOfStr: List = - paymentReQueryResponse.Response.Message.split(" ", limit = 2) - binding.tvCongrats.text = arrOfStr[0] - binding.tvCongrats.setTextColor( - ContextCompat.getColor( - activity as NiveshFdMainActivity, - R.color.green - ) - ) - binding.tvSuccessMessage.text = arrOfStr[1] - } - finalizeFDApi() - - } else { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - if (paymentReQueryResponse.Response.Message.isNotEmpty()) { - binding.tvCongrats.text = paymentReQueryResponse.Response.Status - binding.tvCongrats.setTextColor( - ContextCompat.getColor( - activity as NiveshFdMainActivity, - R.color.red - ) - ) - binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message - } - } - binding.tvRetry.visibility = View.VISIBLE - binding.btnViewOrder.visibility = View.GONE - } - - } - - private fun finalizeFDApi() { - val finalizeFDRequest = FinalizeFDRequest() - val finaliseFD = FinaliseFD() - finaliseFD.FDProvider = getString(R.string.bajaj) - finaliseFD.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - finaliseFD.UniqueId = (activity as NiveshFdMainActivity).uniqueId - finalizeFDRequest.FinaliseFD = finaliseFD - - (activity as NiveshFdMainActivity).viewModel.finaliseFD( - finalizeFDRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFinalizeFDMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("finalizeKYC ", " response-->${response.data.toString()}") - val finalizeFDResponse: FinalizeFDResponse = - Gson().fromJson(response.data?.toString(), FinalizeFDResponse::class.java) - finalizeFDResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if ( finalizeFDResponse.Response.KYCFlag == 0){ - finalizeKYCApi() - } else { - - } - } - 650 -> "" - else -> { - if (finalizeFDResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - finalizeFDResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(finalizeFDResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun finalizeKYCApi() { - val finalizeKYCRequest = FinalizeKYCRequest() - finalizeKYCRequest.FDProvider = getString(R.string.bajaj) - finalizeKYCRequest.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - finalizeKYCRequest.UniqueId = (activity as NiveshFdMainActivity).uniqueId - (activity as NiveshFdMainActivity).viewModel.finaliseKYC( - finalizeKYCRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFinalizeKYCMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("finalizeKYC ", " response-->${response.data.toString()}") - val finalizeFDResponse: FinalizeFDResponse = - Gson().fromJson(response.data?.toString(), FinalizeFDResponse::class.java) - finalizeFDResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - - } - 650 -> "" - else -> { - if (finalizeFDResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - finalizeFDResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(finalizeFDResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFourNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFourNiveshFDFragment.kt deleted file mode 100644 index a8fa3f7..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepFourNiveshFDFragment.kt +++ /dev/null @@ -1,329 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.fragment - -import android.os.Bundle -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.core.content.res.ResourcesCompat -import androidx.fragment.app.Fragment -import androidx.recyclerview.widget.LinearLayoutManager -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepFourBinding -import com.nivesh.production.niveshfd.fd.adapter.CustomerListAdapter -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showDialogValidation -import com.nivesh.production.niveshfd.fd.util.Resource - -class StepFourNiveshFDFragment : Fragment() { - - private var _binding: FragmentNiveshfdStepFourBinding? = null - private val binding get() = _binding!! - - private lateinit var listOfCustomer: MutableList - private var selectedList: String = "" - private var payUrl: String = "" - private var value: String = "" - private var checkNRI: Boolean = false - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - - _binding = FragmentNiveshfdStepFourBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - if (PreferenceManager(activity as NiveshFdMainActivity).getLoginRole() == 5) { - binding.btnNext.text = getString(R.string.pay) - binding.btnNext.setBackgroundColor( - ResourcesCompat.getColor( - resources, - R.color.green, - null - ) - ) - } else { - binding.btnNext.text = getString(R.string.viewOrder) - binding.btnNext.setBackgroundColor( - ResourcesCompat.getColor( - resources, - R.color.red, - null - ) - ) - } - checkNRI = true - binding.btnNext.setOnClickListener { - selectedList = "" - for (getCodes in listOfCustomer) { - if (getCodes.isSelected) { - selectedList = if (selectedList.isEmpty()) { - getCodes.Value - } else { - if (getCodes.Value.contains("outside of india", true)) { - checkNRI = getCodes.isSelected - } - selectedList.plus(",").plus(getCodes.Value) - } - } - } - if (validated()) { - if (PreferenceManager(activity as NiveshFdMainActivity).getLoginRole() == 5) { - val saveFDOtherDataRequest = SaveFDOtherDataRequest() - saveFDOtherDataRequest.FDProvider = getString(R.string.bajaj) - saveFDOtherDataRequest.UniqueId = (activity as NiveshFdMainActivity).uniqueId - saveFDOtherDataRequest.Values = selectedList - saveFDOtherDataRequest.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - saveFDOtherData(saveFDOtherDataRequest, payUrl, value) - } else { - // go to view order - } - } - } - - binding.btnBack.setOnClickListener { - if ((activity as NiveshFdMainActivity).stepCount == 4) { - (activity as NiveshFdMainActivity).binding.viewPager.currentItem = 2 - } else { - (activity as NiveshFdMainActivity).binding.viewPager.currentItem = 1 - } - } - - customerListApi() - } - - private fun customerListApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.customerCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.customerListApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.customerListMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("customerListApi", " response -->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { - listOfCustomer = getCodeResponse.Response.GetCodesList - setUpRecyclerView(listOfCustomer) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun validated(): Boolean { - return if (!checkNRI) { - showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.validNRI) - ) - false - } else if (!binding.checkBox.isChecked) { - showDialogValidation( - activity as NiveshFdMainActivity, - resources.getString(R.string.validTermsConditions) - ) - false - } else { - true - } - } - - private fun saveFDOtherData(data: SaveFDOtherDataRequest, payUrl: String, value: String) { - // ProgressUtil.showLoading(activity as NiveshFdMainActivity) - (activity as NiveshFdMainActivity).viewModel.saveFDOtherData( - data, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDOtherMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("saveFDOtherData", " response -->${response.data.toString()}") - val saveFDOtherDataResponse: SaveFDOtherDataResponse = - Gson().fromJson( - response.data?.toString(), - SaveFDOtherDataResponse::class.java - ) - saveFDOtherDataResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - (activity as NiveshFdMainActivity).stepFourApi(payUrl, value) - } - // 650 -> refreshToken() - else -> { - if (saveFDOtherDataResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - saveFDOtherDataResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(saveFDOtherDataResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - // ProgressUtil.hideLoading() - } - is Resource.DataError -> { - - } - } - } - } - - private fun setUpRecyclerView(getCustomerList: MutableList) { - binding.rvTerms.layoutManager = - LinearLayoutManager(activity as NiveshFdMainActivity) - val customerListAdapter = CustomerListAdapter(getCustomerList) - binding.rvTerms.adapter = customerListAdapter - - } - - fun displayReceivedData() { - getFDDetailsApi() - } - - private fun getFDDetailsApi() { - if (Common.isNetworkAvailable(activity as NiveshFdMainActivity)) { - val getFDDetailsRequest = GetFDDetailsRequest() - getFDDetailsRequest.FDProvider = getString(R.string.bajaj) - getFDDetailsRequest.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - getFDDetailsRequest.UniqueId = (activity as NiveshFdMainActivity).uniqueId - (activity as NiveshFdMainActivity).viewModel.getFDDetails( - getFDDetailsRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDDetailsMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("getFDDetailsApi", " response -->${response.data.toString()}") - val getFDDetailsResponse: GetFDDetailsResponse = - Gson().fromJson( - response.data?.toString(), - GetFDDetailsResponse::class.java - ) - getFDDetailsResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - binding.tvInvestedAmount.text = - getString(R.string.rs).plus(getFDDetailsResponse.Response.FDDataResponse.FDAmount.toString()) - binding.tvTenure.text = - getFDDetailsResponse.Response.FDDataResponse.Tenure.toString() - .plus(" Months") - binding.tvInterestPayout.text = - getFDDetailsResponse.Response.FDDataResponse.Frequency - binding.tvRateOfInterest.text = - getFDDetailsResponse.Response.FDDataResponse.RateOfInterest.toString() - .plus(" % p.a.") - payUrl = getFDDetailsResponse.Response.FDDataResponse.PaymentUrl - value = getFDDetailsResponse.Response.FDDataResponse.Value - } - // 650 -> refreshToken() - else -> { - if (getFDDetailsResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getFDDetailsResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getFDDetailsResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepOneNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepOneNiveshFDFragment.kt deleted file mode 100644 index 02059f5..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepOneNiveshFDFragment.kt +++ /dev/null @@ -1,592 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.fragment - -import android.os.Bundle -import android.text.Editable -import android.text.InputFilter -import android.text.TextWatcher -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ArrayAdapter -import android.widget.RadioButton -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.recyclerview.widget.DefaultItemAnimator -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView.LayoutManager -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepOneBinding -import com.nivesh.production.niveshfd.fd.adapter.HorizontalRecyclerViewAdapter -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.commonErrorMethod -import com.nivesh.production.niveshfd.fd.util.Common.Companion.removeError -import com.nivesh.production.niveshfd.fd.util.Resource -import com.nivesh.production.niveshfd.fd.viewModel.MyObseravble - - -class StepOneNiveshFDFragment : Fragment() { - private var _binding: FragmentNiveshfdStepOneBinding? = null - private val binding get() = _binding!! - - private val observerViewModel: MyObseravble by activityViewModels() - private lateinit var rgMaturity: RadioButton - private lateinit var listOfTenure: MutableList - private lateinit var recyclerViewDropDownAdapter: HorizontalRecyclerViewAdapter - private lateinit var listOfMinAmount: List - private lateinit var listOfMaxAmount: List - private lateinit var listOfFrequency: List - - private var tenure: Int = 0 - private var interest: Double = 0.0 - private var maturityText: String = "" - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View { - _binding = FragmentNiveshfdStepOneBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - listOfTenure = ArrayList() - listOfMinAmount = ArrayList() - listOfMaxAmount = ArrayList() - listOfFrequency = ArrayList() - - rgMaturity = RadioButton(activity as NiveshFdMainActivity) - binding.edtAmount.filters = arrayOf(InputFilter.LengthFilter(8)) // upto 1 Cr - // Amount - binding.edtAmount.addTextChangedListener(object : TextWatcher { - override fun afterTextChanged(s: Editable?) {} - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlDepositAmount) - if (s.toString().trim().length >= 4) { - maturityAmountApi(tenure, interest) - } - } - }) - - // Frequency - binding.spInterestPayout.setOnItemClickListener { _, _, position, _ -> - removeError(binding.tlInterestPayout) - if (listOfFrequency.isNotEmpty()) { - binding.tvFrequency.text = listOfFrequency[position].Value - if (!binding.tvFrequency.text.equals(getString(R.string.cumulativeText))) { - binding.txtCumulativeNon.text = getString(R.string.nonCumulativeROI) - } else { - binding.txtCumulativeNon.text = getString(R.string.cumulativeROI) - } - if (binding.edtAmount.text.toString().trim().isNotEmpty()) { - maturityAmountApi(tenure, interest) - } - } - } - - // Tenure - binding.spTenure.setOnItemClickListener { _, _, position, _ -> - removeError(binding.tlInterestTenure) - if (listOfTenure.isNotEmpty()) { - tenure = listOfTenure[position].Tenure.toInt() - interest = listOfTenure[position].ROI - binding.tvROI.text = interest.toString().plus(" %") - maturityAmountApi(tenure, interest) - recyclerViewDropDownAdapter.refresh() - } - } - - // Senior / Non Senior Citizen - binding.swSeniorCitizen.setOnCheckedChangeListener { _, _ -> - getRatesApi() - } - - // Maturity Options - maturityText = getString(R.string.totalDeduction) - rgMaturity.text = getString(R.string.additionalDetailOne) - binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> - rgMaturity = group.findViewById(checkedId) - Log.e("Maturity", "-->" + rgMaturity.text) - maturityText = if (rgMaturity.text.contains("credit")) { - getString(R.string.totalDeduction) - } else { - getString(R.string.principalDeduction) - } - } - - // Next Button - binding.btnNext.setOnClickListener { - if (validation()) { - - (activity as NiveshFdMainActivity).fdInvestmentDetails.FDAmount = - binding.edtAmount.text.toString().toDouble() - observerViewModel.data.value = binding.edtAmount.text.toString() - (activity as NiveshFdMainActivity).fdInvestmentDetails.Frequency = - binding.spInterestPayout.text.toString() - (activity as NiveshFdMainActivity).fdInvestmentDetails.Tenure = tenure - (activity as NiveshFdMainActivity).fdInvestmentDetails.Interest = interest - (activity as NiveshFdMainActivity).fdInvestmentDetails.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - (activity as NiveshFdMainActivity).fdInvestmentDetails.Provider = - getString(R.string.bajaj) - (activity as NiveshFdMainActivity).fdInvestmentDetails.IPAddress = "192.168.1.23" - (activity as NiveshFdMainActivity).fdInvestmentDetails.Device = - getString(R.string.app) - (activity as NiveshFdMainActivity).fdInvestmentDetails.Source = - getString(R.string.source) - if (binding.swSeniorCitizen.isChecked) { - (activity as NiveshFdMainActivity).fdInvestmentDetails.CitizenType = - getString(R.string.seniorCitizen) - } else { - (activity as NiveshFdMainActivity).fdInvestmentDetails.CitizenType = - getString(R.string.nonSeniorCitizen) - } - (activity as NiveshFdMainActivity).fdInvestmentDetails.CustomerType = "" - (activity as NiveshFdMainActivity).fdInvestmentDetails.CKYCNumber = "" - (activity as NiveshFdMainActivity).fdInvestmentDetails.UniqueId = - (activity as NiveshFdMainActivity).uniqueId - (activity as NiveshFdMainActivity).fdInvestmentDetails.RenewOption = maturityText - - (activity as NiveshFdMainActivity).createFDApplicantRequest.FDInvestmentDetails = - (activity as NiveshFdMainActivity).fdInvestmentDetails - Log.e( - "StepOneData", - "-->" + Gson().toJson((activity as NiveshFdMainActivity).fdInvestmentDetails) - ) - (activity as NiveshFdMainActivity).stepOneApi() - } - } - - minAmountApi() - interestPayoutApi() - } - - private fun interestPayoutApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.niveshCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.getCode( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getCodeMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("interestPayoutApi", " response -->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfFrequency = getCodeResponse.Response.GetCodesList - if (listOfFrequency.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfFrequency - ) - binding.spInterestPayout.setAdapter(adapter) - binding.spInterestPayout.setText( - adapter.getItem(listOfFrequency.size - 1)?.Value, - false - ) - binding.tvFrequency.text = - adapter.getItem(listOfFrequency.size - 1)?.Value - getRatesApi() - } else { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "Interest Payout Frequency Data Is Missing." - ) - } - } - 650 -> "" - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun minAmountApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.minAmountCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.getMinAmount( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getMinAmountMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("minAmountApi ", " response-->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfMinAmount = getCodeResponse.Response.GetCodesList -// if (listOfMinAmount.isNotEmpty()) { -// binding.txtMinAmount.text = getString(R.string.minAmount).plus(listOfMinAmount[0].Value) -// } - maxAmountApi() - } - 650 -> "" - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun maxAmountApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.MaxAmountCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.getMaxAmount( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getMaxAmountMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("maxAmountApi ", " response-->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfMaxAmount = getCodeResponse.Response.GetCodesList - } - 650 -> "" - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun setUpRecyclerView() { - - recyclerViewDropDownAdapter = HorizontalRecyclerViewAdapter( - activity as NiveshFdMainActivity, - listOfTenure - ) { position -> - tenure = listOfTenure[position].Tenure.toInt() - interest = listOfTenure[position].ROI - binding.tvROI.text = interest.toString().plus(" %") - maturityAmountApi(tenure, interest) - } - val mLayoutManager: LayoutManager = - LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, true) - binding.rvTenure.layoutManager = mLayoutManager - binding.rvTenure.setHasFixedSize(true) - binding.rvTenure.itemAnimator = DefaultItemAnimator() - binding.rvTenure.adapter = recyclerViewDropDownAdapter - } - - private fun maturityAmountApi(tenure: Int, interest: Double) { - if (binding.edtAmount.text.toString().length >= 4 && interest != 0.0 && tenure != 0 && binding.spInterestPayout.text.toString() - .isNotEmpty() - ) { - val maturityAmountRequest = GetMaturityAmountRequest() - maturityAmountRequest.FDProvider = getString(R.string.bajaj) - maturityAmountRequest.FDAmount = binding.edtAmount.text.toString().toInt() - maturityAmountRequest.Frequency = binding.spInterestPayout.text.toString() - maturityAmountRequest.Tenure = tenure - maturityAmountRequest.Interest = interest - (activity as NiveshFdMainActivity).viewModel.getMaturityAmount( - maturityAmountRequest, - activity as NiveshFdMainActivity, - PreferenceManager(activity as NiveshFdMainActivity).getToken() - ) - (activity as NiveshFdMainActivity).viewModel.getMaturityAmountMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("maturityAmountApi ", " response-->${response.data.toString()}") - val getMaturityAmountResponse = - Gson().fromJson( - response.data?.toString(), - GetCalculateMaturityAmountResponse::class.java - ) - getMaturityAmountResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - binding.tvMaturityAmount.text = - getString(R.string.rs).plus(" ").plus( - getMaturityAmountResponse.Response.MaturityAmount.toString() - ) - } - // 650 -> refreshToken() - else -> { - if (getMaturityAmountResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getMaturityAmountResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getMaturityAmountResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation( - activity as NiveshFdMainActivity, - message - ) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - } - - private fun validation(): Boolean { - return if (binding.edtAmount.text.toString().isEmpty()) { - commonErrorMethod( - binding.edtAmount, - binding.tlDepositAmount, - getString(R.string.emptyAmount) - ) - } else if (binding.edtAmount.text.toString() - .toDouble() < listOfMinAmount[0].Value.toDouble() - ) { - commonErrorMethod( - binding.edtAmount, - binding.tlDepositAmount, - getString(R.string.validMinAmount) - ) - } else if (binding.edtAmount.text.toString().toInt() % 1000 != 0) { - commonErrorMethod( - binding.edtAmount, - binding.tlDepositAmount, - getString(R.string.validMultipleAmount) - ) - } else if (binding.edtAmount.text.toString() - .toDouble() > listOfMaxAmount[0].Value.toDouble() - ) { - commonErrorMethod( - binding.edtAmount, - binding.tlDepositAmount, - getString(R.string.validMaxAmount) - ) - } else if (binding.spInterestPayout.text.isEmpty()) { - Common.commonSpinnerErrorMethod( - binding.spInterestPayout, - binding.tlInterestPayout, - getString(R.string.emptyInterestPayout) - ) - } else if (binding.spTenure.text.isEmpty()) { - Common.commonSpinnerErrorMethod( - binding.spTenure, - binding.tlInterestTenure, - getString(R.string.emptyInterestTenure) - ) - } else { - true - } - } - - private fun getRatesApi() { - val getRatesRequest = GetRatesRequest() - getRatesRequest.fdProvider = getString(R.string.bajaj) - getRatesRequest.frequency = binding.spInterestPayout.text.toString() - if (binding.swSeniorCitizen.isChecked) { - getRatesRequest.type = getString(R.string.seniorCitizen) - } else { - getRatesRequest.type = getString(R.string.nonSeniorCitizen) - } - (activity as NiveshFdMainActivity).viewModel.getRates( - getRatesRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getRatesMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - val getRatesResponse: GetRatesResponse = - Gson().fromJson(response.data?.toString(), GetRatesResponse::class.java) - getRatesResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (listOfTenure.isNotEmpty()) { - listOfTenure.clear() - } - listOfTenure = getRatesResponse.Response.ROIDatalist - // Tenure - if (listOfTenure.isNotEmpty()) { - listOfTenure.sortWith { lhs: ROIDataList, rhs: ROIDataList -> - rhs.Tenure.compareTo( - lhs.Tenure - ) - } - binding.ORLayout.visibility = View.VISIBLE - val tenureAdapter = - ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfTenure - ) - binding.spTenure.setAdapter(tenureAdapter) - - binding.spTenure.setText( - tenureAdapter.getItem(0)?.Tenure.plus( - " Months | " - ).plus(tenureAdapter.getItem(0)?.ROI).plus(" %"), false - ) - tenure = tenureAdapter.getItem(0)?.Tenure.toString().toInt() - interest = tenureAdapter.getItem(0)?.ROI ?: 0.0 - binding.tvROI.text = - tenureAdapter.getItem(0)?.ROI.toString().plus(" %") - setUpRecyclerView() - } else { - binding.ORLayout.visibility = View.GONE - } - } - // 650 -> refreshToken() - else -> { - if (getRatesResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getRatesResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getRatesResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepThreeNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepThreeNiveshFDFragment.kt deleted file mode 100644 index 978252b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepThreeNiveshFDFragment.kt +++ /dev/null @@ -1,725 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.fragment - -import android.Manifest -import android.annotation.SuppressLint -import android.app.Activity -import android.content.DialogInterface -import android.content.pm.PackageManager -import android.database.Cursor -import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.net.Uri -import android.os.Build -import android.os.Bundle -import android.provider.OpenableColumns -import android.util.Base64 -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.* -import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AlertDialog -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat -import androidx.core.content.FileProvider -import androidx.fragment.app.Fragment -import androidx.lifecycle.lifecycleScope -import com.google.gson.Gson -import com.nivesh.production.niveshfd.BuildConfig -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepThreeBinding -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.getFileExtension -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showDialogWithTwoButtons -import com.nivesh.production.niveshfd.fd.util.ImageUtil -import com.nivesh.production.niveshfd.fd.util.Resource -import java.io.* -import java.util.* - - -class StepThreeNiveshFDFragment : Fragment() { - -// private var _binding: FragmentNiveshfdStepThreeBinding? = null - private var _binding: FragmentNiveshfdStepThreeBinding? = null - private val binding get() = _binding!! - - private var takeImageResult: ActivityResultLauncher? = null - private var selectImageIntent: ActivityResultLauncher? = null - private var bitmap: Bitmap? = null - private var latestTmpUri: Uri? = null - - private val mapImage: HashMap = HashMap() - private lateinit var listOfDocType: List - - private var panString: String = "" - private var photoString: String = "" - private var docString: String = "" - private var docString2: String = "" - private var panFileExt: String? = "" - private var photoFileExt: String? = "" - private var doc1FileExt: String? = "" - private var doc2fileExt: String? = "" - private var docValue: String = "" - private val mainPANUpload: Int = 1 - private val mainPhotoUpload: Int = 2 - private val firstDocUpload: Int = 3 - private val secondDocUpload: Int = 4 - private var actionType: Int = -1 - - private val permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - arrayOf( - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_MEDIA_IMAGES - ) - } else { - arrayOf( - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE - ) - } - - private val requestCameraPermission = registerForActivityResult( - ActivityResultContracts.RequestPermission() - ) { isGranted: Boolean -> - if (isGranted) { - takeImage() - } else { - showDialogWithTwoButtons( - (activity as NiveshFdMainActivity), getString(R.string.cameraPermission), getString( - R.string.permissionRequired - ) - ) - } - } - - private val requestGalleryPermission = registerForActivityResult( - ActivityResultContracts.RequestMultiplePermissions() - ) { permission -> - if (!permission.containsValue(false)) { - selectImageIntent?.launch("image/*") - } else { - showDialogWithTwoButtons( - (activity as NiveshFdMainActivity), - getString(R.string.galleryPermission), - getString( - R.string.permissionsRequired - ) - ) - } - } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - - _binding = FragmentNiveshfdStepThreeBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent()) - { uri: Uri? -> - if (uri != null) { - bitmap = uriToBitmap(uri) - uploadDocument(uri, "g") - } - } - - takeImageResult = - registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess -> - if (isSuccess) { - latestTmpUri?.let { uri -> - uploadDocument(uri, "c") - } - } - } - - binding.btnNext.setOnClickListener { - if (validate()) { - if (panString.isNotEmpty()) { - mapImage["PAN"] = "data:image/".plus(panFileExt) - .plus(";base64, ").plus(panString) - } - if (photoString.isNotEmpty()) { - mapImage["Photograph"] = "data:image/".plus(photoFileExt) - .plus(";base64, ").plus(photoString) - } - if (docString.isNotEmpty()) { - mapImage["docValue"] = "data:image/".plus(doc1FileExt) - .plus(";base64, ").plus(docString) - } - if (docString2.isNotEmpty()) { - mapImage["Aadhar"] = "data:image/".plus(doc2fileExt) - .plus(";base64, ").plus(docString2) - } - var uploadPosition = 0 - for (entry in mapImage.iterator()) { - uploadPosition++ - uploadDocApi(entry.key, entry.value, uploadPosition) - } - } - } - binding.btnBack.setOnClickListener { - (activity as NiveshFdMainActivity).binding.viewPager.currentItem = 1 - } - - binding.btnPANUpload.setOnClickListener { - actionType = mainPANUpload - selectImage() - } - - binding.btnPhotoUpload.setOnClickListener { - actionType = mainPhotoUpload - selectImage() - } - - binding.btnAadhaarFrontUpload.setOnClickListener { - actionType = firstDocUpload - selectImage() - } - - binding.btnAadhaarBackUpload.setOnClickListener { - actionType = secondDocUpload - selectImage() - } - - binding.spDocType.onItemClickListener = - AdapterView.OnItemClickListener { parent, _, position, _ -> - val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes - docValue = getCodes.Value - docString = "" - docString2 = "" - when (getCodes.Label) { - resources.getString(R.string.aadhar) -> - setAadhaarUploadLayout() - else -> { - setOtherUploadLayout(getCodes.Value) - } - } - } - - docTypeApi() - } - - @SuppressLint("Range") - fun getFileName(uri: Uri): String { - var result = "" - if (uri.scheme == "content") { - val cursor: Cursor = - requireActivity().contentResolver.query(uri, null, null, null, null)!! - cursor.use { cursor1 -> - if (cursor1.moveToFirst()) { - result = cursor1.getString(cursor1.getColumnIndex(OpenableColumns.DISPLAY_NAME)) - } - } - } - if (result.isEmpty()) { - result = uri.path!! - val cut = result.lastIndexOf('/') - if (cut != -1) { - result = result.substring(cut + 1) - } - } - return result - } - - private fun selectImage() { - val builder = AlertDialog.Builder( - activity as NiveshFdMainActivity - ) - builder.setTitle(getString(R.string.addPhoto)) - builder.setItems( - arrayOf( - getString(R.string.takePhoto), - getString(R.string.chooseFromGallery), - getString(R.string.cancel) - ) - ) { dialog: DialogInterface, pos -> - when (pos) { - 0 -> { - if (hasPermissions( - activity as NiveshFdMainActivity, - Manifest.permission.CAMERA - ) - ) { - takeImage() - } else { - onClickRequestPermission() - } - dialog.dismiss() - } - 1 -> { - if (hasPermissions(activity as NiveshFdMainActivity, *permissions)) { - selectImageIntent?.launch("image/*") - } else { - requestGalleryPermission.launch(permissions) - } - dialog.dismiss() - } - else -> { - dialog.dismiss() - } - } - } - builder.show() - } - - private fun hasPermissions(activity: Activity, vararg permissions: String?): Boolean { - for (permission in permissions) { - if (ActivityCompat.checkSelfPermission( - activity, - permission!! - ) != PackageManager.PERMISSION_GRANTED - ) { - return false - } - } - return true - } - - private fun onClickRequestPermission() { - when { - ContextCompat.checkSelfPermission( - activity as NiveshFdMainActivity, - Manifest.permission.CAMERA - ) == PackageManager.PERMISSION_GRANTED -> { - - } - - ActivityCompat.shouldShowRequestPermissionRationale( - activity as NiveshFdMainActivity, - Manifest.permission.CAMERA - ) -> { - requestCameraPermission.launch( - Manifest.permission.CAMERA - ) - } - - else -> { - requestCameraPermission.launch( - Manifest.permission.CAMERA - ) - } - } - } - - private fun setOtherUploadLayout(itemName: String?) { - binding.tvAadhaarFront.text = itemName.plus(" Front *") - if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility = - View.INVISIBLE - if (binding.btnAadhaarBackUpload.visibility == View.VISIBLE) binding.btnAadhaarBackUpload.visibility = - View.INVISIBLE - } - - private fun setAadhaarUploadLayout() { - binding.tvAadhaarFront.text = resources.getString(R.string.aadhaarFront) - binding.tvAadhaarBack.text = resources.getString(R.string.aadhaarBack) - - binding.tvAadhaarBack.visibility = View.VISIBLE - binding.btnAadhaarBackUpload.visibility = View.VISIBLE - - binding.tvAadhaarFront.visibility = View.VISIBLE - binding.btnAadhaarFrontUpload.visibility = View.VISIBLE - } - - private fun uploadDocument(uri: Uri, type: String) { - when (actionType) { - mainPANUpload -> { - binding.ivPan.visibility = View.VISIBLE - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - panFileExt = getFileExtension(getFileName(uri)) - val size: Double = Common.getFileSizeInMB(fileExtension.length()) - if (size < 5) { - if (type == "c") encodedPANBase64(fileExtension) - else panString = bitmap?.let { ImageUtil.convert(it) }.toString() - } else { - panString = "" - panFileExt = "" - } - } - mainPhotoUpload -> { - binding.ivPhotograph.visibility = View.VISIBLE - binding.ivPan.visibility = View.VISIBLE - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - photoFileExt = getFileExtension(getFileName(uri)) - val size: Double = Common.getFileSizeInMB(fileExtension.length()) - if (size < 5) { - if (type == "c") encodedPhotoBase64(fileExtension) - else photoString = bitmap?.let { ImageUtil.convert(it) }.toString() - } else { - photoString = "" - photoFileExt = "" - } - } - firstDocUpload -> { - binding.ivAadharFront.visibility = View.VISIBLE - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - doc1FileExt = getFileExtension(getFileName(uri)) - val size: Double = Common.getFileSizeInMB(fileExtension.length()) - if (size < 5) { - if (type == "c") encodedUpload1Base64(fileExtension) - else docString = bitmap?.let { ImageUtil.convert(it) }.toString() - } else { - docString = "" - doc1FileExt = "" - } - } - else -> { - binding.ivAadharBack.visibility = View.VISIBLE - val fileDir: File = requireActivity().cacheDir - val fileExtension = File(fileDir.toString().plus("/").plus(getFileName(uri))) - doc2fileExt = getFileExtension(getFileName(uri)) - val size: Double = Common.getFileSizeInMB(fileExtension.length()) - if (size < 5) { - if (type == "c") encodedFileToBase64(fileExtension) - else docString2 = bitmap?.let { ImageUtil.convert(it) }.toString() - } else { - docString2 = "" - doc2fileExt = "" - } - } - } - } - - private fun encodedPANBase64(fileName: File) { - panString = try { - val bytes: ByteArray = loadFile(fileName) - Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "") - .replace("\\s+", "") - } catch (e: Exception) { - e.printStackTrace() - "" - } - } - - private fun encodedPhotoBase64(fileName: File) { - photoString = try { - val bytes: ByteArray = loadFile(fileName) - Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "") - .replace("\\s+", "") - } catch (e: Exception) { - e.printStackTrace() - "" - } - } - - private fun encodedUpload1Base64(fileName: File) { - docString = try { - val bytes: ByteArray = loadFile(fileName) - Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "") - .replace("\\s+", "") - } catch (e: Exception) { - e.printStackTrace() - "" - } - } - - private fun encodedFileToBase64(fileName: File) { - docString2 = try { - val bytes: ByteArray = loadFile(fileName) - Base64.encodeToString(bytes, Base64.DEFAULT).trim().replace("\n", "") - .replace("\\s+", "") - } catch (e: Exception) { - e.printStackTrace() - "" - } - } - - @Throws(IOException::class) - private fun loadFile(file: File): ByteArray { - val inputStream: InputStream = FileInputStream(file) - val length = file.length() - val bytes = ByteArray(length.toInt()) - var offset = 0 - var numRead = 0 - while (offset < bytes.size && inputStream.read(bytes, offset, bytes.size - offset).also { - numRead = it - } >= 0) { - offset += numRead - } - if (offset < bytes.size) { - throw IOException("Could not completely read file " + file.name) - } - inputStream.close() - return bytes - } - - private fun uploadDocApi(key: String, imageBase64: String, uploadPosition: Int) { - val du = DocumentUpload() - du.Description = key - du.DocumentType = key - du.FDProvider = getString(R.string.bajaj) - du.ImageEncodeToBase64 = imageBase64 - du.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - du.UniqueId = (activity as NiveshFdMainActivity).uniqueId - (activity as NiveshFdMainActivity).viewModel.documentsUpload( - du, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getDocumentUploadMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("UploadImage", "Response-->" + response.data.toString()) - val getUploadResponse: UploadResponse = - Gson().fromJson(response.data?.toString(), UploadResponse::class.java) - getUploadResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - Log.e("check_upload_res", response.message.toString()) - if (uploadPosition == mapImage.size) { - Toast.makeText( - requireActivity(), - "Documents Uploaded Successfully", - Toast.LENGTH_SHORT - ).show() - createFDApi((activity as NiveshFdMainActivity).createFDRequest) - } - } - // 650 -> refreshToken() - else -> { - if (getUploadResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getUploadResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getUploadResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun createFDApi(data: CreateFDRequest) { - (activity as NiveshFdMainActivity).viewModel.createFDApi( - data, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDResponseMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("createFDApi", "response--> " + response.data.toString()) - val createFDApplicationResponse: CreateFDApplicationResponse = - Gson().fromJson( - response.data?.toString(), - CreateFDApplicationResponse::class.java - ) - createFDApplicationResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - (activity as NiveshFdMainActivity).stepThreeApi() - } - // 650 -> refreshToken() - else -> { - if (createFDApplicationResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - createFDApplicationResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(createFDApplicationResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun docTypeApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.docType) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.docTypeApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getDocTypeMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfDocType = getCodeResponse.Response.GetCodesList - if (listOfDocType.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfDocType - ) - binding.spDocType.setAdapter(adapter) - binding.spDocType.setText( - adapter.getItem(0)?.Label, - false - ) - setOtherUploadLayout(adapter.getItem(0)?.Label) - docValue = adapter.getItem(0)?.Label.toString() - - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - }else{ - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - Common.showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - - is Resource.DataError -> { - - } - } - } - } - - private fun validate(): Boolean { - if (panString.isEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.uploadPanDoc) - ) - return false - } else if (photoString.isEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.uploadPhotoDoc) - ) - return false - } else if (docString.isEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - "Upload $docValue Document" - ) - return false - } else if (docValue == "Aadhar" && docString2.isEmpty()) { - Common.showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.uploadAadharBackDoc) - ) - return false - } - return true - } - - private fun takeImage() { - lifecycleScope.launchWhenStarted { - getTmpFileUri().let { uri -> - latestTmpUri = uri - takeImageResult?.launch(uri) - } - } - } - - private fun getTmpFileUri(): Uri { - val tmpFile = - File.createTempFile("tmp_image_file", ".png", (activity as NiveshFdMainActivity).cacheDir).apply { - createNewFile() - deleteOnExit() - } - - return FileProvider.getUriForFile( - requireActivity(), - "${BuildConfig.APPLICATION_ID}.provider", - tmpFile - ) - } - - private fun uriToBitmap(selectedFileUri: Uri): Bitmap? { - try { - val parcelFileDescriptor = - requireActivity().contentResolver.openFileDescriptor(selectedFileUri, "r") - val fileDescriptor: FileDescriptor = parcelFileDescriptor!!.fileDescriptor - val image = BitmapFactory.decodeFileDescriptor(fileDescriptor) - parcelFileDescriptor.close() - return image - } catch (e: IOException) { - e.printStackTrace() - } - return null - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepTwoNiveshFDFragment.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepTwoNiveshFDFragment.kt deleted file mode 100644 index 39f1b92..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/fragment/StepTwoNiveshFDFragment.kt +++ /dev/null @@ -1,2224 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.fragment - -import android.app.DatePickerDialog -import android.app.Dialog -import android.os.Bundle -import android.text.Editable -import android.text.InputFilter -import android.text.InputFilter.LengthFilter -import android.text.TextWatcher -import android.util.DisplayMetrics -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.WindowManager -import android.widget.ArrayAdapter -import android.widget.RadioButton -import android.widget.TextView -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.textfield.TextInputEditText -import com.google.gson.Gson -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentNiveshfdStepTwoBinding -import com.nivesh.production.niveshfd.fd.adapter.BankListAdapter -import com.nivesh.production.niveshfd.fd.adapter.PaymentModeAdapter -import com.nivesh.production.niveshfd.fd.adapter.RecommendedBankListAdapter -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.fd.util.Common.Companion.commonErrorAutoCompleteMethod -import com.nivesh.production.niveshfd.fd.util.Common.Companion.commonErrorMethod -import com.nivesh.production.niveshfd.fd.util.Common.Companion.commonSpinnerErrorMethod -import com.nivesh.production.niveshfd.fd.util.Common.Companion.getDate -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isIndianMobileNo -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isMinor -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isValidEmail -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isValidIndividualPan -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isValidName -import com.nivesh.production.niveshfd.fd.util.Common.Companion.isValidPan -import com.nivesh.production.niveshfd.fd.util.Common.Companion.removeError -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showDialogValidation -import com.nivesh.production.niveshfd.fd.util.ProgressUtil -import com.nivesh.production.niveshfd.fd.util.Resource -import com.nivesh.production.niveshfd.fd.viewModel.MyObseravble -import java.util.* - - -class StepTwoNiveshFDFragment : Fragment() { - - private var _binding: FragmentNiveshfdStepTwoBinding? = null - private val binding get() = _binding!! - - private val observerViewModel: MyObseravble by activityViewModels() - private lateinit var listOfTitle: List - private lateinit var listOfGender: List - private lateinit var listOfAnnualIncome: List - private lateinit var listOfRelationShip: List - private lateinit var listOfMaritalStatus: List - private lateinit var listOfOccupation: List - private lateinit var listOfPayMode: List - private lateinit var listOfStates: List - private lateinit var listOfCities: List - private lateinit var listOfIFSC: MutableList - private lateinit var listOfEligibleBank: MutableList - - private lateinit var bankListAdapter: BankListAdapter - private lateinit var paymentModeAdapter: PaymentModeAdapter - private lateinit var stateObject: DataObject - private val listOfBanks: MutableList = mutableListOf() - - private lateinit var rbBank: RadioButton - private lateinit var rbPaymentMode: RadioButton - private var cal = Calendar.getInstance() - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - _binding = FragmentNiveshfdStepTwoBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - listOfTitle = ArrayList() - listOfGender = ArrayList() - listOfAnnualIncome = ArrayList() - listOfRelationShip = ArrayList() - listOfMaritalStatus = ArrayList() - listOfOccupation = ArrayList() - listOfStates = ArrayList() - listOfIFSC = ArrayList() - listOfPayMode = ArrayList() - stateObject = DataObject() - listOfEligibleBank = ArrayList() - rbPaymentMode = RadioButton(activity as NiveshFdMainActivity) - rbBank = RadioButton(activity as NiveshFdMainActivity) - - // Personal Details - binding.edtMobileNumber.filters = arrayOf(LengthFilter(10)) - binding.edtPANNumber.filters = arrayOf(LengthFilter(10)) - binding.edtPinCode.filters = arrayOf(LengthFilter(6)) - binding.edtIFSC.filters = arrayOf(LengthFilter(11)) - - binding.edtMobileNumber.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlMobileNumber) - } - }) - binding.edtMobileNumber.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.mobile) - binding.edtMobileNumber.setSelection(binding.edtMobileNumber.text.toString().length) - // create an OnDateSetListener - if (!(activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.isNullOrEmpty()) { - binding.edtDOB.setText(getDate((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB.toString())) - } - binding.edtDOB.setOnClickListener { - removeError(binding.tlDOB) - datePicker(binding.edtDOB, 1) - } - - - binding.edtPANNumber.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PAN) - binding.edtPANNumber.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlPanNumber) - if (s.toString().trim().length == 10) { - checkFDCKYCApi() - } - } - }) - - binding.spTitle.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlTitle) - } - - binding.edtFirstName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlFirstName) - } - }) - binding.edtMiddleName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlMiddleName) - } - }) - binding.edtLastName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlLastName) - } - }) - - val splitStringName = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_APPNAME1?.split( - "\\s".toRegex() - )?.toTypedArray() - when (splitStringName?.size) { - 1 -> { - binding.edtFirstName.setText(splitStringName[0]) - } - 2 -> { - binding.edtFirstName.setText(splitStringName[0]) - binding.edtLastName.setText(splitStringName[1]) - } - 3 -> { - binding.edtFirstName.setText(splitStringName[0]) - binding.edtMiddleName.setText(splitStringName[1]) - binding.edtLastName.setText(splitStringName[2]) - } - } - - binding.spGender.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlGender) - } - - binding.edtEmail.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlEmail) - } - }) - binding.edtEmail.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_EMAIL) - - binding.spOccupation.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlOccupation) - } - - binding.edtQualification.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlQualification) - } - }) - - binding.spMarital.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlMarital) - } - - binding.edtAddressLine1.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlAddressLine1) - } - }) - binding.edtAddressLine1.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD1) - binding.edtAddressLine2.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlAddressLine2) - } - }) - binding.edtAddressLine2.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD2) - binding.edtAddressLine3.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlAddressLine3) - } - }) - binding.edtAddressLine3.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ADD3) - - binding.spState.setOnItemClickListener { parent, _, position, _ -> - removeError(binding.tlState) - stateObject = parent.getItemAtPosition(position) as DataObject - } - binding.spCity.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlCity) - } - binding.edtPinCode.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlPinCode) - } - }) - binding.edtPinCode.setText((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_PINCODE) - - // Nominee Details - binding.spNomineeTitle.setOnItemClickListener { _, _, _, _ -> - binding.tlNomineeTitle.error = null - } - - binding.edtNomineeFirstName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlNomineeFirstName) - } - }) - binding.edtNomineeMiddleName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlNomineeMiddleName) - } - }) - binding.edtNomineeLastName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlNomineeLastName) - } - }) - - val splitNomineeName = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeName?.split( - "\\s".toRegex() - )?.toTypedArray() - when (splitNomineeName?.size) { - 1 -> { - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - } - 2 -> { - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - binding.edtNomineeLastName.setText(splitNomineeName[1]) - } - 3 -> { - binding.edtNomineeFirstName.setText(splitNomineeName[0]) - binding.edtNomineeMiddleName.setText(splitNomineeName[1]) - binding.edtNomineeLastName.setText(splitNomineeName[2]) - } - } - - if (!(activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeDOB.isNullOrEmpty() - ) { - binding.edtNomineeDOB.setText( - getDate( - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeDOB.toString() - ) - ) - } - binding.edtNomineeDOB.setOnClickListener { - removeError(binding.tlNomineeDOB) - datePicker(binding.edtNomineeDOB, 2) - } - - binding.spNomineeRelation.setText( - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeRelationship - ) - binding.spNomineeRelation.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlNomineeRelation) - } - - // Guardian Details - binding.edtGuardianName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlGuardianName) - } - }) - binding.edtGuardianName.setText( - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeGuardian - ) - - binding.edtGuardianAge.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlGuardianAge) - } - }) - - binding.spGuardianRelation.setOnItemClickListener { _, _, _, _ -> - removeError(binding.tlGuardianRelation) - } - - binding.edtGuardianAddress.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlGuardianAddress) - } - }) - binding.edtGuardianPinCode.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlGuardianPinCode) - } - }) - - rbBank.setText(getString(R.string.savingsAccount)) - binding.rgBank.setOnCheckedChangeListener { group, checkedId -> - rbBank = group.findViewById(checkedId) - Log.e("BankType", "-->" + rbBank.text) - } - - - // Bank Details - binding.edtIFSC.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlIFSC) - ifscCodeCheckApi(s.toString()) - } - }) - binding.edtAccountNumber.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlAccountNumber) - } - }) - binding.edtBankName.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlBankName) - } - }) - binding.edtBankBranch.addTextChangedListener(object : TextWatcher { - - override fun afterTextChanged(s: Editable?) { - } - - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { - } - - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { - removeError(binding.tlBankBranchName) - } - }) - - binding.btnAddBank.setOnClickListener { - if (validateBank()) { - verifyAccountNo( - binding.edtAccountNumber.text.toString(), - binding.edtIFSC.text.toString(), - binding.edtFirstName.text.toString().plus(" ") - .plus(binding.edtMiddleName.text.toString()).plus(" ") - .plus(binding.edtLastName.text.toString()), - binding.edtMobileNumber.text.toString(), - PreferenceManager(activity as NiveshFdMainActivity).getLoginRole(), - rbBank.text.toString() - ) - } - } - - binding.tvEligibleBankOption.setOnClickListener { - // apiForEligibleBankList() - if (listOfEligibleBank.isNotEmpty()) { - dialogForBankList(listOfEligibleBank) - } - } - - if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!!) { - binding.llBankDetails.visibility = View.VISIBLE - } else { - binding.llBankDetails.visibility = View.GONE - } - - binding.addBankDetail.setOnClickListener { - if (bankListAdapter.itemCount == 5) { - showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.fiveAccountValidation) - ) - } else { - showHideBankDetail() - } - } - - titleApi() - apiForEligibleBankList() - setUpRecyclerView( - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist, - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1 - ) - - binding.tvPersonalDetails.setOnClickListener { - if (binding.llPersonalDetail.visibility == View.VISIBLE) { - binding.llPersonalDetail.visibility = View.GONE - } else { - binding.llPersonalDetail.visibility = View.VISIBLE - } - } - binding.tvNomineeDetails.setOnClickListener { - if (binding.llNomineeDetail.visibility == View.VISIBLE) { - binding.llNomineeDetail.visibility = View.GONE - } else { - binding.llNomineeDetail.visibility = View.VISIBLE - } - } - binding.tvBankDetails.setOnClickListener { - if (binding.llBank.visibility == View.VISIBLE) { - binding.llBank.visibility = View.GONE - } else { - binding.llBank.visibility = View.VISIBLE - } - } - - binding.btnNext.setOnClickListener { - if (validation()) { - // Applicant Details - (activity as NiveshFdMainActivity).applicantDetails.ApplicantSalutation = - binding.spTitle.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantGender = - binding.spGender.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantFirstName = - binding.edtFirstName.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantMiddleName = - binding.edtMiddleName.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantLastName = - binding.edtLastName.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantDOB = - binding.edtDOB.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantPAN = - binding.edtPANNumber.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantMobile = - binding.edtMobileNumber.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantOccupation = - binding.spOccupation.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantQualification = - binding.edtQualification.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantMaritalStatus = - binding.spMarital.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantEmail = - binding.edtEmail.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantAddress1 = - binding.edtAddressLine1.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantAddress2 = - binding.edtAddressLine2.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantAddress3 = - binding.edtAddressLine3.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantCity = - binding.spCity.text.toString() - (activity as NiveshFdMainActivity).applicantDetails.ApplicantState = - stateObject.State_Code - (activity as NiveshFdMainActivity).applicantDetails.ApplicantCountry = "India" - (activity as NiveshFdMainActivity).applicantDetails.ApplicantPincode = - binding.edtPinCode.text.toString().toInt() - (activity as NiveshFdMainActivity).applicantDetails.AnnualIncome = - binding.spIncome.text.toString() - - // Applicant Relation Details - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantRelation = "" - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantRelationSalutation = - "" - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantRelationFirstName = - "" - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantRelationLastName = - "" - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantMotherFirstName = - "" - (activity as NiveshFdMainActivity).applicantRelationDetails.ApplicantMotherLastName = - "" - - // Applicant Nominee Details - (activity as NiveshFdMainActivity).nomineeDetails.NomineeSalutation = - binding.spNomineeTitle.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeGender = - binding.spGender.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeFirstName = - binding.edtNomineeFirstName.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeMiddleName = - binding.edtNomineeMiddleName.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeLastName = - binding.edtNomineeLastName.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeDOB = - binding.edtNomineeDOB.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeRelation = - binding.spNomineeRelation.text.toString() - (activity as NiveshFdMainActivity).nomineeDetails.NomineeAddress1 = "" - (activity as NiveshFdMainActivity).nomineeDetails.NomineeAddress2 = "" - (activity as NiveshFdMainActivity).nomineeDetails.NomineeAddress3 = "" - (activity as NiveshFdMainActivity).nomineeDetails.NomineeCity = "" - (activity as NiveshFdMainActivity).nomineeDetails.NomineeState = "" - (activity as NiveshFdMainActivity).nomineeDetails.NomineeCountry = "India" - (activity as NiveshFdMainActivity).nomineeDetails.NomineePincode = 0 - - // Applicant Nominee Guardian Details - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianSalutation = - binding.spGuardianRelation.text.toString() - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianName = - binding.edtGuardianName.text.toString() - if (binding.edtGuardianAge.text.toString().isEmpty()) { - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianAge = 0 - } else { - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianAge = - binding.edtGuardianAge.text.toString().toInt() - } - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianCountry = "India" - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianCity = "" - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianState = "" - if (binding.edtGuardianPinCode.text.toString().isEmpty()) { - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianPincode = 0 - } else { - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianPincode = - binding.edtGuardianPinCode.text.toString().toInt() - } - - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianAddress1 = - binding.edtGuardianAddress.text.toString() - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianAddress2 = "" - (activity as NiveshFdMainActivity).nomineeGuardianDetails.GuardianAddress3 = "" - - // Applicant Bank Details - (activity as NiveshFdMainActivity).fdBankDetails.AccountType = - bankListAdapter.getSelected()?.AccountType - (activity as NiveshFdMainActivity).fdBankDetails.BankBranch = - bankListAdapter.getSelected()?.BranchName - (activity as NiveshFdMainActivity).fdBankDetails.IFSCCode = - bankListAdapter.getSelected()?.IFSCCode - (activity as NiveshFdMainActivity).fdBankDetails.AccountNumber = - bankListAdapter.getSelected()?.AccountNumber - (activity as NiveshFdMainActivity).fdBankDetails.BankName = eligibleBank() - (activity as NiveshFdMainActivity).fdBankDetails.PaymentMode = - paymentModeAdapter.getSelected()?.Value - - (activity as NiveshFdMainActivity).createFDApplicantRequest.ApplicantDetails = - (activity as NiveshFdMainActivity).applicantDetails - (activity as NiveshFdMainActivity).createFDApplicantRequest.ApplicantRelationDetails = - (activity as NiveshFdMainActivity).applicantRelationDetails - (activity as NiveshFdMainActivity).createFDApplicantRequest.FdBankDetails = - (activity as NiveshFdMainActivity).fdBankDetails - (activity as NiveshFdMainActivity).createFDApplicantRequest.NomineeDetails = - (activity as NiveshFdMainActivity).nomineeDetails - (activity as NiveshFdMainActivity).createFDApplicantRequest.NomineeGuardianDetails = - (activity as NiveshFdMainActivity).nomineeGuardianDetails - - - (activity as NiveshFdMainActivity).createFDRequest.CreateFDApplicationRequest = - (activity as NiveshFdMainActivity).createFDApplicantRequest - Log.e( - "StepTwoResponse", - "-->" + Gson().toJson((activity as NiveshFdMainActivity).createFDRequest) - ) - createFDApi((activity as NiveshFdMainActivity).createFDRequest) - } - } - - binding.btnBack.setOnClickListener { - (activity as NiveshFdMainActivity).binding.viewPager.currentItem = 0 - } - - } - - private fun eligibleBank(): String { - val enterIfsc = bankListAdapter.getSelected()?.IFSCCode?.substring(0, 4) - for (bankList in listOfEligibleBank) { - if (enterIfsc.equals(bankList.IFSCInitials)) { - return bankList.BankName - } - } - return "" - } - - private fun checkFDCKYCApi() { - if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CM_MOBILE?.isNotEmpty()!! && (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_DOB?.isNotEmpty()!! && binding.edtPANNumber.text.toString() - .isNotEmpty() && (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE?.isNotEmpty()!! - ) { - val checkFDKYCRequest = CheckFDKYCRequest() - checkFDKYCRequest.Mobile = binding.edtMobileNumber.text.toString() - checkFDKYCRequest.DOB = binding.edtDOB.text.toString() - checkFDKYCRequest.PAN = binding.edtPANNumber.text.toString() - checkFDKYCRequest.NiveshClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE.toString() - (activity as NiveshFdMainActivity).viewModel.checkFDKYC( - checkFDKYCRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDKYCMutableData.observe(this) { response -> - when (response) { - is Resource.Success -> { - Log.e("response", "-->${response.data.toString()}") - val getCodeResponse: GetCodeResponse = - Gson().fromJson( - response.data?.toString(), - GetCodeResponse::class.java - ) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - // fdInvestmentDetails.CustomerType = "" - } - 650 -> "" - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - } - - private fun createFDApi(data: CreateFDRequest) { - ProgressUtil.showLoading(activity as NiveshFdMainActivity) - (activity as NiveshFdMainActivity).viewModel.createFDApi( - data, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDResponseMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("createFDApi ", " response -->$response") - val createFDApplicationResponse: CreateFDApplicationResponse = - Gson().fromJson( - response.data?.toString(), - CreateFDApplicationResponse::class.java - ) - createFDApplicationResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - (activity as NiveshFdMainActivity).uniqueId = - createFDApplicationResponse.Response.FDCreationDetailsResponse.UniqueId - (activity as NiveshFdMainActivity).stepTwoApi() - - } - // 650 -> refreshToken() - else -> { - if (createFDApplicationResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - createFDApplicationResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(createFDApplicationResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - ProgressUtil.hideLoading() - } - is Resource.DataError -> { - - } - } - } - } - - private fun ifscCodeCheckApi(ifsc: String) { - if (ifsc.length >= 10) { - (activity as NiveshFdMainActivity).viewModel.ifscCodeApi( - ifsc, - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getIfscCodeCheckMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("ifscCodeCheckApi ", " response -->$response") - val getIFSCCodeListResponse = - Gson().fromJson( - response.data?.toString(), - GetIFSCCodeListResponse::class.java - ) - getIFSCCodeListResponse.Response.status_code.let { code -> - when (code) { - 200 -> { - if (listOfIFSC.size > 0) { - listOfIFSC.clear() - } - listOfIFSC = getIFSCCodeListResponse.IFSCCodes - if (listOfIFSC.size > 0) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfIFSC - ) - binding.edtIFSC.setAdapter(adapter) - binding.edtIFSC.setOnItemClickListener { _, _, position, _ -> - if (listOfIFSC.size > 0) { - binding.edtIFSC.setText( - adapter.getItem(position).toString() - ) - binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length) - getIFSCDetailsApi(binding.edtIFSC.text.toString()) - } - } - } - } - // 650 -> refreshToken() - else -> { - showDialogValidation( - activity as NiveshFdMainActivity, - getIFSCCodeListResponse.Response.message - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation( - activity as NiveshFdMainActivity, - message - ) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - } - - private fun getIFSCDetailsApi(ifscCode: String) { - - (activity as NiveshFdMainActivity).viewModel.ifscCodeDetailsApi( - ifscCode, - activity as NiveshFdMainActivity, - PreferenceManager(activity as NiveshFdMainActivity).getToken() - ) - (activity as NiveshFdMainActivity).viewModel.getIfscCodeDetailsCheckMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - if (response.data.toString().isNotEmpty()) { - Log.e("getIFSCDetailsApi ", " response -->$response") - val getIFSCCodeResponse = Gson().fromJson( - response.data.toString(), - GetIFSCCodeResponse::class.java - ) - binding.edtBankName.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BnkDescr) - binding.edtBankName.setSelection(binding.edtBankName.text.toString().length) - binding.edtBankBranch.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BankBranch) - binding.edtBankBranch.setSelection(binding.edtBankBranch.text.toString().length) - } - } - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - - } - - } - } - - private fun verifyAccountNo( - bankAccount: String, - Ifsc: String, - name: String, - phoneNumber: String, - loginRole: Int, - accountType: String - ) { - - val bankValidationApiRequest = BankValidationApiRequest() - bankValidationApiRequest.BankAccountNo = bankAccount - bankValidationApiRequest.IFSC = Ifsc - bankValidationApiRequest.Name = name - bankValidationApiRequest.PhoneNo = phoneNumber - bankValidationApiRequest.RoleId = loginRole - bankValidationApiRequest.BankNo = 1 - ProgressUtil.showLoading(activity as NiveshFdMainActivity) - (activity as NiveshFdMainActivity).viewModel.bankValidationApi( - bankValidationApiRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.bankValidationApiMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("verifyAccountNo ", " response -->$response") - val getBankValidationApiResponse = - Gson().fromJson( - response.data?.toString(), - BankValidationApiResponse::class.java - ) - getBankValidationApiResponse.response.status_code.let { code -> - if (binding.tvAcVerify.visibility == View.GONE) { - binding.tvAcVerify.visibility = View.VISIBLE - } - when (code) { - 200 -> { - if (getBankValidationApiResponse.Message == getString(R.string.accountVerified) || getBankValidationApiResponse.Message == getString( - R.string.accountVerified1 - ) - ) { - val clientBankList = ClientBanklist() - clientBankList.AccountNumber = bankAccount - clientBankList.AccountType = accountType - clientBankList.BankName = - binding.edtBankName.text.toString() - clientBankList.BranchName = - binding.edtBankBranch.text.toString() - clientBankList.IFSCCode = Ifsc - clientBankList.IsValBank = 1 - listOfBanks.clear() - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let { - listOfBanks.addAll( - it - ) - } - listOfBanks.add(clientBankList) - setUpRecyclerView( - listOfBanks, - clientBankList.AccountNumber.toString() - ) - binding.llBankDetails.visibility = View.GONE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( - 0, - 0, - R.drawable.ic_add_icon, - 0 - ) - binding.edtAccountNumber.setText("") - binding.edtIFSC.setText("") - binding.edtBankName.setText("") - binding.edtBankBranch.setText("") - - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - getBankValidationApiResponse.Message - ) - } - } - else -> { - showDialogValidation( - activity as NiveshFdMainActivity, - getBankValidationApiResponse.Message - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - ProgressUtil.hideLoading() - } - is Resource.DataError -> { - - } - } - } - } - - private fun validateBank(): Boolean { - return if (binding.edtIFSC.text.toString().isEmpty()) { // EditText - commonErrorAutoCompleteMethod( - binding.edtIFSC, - binding.tlIFSC, - getString(R.string.emptyIFSCCode) - ) - } else if (binding.edtIFSC.text.toString().length != 11) { // EditText - commonErrorAutoCompleteMethod( - binding.edtIFSC, - binding.tlIFSC, - getString(R.string.validIFSCCode) - ) - } else if (binding.edtAccountNumber.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtAccountNumber, - binding.tlAccountNumber, - getString(R.string.emptyAccNo) - ) - } else if (binding.edtBankName.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtBankName, - binding.tlBankName, - getString(R.string.emptyBankName) - ) - } else if (binding.edtBankBranch.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtBankBranch, - binding.tlBankBranchName, - getString(R.string.emptyBranchName) - ) - } else { - return true - } - } - - private fun setUpRecyclerView( - bankList: List?, - selectedAccount: String? = null - ) { - val displayMetrics = DisplayMetrics() - requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics) - val width = displayMetrics.widthPixels.toDouble() - binding.rvClientBankList.layoutManager = LinearLayoutManager( - activity as NiveshFdMainActivity, - LinearLayoutManager.HORIZONTAL, - false - ) - bankListAdapter = BankListAdapter(bankList, selectedAccount, width) - binding.rvClientBankList.adapter = bankListAdapter - } - - private fun datePicker(edtDOB: TextInputEditText, number: Int) { - val year = cal.get(Calendar.YEAR) - val month = cal.get(Calendar.MONTH) - val day = cal.get(Calendar.DAY_OF_MONTH) - val datePickerDialog = DatePickerDialog( - activity as NiveshFdMainActivity, { _, years, monthOfYear, dayOfMonth -> - if (monthOfYear.toString().length == 1) { - "0".plus(monthOfYear) - } - edtDOB.setText( - years.toString().plus("-").plus(monthOfYear + 1).plus("-") - .plus(dayOfMonth.toString()) - ) - edtDOB.setSelection(edtDOB.text.toString().length) - if (number == 2) { - if (isMinor( - years.toString().plus("-").plus(monthOfYear + 1).plus("-") - .plus(dayOfMonth.toString()) - ) - ) { - guardianCodeVisibility(View.VISIBLE) - } else { - guardianCodeVisibility(View.GONE) - } - } - }, year, month, day - ) - datePickerDialog.datePicker.maxDate = cal.timeInMillis - val c = Calendar.getInstance() - c.add(Calendar.YEAR, -140) - datePickerDialog.datePicker.minDate = c.timeInMillis - datePickerDialog.show() - } - - private fun guardianCodeVisibility(visibility: Int) { - binding.tlGuardianName.visibility = visibility - binding.tlGuardianAddress.visibility = visibility - binding.tlGuardianAge.visibility = visibility - binding.tlGuardianPinCode.visibility = visibility - binding.tlGuardianRelation.visibility = visibility - - } - - private fun titleApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.salutationCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.titleApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getTitleMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("titleApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfTitle = getCodeResponse.Response.GetCodesList - if (listOfTitle.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfTitle - ) - binding.spTitle.setAdapter(adapter) - - val titleText = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Client_Title - val newTitleText = "$titleText." - - if (titleText.isNullOrEmpty()) { - binding.spTitle.setText( - adapter.getItem(0)?.Value, - false - ) - } else { - for (title in listOfTitle) { - if (title.Value == newTitleText) { - binding.spTitle.setText(title.Value, false) - break - } - } - } - binding.spNomineeTitle.setAdapter(adapter) - binding.spNomineeTitle.setText( - adapter.getItem(0)?.Value, - false - ) - } - genderApi() - relationShipApi() - maritalStatusApi() - occupationApi() - annualIncomeApi() - stateListApi() - paymentModeApi() - - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun paymentModeApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.paymentModeCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.paymentModeApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getPaymentModeMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("paymentModeApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getCodeResponse.Response.GetCodesList.isNotEmpty()) { - listOfPayMode = getCodeResponse.Response.GetCodesList - setUpRecyclerViewPaymentMode(listOfPayMode as MutableList) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun setUpRecyclerViewPaymentMode(listOfPayMode: MutableList) { - - observerViewModel.data.observe(viewLifecycleOwner) { - val tempList = mutableListOf() - tempList.addAll(listOfPayMode) - val amountEntered: String = observerViewModel.data.value.toString() - if (amountEntered.toDouble() > 100000.0) { - for (list in listOfPayMode) { - if (list.Value == "UPI") { - tempList.remove(list) - break - } - } - } - binding.rvPaymentMode.layoutManager = - GridLayoutManager(activity as NiveshFdMainActivity, 2) - paymentModeAdapter = PaymentModeAdapter( - tempList, - listOfPayMode[0].Value - ) - binding.rvPaymentMode.adapter = paymentModeAdapter - } - - binding.rvPaymentMode.layoutManager = - GridLayoutManager(activity as NiveshFdMainActivity, 2) - paymentModeAdapter = PaymentModeAdapter( - listOfPayMode, - listOfPayMode[0].Value - ) - binding.rvPaymentMode.adapter = paymentModeAdapter - } - - private fun genderApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.genderCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.genderApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getGenderMutableData.observe(viewLifecycleOwner) { response -> - when (response) { - is Resource.Success -> { - Log.e("genderApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfGender = getCodeResponse.Response.GetCodesList - if (listOfGender.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfGender - ) - binding.spGender.setAdapter(adapter) - binding.spGender.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun relationShipApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.relationshipCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.relationShipApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getRelationShipMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("relationShipApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfRelationShip = getCodeResponse.Response.GetCodesList - if (listOfGender.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfRelationShip - ) - binding.spNomineeRelation.setAdapter(adapter) - - val nomineeRelation = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.Nominees?.get( - 0 - )?.NomineeRelationship - if (nomineeRelation.isNullOrEmpty()) { - binding.spNomineeRelation.setText( - adapter.getItem(0)?.Label, - false - ) - } else { - for (title in listOfRelationShip) { - if (title.Label == nomineeRelation) { - binding.spNomineeRelation.setText( - title.Label, - false - ) - break - } - } - } - - binding.spGuardianRelation.setAdapter(adapter) - binding.spGuardianRelation.setText( - adapter.getItem(0)?.Label, - false - ) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - - is Resource.DataError -> { - - } - } - } - } - - private fun maritalStatusApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.maritalCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.maritalStatusApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getMaritalStatusMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("maritalStatusApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfMaritalStatus = getCodeResponse.Response.GetCodesList - if (listOfMaritalStatus.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfMaritalStatus - ) - binding.spMarital.setAdapter(adapter) - binding.spMarital.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun occupationApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.occupationCategory) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.occupationApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getOccupationMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("occupationApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfOccupation = getCodeResponse.Response.GetCodesList - if (listOfOccupation.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfOccupation - ) - binding.spOccupation.setAdapter(adapter) - - val occupationCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_OCCUPATION_CODE - if (occupationCode.isNullOrEmpty()) { - - binding.spOccupation.setText( - adapter.getItem(0)?.Label, - false - ) - } else { - for (title in listOfOccupation) { - if (title.Value == occupationCode) { - binding.spOccupation.setText(title.Label, false) - break - } - } - } - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun annualIncomeApi() { - val getCodeRequest = GetCodeRequest() - getCodeRequest.ProductName = getString(R.string.bajajFD) - getCodeRequest.Category = getString(R.string.annualIncome) - getCodeRequest.Language = getString(R.string.language) - getCodeRequest.InputValue = "" - (activity as NiveshFdMainActivity).viewModel.annualIncomeApi( - getCodeRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getAnnualIncomeMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("annualIncomeApi ", " response -->$response") - val getCodeResponse: GetCodeResponse = - Gson().fromJson(response.data?.toString(), GetCodeResponse::class.java) - getCodeResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - listOfAnnualIncome = getCodeResponse.Response.GetCodesList - if (listOfAnnualIncome.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfAnnualIncome - ) - binding.spIncome.setAdapter(adapter) - binding.spIncome.setText( - adapter.getItem(0)?.Value, - false - ) - } - } - // 650 -> refreshToken() - else -> { - if (getCodeResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getCodeResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getCodeResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun stateListApi() { - (activity as NiveshFdMainActivity).viewModel.stateApi( - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getStateMasterMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("stateListApi ", " response -->$response") - val stateListResponse: StateListResponse = - Gson().fromJson( - response.data?.toString(), - StateListResponse::class.java - ) - stateListResponse.response.status_code.let { code -> - when (code) { - 200 -> { - listOfStates = stateListResponse.DataObject - if (listOfStates.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfStates - ) - binding.spState.setAdapter(adapter) - val newTitleText = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_STATE - if (newTitleText?.isEmpty()!!) { - binding.spState.setText( - adapter.getItem(0)?.State_Name, - false - ) - cityListApi(adapter.getItem(0)?.State_Id) - - stateObject = adapter.getItem(0) as DataObject - Log.e("if", " -->" + stateObject.State_Code) - } else { - for (title in listOfStates) { - if (title.State_Code == newTitleText) { - binding.spState.setText(title.State_Name, false) - cityListApi(title.State_Id) - stateObject = title - Log.e("else", " -->" + stateObject.State_Code) - break - } - } - } - } - } - // 650 -> refreshToken() - else -> { - showDialogValidation( - activity as NiveshFdMainActivity, - stateListResponse.response.message - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun cityListApi(stateCode: Int?) { - - val cityRequest = CityRequest() - cityRequest.StateCode = stateCode - cityRequest.Type = "" - cityRequest.ClientCode = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CODE - cityRequest.RoleID = PreferenceManager(activity as NiveshFdMainActivity).getLoginRole() - cityRequest.APIName = "" - cityRequest.UID = 0 - cityRequest.Subbroker_Code = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.sub_broker_code - cityRequest.RMCode = "" - cityRequest.HOCode = "" - cityRequest.Source = getString(R.string.source) - cityRequest.APP_Web = getString(R.string.app) - (activity as NiveshFdMainActivity).viewModel.cityListApi( - cityRequest, - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getCityListMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("cityListApi ", " response -->$response") - val cityListResponse: CityListResponse = - Gson().fromJson(response.data?.toString(), CityListResponse::class.java) - cityListResponse.response.status_code.let { code -> - when (code) { - 200 -> { - listOfCities = cityListResponse.DataObject - if (listOfCities.isNotEmpty()) { - val adapter = ArrayAdapter( - activity as NiveshFdMainActivity, - R.layout.spinner_dropdown, - listOfCities - ) - binding.spCity.setAdapter(adapter) - - val newTitleText = - (activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_CITY - if (newTitleText?.isEmpty()!!) { - binding.spCity.setText( - adapter.getItem(0)?.city_name, - false - ) - } else { - for (title in listOfCities) { - if (title.city_name == newTitleText) { - binding.spCity.setText(title.city_name, false) - break - } - } - } - } - } - // 650 -> refreshToken() - else -> { - showDialogValidation( - activity as NiveshFdMainActivity, - cityListResponse.response.message - ) - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - - } - is Resource.DataError -> { - - } - } - } - } - - private fun apiForEligibleBankList() { - ProgressUtil.showLoading(activity as NiveshFdMainActivity) - (activity as NiveshFdMainActivity).viewModel.bankListApi( - PreferenceManager(activity as NiveshFdMainActivity).getToken(), - getString(R.string.language), - activity as NiveshFdMainActivity - ) - (activity as NiveshFdMainActivity).viewModel.getFDBankListMutableData.observe( - viewLifecycleOwner - ) { response -> - when (response) { - is Resource.Success -> { - Log.e("apiForEligibleBankList ", " response -->${response.data.toString()}") - val getFDBankListResponse: GetFDBankListResponse = - Gson().fromJson( - response.data?.toString(), - GetFDBankListResponse::class.java - ) - getFDBankListResponse.Response.StatusCode.let { code -> - when (code) { - 200 -> { - if (getFDBankListResponse.Response.BankList.isNotEmpty()) { - listOfEligibleBank.addAll(getFDBankListResponse.Response.BankList) - - } - } - 650 -> refreshToken() - else -> { - if (getFDBankListResponse.Response.Errors.isNotEmpty()) { - showDialogValidation( - activity as NiveshFdMainActivity, - getFDBankListResponse.Response.Errors[0].ErrorMessage - ) - } else { - showDialogValidation( - activity as NiveshFdMainActivity, - "".plus(getFDBankListResponse.Response.Message) - ) - } - } - } - } - } - - is Resource.Error -> { - response.message?.let { message -> - showDialogValidation(activity as NiveshFdMainActivity, message) - } - } - is Resource.Loading -> { - ProgressUtil.hideLoading() - } - is Resource.DataError -> { - - } - } - } - } - - private fun refreshToken() { - - } - - private fun dialogForBankList(bankList: List) { - val dialog = Dialog(activity as NiveshFdMainActivity) - dialog.setContentView(R.layout.layout_bank_list) - dialog.setCancelable(true) - dialog.window!! - .setLayout( - WindowManager.LayoutParams.MATCH_PARENT, - WindowManager.LayoutParams.MATCH_PARENT - ) - val rvClientList = dialog.findViewById(R.id.rvBankList) - rvClientList.layoutManager = LinearLayoutManager(activity as NiveshFdMainActivity) - val tvCancel = dialog.findViewById(R.id.tvCancel) - tvCancel.setOnClickListener { - dialog.dismiss() - } - - if (bankList.isNotEmpty()) { - val bankListAdapter = RecommendedBankListAdapter(bankList) - rvClientList.adapter = bankListAdapter - } - dialog.show() - } - - // validations - private fun validation(): Boolean { - return if (binding.edtMobileNumber.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtMobileNumber, - binding.tlMobileNumber, - getString(R.string.emptyMobileNumber) - ) - } else if (!isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText - commonErrorMethod( - binding.edtMobileNumber, - binding.tlMobileNumber, - getString(R.string.inValidIndianMobileNumber) - ) - } else if (binding.edtMobileNumber.text?.length != 10) { // EditText - commonErrorMethod( - binding.edtMobileNumber, - binding.tlMobileNumber, - getString(R.string.inValidMobileNumber) - ) - } else if (binding.edtDOB.text.toString().isEmpty()) { // EditText - commonErrorMethod(binding.edtDOB, binding.tlDOB, getString(R.string.emptyDOB)) - } else if (isMinor(binding.edtDOB.text.toString())) { // EditText - commonErrorMethod(binding.edtDOB, binding.tlDOB, getString(R.string.minorApplicant)) - } else if (binding.edtPANNumber.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtPANNumber, - binding.tlPanNumber, - getString(R.string.emptyPAN) - ) - } else if (!isValidPan(binding.edtPANNumber.text.toString())) { // EditText - commonErrorMethod( - binding.edtPANNumber, - binding.tlPanNumber, - getString(R.string.invalidPAN) - ) - } else if (!isValidIndividualPan(binding.edtPANNumber.text.toString())) { // EditText - commonErrorMethod( - binding.edtPANNumber, - binding.tlPanNumber, - getString(R.string.invalidIndividualPAN) - ) - } else if (binding.spTitle.text.isEmpty()) { // Spinner - commonSpinnerErrorMethod( - binding.spTitle, - binding.tlTitle, - getString(R.string.emptyTitle) - ) - } else if (binding.spGender.text.toString().isEmpty()) { // Spinner - commonSpinnerErrorMethod( - binding.spGender, - binding.tlGender, - getString(R.string.emptyGender) - ) - } else if (binding.edtFirstName.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtFirstName, - binding.tlFirstName, - getString(R.string.emptyFirstName) - ) - } else if (!isValidName(binding.edtFirstName.text.toString())) { // EditText - commonErrorMethod( - binding.edtFirstName, - binding.tlFirstName, - getString(R.string.validFirstName) - ) - } else if (binding.edtLastName.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtLastName, - binding.tlLastName, - getString(R.string.emptyLastName) - ) - } else if (!isValidName(binding.edtLastName.text.toString())) { // EditText - commonErrorMethod( - binding.edtLastName, - binding.tlLastName, - getString(R.string.validLastName) - ) - } else if (binding.spOccupation.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod( - binding.spOccupation, - binding.tlOccupation, - getString(R.string.emptyOccupation) - ) - } else if (binding.spIncome.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod( - binding.spIncome, - binding.tlIncome, - getString(R.string.emptyIncome) - ) - } else if (binding.edtQualification.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtQualification, - binding.tlQualification, - getString(R.string.emptyQualification) - ) - } else if (binding.spMarital.text.toString().isEmpty()) { // Spinner - commonSpinnerErrorMethod( - binding.spMarital, - binding.tlMarital, - getString(R.string.emptyMaritalStatus) - ) - } else if (binding.edtEmail.text.toString().isEmpty()) { // EditText - commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.emptyEmail)) - } else if (!isValidEmail(binding.edtEmail.text.toString())) { // EditText - commonErrorMethod(binding.edtEmail, binding.tlEmail, getString(R.string.validEmail)) - } else if (binding.edtAddressLine1.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtAddressLine1, - binding.tlAddressLine1, - getString(R.string.emptyAddressLine1) - ) - } else if (binding.edtAddressLine2.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtAddressLine2, - binding.tlAddressLine2, - getString(R.string.emptyAddressLine2) - ) - } else if (binding.edtAddressLine3.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtAddressLine3, - binding.tlAddressLine3, - getString(R.string.emptyAddressLine3) - ) - } else if (binding.spState.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod( - binding.spState, - binding.tlState, - getString(R.string.emptyState) - ) - } else if (binding.spCity.text.toString().isEmpty()) { // EditText - commonSpinnerErrorMethod( - binding.spCity, - binding.tlCity, - getString(R.string.emptyCity) - ) - } else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText - commonErrorMethod( - binding.edtPinCode, - binding.tlPinCode, - getString(R.string.emptyPinCode) - ) - } else if (binding.edtPinCode.text.toString().length != 6) { // EditText - commonErrorMethod( - binding.edtPinCode, - binding.tlPinCode, - getString(R.string.validPinCode) - ) - } else if (binding.edtNomineeDOB.text.toString() - .isNotEmpty() && isMinor(binding.edtNomineeDOB.text.toString()) - ) { - commonErrorMethod( - binding.edtGuardianName, - binding.tlGuardianName, - getString(R.string.validGuardianDetails) - ) - } else if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString() - .isEmpty() - ) { // EditText - commonErrorAutoCompleteMethod( - binding.edtIFSC, - binding.tlIFSC, - getString(R.string.emptyIFSCCode) - ) - } else if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtIFSC.text.toString() - .length != 11 - ) { // EditText - commonErrorAutoCompleteMethod( - binding.edtIFSC, - binding.tlIFSC, - getString(R.string.validIFSCCode) - ) - } else if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtAccountNumber.text.toString() - .isEmpty() - ) { // EditText - commonErrorMethod( - binding.edtAccountNumber, - binding.tlAccountNumber, - getString(R.string.emptyAccNo) - ) - } else if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtBankName.text.toString() - .isEmpty() - ) { // EditText - commonErrorMethod( - binding.edtBankName, - binding.tlBankName, - getString(R.string.emptyBankName) - ) - } else if (eligibleBank().isEmpty() && eligibleBank() != bankListAdapter.getSelected()?.BankName) { - showDialogValidation( - activity as NiveshFdMainActivity, - getString(R.string.eligibleBankError) - ) - return false - } else if ((activity as NiveshFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.isEmpty()!! && binding.edtBankBranch.text.toString() - .isEmpty() - ) { // EditText - commonErrorMethod( - binding.edtBankBranch, - binding.tlBankBranchName, - getString(R.string.emptyBranchName) - ) - } else { - return true - } - } - - private fun showHideBankDetail() { - if (binding.llBankDetails.visibility == View.GONE) { - binding.llBankDetails.visibility = View.VISIBLE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( - 0, - 0, - R.drawable.ic_minus, - 0 - ) - - } else { - binding.llBankDetails.visibility = View.GONE - binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds( - 0, - 0, - R.drawable.ic_add_icon, - 0 - ) - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/providerfactory/FDModelProviderFactory.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/providerfactory/FDModelProviderFactory.kt deleted file mode 100644 index 7886ee6..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/providerfactory/FDModelProviderFactory.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.nivesh.production.niveshfd.fd.ui.providerfactory - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.nivesh.production.niveshfd.fd.repositories.MainRepository -import com.nivesh.production.niveshfd.fd.viewModel.BajajFDViewModel - -class FDModelProviderFactory(private val mainRepository: MainRepository) : - ViewModelProvider.Factory { - - override fun create(modelClass: Class): T { - return BajajFDViewModel(mainRepository) as T - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/BajajFDViewModel.kt deleted file mode 100644 index 79e930f..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/BajajFDViewModel.kt +++ /dev/null @@ -1,369 +0,0 @@ -package com.nivesh.production.niveshfd.fd.viewModel - -import android.app.Activity -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import com.google.gson.JsonObject -import com.nivesh.production.niveshfd.fd.model.* -import com.nivesh.production.niveshfd.fd.repositories.MainRepository -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.handleError -import com.nivesh.production.niveshfd.fd.util.Common.Companion.handleResponse -import com.nivesh.production.niveshfd.fd.util.Constants -import com.nivesh.production.niveshfd.fd.util.Resource -import kotlinx.coroutines.launch - -open class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { - - val getStepsCountMutableData: MutableLiveData> = MutableLiveData() - fun getStepsCount( - requestBody: FDStepsCountRequest, - token: String, - activity: Activity - ) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getStepsCountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getStepsCountResponse(requestBody, token) - getStepsCountMutableData.postValue(handleResponse(response)) - } - } - - val getClientDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String, activity: Activity) = - viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getClientDetailsMutableData.postValue(Resource.Loading()) - val response = - mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) - getClientDetailsMutableData.postValue(handleResponse(response)) - } - } - - - - val getPaymentReQueryMutableData: MutableLiveData> = MutableLiveData() - fun getPaymentReQuery(requestBody: PaymentReQueryRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getPaymentReQueryMutableData.postValue(Resource.Loading()) - val response = mainRepository.paymentReQueryResponse(requestBody, token) - getPaymentReQueryMutableData.postValue(handleResponse(response)) - } - } - - - // Step 1 Api - val getMinAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMinAmount(requestBody: GetCodeRequest, token: String, activity: Activity) = - viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMinAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMinAmountMutableData.postValue(handleResponse(response)) - } - } - - val getMaxAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaxAmount(requestBody: GetCodeRequest, token: String, activity: Activity) = - viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMaxAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getMaxAmountMutableData.postValue(handleResponse(response)) - } - } - - val getMaturityAmountMutableData: MutableLiveData> = MutableLiveData() - fun getMaturityAmount(requestBody: GetMaturityAmountRequest, activity: Activity, token: String) = - viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMaturityAmountMutableData.postValue(Resource.Loading()) - val response = mainRepository.createCalculateFDMaturityAmount(requestBody, token) - getMaturityAmountMutableData.postValue(handleResponse(response)) - } - } - - val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun getRates(getRatesRequest: GetRatesRequest, token: String, activity: Activity) = - viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getRatesResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleResponse(response)) - } - } - - val getCodeMutableData: MutableLiveData> = MutableLiveData() - fun getCode(requestBody: GetCodeRequest, token: String, activity: Activity) = - viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getCodeMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(requestBody, token) - getCodeMutableData.postValue(handleResponse(response)) - } - } - - - // Step 2 - val getFDKYCMutableData: MutableLiveData> = MutableLiveData() - fun checkFDKYC(requestBody: CheckFDKYCRequest, token : String, activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFDKYCMutableData.postValue(Resource.Loading()) - val response = mainRepository.checkFDKYCRequest(requestBody, token) - getFDKYCMutableData.postValue(handleResponse(response)) - } - } - - val getTitleMutableData: MutableLiveData> = MutableLiveData() - fun titleApi(getCodeRequest: GetCodeRequest, token: String, activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getTitleMutableData.postValue(Resource.Loading()) - val response = mainRepository.titleCheck(getCodeRequest, token) - getTitleMutableData.postValue(handleResponse(response)) - } - } - - val getGenderMutableData: MutableLiveData> = MutableLiveData() - fun genderApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getGenderMutableData.postValue(Resource.Loading()) - val response = mainRepository.genderCheck(getCodeRequest, token) - getGenderMutableData.postValue(handleResponse(response)) - } - } - - val getAnnualIncomeMutableData: MutableLiveData> = MutableLiveData() - fun annualIncomeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getAnnualIncomeMutableData.postValue(Resource.Loading()) - val response = mainRepository.annualIncomeCheck(getCodeRequest, token) - getAnnualIncomeMutableData.postValue(handleResponse(response)) - } - } - - val getRelationShipMutableData: MutableLiveData> = MutableLiveData() - fun relationShipApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getRelationShipMutableData.postValue(Resource.Loading()) - val response = mainRepository.relationShipCheck(getCodeRequest, token) - getRelationShipMutableData.postValue(handleResponse(response)) - } - } - - val getMaritalStatusMutableData: MutableLiveData> = MutableLiveData() - fun maritalStatusApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getMaritalStatusMutableData.postValue(Resource.Loading()) - val response = mainRepository.maritalStatusCheck(getCodeRequest, token) - getMaritalStatusMutableData.postValue(handleResponse(response)) - } - } - - val getOccupationMutableData: MutableLiveData> = MutableLiveData() - fun occupationApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getOccupationMutableData.postValue(Resource.Loading()) - val response = mainRepository.occupationCheck(getCodeRequest, token) - getOccupationMutableData.postValue(handleResponse(response)) - } - } - - - val getStateMasterMutableData: MutableLiveData> = MutableLiveData() - fun stateApi(token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getStateMasterMutableData.postValue(Resource.Loading()) - val response = mainRepository.stateCheck(token) - getStateMasterMutableData.postValue(handleResponse(response)) - } - } - - val getCityListMutableData: MutableLiveData> = MutableLiveData() - fun cityListApi(cityRequest: CityRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getCityListMutableData.postValue(Resource.Loading()) - val response = mainRepository.cityCheck(cityRequest, token) - getCityListMutableData.postValue(handleResponse(response)) - } - } - - val getFDBankListMutableData: MutableLiveData> = MutableLiveData() - fun bankListApi( token: String,language: String, activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getFDBankListMutableData.postValue(Resource.Loading()) - val response = mainRepository.bankListCheck(token, language) - getFDBankListMutableData.postValue(handleResponse(response)) - } - } - - val getIfscCodeCheckMutableData: MutableLiveData> = MutableLiveData() - fun ifscCodeApi(ifsc : String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getIfscCodeCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeCheck(ifsc) - getIfscCodeCheckMutableData.postValue(handleResponse(response)) - } - } - - val getIfscCodeDetailsCheckMutableData: MutableLiveData> = MutableLiveData() - fun ifscCodeDetailsApi(ifsc : String,activity : Activity, token:String) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getIfscCodeDetailsCheckMutableData.postValue(Resource.Loading()) - val response = mainRepository.ifscCodeBankDetailsCheck(ifsc, token) - getIfscCodeDetailsCheckMutableData.postValue(Common.handleResponse1(response)) - } - } - - val getPaymentModeMutableData: MutableLiveData> = MutableLiveData() - fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getPaymentModeMutableData.postValue(Resource.Loading()) - val response = mainRepository.payModeCheck(getCodeRequest, token) - getPaymentModeMutableData.postValue(handleResponse(response)) - } - } - - val getFDResponseMutableData: MutableLiveData> = MutableLiveData() - fun createFDApi(getRatesRequest: CreateFDRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getFDResponseMutableData.postValue(Resource.Loading()) - val response = mainRepository.createFDKYCResponse(getRatesRequest, token) - getFDResponseMutableData.postValue(handleResponse(response)) - } - } - - val bankValidationApiMutableData: MutableLiveData> = MutableLiveData() - fun bankValidationApi(bankValidationApiRequest : BankValidationApiRequest,token:String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - bankValidationApiMutableData.postValue(Resource.Loading()) - val response = mainRepository.bankValidationApiRequest(bankValidationApiRequest,token) - bankValidationApiMutableData.postValue(handleResponse(response)) - } - } - - // Step 3 - val getDocTypeMutableData: MutableLiveData> = MutableLiveData() - fun docTypeApi(getCodeRequest: GetCodeRequest, token: String, activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getDocTypeMutableData.postValue(Resource.Loading()) - val response = mainRepository.titleCheck(getCodeRequest, token) - getDocTypeMutableData.postValue(handleResponse(response)) - } - } - - - val getDocumentUploadMutableData: MutableLiveData> = MutableLiveData() - fun documentsUpload(documentUpload: DocumentUpload, token: String, activity: Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - getDocumentUploadMutableData.postValue(Resource.Loading()) - val response = mainRepository.documentsUploadResponse(documentUpload, token) - getDocumentUploadMutableData.postValue(handleResponse(response)) - } - } - - // Step 4 - val getFDDetailsMutableData: MutableLiveData> = MutableLiveData() - fun getFDDetails(getRatesRequest: GetFDDetailsRequest, token: String, - activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFDDetailsMutableData.postValue(Resource.Loading()) - val response = mainRepository.getFDDetailsResponse(getRatesRequest, token) - getFDDetailsMutableData.postValue(handleResponse(response)) - } - } - - val getFDOtherMutableData: MutableLiveData> = MutableLiveData() - fun saveFDOtherData(getRatesRequest: SaveFDOtherDataRequest, token: String, - activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFDOtherMutableData.postValue(Resource.Loading()) - val response = mainRepository.saveFDOtherDataResponse(getRatesRequest, token) - getFDOtherMutableData.postValue(handleResponse(response)) - } - } - - val customerListMutableData: MutableLiveData> = MutableLiveData() - fun customerListApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch( - handleError(activity) - ) { - if (Common.isNetworkAvailable(activity)) { - customerListMutableData.postValue(Resource.Loading()) - val response = mainRepository.customerListCheck(getCodeRequest, token) - customerListMutableData.postValue(handleResponse(response)) - } - } - - fun updateFDPaymentStatus(getRatesRequest: GetRatesRequest, token: String, - activity: Activity - ) = - viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.updateFDPaymentStatusResponse(getRatesRequest, token) - getRatesMutableData.postValue(handleResponse(response)) - } - } - - val getFinalizeFDMutableData: MutableLiveData> = MutableLiveData() - fun finaliseFD(finalizeFDRequest: FinalizeFDRequest, token: String, - activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFinalizeFDMutableData.postValue(Resource.Loading()) - val response = mainRepository.finaliseFDResponse(finalizeFDRequest, token) - getFinalizeFDMutableData.postValue(handleResponse(response)) - } - } - - val getFinalizeKYCMutableData: MutableLiveData> = MutableLiveData() - fun finaliseKYC(getRatesRequest: FinalizeKYCRequest, token: String, - activity: Activity) = viewModelScope.launch(handleError(activity)) { - if (Common.isNetworkAvailable(activity)) { - getFinalizeKYCMutableData.postValue(Resource.Loading()) - val response = mainRepository.finaliseKYCResponse(getRatesRequest, token) - getFinalizeKYCMutableData.postValue(handleResponse(response)) - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiCallback1.kt b/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiCallback1.kt deleted file mode 100644 index 4e9184b..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiCallback1.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.api1 - -import com.nivesh.production.niveshfd.fd.util.Resource -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response - -abstract class ApiCallback1 : Callback> { - - abstract fun onSuccess(response: Resource) - - abstract fun onFailure(response: Resource) - - override fun onResponse(call: Call>, response: Response>) { - if (response.isSuccessful && response.body() != null && response.code() == 200) { - onSuccess(response.body()!!) - } else if (response.code() == 650){ - // handle 4xx & 5xx error codes here -// val resp = Resource() -// resp.status = false -// resp.message = response.message() -// onFailure(resp) - } - } - - override fun onFailure(call: Call>, t: Throwable) { -// val response = Resource() -// response.status = false -// response.message = t.message.toString() -// onFailure(response) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiClient1.kt b/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiClient1.kt deleted file mode 100644 index 1b33ef2..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/api1/ApiClient1.kt +++ /dev/null @@ -1,66 +0,0 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.api1 - -import com.nivesh.production.niveshfd.fd.NiveshFdApplication -import com.nivesh.production.niveshfd.fd.interfaces.ApiInterface -import com.nivesh.production.niveshfd.fd.util.Constants.Companion.BASE_URL -import okhttp3.OkHttpClient -import okhttp3.logging.HttpLoggingInterceptor -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory -import java.security.KeyStore -import java.util.* -import java.util.concurrent.TimeUnit -import javax.net.ssl.* - -class ApiClient1 { - val context = NiveshFdApplication.appContext - - companion object { - private val client by lazy { - //lazy means we only initialize this here once - val logging = HttpLoggingInterceptor() - //loggingInterceptor use for see making request and for see what responses are - logging.setLevel(HttpLoggingInterceptor.Level.BODY) - //see the body of response - //create client for retrofit - - val trustManagerFactory: TrustManagerFactory = - TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) - trustManagerFactory.init(null as KeyStore?) - val trustManagers: Array = trustManagerFactory.getTrustManagers() - check(!(trustManagers.size != 1 || trustManagers[0] !is X509TrustManager)) { - "Unexpected default trust managers:" + Arrays.toString( - trustManagers - ) - } - val trustManager: X509TrustManager = trustManagers[0] as X509TrustManager - val sslContext = SSLContext.getInstance("SSL") - sslContext.init(null, arrayOf(trustManager), null) - val sslSocketFactory: SSLSocketFactory = sslContext.socketFactory - - val client = OkHttpClient.Builder() - .addInterceptor(logging) - .sslSocketFactory(sslSocketFactory, trustManager) - .retryOnConnectionFailure(true) - .callTimeout(2, TimeUnit.MINUTES) - .connectTimeout(20, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .writeTimeout(30, TimeUnit.SECONDS) - .build() - - Retrofit.Builder() - .baseUrl(BASE_URL) - .addConverterFactory(GsonConverterFactory.create()) - .client(client) - .build() - } - val getApiClient: ApiInterface by lazy { - client.create(ApiInterface::class.java) - } - } - -} - - - - diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/interfaces1/ApiInterface1.kt b/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/interfaces1/ApiInterface1.kt deleted file mode 100644 index 4ff248e..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/interfaces1/ApiInterface1.kt +++ /dev/null @@ -1,175 +0,0 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.api1 - -import com.google.gson.JsonObject -import com.nivesh.production.niveshfd.fd.model.* -import okhttp3.RequestBody -import retrofit2.Response -import retrofit2.http.* - -interface ApiInterface1 { - - @POST("GetRates") - suspend fun getRates( - @Body getRatesRequest: GetRatesRequest, - @Header("token") token: String - ): Response - - @POST("CheckFDCKYC") - suspend fun checkFDKYC( - @Body checkFDKYCRequest: CheckFDKYCRequest, - @Header("token") token: String - ): Response - - @POST("CreateFDApplication") - suspend fun createFDApp( - @Body createFDRequest: CreateFDRequest, - @Header("token") token: String - ): Response - - @POST("DocumentsUpload") - suspend fun documentsUpload( - @Body requestBody: DocumentUpload, - @Header("token") token: String - ): Response - - @POST("SaveFDOtherData") - suspend fun saveFDOtherData( - @Body requestBody: SaveFDOtherDataRequest, - @Header("token") token: String - ): Response - - @POST("GetFDDetails") - suspend fun getFDDetails( - @Body requestBody: GetFDDetailsRequest, - @Header("token") token: String - ): Response - - @POST("FinaliseFD") - suspend fun finaliseFD( - @Body requestBody: FinalizeFDRequest, - @Header("token") token: String - ): Response - - @POST("FinaliseKYC") - suspend fun finaliseKYC( - @Body requestBody: FinalizeKYCRequest, - @Header("token") token: String - ): Response - - @POST("PaymentRequery") - suspend fun paymentReQuery( - @Body requestBody: PaymentReQueryRequest, - @Header("token") token: String - ): Response - - // @FormUrlEncoded - @POST("GetCodes") - suspend fun getCodes( - @Body requestBody: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("CalculateFDMaturityAmount") - suspend fun getCalculateFDMaturityAmount( - @Body requestBody: GetMaturityAmountRequest, - @Header("token") token: String - ): Response - - @POST("PanCheck_S") - suspend fun panCheckApi( - @Body panCheck: PanCheckRequest, - @Header("token") token: String - ): Response - - @POST("getFDStepsCount") - suspend fun getFDStepsCount( - @Body fdStepsCountRequest: FDStepsCountRequest, - @Header("token") token: String - ): Response - - @POST("GetClientDetailV2_S") - suspend fun getClientDetails( - @Body getClientDetailsRequest: getClientDetailsRequest, - @Header("token") token: String - ): Response - - - @POST("GetCodes") - suspend fun titleApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun genderApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun annualIncomeApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun relationShipApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun maritalStatusApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun occupationApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetStateMaster") - suspend fun stateApi(@Header("token") token: String): Response - - @POST("GetCity") - suspend fun cityApi( - @Body cityRequest: CityRequest, - @Header("token") token: String - ): Response - - @GET("GetFDBankList?FDProvider=Bajaj") - suspend fun bankListApi(@Header("token") token: String, @Query("Language") language : String): Response - - @GET("GetIFSC_Autofill?") - suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response - - @GET("GetbankNames") - suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response - - @POST("GetCodes") - suspend fun payModeApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("GetCodes") - suspend fun customerListApi( - @Body getCodeRequest: GetCodeRequest, - @Header("token") token: String - ): Response - - @POST("BankValidationAPI_S") - suspend fun bankValidationApi( - @Body bankValidationApiRequest: BankValidationApiRequest, - @Header("token") token: String - ): Response - - - @POST("BankValidationAPI_S") - suspend fun getToken( - @Body bankValidationApiRequest: BankValidationApiRequest, - @Header("token") token: String - ): Response -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/BasActivity.kt b/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/BasActivity.kt deleted file mode 100644 index d644182..0000000 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/BasActivity.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1 - -import android.app.Activity -import android.os.Bundle - -class BasActivity : Activity() { - - lateinit var mActivity : Activity - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - mActivity = this; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/NiveshFdApplication.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/NiveshFdApplication.kt similarity index 87% rename from app/src/main/java/com/nivesh/production/niveshfd/NiveshFdApplication.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/NiveshFdApplication.kt index 70cc618..4318af1 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/NiveshFdApplication.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/NiveshFdApplication.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd +package com.nivesh.production.partnerOnBoarding import android.app.Application import android.content.Context diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/DisableAdapter1.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/DisableAdapter1.kt similarity index 92% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/DisableAdapter1.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/DisableAdapter1.kt index cf42cd7..e1eaf75 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/DisableAdapter1.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/DisableAdapter1.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.adapters1 +package com.nivesh.production.partnerOnBoarding.adapters import android.annotation.SuppressLint import android.content.Context diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/NewDistributorSignStepOneAdapter.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt similarity index 94% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/NewDistributorSignStepOneAdapter.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt index 6ad5135..c80a417 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/NewDistributorSignStepOneAdapter.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/NewDistributorSignStepOneAdapter.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.adapters1 +package com.nivesh.production.partnerOnBoarding.adapters import android.content.Context import android.view.LayoutInflater @@ -10,11 +10,10 @@ import android.widget.RadioButton import android.widget.RadioGroup import android.widget.RelativeLayout import android.widget.TextView -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.google.android.material.textfield.TextInputLayout -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1.NewDistributorSignStepOne +import com.nivesh.production.partnerOnBoarding.R +import com.nivesh.production.partnerOnBoarding.ui.fragments.NewDistributorSignStepOne class NewDistributorSignStepOneAdapter(private var listData: MutableList) : RecyclerView.Adapter() { diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/SectionsPagerAdapter1.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt similarity index 89% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/SectionsPagerAdapter1.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt index 3ad3d47..519ff68 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/adapters1/SectionsPagerAdapter1.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/adapters/SectionsPagerAdapter1.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.adapters1 +package com.nivesh.production.partnerOnBoarding.adapters import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiCallback.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt similarity index 89% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiCallback.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt index c5a6669..026d457 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiCallback.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiCallback.kt @@ -1,6 +1,6 @@ -package com.nivesh.production.niveshfd.fd.api +package com.nivesh.production.partnerOnBoarding.api -import com.nivesh.production.niveshfd.fd.util.Resource +import com.nivesh.production.partnerOnBoarding.util.Resource import retrofit2.Call import retrofit2.Callback import retrofit2.Response diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiClient.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt similarity index 90% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiClient.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt index c386360..1ec7f32 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/api/ApiClient.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/api/ApiClient.kt @@ -1,8 +1,8 @@ -package com.nivesh.production.niveshfd.fd.api +package com.nivesh.production.partnerOnBoarding.api -import com.nivesh.production.niveshfd.fd.NiveshFdApplication -import com.nivesh.production.niveshfd.fd.interfaces.ApiInterface -import com.nivesh.production.niveshfd.fd.util.Constants.Companion.BASE_URL + +import com.nivesh.production.partnerOnBoarding.NiveshFdApplication +import com.nivesh.production.partnerOnBoarding.util.Constants.Companion.BASE_URL import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/db/PreferenceManager.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt similarity index 93% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/db/PreferenceManager.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt index 6e64c82..52a3a02 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/db/PreferenceManager.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/db/PreferenceManager.kt @@ -1,9 +1,8 @@ -package com.nivesh.production.niveshfd.fd.db +package com.nivesh.production.partnerOnBoarding.db import android.content.Context import android.content.SharedPreferences -import android.provider.UserDictionary.Words.APP_ID -import com.nivesh.production.niveshfd.fd.interfaces.IPreferenceHelper +import com.nivesh.production.partnerOnBoarding.interfaces.IPreferenceHelper open class PreferenceManager(context: Context) : IPreferenceHelper { private val preferenceName = "NiveshFDSDK" @@ -19,7 +18,7 @@ open class PreferenceManager(context: Context) : IPreferenceHelper { const val KEY_GET_TOKEN = "GetToken" const val CLIENT_LANGUAGE = "LANGUAGE" - const val ISFIRST_TIME = "IS FIRST TIME" + const val IS_FIRST_TIME = "IS FIRST TIME" const val APP_ID = "AppId" } @@ -91,11 +90,11 @@ open class PreferenceManager(context: Context) : IPreferenceHelper { override fun setIsFirstTime(appName: Boolean) { - preferences[ISFIRST_TIME] = appName + preferences[IS_FIRST_TIME] = appName } override fun getFirstTime(): Boolean { - return preferences[ISFIRST_TIME] ?: false + return preferences[IS_FIRST_TIME] ?: false } override fun getAppId(): String { diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt new file mode 100644 index 0000000..0e6a702 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/ApiInterface.kt @@ -0,0 +1,22 @@ +package com.nivesh.production.partnerOnBoarding.api + +import com.google.gson.JsonObject +import retrofit2.Response +import retrofit2.http.* + +interface ApiInterface { +// +// @POST("GetRates") +// suspend fun getRates( +// @Body getRatesRequest: GetRatesRequest, +// @Header("token") token: String +// ): Response + + + @GET("GetIFSC_Autofill?") + suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response + + @GET("GetbankNames") + suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/IPreferenceHelper.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt similarity index 92% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/IPreferenceHelper.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt index fec0ca9..cbe4700 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/interfaces/IPreferenceHelper.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/interfaces/IPreferenceHelper.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.interfaces +package com.nivesh.production.partnerOnBoarding.interfaces interface IPreferenceHelper { diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/providerfactory/OnBoardingModelProviderFactory.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/providerfactory/OnBoardingModelProviderFactory.kt new file mode 100644 index 0000000..5eff759 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/providerfactory/OnBoardingModelProviderFactory.kt @@ -0,0 +1,15 @@ +package com.nivesh.production.partnerOnBoarding.providerfactory + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import com.nivesh.production.partnerOnBoarding.repositories.MainRepository +import com.nivesh.production.partnerOnBoarding.viewModels.OnBoardingViewModel + +class OnBoardingModelProviderFactory(private val mainRepository: MainRepository) : + ViewModelProvider.Factory { + + override fun create(modelClass: Class): T { + return OnBoardingViewModel(mainRepository) as T + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt new file mode 100644 index 0000000..c00a18f --- /dev/null +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/repositories/MainRepository.kt @@ -0,0 +1,15 @@ +package com.nivesh.production.partnerOnBoarding.repositories + +import com.nivesh.production.partnerOnBoarding.api.ApiInterface + + +class MainRepository constructor(private val apiInterface: ApiInterface) { + + // MainActivity +// suspend fun getStepsCountResponse(requestBody: FDStepsCountRequest, token: String) = +// apiInterface.getFDStepsCount(requestBody, token) +// +// suspend fun getClientDetailsResponse(getClientDetails: getClientDetailsRequest, token: String) = +// apiInterface.getClientDetails(getClientDetails, token) +// +} \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/BaseActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/BaseActivity.kt similarity index 67% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/BaseActivity.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/BaseActivity.kt index b6c2ffd..905d46a 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/ui/activity/BaseActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/BaseActivity.kt @@ -1,14 +1,14 @@ -package com.nivesh.production.niveshfd.fd.ui.activity +package com.nivesh.production.partnerOnBoarding.ui.activities import android.app.Activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity open class BaseActivity : AppCompatActivity() { - private lateinit var mActivity: Activity + lateinit var mActivity : Activity override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mActivity = this + mActivity = this; } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/LoginActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/LoginActivity.kt similarity index 85% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/LoginActivity.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/LoginActivity.kt index 4890e6e..0b354ec 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/LoginActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/LoginActivity.kt @@ -1,12 +1,11 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1 +package com.nivesh.production.partnerOnBoarding.ui.activities import android.content.Intent import android.os.Bundle import android.text.Editable import android.text.TextWatcher -import com.nivesh.production.niveshfd.databinding.ActivityLoginBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common +import com.nivesh.production.partnerOnBoarding.databinding.ActivityLoginBinding +import com.nivesh.production.partnerOnBoarding.util.Common class LoginActivity : BaseActivity() { lateinit var binding: ActivityLoginBinding diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/RegisterActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt similarity index 88% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/RegisterActivity.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt index c4766a2..948b8ba 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/RegisterActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/RegisterActivity.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1 +package com.nivesh.production.partnerOnBoarding.ui.activities import android.content.Intent import android.os.Build @@ -6,10 +6,9 @@ import android.os.Bundle import android.util.DisplayMetrics import android.view.Display import androidx.core.hardware.display.DisplayManagerCompat -import com.nivesh.production.niveshfd.databinding.ActivityRegisterBinding -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showWebViewDialogBottom +import com.nivesh.production.partnerOnBoarding.databinding.ActivityRegisterBinding +import com.nivesh.production.partnerOnBoarding.db.PreferenceManager +import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showWebViewDialogBottom class RegisterActivity : BaseActivity() { lateinit var binding: ActivityRegisterBinding diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/SignUpActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt similarity index 66% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/SignUpActivity.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt index 1e81bbb..bec5935 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/SignUpActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/SignUpActivity.kt @@ -1,16 +1,13 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1 +package com.nivesh.production.partnerOnBoarding.ui.activities import android.os.Bundle -import android.util.Log -import androidx.fragment.app.FragmentManager -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.ActivitySignupBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1.SignUpFragment +import com.nivesh.production.partnerOnBoarding.R +import com.nivesh.production.partnerOnBoarding.databinding.ActivitySignupBinding +import com.nivesh.production.partnerOnBoarding.ui.fragments.SignUpFragment class SignUpActivity : BaseActivity() { lateinit var binding: ActivitySignupBinding - var type : Int? = null + var type: Int? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -29,9 +26,7 @@ class SignUpActivity : BaseActivity() { val fragment = SignUpFragment() fragment.arguments = bundle - supportFragmentManager.beginTransaction() - .add(R.id.signUpContainer, fragment) - .commit() + supportFragmentManager.beginTransaction().add(R.id.signUpContainer, fragment).commit() } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/ViewPagerActivity.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt similarity index 79% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/ViewPagerActivity.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt index 12bb248..2f2a453 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/activities1/ViewPagerActivity.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/activities/ViewPagerActivity.kt @@ -1,17 +1,16 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1 +package com.nivesh.production.partnerOnBoarding.ui.activities import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import androidx.viewpager.widget.ViewPager -import com.nivesh.production.niveshfd.databinding.ActivityViewpagerBinding -import com.nivesh.production.niveshfd.fd.db.PreferenceManager -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.partnerOnBoarding.adapters1.DisableAdapter1 -import com.nivesh.production.niveshfd.partnerOnBoarding.adapters1.SectionsPagerAdapter1 -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1.StepOnePagerFragment -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1.StepThreePagerFragment -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1.StepTwoPagerFragment +import com.nivesh.production.partnerOnBoarding.databinding.ActivityViewpagerBinding +import com.nivesh.production.partnerOnBoarding.db.PreferenceManager +import com.nivesh.production.partnerOnBoarding.ui.fragments.StepTwoPagerFragment +import com.nivesh.production.partnerOnBoarding.adapters.DisableAdapter1 +import com.nivesh.production.partnerOnBoarding.adapters.SectionsPagerAdapter1 +import com.nivesh.production.partnerOnBoarding.ui.fragments.StepOnePagerFragment +import com.nivesh.production.partnerOnBoarding.ui.fragments.StepThreePagerFragment class ViewPagerActivity : BaseActivity() { lateinit var binding: ActivityViewpagerBinding diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/AlmostThereFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt similarity index 90% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/AlmostThereFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt index b429e24..6bedfaa 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/AlmostThereFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/AlmostThereFragment.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.text.Editable @@ -6,12 +6,9 @@ import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentAlmostThereBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.SignUpActivity +import com.nivesh.production.partnerOnBoarding.databinding.FragmentAlmostThereBinding +import com.nivesh.production.partnerOnBoarding.util.Common +import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity class AlmostThereFragment : BaseFragment() { private var _binding: FragmentAlmostThereBinding? = null @@ -95,13 +92,13 @@ class AlmostThereFragment : BaseFragment() { } - binding.tvTermsAndCondition.setOnClickListener{ + binding.tvTermsAndCondition.setOnClickListener { } - binding.tvPrivacyPolicy.setOnClickListener{ + binding.tvPrivacyPolicy.setOnClickListener { } - binding.tvAgreement.setOnClickListener{ + binding.tvAgreement.setOnClickListener { } @@ -184,8 +181,8 @@ class AlmostThereFragment : BaseFragment() { binding.tlState, "" ) - }else if (!binding.cbCheck.isChecked) { // EditText - return false + } else if (!binding.cbCheck.isChecked) { // EditText + return false } else { return true } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/BaseFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/BaseFragment.kt similarity index 90% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/BaseFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/BaseFragment.kt index e68d2e1..94f95ed 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/BaseFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/BaseFragment.kt @@ -1,9 +1,9 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.app.Activity import android.content.Context import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity +import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity open class BaseFragment : Fragment() { diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/GetStartedFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt similarity index 92% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/GetStartedFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt index 8503b02..e402ec9 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/GetStartedFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/GetStartedFragment.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.Manifest import android.annotation.SuppressLint @@ -27,15 +27,15 @@ import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.lifecycle.lifecycleScope -import com.nivesh.production.niveshfd.BuildConfig -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentGetStartedBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common -import com.nivesh.production.niveshfd.fd.util.Common.Companion.getFileExtension -import com.nivesh.production.niveshfd.fd.util.Common.Companion.showDialogWithTwoButtons -import com.nivesh.production.niveshfd.fd.util.ImageUtil -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.SignUpActivity +import com.nivesh.production.partnerOnBoarding.BuildConfig +import com.nivesh.production.partnerOnBoarding.R +import com.nivesh.production.partnerOnBoarding.databinding.FragmentGetStartedBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity +import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity +import com.nivesh.production.partnerOnBoarding.util.Common +import com.nivesh.production.partnerOnBoarding.util.Common.Companion.getFileExtension +import com.nivesh.production.partnerOnBoarding.util.Common.Companion.showDialogWithTwoButtons +import com.nivesh.production.partnerOnBoarding.util.ImageUtil import java.io.* class GetStartedFragment : BaseFragment() { @@ -136,7 +136,7 @@ class GetStartedFragment : BaseFragment() { divider: Char ): Boolean { var isCorrect = s.length <= totalSymbols // check size of entered string - for (i in 0 until s.length) { // check that every element is right + for (i in s.indices) { // check that every element is right isCorrect = if (i > 0 && (i + 1) % dividerModulo == 0) { isCorrect and (divider == s[i]) } else { @@ -154,12 +154,12 @@ class GetStartedFragment : BaseFragment() { var DIVIDER_POSITION: Int = DIVIDER_MODULO - 1; // means divider position is every 4th symbol beginning with 0 var DIVIDER: Char = '-' - binding.edtEuinNumber.addTextChangedListener(object : TextWatcher{ + binding.edtEUINNumber.addTextChangedListener(object : TextWatcher{ override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} - override fun afterTextChanged(s: Editable?) { - if (!isInputCorrect(s!!, total_SYMBOLS, DIVIDER_MODULO, DIVIDER)) { - s?.replace(0, s.length, buildCorrectString(getDigitArray(s, TOTAL_DIGITS)!!, DIVIDER_POSITION, DIVIDER)) + override fun afterTextChanged(s: Editable) { + if (!isInputCorrect(s, total_SYMBOLS, DIVIDER_MODULO, DIVIDER)) { + s.replace(0, s.length, buildCorrectString(getDigitArray(s, TOTAL_DIGITS), DIVIDER_POSITION, DIVIDER)) } } @@ -184,7 +184,7 @@ class GetStartedFragment : BaseFragment() { digits: CharArray, dividerPosition: Int, divider: Char - ): String? { + ): String { val formatted = StringBuilder() for (i in digits.indices) { if (digits[i].code != 0) { @@ -197,7 +197,7 @@ class GetStartedFragment : BaseFragment() { return formatted.toString() } - private fun getDigitArray(s: Editable, size: Int): CharArray? { + private fun getDigitArray(s: Editable, size: Int): CharArray { val digits = CharArray(size) var index = 0 var i = 0 @@ -214,11 +214,11 @@ class GetStartedFragment : BaseFragment() { }) -// binding.edtEuinNumber.doAfterTextChanged { -// val formattedText = binding.edtEuinNumber.toString().replace(" ", "").chunked(4).joinToString("/") -// if (formattedText != binding.edtEuinNumber.toString()) { -// binding.edtEuinNumber.setText(formattedText) -// binding.edtEuinNumber.setSelection(binding.edtEuinNumber.length()) +// binding.edtEUINNumber.doAfterTextChanged { +// val formattedText = binding.edtEUINNumber.toString().replace(" ", "").chunked(4).joinToString("/") +// if (formattedText != binding.edtEUINNumber.toString()) { +// binding.edtEUINNumber.setText(formattedText) +// binding.edtEUINNumber.setSelection(binding.edtEUINNumber.length()) // } // } diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/NewDistributorSignStepOne.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt similarity index 81% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/NewDistributorSignStepOne.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt index 553da97..39cffa7 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/NewDistributorSignStepOne.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/NewDistributorSignStepOne.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.view.LayoutInflater @@ -6,9 +6,9 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager -import com.nivesh.production.niveshfd.databinding.NewDistributorSignStepOneBinding -import com.nivesh.production.niveshfd.partnerOnBoarding.adapters1.NewDistributorSignStepOneAdapter -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.SignUpActivity +import com.nivesh.production.partnerOnBoarding.databinding.NewDistributorSignStepOneBinding +import com.nivesh.production.partnerOnBoarding.adapters.NewDistributorSignStepOneAdapter +import com.nivesh.production.partnerOnBoarding.ui.activities.SignUpActivity class NewDistributorSignStepOne : BaseFragment(){ diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/OTPFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt similarity index 95% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/OTPFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt index 4e80216..f12383e 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/OTPFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/OTPFragment.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.text.Editable @@ -10,10 +10,10 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.databinding.FragmentOtpBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common +import com.nivesh.production.partnerOnBoarding.R +import com.nivesh.production.partnerOnBoarding.databinding.FragmentOtpBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity +import com.nivesh.production.partnerOnBoarding.util.Common class OTPFragment : BaseFragment() { private var _binding: FragmentOtpBinding? = null diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/SignUpFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt similarity index 78% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/SignUpFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt index d97aef4..da97994 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/SignUpFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/SignUpFragment.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.text.Editable @@ -7,11 +7,9 @@ import android.text.TextWatcher import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.databinding.FragmentSignupBinding -import com.nivesh.production.niveshfd.fd.ui.activity.BaseActivity -import com.nivesh.production.niveshfd.fd.util.Common - +import com.nivesh.production.partnerOnBoarding.databinding.FragmentSignupBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.BaseActivity +import com.nivesh.production.partnerOnBoarding.util.Common class SignUpFragment : BaseFragment() { private var _binding: FragmentSignupBinding? = null @@ -45,13 +43,13 @@ class SignUpFragment : BaseFragment() { binding.btnSignUp.setOnClickListener { if (validate()) { val bundle = Bundle() - bundle.putInt("type",type!!) + bundle.putInt("type", type!!) val fragment = OTPFragment() fragment.arguments = bundle replaceFragment( activity as BaseActivity, - com.nivesh.production.niveshfd.R.id.signUpContainer, + com.nivesh.production.partnerOnBoarding.R.id.signUpContainer, fragment, "OTP", true @@ -66,19 +64,19 @@ class SignUpFragment : BaseFragment() { Common.commonErrorMethod( binding.edtMobileNumber, binding.tlMobileNumber, - getString(com.nivesh.production.niveshfd.R.string.emptyMobileNumber) + getString(com.nivesh.production.partnerOnBoarding.R.string.emptyMobileNumber) ) } else if (binding.edtMobileNumber.text?.length != 10) { // EditText Common.commonErrorMethod( binding.edtMobileNumber, binding.tlMobileNumber, - getString(com.nivesh.production.niveshfd.R.string.inValidMobileNumber) + getString(com.nivesh.production.partnerOnBoarding.R.string.inValidMobileNumber) ) } else if (!Common.isIndianMobileNo(binding.edtMobileNumber.text.toString())) { // EditText Common.commonErrorMethod( binding.edtMobileNumber, binding.tlMobileNumber, - getString(com.nivesh.production.niveshfd.R.string.inValidIndianMobileNumber) + getString(com.nivesh.production.partnerOnBoarding.R.string.inValidIndianMobileNumber) ) } else { return true diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepOnePagerFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepOnePagerFragment.kt similarity index 72% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepOnePagerFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepOnePagerFragment.kt index 989a596..e534d61 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepOnePagerFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepOnePagerFragment.kt @@ -1,13 +1,12 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.databinding.FragmentPagerStepOneBinding -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.ViewPagerActivity +import com.nivesh.production.partnerOnBoarding.databinding.FragmentPagerStepOneBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.ViewPagerActivity class StepOnePagerFragment : Fragment() { private var _binding: FragmentPagerStepOneBinding? = null diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepThreePagerFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepThreePagerFragment.kt similarity index 80% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepThreePagerFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepThreePagerFragment.kt index 447f122..0a2d44e 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepThreePagerFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepThreePagerFragment.kt @@ -1,12 +1,12 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.databinding.FragmentPagerStepThreeBinding -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.ViewPagerActivity +import com.nivesh.production.partnerOnBoarding.databinding.FragmentPagerStepThreeBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.ViewPagerActivity class StepThreePagerFragment : Fragment() { private var _binding: FragmentPagerStepThreeBinding? = null diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepTwoPagerFragment.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepTwoPagerFragment.kt similarity index 80% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepTwoPagerFragment.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepTwoPagerFragment.kt index 4691a08..b6fabc9 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/ui/fragments1/StepTwoPagerFragment.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/ui/fragments/StepTwoPagerFragment.kt @@ -1,12 +1,12 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.ui.fragments1 +package com.nivesh.production.partnerOnBoarding.ui.fragments import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.nivesh.production.niveshfd.databinding.FragmentPagerStepTwoBinding -import com.nivesh.production.niveshfd.partnerOnBoarding.ui.activities1.ViewPagerActivity +import com.nivesh.production.partnerOnBoarding.databinding.FragmentPagerStepTwoBinding +import com.nivesh.production.partnerOnBoarding.ui.activities.ViewPagerActivity class StepTwoPagerFragment : Fragment() { private var _binding: FragmentPagerStepTwoBinding? = null diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Colors.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Colors.kt similarity index 54% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/Colors.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Colors.kt index 8ac474f..2c71a1a 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Colors.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Colors.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util object Colors { const val colorDefault: String = "#17A31D" diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Common.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt similarity index 72% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/Common.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt index 9814f22..f16fdd4 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Common.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Common.kt @@ -1,44 +1,30 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util -import android.Manifest -import android.annotation.SuppressLint import android.app.Activity import android.app.AlertDialog import android.app.Dialog import android.content.Context import android.content.Intent -import android.content.pm.PackageManager import android.graphics.Color import android.graphics.drawable.GradientDrawable -import android.hardware.display.DisplayManager import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.net.Uri import android.os.Build import android.provider.Settings -import android.telephony.TelephonyManager -import android.text.TextUtils import android.text.format.DateFormat -import android.util.DisplayMetrics import android.util.Log import android.util.Patterns -import android.view.Display import android.view.Gravity import android.view.Window import android.webkit.WebView -import android.webkit.WebViewClient import android.widget.ImageView import androidx.appcompat.app.ActionBar -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat.getSystemService -import androidx.core.hardware.display.DisplayManagerCompat import com.google.android.material.textfield.MaterialAutoCompleteTextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import com.google.gson.JsonObject -import com.nivesh.production.niveshfd.R -import com.nivesh.production.niveshfd.fd.model.DeviceInfo -import com.nivesh.production.niveshfd.fd.ui.activity.NiveshFdMainActivity +import com.nivesh.production.partnerOnBoarding.R import kotlinx.coroutines.CoroutineExceptionHandler import org.json.JSONObject import retrofit2.HttpException @@ -148,7 +134,7 @@ class Common { builder.show() } - fun showWebViewDialogBottom(context: Context, url: String,height: Int){ + fun showWebViewDialogBottom(context: Context, url: String, height: Int) { val dialog = Dialog(context) dialog.window?.setBackgroundDrawableResource(android.R.color.transparent) dialog.setContentView(R.layout.web_view_bottom_dialog) @@ -167,7 +153,7 @@ class Common { dialog.show() val window: Window = dialog.window!! window.setGravity(Gravity.BOTTOM) - window.setLayout(ActionBar.LayoutParams.MATCH_PARENT,(height-400)) + window.setLayout(ActionBar.LayoutParams.MATCH_PARENT, (height - 400)) window.setWindowAnimations(R.style.DialogBottomAnimation) } @@ -181,7 +167,7 @@ class Common { Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts( "package", - (activity as NiveshFdMainActivity).packageName, + (activity).packageName, null ) ) @@ -323,88 +309,5 @@ class Common { "" } } - - - @SuppressLint("HardwareIds") - fun getDeviceInfo(mContext: Context): DeviceInfo { - val deviceInfo = DeviceInfo() - var deviceId: String? = "" - try { - val telephonyManager = - mContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager - deviceInfo.device_model = if (TextUtils.isEmpty(Build.DEVICE)) "" else Build.DEVICE - deviceInfo.device_os_version = - if (TextUtils.isEmpty(Build.VERSION.RELEASE)) "" else Build.VERSION.RELEASE - deviceInfo.device_name = if (TextUtils.isEmpty(Build.PRODUCT)) "" else Build.PRODUCT - deviceInfo.device_type = "Android" - - if ((deviceId == null) || deviceId.isEmpty() || deviceId.equals( - "unknown", - ignoreCase = true - ) - ) { - deviceId = if (TextUtils.isEmpty( - Settings.Secure.getString( - mContext.contentResolver, - Settings.Secure.ANDROID_ID - ) - ) - ) "" else Settings.Secure.getString( - mContext.contentResolver, - Settings.Secure.ANDROID_ID - ) - } - // deviceInfo.device_id = device_id + "#" + preferenceHelper.getAppName() - deviceInfo.device_id_for_UMSId = deviceId - // deviceInfo.sdk_version = com.nivesh.production.BuildConfig.VERSION_NAME - - if (ActivityCompat.checkSelfPermission( - mContext, - Manifest.permission.READ_PHONE_STATE - ) != PackageManager.PERMISSION_GRANTED - ) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - deviceId = telephonyManager.imei - if (deviceId == null) { - deviceId = - if (TextUtils.isEmpty(Build.getSerial())) "" else Build.getSerial() - } - } else { - deviceId = telephonyManager.deviceId - if (deviceId == null) { - deviceId = - if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL - } - } - } else { - deviceId = telephonyManager.deviceId - if (deviceId == null) { - deviceId = if (TextUtils.isEmpty(Build.SERIAL)) "" else Build.SERIAL - } - } - - } catch (e: Exception) { - e.printStackTrace() - if ((deviceId == null) || deviceId.isEmpty() || deviceId.equals( - "unknown", - ignoreCase = true - ) - ) { - deviceId = if (TextUtils.isEmpty( - Settings.Secure.getString( - mContext.contentResolver, - Settings.Secure.ANDROID_ID - ) - ) - ) "" else Settings.Secure.getString( - mContext.contentResolver, - Settings.Secure.ANDROID_ID - ) - } - // deviceInfo.deviceId = device_id + "#" + preferenceHelper.getAppName() - deviceInfo.device_id_for_UMSId = deviceId - } - return deviceInfo - } } } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Constants.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt similarity index 83% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/Constants.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt index 8cebc6f..a192f54 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Constants.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Constants.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util class Constants() { diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/ImageUtil.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt similarity index 93% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/ImageUtil.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt index 092a38f..cfad66b 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/ImageUtil.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ImageUtil.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util import android.graphics.Bitmap; import android.graphics.BitmapFactory; diff --git a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/util/MaskWatcher.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/MaskWatcher.kt similarity index 94% rename from app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/util/MaskWatcher.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/MaskWatcher.kt index bd3a48f..bc15ce5 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/partnerOnBoarding/util/MaskWatcher.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/MaskWatcher.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.partnerOnBoarding.util +package com.nivesh.production.partnerOnBoarding.util import android.text.Editable import android.text.TextWatcher diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/ProgressUtil.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt similarity index 97% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/ProgressUtil.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt index 93a3cbb..c97d876 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/ProgressUtil.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/ProgressUtil.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util import android.annotation.SuppressLint import android.app.AlertDialog diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Resource.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Resource.kt similarity index 88% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/util/Resource.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Resource.kt index 45d82cd..538891a 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/util/Resource.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/util/Resource.kt @@ -1,4 +1,4 @@ -package com.nivesh.production.niveshfd.fd.util +package com.nivesh.production.partnerOnBoarding.util sealed class Resource( val data: T? = null, diff --git a/app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/MyObseravble.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt similarity index 65% rename from app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/MyObseravble.kt rename to app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt index 94bb929..562e7ce 100644 --- a/app/src/main/java/com/nivesh/production/niveshfd/fd/viewModel/MyObseravble.kt +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/MyObservable.kt @@ -1,9 +1,9 @@ -package com.nivesh.production.niveshfd.fd.viewModel +package com.nivesh.production.partnerOnBoarding.viewModels import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -open class MyObseravble : ViewModel() +open class MyObservable : ViewModel() { val data = MutableLiveData() fun data(item: String) { diff --git a/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt new file mode 100644 index 0000000..abfb055 --- /dev/null +++ b/app/src/main/java/com/nivesh/production/partnerOnBoarding/viewModels/OnBoardingViewModel.kt @@ -0,0 +1,32 @@ +package com.nivesh.production.partnerOnBoarding.viewModels + +import androidx.lifecycle.ViewModel +import com.nivesh.production.partnerOnBoarding.repositories.MainRepository + +open class OnBoardingViewModel(private val mainRepository: MainRepository) : ViewModel() { + +// val getStepsCountMutableData: MutableLiveData> = MutableLiveData() +// fun getStepsCount( +// requestBody: FDStepsCountRequest, +// token: String, +// activity: Activity +// ) = viewModelScope.launch(handleError(activity)) { +// if (Common.isNetworkAvailable(activity)) { +// getStepsCountMutableData.postValue(Resource.Loading()) +// val response = mainRepository.getStepsCountResponse(requestBody, token) +// getStepsCountMutableData.postValue(handleResponse(response)) +// } +// } +// +// val getClientDetailsMutableData: MutableLiveData> = MutableLiveData() +// fun getClientDetails(getClientDetailsRequest: getClientDetailsRequest, token: String, activity: Activity) = +// viewModelScope.launch(handleError(activity)) { +// if (Common.isNetworkAvailable(activity)) { +// getClientDetailsMutableData.postValue(Resource.Loading()) +// val response = +// mainRepository.getClientDetailsResponse(getClientDetailsRequest, token) +// getClientDetailsMutableData.postValue(handleResponse(response)) +// } +// } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bajaj_logo.png b/app/src/main/res/drawable/bajaj_logo.png deleted file mode 100644 index 906f1fc5b718d08a73ebea70ccbc279947751a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 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 c - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/cursor_color.xml b/app/src/main/res/drawable/cursor_color.xml deleted file mode 100644 index 0ec4a7a..0000000 --- a/app/src/main/res/drawable/cursor_color.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/dot_background.xml b/app/src/main/res/drawable/dot_background.xml deleted file mode 100644 index 012bf8b..0000000 --- a/app/src/main/res/drawable/dot_background.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/gallery.png b/app/src/main/res/drawable/gallery.png deleted file mode 100644 index d309f3e09801eca219da000e1ca64d162dc2525e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98804 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

Pd(6I9< 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 O^(avWO*WighyNeMVhh0l diff --git a/app/src/main/res/drawable/ic_add_icon.xml b/app/src/main/res/drawable/ic_add_icon.xml deleted file mode 100644 index a6bdf84..0000000 --- a/app/src/main/res/drawable/ic_add_icon.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_arrow_down.xml b/app/src/main/res/drawable/ic_arrow_down.xml deleted file mode 100644 index bf94fc1..0000000 --- a/app/src/main/res/drawable/ic_arrow_down.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_baseline_check_24.xml b/app/src/main/res/drawable/ic_baseline_check_24.xml deleted file mode 100644 index eb14651..0000000 --- a/app/src/main/res/drawable/ic_baseline_check_24.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_minus.xml b/app/src/main/res/drawable/ic_minus.xml deleted file mode 100644 index f465978..0000000 --- a/app/src/main/res/drawable/ic_minus.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_select_green.xml b/app/src/main/res/drawable/ic_select_green.xml deleted file mode 100644 index c3bb144..0000000 --- a/app/src/main/res/drawable/ic_select_green.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_select_outline.xml b/app/src/main/res/drawable/ic_select_outline.xml deleted file mode 100644 index 35bec46..0000000 --- a/app/src/main/res/drawable/ic_select_outline.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/round_corner_button.xml b/app/src/main/res/drawable/round_corner_button.xml deleted file mode 100644 index 5cb1b17..0000000 --- a/app/src/main/res/drawable/round_corner_button.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/round_corner_grey_button.xml b/app/src/main/res/drawable/round_corner_grey_button.xml index 5ffb80a..e9c7cbf 100644 --- a/app/src/main/res/drawable/round_corner_grey_button.xml +++ b/app/src/main/res/drawable/round_corner_grey_button.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/round_corner_grey_button_fill.xml b/app/src/main/res/drawable/round_corner_grey_button_fill.xml index 2120174..81bb4d2 100644 --- a/app/src/main/res/drawable/round_corner_grey_button_fill.xml +++ b/app/src/main/res/drawable/round_corner_grey_button_fill.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/round_corner_with_red_bg.xml b/app/src/main/res/drawable/round_corner_with_red_bg.xml deleted file mode 100644 index 641fd21..0000000 --- a/app/src/main/res/drawable/round_corner_with_red_bg.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/rounded_corner_green_fill.xml b/app/src/main/res/drawable/rounded_corner_green_fill.xml deleted file mode 100644 index 0f43eb7..0000000 --- a/app/src/main/res/drawable/rounded_corner_green_fill.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_corner_with_line_blue.xml b/app/src/main/res/drawable/rounded_corner_with_line_blue.xml deleted file mode 100644 index 7b54a02..0000000 --- a/app/src/main/res/drawable/rounded_corner_with_line_blue.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/sp_bg.xml b/app/src/main/res/drawable/sp_bg.xml deleted file mode 100644 index 1a4b686..0000000 --- a/app/src/main/res/drawable/sp_bg.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_back.xml b/app/src/main/res/drawable/svg_back.xml deleted file mode 100644 index 13ba1de..0000000 --- a/app/src/main/res/drawable/svg_back.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_cal.xml b/app/src/main/res/drawable/svg_cal.xml deleted file mode 100644 index 3773633..0000000 --- a/app/src/main/res/drawable/svg_cal.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_camera.xml b/app/src/main/res/drawable/svg_camera.xml deleted file mode 100644 index 48a8a01..0000000 --- a/app/src/main/res/drawable/svg_camera.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/svg_cross.xml b/app/src/main/res/drawable/svg_cross.xml deleted file mode 100644 index 5e8560a..0000000 --- a/app/src/main/res/drawable/svg_cross.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_down_arrow.xml b/app/src/main/res/drawable/svg_down_arrow.xml deleted file mode 100644 index 9e345b8..0000000 --- a/app/src/main/res/drawable/svg_down_arrow.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/svg_grey_bullet.xml b/app/src/main/res/drawable/svg_grey_bullet.xml deleted file mode 100644 index 214aae6..0000000 --- a/app/src/main/res/drawable/svg_grey_bullet.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_image.xml b/app/src/main/res/drawable/svg_image.xml deleted file mode 100644 index 3ffb603..0000000 --- a/app/src/main/res/drawable/svg_image.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/svg_rect_dot.xml b/app/src/main/res/drawable/svg_rect_dot.xml deleted file mode 100644 index 796b04e..0000000 --- a/app/src/main/res/drawable/svg_rect_dot.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_rs.xml b/app/src/main/res/drawable/svg_rs.xml deleted file mode 100644 index 83c522d..0000000 --- a/app/src/main/res/drawable/svg_rs.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_star.xml b/app/src/main/res/drawable/svg_star.xml deleted file mode 100644 index 8218c21..0000000 --- a/app/src/main/res/drawable/svg_star.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/svg_step_process.xml b/app/src/main/res/drawable/svg_step_process.xml deleted file mode 100644 index 53c595f..0000000 --- a/app/src/main/res/drawable/svg_step_process.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/upload_background.xml b/app/src/main/res/drawable/upload_background.xml deleted file mode 100644 index 6a02ce4..0000000 --- a/app/src/main/res/drawable/upload_background.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_nivesh_fd.xml b/app/src/main/res/layout/activity_nivesh_fd.xml deleted file mode 100644 index 5e47de6..0000000 --- a/app/src/main/res/layout/activity_nivesh_fd.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_viewpager.xml b/app/src/main/res/layout/activity_viewpager.xml index babf141..41141ac 100644 --- a/app/src/main/res/layout/activity_viewpager.xml +++ b/app/src/main/res/layout/activity_viewpager.xml @@ -5,7 +5,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/camera_gallery_layout.xml b/app/src/main/res/layout/camera_gallery_layout.xml deleted file mode 100644 index eda34a7..0000000 --- a/app/src/main/res/layout/camera_gallery_layout.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dot_layout.xml b/app/src/main/res/layout/dot_layout.xml deleted file mode 100644 index 29e330c..0000000 --- a/app/src/main/res/layout/dot_layout.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_get_started.xml b/app/src/main/res/layout/fragment_get_started.xml index 6463d27..c9e5059 100644 --- a/app/src/main/res/layout/fragment_get_started.xml +++ b/app/src/main/res/layout/fragment_get_started.xml @@ -85,7 +85,7 @@ + app:layout_constraintTop_toBottomOf="@+id/tlEUINNumber"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_niveshfd_step_four.xml b/app/src/main/res/layout/fragment_niveshfd_step_four.xml deleted file mode 100644 index 17e5520..0000000 --- a/app/src/main/res/layout/fragment_niveshfd_step_four.xml +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_niveshfd_step_one.xml b/app/src/main/res/layout/fragment_niveshfd_step_one.xml deleted file mode 100644 index 115d0dd..0000000 --- a/app/src/main/res/layout/fragment_niveshfd_step_one.xml +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -