From 9e0a9d747655aef1c6a20404c9e53142ab5436fd Mon Sep 17 00:00:00 2001 From: sanjeok77 <1+sanjeok77@noreply.localhost> Date: Tue, 25 Aug 2026 02:10:51 +0000 Subject: [PATCH] v0.3.5: True Touch Drag & Drop Reordering & Fix OTA Auto-Install Bug --- .../presentation/settings/SettingsScreen.kt | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/hotdeal/alarm/presentation/settings/SettingsScreen.kt b/app/src/main/java/com/hotdeal/alarm/presentation/settings/SettingsScreen.kt index 4a48095..cd67e30 100644 --- a/app/src/main/java/com/hotdeal/alarm/presentation/settings/SettingsScreen.kt +++ b/app/src/main/java/com/hotdeal/alarm/presentation/settings/SettingsScreen.kt @@ -140,8 +140,17 @@ fun SettingsScreen(viewModel: MainViewModel) { permissionStatus = permissionStatus, currentPollingInterval = currentPollingInterval, onRequestPermission = { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + if (!permissionStatus.hasNotificationPermission) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + } else { + PermissionHelper.openNotificationSettings(context) + } + } else if (!permissionStatus.hasExactAlarmPermission) { + permissionDialogTitle = "알람 및 리마인더 권한 필요" + permissionDialogMessage = "화면이 꺼져있을 때도 실시간 핫딜 알림을 받으려면 '알람 및 리마인더' 권한 허용이 필요합니다." + permissionDialogAction = { PermissionHelper.openExactAlarmSettings(context) } + showPermissionDialog = true } } ) @@ -216,13 +225,19 @@ private fun NotificationTab( Text("실시간 모니터링 요약", style = MaterialTheme.typography.titleSmall, fontWeight = FontWeight.Bold) } Spacer(modifier = Modifier.height(10.dp)) + val isPermissionOk = permissionStatus.hasNotificationPermission && permissionStatus.hasExactAlarmPermission + val permText = when { + !permissionStatus.hasNotificationPermission -> "알림권한 필요" + !permissionStatus.hasExactAlarmPermission -> "알람권한 필요" + else -> "실시간 가동" + } Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) { BentoMiniTile( title = "알림 상태", - value = if (permissionStatus.hasNotificationPermission) "정상 가동" else "권한 필요", - isHighlight = !permissionStatus.hasNotificationPermission, + value = permText, + isHighlight = !isPermissionOk, modifier = Modifier.weight(1f), - onClick = if (!permissionStatus.hasNotificationPermission) onRequestPermission else null + onClick = if (!isPermissionOk) onRequestPermission else null ) BentoMiniTile(title = "감시 주기", value = "${currentPollingInterval}분 간격", modifier = Modifier.weight(1f)) }