@@ -2,7 +2,9 @@ package dev.ahrsoft.easycameraandgallery.camera
2
2
3
3
import android.annotation.SuppressLint
4
4
import android.app.Activity
5
+ import android.app.AlertDialog
5
6
import android.content.ContentValues
7
+ import android.content.DialogInterface
6
8
import android.content.Intent
7
9
import android.content.pm.PackageManager
8
10
import android.media.MediaScannerConnection
@@ -12,9 +14,11 @@ import android.os.Bundle
12
14
import android.os.Environment
13
15
import android.provider.MediaStore
14
16
import android.provider.Settings
17
+ import android.util.Log
15
18
import android.view.Surface.ROTATION_0
16
19
import android.view.View
17
20
import android.webkit.MimeTypeMap
21
+ import android.widget.Toast
18
22
import androidx.activity.result.ActivityResultLauncher
19
23
import androidx.activity.result.contract.ActivityResultContracts
20
24
import androidx.appcompat.app.AppCompatActivity
@@ -31,6 +35,7 @@ import dev.ahrsoft.easycameraandgallery.Constant.FILENAME
31
35
import dev.ahrsoft.easycameraandgallery.Constant.PHOTO_EXTENSION
32
36
import dev.ahrsoft.easycameraandgallery.Constant.REQUEST_CODE_PERMISSIONS
33
37
import dev.ahrsoft.easycameraandgallery.Constant.REQUIRED_PERMISSIONS
38
+ import dev.ahrsoft.easycameraandgallery.Constant.TAG
34
39
import dev.ahrsoft.easycameraandgallery.EasyCamera.IMAGE_RESULTS
35
40
import dev.ahrsoft.easycameraandgallery.Flash
36
41
import dev.ahrsoft.easycameraandgallery.OptionsCamera
@@ -71,12 +76,13 @@ class CameraActivity : AppCompatActivity(), GalleryAdapter.OnItemClickListener {
71
76
supportActionBar?.hide()
72
77
optionsCamera = (intent.getSerializableExtra(" options" ) as ? OptionsCamera )!!
73
78
viewModel = ViewModelProvider (this )[CameraViewModel ::class .java]
79
+ initCameraUI()
74
80
initObserver()
75
81
openCallback()
76
82
}
77
83
78
- override fun onResume () {
79
- super .onResume ()
84
+ override fun onRestart () {
85
+ super .onRestart ()
80
86
initCameraUI()
81
87
}
82
88
@@ -134,11 +140,6 @@ class CameraActivity : AppCompatActivity(), GalleryAdapter.OnItemClickListener {
134
140
cameraCaptureButtonCamera.setOnClickListener {
135
141
takePhoto()
136
142
}
137
- cameraBtnPermission.setOnClickListener {
138
- startActivity(Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS ).apply {
139
- data = Uri .fromParts(" package" ,this @CameraActivity.packageName,null )
140
- })
141
- }
142
143
ibFrontCamera.setOnClickListener {
143
144
if (CameraSelector .LENS_FACING_FRONT == lensFacing) {
144
145
lensFacing = CameraSelector .LENS_FACING_BACK
@@ -310,11 +311,25 @@ class CameraActivity : AppCompatActivity(), GalleryAdapter.OnItemClickListener {
310
311
if (allPermissionsGranted()) {
311
312
initCameraUI()
312
313
} else {
313
- binding.cameraVfState.displayedChild = CameraFlipperState . SHOW_PERMISSIONS .state
314
+ dialogPermission()
314
315
}
315
316
}
316
317
}
317
318
319
+ private fun dialogPermission () {
320
+ val builder = AlertDialog .Builder (this ).apply {
321
+ setTitle(getString(R .string.action_permission))
322
+ setMessage(getString(R .string.message_permissions))
323
+ setCancelable(false )
324
+ }.setPositiveButton(getString(android.R .string.ok)) { dialog, id ->
325
+ startActivity(Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS ).apply {
326
+ data = Uri .fromParts(" package" ,baseContext.packageName,null )
327
+ })
328
+ }
329
+
330
+ builder.show()
331
+ }
332
+
318
333
private fun hasBackCamera (): Boolean {
319
334
return cameraProvider?.hasCamera(CameraSelector .DEFAULT_BACK_CAMERA ) ? : false
320
335
}
0 commit comments