Skip to content

Commit 57bf09f

Browse files
authored
Merge pull request #528 from TeamSparker/fix/camera
#527 [프로필 및 카메라] 프로필 입력/수정 화면에서의 시스템 뒤로가기 이벤트처리 및 카메라 권한 체크 변수에서 함수로 변경
2 parents 4907e7d + a454fa6 commit 57bf09f

File tree

3 files changed

+50
-38
lines changed

3 files changed

+50
-38
lines changed

app/src/main/java/com/spark/android/ui/auth/profile/ProfileBottomSheet.kt

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,6 @@ class ProfileBottomSheet : BottomSheetDialogFragment() {
3434
private var _binding: BottomSheetProfileBinding? = null
3535
val binding get() = _binding ?: error(getString(R.string.binding_error))
3636

37-
private val checkCameraPermission by lazy {
38-
ContextCompat.checkSelfPermission(
39-
requireContext(),
40-
android.Manifest.permission.CAMERA
41-
) == PackageManager.PERMISSION_GRANTED
42-
}
43-
44-
private val checkCameraPermissionUnderQ by lazy {
45-
checkCameraPermission && ContextCompat.checkSelfPermission(
46-
requireContext(),
47-
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
48-
) == PackageManager.PERMISSION_GRANTED
49-
}
50-
5137
private lateinit var imgUri: Uri
5238

5339
private val fromAlbumActivityLauncher = registerForActivityResult(
@@ -70,7 +56,6 @@ class ProfileBottomSheet : BottomSheetDialogFragment() {
7056
dismiss()
7157
}
7258

73-
7459
override fun onCreateView(
7560
inflater: LayoutInflater,
7661
container: ViewGroup?,
@@ -122,7 +107,7 @@ class ProfileBottomSheet : BottomSheetDialogFragment() {
122107
private fun initFromCameraBtnClickListener() {
123108
binding.tvProfileBottomFromCamera.setOnClickListener {
124109
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
125-
if (checkCameraPermission) {
110+
if (checkCameraPermission()) {
126111
takePicture()
127112
} else {
128113
ActivityCompat.requestPermissions(
@@ -132,7 +117,7 @@ class ProfileBottomSheet : BottomSheetDialogFragment() {
132117
)
133118
}
134119
} else {
135-
if (checkCameraPermissionUnderQ) {
120+
if (checkCameraPermissionUnderQ()) {
136121
takePicture()
137122
} else {
138123
ActivityCompat.requestPermissions(
@@ -148,6 +133,19 @@ class ProfileBottomSheet : BottomSheetDialogFragment() {
148133
}
149134
}
150135

136+
private fun checkCameraPermission() =
137+
ContextCompat.checkSelfPermission(
138+
requireContext(),
139+
android.Manifest.permission.CAMERA
140+
) == PackageManager.PERMISSION_GRANTED
141+
142+
143+
private fun checkCameraPermissionUnderQ() =
144+
checkCameraPermission() && ContextCompat.checkSelfPermission(
145+
requireContext(),
146+
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
147+
) == PackageManager.PERMISSION_GRANTED
148+
151149
private fun takePicture() {
152150
try {
153151
imgUri = getImgUri(requireContext().contentResolver)

app/src/main/java/com/spark/android/ui/auth/profile/ProfileFragment.kt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.content.Intent
44
import android.net.Uri
55
import android.os.Bundle
66
import android.view.View
7+
import androidx.activity.OnBackPressedCallback
78
import androidx.core.os.bundleOf
89
import androidx.fragment.app.setFragmentResult
910
import androidx.fragment.app.setFragmentResultListener
@@ -47,6 +48,7 @@ class ProfileFragment : BaseFragment<FragmentProfileBinding>(R.layout.fragment_p
4748
initLayoutClickListener()
4849
initIsFocused()
4950
initQuitBtnClickListener()
51+
initOnBackPressed()
5052
initPictureBtnClickListener()
5153
initSuccessSignUpObserver()
5254
initOldProfileImgUrlObserver()
@@ -91,16 +93,29 @@ class ProfileFragment : BaseFragment<FragmentProfileBinding>(R.layout.fragment_p
9193
}
9294
}
9395

96+
private fun showDialog() {
97+
DialogUtil(
98+
if (args.modifyMode) STOP_MODIFY_PROFILE else STOP_SIGNUP_MODE
99+
) {
100+
popBackStack()
101+
}.show(parentFragmentManager, this.javaClass.name)
102+
}
103+
94104
private fun initQuitBtnClickListener() {
95105
binding.btnProfileQuit.setOnClickListener {
96-
DialogUtil(
97-
if (args.modifyMode) STOP_MODIFY_PROFILE else STOP_SIGNUP_MODE
98-
) {
99-
popBackStack()
100-
}.show(parentFragmentManager, this.javaClass.name)
106+
showDialog()
101107
}
102108
}
103109

110+
private fun initOnBackPressed() {
111+
requireActivity().onBackPressedDispatcher
112+
.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
113+
override fun handleOnBackPressed() {
114+
showDialog()
115+
}
116+
})
117+
}
118+
104119
private fun initSuccessSignUpObserver() {
105120
profileViewModel.successSignUp.observe(viewLifecycleOwner, EventObserver { successSignUp ->
106121
if (successSignUp) {

app/src/main/java/com/spark/android/ui/certify/CertifyBottomSheet.kt

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,6 @@ class CertifyBottomSheet : BottomSheetDialogFragment() {
3535
private lateinit var imgUri: Uri
3636
private val certifyViewModel by activityViewModels<CertifyViewModel>()
3737

38-
private val checkCameraPermission by lazy {
39-
ContextCompat.checkSelfPermission(
40-
requireContext(),
41-
android.Manifest.permission.CAMERA
42-
) == PackageManager.PERMISSION_GRANTED
43-
}
44-
45-
private val checkCameraPermissionUnderQ by lazy {
46-
checkCameraPermission && ContextCompat.checkSelfPermission(
47-
requireContext(),
48-
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
49-
) == PackageManager.PERMISSION_GRANTED
50-
}
51-
5238
private val fromAlbumActivityLauncher = registerForActivityResult(
5339
ActivityResultContracts.StartActivityForResult()
5440
) { result: ActivityResult ->
@@ -132,7 +118,7 @@ class CertifyBottomSheet : BottomSheetDialogFragment() {
132118
private fun initFromCameraBtnClickListener() {
133119
binding.tvCertifyCamera.setOnClickListener {
134120
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
135-
if (checkCameraPermission) {
121+
if (checkCameraPermission()) {
136122
takePicture()
137123
} else {
138124
ActivityCompat.requestPermissions(
@@ -142,7 +128,7 @@ class CertifyBottomSheet : BottomSheetDialogFragment() {
142128
)
143129
}
144130
} else {
145-
if (checkCameraPermissionUnderQ) {
131+
if (checkCameraPermissionUnderQ()) {
146132
takePicture()
147133
} else {
148134
ActivityCompat.requestPermissions(
@@ -158,6 +144,19 @@ class CertifyBottomSheet : BottomSheetDialogFragment() {
158144
}
159145
}
160146

147+
private fun checkCameraPermission() =
148+
ContextCompat.checkSelfPermission(
149+
requireContext(),
150+
android.Manifest.permission.CAMERA
151+
) == PackageManager.PERMISSION_GRANTED
152+
153+
154+
private fun checkCameraPermissionUnderQ() =
155+
checkCameraPermission() && ContextCompat.checkSelfPermission(
156+
requireContext(),
157+
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
158+
) == PackageManager.PERMISSION_GRANTED
159+
161160
private fun takePicture() {
162161
try {
163162
imgUri = getImgUri(requireContext().contentResolver)

0 commit comments

Comments
 (0)