From d03ce535b682015ed217fd4b1819bf44f6bd758f Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Mon, 9 Jan 2023 15:33:17 +0530 Subject: [PATCH] working on gallry --- app/src/main/AndroidManifest.xml | 1 + .../ui/activity/BajajFdMainActivity.kt | 18 +-- .../ui/fragment/StepFiveBajajFDFragment.kt | 10 +- .../ui/fragment/StepThreeBajajFDFragment.kt | 145 +++++++++++++----- .../providerfactory/FDModelProviderFactory.kt | 3 +- .../nivesh/production/bajajfd/util/Common.kt | 7 + .../res/layout/fragment_bajajfd_step_five.xml | 27 +--- .../main/res/layout/fragment_step_fail.xml | 136 ---------------- 8 files changed, 133 insertions(+), 214 deletions(-) delete mode 100644 app/src/main/res/layout/fragment_step_fail.xml 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 { @@ -445,13 +446,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 eccf074..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,12 +2,14 @@ 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.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 @@ -19,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 @@ -50,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 = "" @@ -67,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? @@ -90,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) { @@ -208,40 +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() } - } else if (check!![item] == getString(R.string.cancel)) { - 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 -> { + 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 = 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 40c35fc..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 @@ -5,7 +5,8 @@ import androidx.lifecycle.ViewModelProvider import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel -class FDModelProviderFactory (private val mainRepository: MainRepository) : ViewModelProvider.Factory { +class FDModelProviderFactory(private val mainRepository: MainRepository) : + ViewModelProvider.Factory { override fun create(modelClass: Class): T { return BajajFDViewModel(mainRepository) as T 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