Updated on 2026-08-14

This commit is contained in:
Tangem 2025-03-31 11:48:00 +05:00
parent b9ed0818e4
commit bf8c6e8c79
4 changed files with 9 additions and 14 deletions

View file

@ -2,7 +2,6 @@ package com.tangem.core.ui.utils
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableState
import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.isGranted
import com.google.accompanist.permissions.rememberPermissionState import com.google.accompanist.permissions.rememberPermissionState
@ -16,7 +15,7 @@ import com.google.accompanist.permissions.rememberPermissionState
@Composable @Composable
fun requestPushPermission( fun requestPushPermission(
pushPermission: String?, pushPermission: String?,
isClicked: MutableState<Boolean>, isClicked: Boolean,
onAllow: () -> Unit, onAllow: () -> Unit,
onDeny: () -> Unit, onDeny: () -> Unit,
): () -> Unit { ): () -> Unit {
@ -26,7 +25,7 @@ fun requestPushPermission(
// Check if user granted permission and close bottom sheet // Check if user granted permission and close bottom sheet
LaunchedEffect(key1 = permissionState?.status, isClicked) { LaunchedEffect(key1 = permissionState?.status, isClicked) {
if (!isClicked.value) return@LaunchedEffect if (!isClicked) return@LaunchedEffect
if (permissionState?.status?.isGranted == true) { if (permissionState?.status?.isGranted == true) {
onAllow() onAllow()
} else { } else {

View file

@ -17,7 +17,7 @@ import javax.inject.Inject
@Stable @Stable
@ModelScoped @ModelScoped
class PushNotificationsModel @Inject constructor( internal class PushNotificationsModel @Inject constructor(
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase, private val neverRequestPermissionUseCase: NeverRequestPermissionUseCase,
private val neverToInitiallyAskPermissionUseCase: NeverToInitiallyAskPermissionUseCase, private val neverToInitiallyAskPermissionUseCase: NeverToInitiallyAskPermissionUseCase,

View file

@ -1,9 +1,7 @@
package com.tangem.features.pushnotifications.impl.presentation.ui package com.tangem.features.pushnotifications.impl.presentation.ui
import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.runtime.Composable import androidx.compose.runtime.*
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import com.tangem.core.ui.components.showcase.Showcase import com.tangem.core.ui.components.showcase.Showcase
import com.tangem.core.ui.components.showcase.model.ShowcaseButtonModel import com.tangem.core.ui.components.showcase.model.ShowcaseButtonModel
@ -21,7 +19,7 @@ internal fun PushNotificationsScreen(
onAllowPermission: () -> Unit, onAllowPermission: () -> Unit,
onDenyPermission: () -> Unit, onDenyPermission: () -> Unit,
) { ) {
val isClicked = remember { mutableStateOf(false) } var isClicked by remember { mutableStateOf(false) }
val requestPushPermission = requestPushPermission( val requestPushPermission = requestPushPermission(
isClicked = isClicked, isClicked = isClicked,
onAllow = onAllowPermission, onAllow = onAllowPermission,
@ -45,7 +43,7 @@ internal fun PushNotificationsScreen(
primaryButton = ShowcaseButtonModel( primaryButton = ShowcaseButtonModel(
buttonText = resourceReference(R.string.common_allow), buttonText = resourceReference(R.string.common_allow),
onClick = { onClick = {
isClicked.value = true isClicked = true
onRequest() onRequest()
requestPushPermission() requestPushPermission()
}, },

View file

@ -6,9 +6,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable import androidx.compose.runtime.*
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import com.tangem.core.ui.components.PrimaryButton import com.tangem.core.ui.components.PrimaryButton
@ -36,7 +34,7 @@ internal fun PushNotificationsBottomSheet(config: TangemBottomSheetConfig) {
@Composable @Composable
private fun PushNotificationsSheetContent(content: PushNotificationsBottomSheetConfig, onDismiss: () -> Unit) { private fun PushNotificationsSheetContent(content: PushNotificationsBottomSheetConfig, onDismiss: () -> Unit) {
val isClicked = remember { mutableStateOf(false) } var isClicked by remember { mutableStateOf(false) }
val requestPushPermission = requestPushPermission( val requestPushPermission = requestPushPermission(
pushPermission = getPushPermissionOrNull(), pushPermission = getPushPermissionOrNull(),
isClicked = isClicked, isClicked = isClicked,
@ -86,7 +84,7 @@ private fun PushNotificationsSheetContent(content: PushNotificationsBottomSheetC
PrimaryButton( PrimaryButton(
text = stringResourceSafe(R.string.common_allow), text = stringResourceSafe(R.string.common_allow),
onClick = { onClick = {
isClicked.value = true isClicked = true
content.onRequest() content.onRequest()
requestPushPermission() requestPushPermission()
}, },