diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1e58ab2..2490fea 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,6 +10,7 @@
tools:ignore="ScopedStorage" />
+
when (code) {
- 200 -> {
+ 650 -> ""
+ else -> {
if (stepCount == 4) {
binding.viewPager.currentItem = 4
} else {
@@ -446,13 +447,6 @@ class BajajFdMainActivity : BaseActivity() {
}
stepFiveBajajFDFragment.getData(paymentReQueryResponse)
}
- 650 -> ""
- else -> {
- showDialogValidation(
- this@BajajFdMainActivity,
- paymentReQueryResponse.Response.Errors[0].ErrorMessage
- )
- }
}
}
}
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
index 5f9ea63..b156e53 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepFiveBajajFDFragment.kt
@@ -5,6 +5,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
+import com.nivesh.production.bajajfd.R
import com.nivesh.production.bajajfd.databinding.FragmentBajajfdStepFiveBinding
import com.nivesh.production.bajajfd.model.PaymentReQueryResponse
@@ -22,8 +23,13 @@ class StepFiveBajajFDFragment : Fragment() {
}
fun getData(paymentReQueryResponse: PaymentReQueryResponse) {
-
-
+ if (paymentReQueryResponse.Response.StatusCode == 200) {
+ binding.tvCongrats.text = getString(R.string.congratulations)
+ binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message
+ }else{
+ binding.tvCongrats.text = getString(R.string.sorry)
+ binding.tvSuccessMessage.text = paymentReQueryResponse.Response.Message
+ }
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
index 03e2785..21ce6bb 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepThreeBajajFDFragment.kt
@@ -2,15 +2,15 @@ package com.nivesh.production.bajajfd.ui.fragment
import android.Manifest
import android.annotation.SuppressLint
+import android.app.Activity
import android.content.DialogInterface
-import android.content.Intent
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.MediaStore
import android.provider.OpenableColumns
import android.util.Base64
import android.util.Log
@@ -21,6 +21,7 @@ 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
@@ -52,7 +53,6 @@ class StepThreeBajajFDFragment : Fragment() {
private val mapImage: HashMap = HashMap()
private lateinit var listOfDocType: List
- private var check: Array? = null
private var panString: String = ""
private var photoString: String = ""
@@ -69,17 +69,51 @@ class StepThreeBajajFDFragment : Fragment() {
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 askPermissions = mutableListOf()
- private val requestPermission = registerForActivityResult(
+ private val requestCameraPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
- Log.e("permission:", "Granted")
+ Log.e("Permission: ", "Granted")
} else {
- Log.e("permission:", "Denied")
+ Log.e("Permission: ", "Denied")
}
+
}
+ private val requestGalleryPermission = registerForActivityResult(
+ ActivityResultContracts.RequestMultiplePermissions()
+ ) { permission ->
+
+ if (!permission.containsValue(false)){
+ selectImageIntent?.launch("image/*")
+ }else{
+// for (permissionObj in permissions) {
+// if (ContextCompat.checkSelfPermission(activity as BajajFdMainActivity, permissionObj) != PackageManager.PERMISSION_GRANTED) {
+// askPermissions.add(permissionObj)
+// }
+// }
+// if (askPermissions.isNotEmpty()){
+// requestGalleryPermission.launch(askPermissions)
+// }
+ }
+
+ }
+
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -92,12 +126,6 @@ class StepThreeBajajFDFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- check = arrayOf(
- getString(R.string.takePhoto),
- getString(R.string.chooseFromGallery),
- getString(R.string.cancel)
- )
-
selectImageIntent = registerForActivityResult(ActivityResultContracts.GetContent())
{ uri: Uri? ->
if (uri != null) {
@@ -210,54 +238,81 @@ class StepThreeBajajFDFragment : Fragment() {
)
builder.setTitle(getString(R.string.addPhoto))
builder.setItems(
- check
- ) { dialog: DialogInterface, item: Int ->
- if (check!![item] == getString(R.string.takePhoto)) {
- val permission = ContextCompat.checkSelfPermission(
- activity as BajajFdMainActivity,
- Manifest.permission.CAMERA
- )
- if (permission == PackageManager.PERMISSION_GRANTED) {
- takeImage()
- } else {
- requestPermission.launch(
- Manifest.permission.CAMERA
- )
+ arrayOf(
+ getString(R.string.takePhoto),
+ getString(R.string.chooseFromGallery),
+ getString(R.string.cancel)
+ )
+ ) { dialog: DialogInterface, pos ->
+ when (pos) {
+ 0 -> {
+ if (hasPermissions(
+ activity as BajajFdMainActivity,
+ Manifest.permission.CAMERA
+ )
+ ) {
+ takeImage()
+ } else {
+ onClickRequestPermission()
+ }
+ dialog.dismiss()
}
- dialog.dismiss()
- } else if (check!![item] == getString(R.string.chooseFromGallery)) {
- val permission = ContextCompat.checkSelfPermission(
- activity as BajajFdMainActivity,
- Manifest.permission.READ_EXTERNAL_STORAGE
- )
- if (permission == PackageManager.PERMISSION_GRANTED) {
- selectImageIntent?.launch("image/*")
-
-
-
- } else {
- requestPermission.launch(
- Manifest.permission.READ_EXTERNAL_STORAGE
-
-
-
- )
-
-
-
+ 1 -> {
+ if (hasPermissions(activity as BajajFdMainActivity, *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
+ }
+ fun onClickRequestPermission() {
+ when {
+ ContextCompat.checkSelfPermission(
+ activity as BajajFdMainActivity,
+ Manifest.permission.CAMERA
+ ) == PackageManager.PERMISSION_GRANTED -> {
+ }
+ ActivityCompat.shouldShowRequestPermissionRationale(
+ activity as BajajFdMainActivity,
+ Manifest.permission.CAMERA
+ ) -> {
+ requestCameraPermission.launch(
+ Manifest.permission.CAMERA
+ )
+ }
- }
- } else if (check!![item] == getString(R.string.cancel)) {
- dialog.dismiss()
+ else -> {
+ requestCameraPermission.launch(
+ Manifest.permission.CAMERA
+ )
}
}
- builder.show()
}
+
private fun setOtherUploadLayout(itemName: String?) {
binding.tvAadhaarFront.text = itemName.plus(" Front *")
if (binding.tvAadhaarBack.visibility == View.VISIBLE) binding.tvAadhaarBack.visibility =
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
index 0fa0364..3f68938 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/providerfactory/FDModelProviderFactory.kt
@@ -1,15 +1,15 @@
package com.nivesh.production.bajajfd.ui.providerfactory
-import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel
-class FDModelProviderFactory (private val mainRepository: MainRepository,val context: Context) : ViewModelProvider.Factory {
+class FDModelProviderFactory(private val mainRepository: MainRepository) :
+ ViewModelProvider.Factory {
override fun create(modelClass: Class): T {
- return BajajFDViewModel(mainRepository,context) as T
+ return BajajFDViewModel(mainRepository) as T
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
index 2a59ec3..a82a7f9 100644
--- a/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
+++ b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
@@ -1,8 +1,10 @@
package com.nivesh.production.bajajfd.util
+import android.Manifest
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
+import android.content.pm.PackageManager
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
@@ -11,6 +13,9 @@ import android.os.Build
import android.text.format.DateFormat
import android.util.Log
import android.util.Patterns
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.core.app.ActivityCompat
+import androidx.core.content.ContextCompat
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -272,5 +277,7 @@ class Common {
}
}
+
+
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_bajajfd_step_five.xml b/app/src/main/res/layout/fragment_bajajfd_step_five.xml
index d507a95..fd8e4b1 100644
--- a/app/src/main/res/layout/fragment_bajajfd_step_five.xml
+++ b/app/src/main/res/layout/fragment_bajajfd_step_five.xml
@@ -17,7 +17,6 @@
android:background="@color/NiveshColorAppBg"
android:fillViewport="true"
android:orientation="vertical"
- app:layout_constraintBottom_toTopOf="@+id/btnNext"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -87,7 +86,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
- android:text="@string/congratulations"
android:textColor="@color/black"
android:textSize="@dimen/text_size_17"
app:layout_constraintEnd_toEndOf="parent"
@@ -101,7 +99,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:text="@string/transactionIsSuccessful"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16"
app:layout_constraintEnd_toEndOf="parent"
@@ -111,6 +108,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file