diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d85d4d50..17e99dec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools"> + = Build.VERSION_CODES.TIRAMISU) { + val notificationPermission = rememberPermissionState(permission = Manifest.permission.POST_NOTIFICATIONS) + LaunchedEffect(Unit) { + when { + notificationPermission.status.isGranted -> return@LaunchedEffect // 권한 이미 허용됨 + notificationPermission.status.shouldShowRationale -> context.openSetting() // 권한 거부 시 설정 창 + else -> notificationPermission.launchPermissionRequest() // 권한 요청 + } + } + } viewModel.collectSideEffect { event -> when (event) { @@ -33,4 +59,11 @@ fun SplashRoute( } @Composable -fun SplashScreen() { /** todo: 추후 구현 */ } \ No newline at end of file +fun SplashScreen() { /** todo: 추후 구현 */ } + +private fun Context.openSetting() { + val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { + data = Uri.fromParts("package", this@openSetting.packageName, null) + } + this.startActivity(intent) +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c6c8641..4e5bb83b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,6 +45,8 @@ stabilityAnalyzer = "0.7.2" haze = "1.7.2" +accompanist = "0.37.3" + [libraries] android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } @@ -104,6 +106,8 @@ material = { group = "com.google.android.material", name = "material", version.r haze = { group = "dev.chrisbanes.haze", name = "haze", version.ref = "haze" } +accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanist" } + [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }