Browse Source

third screen permission validation

PankajBranch
Manoj 2 years ago
parent
commit
ec8313ae5f
16 changed files with 526 additions and 98 deletions
  1. +25
    -0
      app/src/main/AndroidManifest.xml
  2. +0
    -2
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt
  3. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt
  4. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt
  5. +268
    -8
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
  6. +7
    -1
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt
  7. BIN
      app/src/main/res/drawable/camera.png
  8. BIN
      app/src/main/res/drawable/gallery.png
  9. +6
    -0
      app/src/main/res/drawable/svg_camera.xml
  10. +5
    -0
      app/src/main/res/drawable/svg_close.xml
  11. +5
    -0
      app/src/main/res/drawable/svg_image.xml
  12. +71
    -0
      app/src/main/res/layout/camera_gallery_layout.xml
  13. +93
    -86
      app/src/main/res/layout/fragment_bajajfd_step_three.xml
  14. +5
    -0
      app/src/main/res/values-hi-rIN/strings.xml
  15. +7
    -0
      app/src/main/res/values/strings.xml
  16. +23
    -0
      app/src/main/res/xml/file_paths.xml

+ 25
- 0
app/src/main/AndroidManifest.xml View File

@ -4,6 +4,20 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
@ -30,6 +44,17 @@
android:name="android.app.lib_name"
android:value="" />
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
</manifest>

+ 0
- 2
app/src/main/java/com/nivesh/production/bajajfd/interfaces/BajajFDInterface.kt View File

