From c767662417601e8ba4ff2f93f59bafa5eb4f234d Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Mon, 9 Jan 2023 18:25:46 +0530 Subject: [PATCH] resolved image permission --- app/src/main/AndroidManifest.xml | 4 +-- .../ui/fragment/StepThreeBajajFDFragment.kt | 33 ++++++++----------- .../nivesh/production/bajajfd/util/Common.kt | 26 ++++++++------- app/src/main/res/values-hi-rIN/strings.xml | 4 +++ app/src/main/res/values/strings.xml | 4 +++ 5 files changed, 36 insertions(+), 35 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2490fea..245ae96 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,9 +5,7 @@ + android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 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 21ce6bb..4fa89e1 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 @@ -4,6 +4,7 @@ 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 @@ -12,6 +13,7 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.OpenableColumns +import android.provider.Settings import android.util.Base64 import android.util.Log import android.view.LayoutInflater @@ -34,10 +36,12 @@ import com.nivesh.production.bajajfd.model.* import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Common.Companion.getFileExtension +import com.nivesh.production.bajajfd.util.Common.Companion.showDialogWithTwoButtons import com.nivesh.production.bajajfd.util.Constants import com.nivesh.production.bajajfd.util.ImageUtil import com.nivesh.production.bajajfd.util.Resource import java.io.* +import java.util.* class StepThreeBajajFDFragment : Fragment() { @@ -81,39 +85,29 @@ class StepThreeBajajFDFragment : Fragment() { Manifest.permission.WRITE_EXTERNAL_STORAGE ) } - private val askPermissions = mutableListOf() private val requestCameraPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { isGranted: Boolean -> if (isGranted) { - Log.e("Permission: ", "Granted") + takeImage() } else { - Log.e("Permission: ", "Denied") + showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.cameraPermission), getString( + R.string.permissionRequired)) } - } private val requestGalleryPermission = registerForActivityResult( ActivityResultContracts.RequestMultiplePermissions() - ) { permission -> - - if (!permission.containsValue(false)){ + ) { 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) -// } + } else { + showDialogWithTwoButtons((activity as BajajFdMainActivity), getString(R.string.galleryPermission), getString( + R.string.permissionsRequired)) } - } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -286,7 +280,7 @@ class StepThreeBajajFDFragment : Fragment() { return true } - fun onClickRequestPermission() { + private fun onClickRequestPermission() { when { ContextCompat.checkSelfPermission( activity as BajajFdMainActivity, @@ -312,7 +306,6 @@ class StepThreeBajajFDFragment : Fragment() { } } - 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/util/Common.kt b/app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt index a82a7f9..09aef07 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 @@ -4,23 +4,28 @@ import android.Manifest import android.app.Activity import android.app.AlertDialog import android.content.Context +import android.content.Intent import android.content.pm.PackageManager import android.graphics.Color import android.graphics.drawable.GradientDrawable import android.net.ConnectivityManager import android.net.NetworkCapabilities +import android.net.Uri import android.os.Build +import android.provider.Settings 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 androidx.core.content.ContextCompat.startActivity 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.bajajfd.R +import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import kotlinx.coroutines.CoroutineExceptionHandler import org.json.JSONObject import retrofit2.HttpException @@ -124,11 +129,18 @@ class Common { builder.show() } - fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?) { + fun showDialogWithTwoButtons(activity: Activity?, message: CharSequence?, title: String) { val builder = AlertDialog.Builder(activity) + builder.setTitle(title) builder.setMessage(message) if (activity != null) { builder.setPositiveButton(activity.getString(R.string.Ok)) { dialogInterface, _ -> + val intent = Intent( + Settings.ACTION_APPLICATION_DETAILS_SETTINGS, + Uri.fromParts("package", (activity as BajajFdMainActivity).packageName, null) + ) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + activity.startActivity(intent) dialogInterface.dismiss() } builder.setNegativeButton(activity.getString(R.string.cancel)) { dialogInterface, _ -> @@ -194,21 +206,11 @@ class Common { } fun handleResponse(response: Response): Resource { - // try { if (response.isSuccessful && response.body() != null) { response.body()?.let { resultResponse -> return Resource.Success(resultResponse) } } -// } catch (t: Throwable) { -// return when (t) { -// is IOException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) -// is HttpException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) -// is SocketTimeoutException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) -// is UnknownHostException -> Resource.Error("Response : " + t.message.plus(" Cause: " + t.cause)) -// else -> Resource.Error(t.localizedMessage?.toString() ?: "") -// } -// } return Resource.Error(response.message()) } @@ -247,7 +249,7 @@ class Common { } fun isMinor(date: String): Boolean { - val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()) + val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) val dt1: Date = simpleDateFormat.parse(date) as Date val year: Int = DateFormat.format("yyyy", dt1).toString().toInt() val month: Int = DateFormat.format("mm", dt1).toString().toInt() diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 2ab4061..96dd577 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -248,6 +248,10 @@ Add New Account OK + You Need to Give Permission of Camera for uploading Image + You Need to Give Permission of Gallery for uploading Image + Permission Required ! + Permission\'s Required ! \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ab4061..96dd577 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -248,6 +248,10 @@ Add New Account OK + You Need to Give Permission of Camera for uploading Image + You Need to Give Permission of Gallery for uploading Image + Permission Required ! + Permission\'s Required ! \ No newline at end of file