Fixes Notification Request for Samsung phones
This commit is contained in:
@@ -34,6 +34,9 @@
|
|||||||
<!-- Keeps screen on while playing videos -->
|
<!-- Keeps screen on while playing videos -->
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
|
||||||
|
<!-- This notification permission is needed for some phones -->
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
|
||||||
<!-- Old permission to access media -->
|
<!-- Old permission to access media -->
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
|
|||||||
+6
-3
@@ -26,9 +26,12 @@ class EventNotificationConsumer(private val applicationContext: Context) {
|
|||||||
// adds to database
|
// adds to database
|
||||||
LocalCache.verifyAndConsume(event, null)
|
LocalCache.verifyAndConsume(event, null)
|
||||||
|
|
||||||
when (event) {
|
val manager = notificationManager()
|
||||||
is PrivateDmEvent -> notify(event)
|
if (manager.areNotificationsEnabled()) {
|
||||||
is LnZapEvent -> notify(event)
|
when (event) {
|
||||||
|
is PrivateDmEvent -> notify(event)
|
||||||
|
is LnZapEvent -> notify(event)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn
|
package com.vitorpamplona.amethyst.ui.screen.loggedIn
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
@@ -24,6 +25,9 @@ import androidx.compose.ui.platform.LocalLifecycleOwner
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.LifecycleEventObserver
|
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.horizontal.bottomAxis
|
||||||
import com.patrykandpatrick.vico.compose.axis.vertical.endAxis
|
import com.patrykandpatrick.vico.compose.axis.vertical.endAxis
|
||||||
import com.patrykandpatrick.vico.compose.axis.vertical.startAxis
|
import com.patrykandpatrick.vico.compose.axis.vertical.startAxis
|
||||||
@@ -64,6 +68,8 @@ fun NotificationScreen(
|
|||||||
) {
|
) {
|
||||||
WatchAccountForNotifications(notifFeedViewModel, accountViewModel)
|
WatchAccountForNotifications(notifFeedViewModel, accountViewModel)
|
||||||
|
|
||||||
|
CheckifItNeedsToRequestNotificationPermission()
|
||||||
|
|
||||||
val lifeCycleOwner = LocalLifecycleOwner.current
|
val lifeCycleOwner = LocalLifecycleOwner.current
|
||||||
DisposableEffect(accountViewModel) {
|
DisposableEffect(accountViewModel) {
|
||||||
val observer = LifecycleEventObserver { _, event ->
|
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
|
@Composable
|
||||||
fun WatchAccountForNotifications(
|
fun WatchAccountForNotifications(
|
||||||
notifFeedViewModel: NotificationViewModel,
|
notifFeedViewModel: NotificationViewModel,
|
||||||
|
|||||||
Reference in New Issue
Block a user