@ -1,7 +1,5 @@
package com.nivesh.production.bajajfd.interfaces
import com.nivesh.production.bajajfd.model.CreateFDRequest
interface BajajFDInterface {
fun stepOneApi(data: String?)
fun stepTwoApi(data: String?)


+ 10
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/DocumentUpload.kt View File

@ -0,0 +1,10 @@
package com.nivesh.production.bajajfd.model
data class DocumentUpload(
val Description: String? = null,
val DocumentType: String? = null,
val FDProvider: String? = null,
val ImageEncodeToBase64: String? = null,
val NiveshClientCode: String? = null,
val UniqueId: String? = null
)

+ 1
- 1
app/src/main/java/com/nivesh/production/bajajfd/model/GetCodes.kt View File

@ -5,6 +5,6 @@ data class GetCodes(
val Value: String
) {
override fun toString(): String {
return Value
return Label
}
}

+ 268
- 8
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt View File

@ -1,23 +1,61 @@
package com.nivesh.production.bajajfd.ui.fragment
import android.Manifest
import android.app.ActionBar.LayoutParams
import android.app.Dialog
import android.content.pm.PackageManager
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ImageView
import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.nivesh.production.bajajfd.BuildConfig
import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepThreeBinding
import com.nivesh.production.bajajfd.interfaces.BajajFDInterface
import com.nivesh.production.bajajfd.model.DocumentUpload
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetCodeResponse
import com.nivesh.production.bajajfd.model.GetCodes
import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Constants
import com.nivesh.production.bajajfd.util.Resource
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel
import retrofit2.http.Tag
import java.io.File
import java.security.AccessController.checkPermission
import java.text.SimpleDateFormat
import java.util.*
class StepThreeBajajFDFragment : Fragment() {
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private var latestTmpUri: Uri? = null
private var _binding: FragmentBajajfdStepThreeBinding? = null
private val binding get() = _binding!!
private lateinit var listOfTitle: List<GetCodes>
private lateinit var bajajFDInterface: BajajFDInterface
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel
private lateinit var dialog: Dialog
companion object {
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment {
val stepTwoFragment = StepThreeBajajFDFragment()
@ -25,10 +63,38 @@ class StepThreeBajajFDFragment : Fragment() {
return stepTwoFragment
}
}
private fun setApi(bajajFDInterfaces: BajajFDInterface) {
bajajFDInterface = bajajFDInterfaces
}
private val selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri ->
val bitmap: Bitmap = MediaStore.Images.Media.getBitmap(context?.contentResolver, uri)
binding.iv.setImageBitmap(bitmap)
}
private val takeImageResult =
registerForActivityResult(ActivityResultContracts.TakePicture()) { isSuccess ->
if (isSuccess) {
latestTmpUri?.let { uri ->
// binding.iv.setImageURI(uri)
uploadDocument()
}
}
}
private val requestPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
Log.e("permission:", "Granted")
} else {
Log.e("permission:", "Denied")
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -36,24 +102,218 @@ class StepThreeBajajFDFragment : Fragment() {
_binding = FragmentBajajfdStepThreeBinding.inflate(inflater, container, false)
val root = binding.root
stepThreeBajajFDViewModel = (activity as BajajFdMainActivity).stepThreeBajajFDViewModel
binding.btnNext.setOnClickListener{
if (validate()){
binding.btnNext.setOnClickListener {
if (validate()) {
}
}
binding.btnBack.setOnClickListener{
binding.btnBack.setOnClickListener {
(activity as BajajFdMainActivity).binding.viewPager.currentItem = 1
}
binding.btnAadhaarFrontUpload.setOnClickListener {
selectImage()
}
binding.spTitle.onItemClickListener =
AdapterView.OnItemClickListener { parent, _, position, _ ->
val getCodes: GetCodes = parent.getItemAtPosition(position) as GetCodes
when (getCodes.Value) {
resources.getString(R.string.aadhar) ->
setAadharUploadLayout()
else -> {
setOtherUploadLayout(getCodes.Value)
}
}
}
titleApi()
return root
}
private fun validate(): Boolean {
private fun selectImage() {
dialog = Dialog(activity as BajajFdMainActivity)
dialog.setContentView(R.layout.camera_gallery_layout)
val ivCut: ImageView = dialog.findViewById(R.id.ivCut)
val tvGallery: TextView = dialog.findViewById(R.id.tvGallery)
val tvCamera: TextView = dialog.findViewById(R.id.tvCamera)
ivCut.setOnClickListener {
dialog.cancel()
}
tvGallery.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED -> {
selectImageIntent.launch("image/*")
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.READ_EXTERNAL_STORAGE
) -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
else -> {
requestPermission.launch(
Manifest.permission.READ_EXTERNAL_STORAGE
)
}
}
}
tvCamera.setOnClickListener {
dialog.cancel()
when {
ContextCompat.checkSelfPermission(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED -> {
takeImage()
}
ActivityCompat.shouldShowRequestPermissionRationale(
activity as BajajFdMainActivity,
Manifest.permission.CAMERA
) -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
else -> {
requestPermission.launch(
Manifest.permission.CAMERA
)
}
}
}
dialog.show()
dialog.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
}
private fun checkCameraStoragePermission(
permission: String,
selectImageIntent: ActivityResultLauncher<String>
) {
TODO("Not yet implemented")
}
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 setAadharUploadLayout() {
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() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val documentUpload = DocumentUpload()
}
}
private fun titleApi() {
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) {
val getCodeRequest = GetCodeRequest()
getCodeRequest.ProductName = getString(R.string.bajajFD)
getCodeRequest.Category = getString(R.string.docType)
getCodeRequest.Language = getString(R.string.language)
getCodeRequest.InputValue = ""
stepThreeBajajFDViewModel.titleApi(getCodeRequest, Constants.token)
stepThreeBajajFDViewModel.getTitleMutableData.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 -> {
listOfTitle = getCodeResponse.Response.GetCodesList
if (listOfTitle.isNotEmpty()) {
val adapter = ArrayAdapter(
activity as BajajFdMainActivity,
R.layout.spinner_dropdown,
listOfTitle
)
binding.spTitle.setAdapter(adapter)
binding.spTitle.setText(
adapter.getItem(0)?.Value,
false
)
setOtherUploadLayout(listOfTitle[0].Value)
}
}
// 650 -> refreshToken()
else -> {}
}
}
}
is Resource.Error -> {
response.message?.let { message ->
Log.e(" ", "An error occurred:$message")
}
}
is Resource.Loading -> {
}
}
}
}
}
private fun validate(): Boolean {
return false
}
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", requireActivity().cacheDir).apply {
createNewFile()
deleteOnExit()
}
return FileProvider.getUriForFile(
requireActivity(),
"${BuildConfig.APPLICATION_ID}.provider",
tmpFile
)
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null


+ 7
- 1
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepThreeBajajFDViewModel.kt View File

@ -2,6 +2,7 @@ package com.nivesh.production.bajajfd.viewModel
import androidx.lifecycle.*
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.model.GetCodeRequest
import com.nivesh.production.bajajfd.model.GetRatesRequest
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Resource
@ -27,7 +28,12 @@ class StepThreeBajajFDViewModel(private val mainRepository: MainRepository) : Vi
}
val getTitleMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun titleApi(getCodeRequest: GetCodeRequest, token: String) = viewModelScope.launch {
getTitleMutableData.postValue(Resource.Loading())
val response = mainRepository.titleCheck(getCodeRequest, token)
getTitleMutableData.postValue(handleRatesResponse(response))
}
}

