Skip to content

Commit da30b80

Browse files
committed
#1929 try again to fix dismiss all notifications stops working after a while
1 parent 3f3f170 commit da30b80

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

base/src/main/java/io/github/sds100/keymapper/base/actions/GetActionErrorUseCase.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import io.github.sds100.keymapper.sysbridge.manager.SystemBridgeConnectionManage
99
import io.github.sds100.keymapper.system.apps.PackageManagerAdapter
1010
import io.github.sds100.keymapper.system.camera.CameraAdapter
1111
import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter
12+
import io.github.sds100.keymapper.system.notifications.NotificationReceiverAdapter
1213
import io.github.sds100.keymapper.system.permissions.PermissionAdapter
1314
import io.github.sds100.keymapper.system.permissions.SystemFeatureAdapter
1415
import io.github.sds100.keymapper.system.ringtones.RingtoneAdapter
@@ -34,6 +35,7 @@ class GetActionErrorUseCaseImpl @Inject constructor(
3435
private val buildConfigProvider: BuildConfigProvider,
3536
private val systemBridgeConnectionManager: SystemBridgeConnectionManager,
3637
private val preferenceRepository: PreferenceRepository,
38+
private val notificationReceiverAdapter: NotificationReceiverAdapter,
3739
) : GetActionErrorUseCase {
3840

3941
private val invalidateActionErrors = merge(
@@ -43,6 +45,7 @@ class GetActionErrorUseCaseImpl @Inject constructor(
4345
permissionAdapter.onPermissionsUpdate,
4446
soundsManager.soundFiles.drop(1).map { },
4547
packageManagerAdapter.onPackagesChanged,
48+
notificationReceiverAdapter.isEnabled,
4649
merge(
4750
systemBridgeConnectionManager.connectionState.drop(1).map { },
4851
preferenceRepository.get(Keys.keyEventActionsUseSystemBridge),

system/src/main/java/io/github/sds100/keymapper/system/notifications/NotificationReceiverAdapterImpl.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ class NotificationReceiverAdapterImpl @Inject constructor(
6363
}
6464

6565
override suspend fun send(event: NotificationServiceEvent): KMResult<*> {
66-
if (!isEnabled.value) {
66+
// Check eagerly that the service is actually enabled. For some reason, the local
67+
// stateflow was false when the action was executed. See #1929.
68+
if (!getIsEnabled()) {
6769
return SystemError.PermissionDenied(Permission.NOTIFICATION_LISTENER)
6870
}
6971

0 commit comments

Comments
 (0)