File tree Expand file tree Collapse file tree 3 files changed +16
-8
lines changed
core/common/src/main/kotlin/com/ninecraft/booket/core/common/utils
home/src/main/kotlin/com/ninecraft/booket/feature/home
settings/src/main/kotlin/com/ninecraft/booket/feature/settings/notification Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Original file line number Diff line number Diff line change 1+ package com.ninecraft.booket.core.common.utils
2+
3+ fun shouldSyncNotification (effectiveEnabled : Boolean , lastSynced : Boolean? ): Boolean =
4+ lastSynced == null || lastSynced != effectiveEnabled
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ import androidx.compose.runtime.rememberCoroutineScope
77import androidx.compose.runtime.setValue
88import com.ninecraft.booket.core.common.analytics.AnalyticsHelper
99import com.ninecraft.booket.core.common.utils.handleException
10+ import com.ninecraft.booket.core.common.utils.shouldSyncNotification
1011import com.ninecraft.booket.core.data.api.repository.AuthRepository
1112import com.ninecraft.booket.core.data.api.repository.BookRepository
1213import com.ninecraft.booket.core.data.api.repository.UserRepository
@@ -115,14 +116,15 @@ class HomePresenter @AssistedInject constructor(
115116 is HomeUiEvent .OnNotificationPermissionResult -> {
116117 scope.launch {
117118 val isPermissionGranted = event.granted
118- val userEnabled = userRepository.getUserNotificationEnabled()
119+ val userSettingEnabled = userRepository.getUserNotificationEnabled()
119120 val lastSyncedServerEnabled = userRepository.getLastSyncedNotificationEnabled()
120121
121- val shouldSync = (! isPermissionGranted && lastSyncedServerEnabled != false ) ||
122- (userEnabled && (lastSyncedServerEnabled == null || lastSyncedServerEnabled != isPermissionGranted))
122+ val effectiveNotificationEnabled = userSettingEnabled && isPermissionGranted
123+
124+ val shouldSync = shouldSyncNotification(effectiveNotificationEnabled, lastSyncedServerEnabled)
123125
124126 if (shouldSync) {
125- syncNotificationSettings(isPermissionGranted )
127+ syncNotificationSettings(effectiveNotificationEnabled )
126128 }
127129 }
128130 }
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import androidx.compose.runtime.mutableStateOf
66import androidx.compose.runtime.rememberCoroutineScope
77import androidx.compose.runtime.setValue
88import com.ninecraft.booket.core.common.utils.handleException
9+ import com.ninecraft.booket.core.common.utils.shouldSyncNotification
910import com.ninecraft.booket.core.data.api.repository.UserRepository
1011import com.ninecraft.booket.feature.screens.LoginScreen
1112import com.ninecraft.booket.feature.screens.NotificationScreen
@@ -92,14 +93,15 @@ class NotificationPresenter @AssistedInject constructor(
9293 is NotificationUiEvent .OnNotificationPermissionResult -> {
9394 scope.launch {
9495 val isPermissionGranted = event.granted
95- val userEnabled = userRepository.getUserNotificationEnabled()
96+ val userSettingEnabled = userRepository.getUserNotificationEnabled()
9697 val lastSyncedServerEnabled = userRepository.getLastSyncedNotificationEnabled()
9798
98- val shouldSync = (! isPermissionGranted && lastSyncedServerEnabled != false ) ||
99- (userEnabled && (lastSyncedServerEnabled == null || lastSyncedServerEnabled != isPermissionGranted))
99+ val effectiveNotificationEnabled = userSettingEnabled && isPermissionGranted
100+
101+ val shouldSync = shouldSyncNotification(effectiveNotificationEnabled, lastSyncedServerEnabled)
100102
101103 if (shouldSync) {
102- syncNotificationSettings(isPermissionGranted )
104+ syncNotificationSettings(effectiveNotificationEnabled )
103105 }
104106 }
105107 }
You can’t perform that action at this time.
0 commit comments