BIN
app/src/main/res/drawable/camera.png View File

Before After
Width: 1024  |  Height: 1024  |  Size: 28 KiB

BIN
app/src/main/res/drawable/gallery.png View File

Before After
Width: 840  |  Height: 880  |  Size: 96 KiB

+ 6
- 0
app/src/main/res/drawable/svg_camera.xml View File

@ -0,0 +1,6 @@
<vector android:height="48dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="@android:color/white" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>

+ 5
- 0
app/src/main/res/drawable/svg_close.xml View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
</vector>

+ 5
- 0
app/src/main/res/drawable/svg_image.xml View File

@ -0,0 +1,5 @@
<vector android:height="48dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
</vector>

+ 71
- 0
app/src/main/res/layout/camera_gallery_layout.xml View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10">
<ImageView
android:id="@+id/ivCut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/svg_close"
android:padding="@dimen/margin_10"
android:layout_margin="@dimen/margin_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.954"
app:layout_constraintStart_toEndOf="@+id/tvCamera"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
android:contentDescription="@string/select_option" />
<TextView
android:id="@+id/tvSelectOption"
style="@style/semiBoldStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/margin_10"
android:text="@string/select_option"
android:textColor="@color/black"
android:textSize="@dimen/text_size_20"
app:layout_constraintBottom_toTopOf="@+id/tvGallery"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvGallery"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="bottom|center"
android:scaleType="fitCenter"
android:text="@string/gallery"
app:drawableTopCompat="@drawable/svg_image"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.49"
app:layout_constraintStart_toEndOf="@+id/tvSelectOption"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
<TextView
android:id="@+id/tvCamera"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="bottom|center"
android:text="@string/camera"
app:drawableTopCompat="@drawable/svg_camera"
app:layout_constraintBottom_toBottomOf="@+id/tvGallery"
app:layout_constraintEnd_toStartOf="@+id/tvGallery"
app:layout_constraintHorizontal_bias="0.395"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/tvGallery"
app:layout_constraintVertical_bias="1.0" />
</androidx.constraintlayout.widget.ConstraintLayout>

+ 93
- 86
app/src/main/res/layout/fragment_bajajfd_step_three.xml View File

