diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 795994bc8..00767122f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,6 +34,9 @@
+
+
+
notify(event)
- is LnZapEvent -> notify(event)
+ val manager = notificationManager()
+ if (manager.areNotificationsEnabled()) {
+ when (event) {
+ is PrivateDmEvent -> notify(event)
+ is LnZapEvent -> notify(event)
+ }
}
}
}
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt
index 7d0c3fd5b..d85a73817 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt
@@ -1,5 +1,6 @@
package com.vitorpamplona.amethyst.ui.screen.loggedIn
+import android.Manifest
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -24,6 +25,9 @@ import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.unit.dp
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
+import com.google.accompanist.permissions.ExperimentalPermissionsApi
+import com.google.accompanist.permissions.isGranted
+import com.google.accompanist.permissions.rememberPermissionState
import com.patrykandpatrick.vico.compose.axis.horizontal.bottomAxis
import com.patrykandpatrick.vico.compose.axis.vertical.endAxis
import com.patrykandpatrick.vico.compose.axis.vertical.startAxis
@@ -64,6 +68,8 @@ fun NotificationScreen(
) {
WatchAccountForNotifications(notifFeedViewModel, accountViewModel)
+ CheckifItNeedsToRequestNotificationPermission()
+
val lifeCycleOwner = LocalLifecycleOwner.current
DisposableEffect(accountViewModel) {
val observer = LifecycleEventObserver { _, event ->
@@ -96,6 +102,20 @@ fun NotificationScreen(
}
}
+@OptIn(ExperimentalPermissionsApi::class)
+@Composable
+fun CheckifItNeedsToRequestNotificationPermission() {
+ val notificationPermissionState = rememberPermissionState(
+ Manifest.permission.POST_NOTIFICATIONS
+ )
+
+ if (!notificationPermissionState.status.isGranted) {
+ LaunchedEffect(notificationPermissionState) {
+ notificationPermissionState.launchPermissionRequest()
+ }
+ }
+}
+
@Composable
fun WatchAccountForNotifications(
notifFeedViewModel: NotificationViewModel,