...
This commit is contained in:
parent
1ba808fcf0
commit
3fefb5476f
@ -256,8 +256,12 @@ class SystemStatusFragment : Fragment() {
|
||||
private fun allPermissionsGranted() = androidx.core.content.ContextCompat.checkSelfPermission(
|
||||
requireContext(), CAMERA_PERMISSION) == android.content.pm.PackageManager.PERMISSION_GRANTED
|
||||
|
||||
private var mirrorDialog: android.app.Dialog? = null // 멤버 변수로 선언
|
||||
|
||||
private fun showMirrorDialog() {
|
||||
val dialog = android.app.Dialog(requireContext(), android.R.style.Theme_Black_NoTitleBar_Fullscreen)
|
||||
mirrorDialog = android.app.Dialog(requireContext(), android.R.style.Theme_Black_NoTitleBar_Fullscreen)
|
||||
mirrorDialog?.let { mirrorDialog ->
|
||||
|
||||
|
||||
// 레이아웃 구성을 위한 FrameLayout 생성
|
||||
val frameLayout = android.widget.FrameLayout(requireContext())
|
||||
@ -282,7 +286,7 @@ class SystemStatusFragment : Fragment() {
|
||||
|
||||
frameLayout.addView(previewView)
|
||||
frameLayout.addView(timerText, params)
|
||||
dialog.setContentView(frameLayout)
|
||||
mirrorDialog?.setContentView(frameLayout)
|
||||
|
||||
val cameraProviderFuture = androidx.camera.lifecycle.ProcessCameraProvider.getInstance(requireContext())
|
||||
|
||||
@ -304,18 +308,19 @@ class SystemStatusFragment : Fragment() {
|
||||
}, androidx.core.content.ContextCompat.getMainExecutor(requireContext()))
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
for (i in 30 downTo 1) {
|
||||
if (!dialog.isShowing) break
|
||||
if (!mirrorDialog.isShowing) break
|
||||
timerText.text = "거울 모드 종료까지 $i" + "초"
|
||||
delay(1000L)
|
||||
}
|
||||
if (dialog.isShowing) {
|
||||
dialog.dismiss()
|
||||
if (mirrorDialog.isShowing == true) {
|
||||
mirrorDialog.dismiss()
|
||||
context?.toast("배터리 절약을 위해 거울을 껐습니다.")
|
||||
}
|
||||
}
|
||||
// 화면 터치 시 종료
|
||||
previewView.setOnClickListener { dialog.dismiss() }
|
||||
dialog.show()
|
||||
previewView.setOnClickListener { mirrorDialog?.dismiss() }
|
||||
mirrorDialog?.show()
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateQuickControlUI() {
|
||||
@ -337,6 +342,22 @@ class SystemStatusFragment : Fragment() {
|
||||
override fun onHiddenChanged(hidden: Boolean) {
|
||||
super.onHiddenChanged(hidden)
|
||||
if (hidden) {
|
||||
if (isFlashOn) {
|
||||
isFlashOn = false
|
||||
try {
|
||||
cameraManager.setTorchMode(cameraManager.cameraIdList[0], false)
|
||||
binding.btnQuickFlash.text = "🔦 조명"
|
||||
binding.btnQuickFlash.setTextColor(Color.WHITE)
|
||||
} catch (e: Exception) { e.printStackTrace() }
|
||||
}
|
||||
flashTimerJob?.cancel()
|
||||
|
||||
// 2. 거울 다이얼로그 닫기 (카메라 자원 해제)
|
||||
mirrorDialog?.let {
|
||||
if (it.isShowing) it.dismiss()
|
||||
}
|
||||
mirrorDialog = null
|
||||
|
||||
stopMonitoring()
|
||||
} else {
|
||||
resetNetworkCounters()
|
||||
@ -348,7 +369,7 @@ class SystemStatusFragment : Fragment() {
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
stopMonitoring()
|
||||
onHiddenChanged(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user