@ -81,6 +81,71 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tvPAN"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:text="@string/pan"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPANUpload"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnPANUpload" />
<Button
android:id="@+id/btnPANUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="21dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.925"
app:layout_constraintStart_toEndOf="@+id/tvPAN"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
tools:ignore="DuplicateSpeakableTextCheck" />
<TextView
android:id="@+id/tvPhotoUpload"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/photograph"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPhotoUpload"
app:layout_constraintStart_toStartOf="@+id/tvPAN"
app:layout_constraintTop_toTopOf="@+id/btnPhotoUpload" />
<Button
android:id="@+id/btnPhotoUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="21dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/spAddressType"
app:layout_constraintEnd_toEndOf="@+id/btnPANUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPhotoUpload"
app:layout_constraintTop_toBottomOf="@+id/btnPANUpload" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/spAddressType"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
@ -91,9 +156,7 @@
android:layout_marginStart="@dimen/margin_15"
android:layout_marginEnd="@dimen/margin_15"
app:hintEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/tvUploadKYCDocument"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
app:layout_constraintTop_toBottomOf="@+id/btnPhotoUpload">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/spTitle"
@ -104,7 +167,9 @@
android:inputType="none"
android:labelFor="@+id/spInterestPayout"
android:textColorHint="#757575"
android:textSize="@dimen/text_size_14" />
android:textSize="@dimen/text_size_14"
tools:layout_editor_absoluteY="230dp" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
@ -116,127 +181,69 @@
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintStart_toStartOf="@+id/spAddressType"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.562" />
app:layout_constraintStart_toStartOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarFrontUpload" />
<Button
android:id="@+id/btnAadhaarFrontUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_16"
android:layout_marginBottom="@dimen/margin_8"
android:layout_marginTop="12dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintEnd_toEndOf="@+id/spAddressType"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvAadhaarFront"
app:layout_constraintTop_toBottomOf="@+id/spAddressType"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/tvAadhaarBack"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/aadhaarBack"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarBackUpload"
app:layout_constraintStart_toStartOf="@+id/tvAadhaarFront"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload" />
tools:ignore="DuplicateSpeakableTextCheck" />
<Button
android:id="@+id/btnAadhaarBackUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_6"
android:layout_marginBottom="@dimen/margin_8"
android:layout_marginTop="21dp"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPANUpload"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintHorizontal_bias="0.992"
app:layout_constraintStart_toEndOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarFrontUpload" />
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarFrontUpload"
app:layout_constraintVertical_bias="0.0" />
<TextView
android:id="@+id/tvPAN"
android:id="@+id/tvAadhaarBack"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/panUpload"
android:layout_marginStart="16dp"
android:text="@string/aadhaarBack"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPANUpload"
app:layout_constraintEnd_toStartOf="@+id/btnAadhaarBackUpload"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/tvAadhaarBack"
app:layout_constraintTop_toTopOf="@+id/btnPANUpload"
app:layout_constraintVertical_bias="0.468" />
app:layout_constraintBottom_toBottomOf="@+id/btnAadhaarBackUpload"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnAadhaarBackUpload"
app:layout_constraintVertical_bias="0.406" />
<Button
android:id="@+id/btnPANUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_6"
android:layout_marginBottom="@dimen/margin_8"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintBottom_toTopOf="@+id/btnPhotoUpload"
app:layout_constraintEnd_toEndOf="@+id/btnAadhaarBackUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPAN"
<ImageView
android:id="@+id/iv"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/bajaj_logo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnAadhaarBackUpload" />
<TextView
android:id="@+id/tvPhotoUpload"
style="@style/regularStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/photoUpload"
android:textColor="@color/black"
android:textSize="@dimen/text_size_12"
app:layout_constraintBottom_toBottomOf="@+id/btnPhotoUpload"
app:layout_constraintStart_toStartOf="@+id/tvPAN"
app:layout_constraintTop_toTopOf="@+id/btnPhotoUpload" />
<Button
android:id="@+id/btnPhotoUpload"
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_48"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/margin_10"
android:backgroundTint="@color/greyColor4"
android:paddingLeft="@dimen/margin_30"
android:paddingRight="@dimen/margin_30"
android:text="@string/uploadFile"
android:textAllCaps="false"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="@+id/btnPANUpload"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/tvPhotoUpload"
app:layout_constraintTop_toBottomOf="@+id/btnPANUpload" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>


+ 5
- 0
app/src/main/res/values-hi-rIN/strings.xml View File

@ -166,6 +166,9 @@
<string name="panUpload">PAN Upload <font color='#E9161E'>*</font></string>
<string name="photoUpload">Photo Upload <font color='#E9161E'>*</font></string>
<string name="uploadFile">Upload File</string>
<string name="photograph">Photograph <font color='#E9161E'>*</font></string>
<string name="pan">PAN <font color='#E9161E'>*</font></string>
<string name="docType">Doctype</string>
<!-- Step Four -->
@ -222,5 +225,7 @@
<string name="selectState">Select State</string>
<string name="selectCity">Select City</string>
<string name="annualIncome">AnnualIncome</string>
<string name="aadhar">Aadhar</string>
</resources>

+ 7
- 0
app/src/main/res/values/strings.xml View File

@ -173,6 +173,8 @@
<string name="panUpload">PAN Upload <font color='#E9161E'>*</font></string>
<string name="photoUpload">Photo Upload <font color='#E9161E'>*</font></string>
<string name="uploadFile">Upload File</string>
<string name="photograph">Photograph <font color='#E9161E'>*</font></string>
<string name="pan">PAN <font color='#E9161E'>*</font></string>
<!-- Step Four -->
@ -230,6 +232,11 @@
<string name="selectState">Select State</string>
<string name="selectCity">Select City</string>
<string name="annualIncome">AnnualIncome</string>
<string name="docType">Doctype</string>
<string name="aadhar">AADHAR</string>
<string name="gallery">Gallery</string>
<string name="camera">Camera</string>
<string name="select_option">Select Option</string>
<!-- <string-array name="interestPayoutList">-->


+ 23
- 0
app/src/main/res/xml/file_paths.xml View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="my_images"
path="." />
<external-path
name="external"
path="." />
<external-files-path
name="external_files"
path="." />
<cache-path
name="cache"
path="." />
<external-cache-path
name="external_cache"
path="." />
<files-path
name="files"
path="." />
<!-- Android/data/com.nivesh.production.debug/files/Pictures -->
<!-- https://stackoverflow.com/questions/42516126/fileprovider-illegalargumentexception-failed-to-find-configured-root -->
</paths>

Loading…
Cancel
Save

Powered by TurnKey Linux.