Rename interface NotificationDrawerManager to NotificationCleaner since it actually contains only method to remove notifications.
This commit is contained in:
@@ -34,7 +34,7 @@ import io.element.android.libraries.architecture.runUpdatingState
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRoom
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.Optional
|
||||
@@ -44,7 +44,7 @@ import kotlin.jvm.optionals.getOrNull
|
||||
class AcceptDeclineInvitePresenter @Inject constructor(
|
||||
private val client: MatrixClient,
|
||||
private val joinRoom: JoinRoom,
|
||||
private val notificationDrawerManager: NotificationDrawerManager,
|
||||
private val notificationCleaner: NotificationCleaner,
|
||||
) : Presenter<AcceptDeclineInviteState> {
|
||||
@Composable
|
||||
override fun present(): AcceptDeclineInviteState {
|
||||
@@ -112,7 +112,7 @@ class AcceptDeclineInvitePresenter @Inject constructor(
|
||||
trigger = JoinedRoom.Trigger.Invite,
|
||||
)
|
||||
.onSuccess {
|
||||
notificationDrawerManager.clearMembershipNotificationForRoom(client.sessionId, roomId)
|
||||
notificationCleaner.clearMembershipNotificationForRoom(client.sessionId, roomId)
|
||||
}
|
||||
.map { roomId }
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class AcceptDeclineInvitePresenter @Inject constructor(
|
||||
suspend {
|
||||
client.getRoom(roomId)?.use {
|
||||
it.leave().getOrThrow()
|
||||
notificationDrawerManager.clearMembershipNotificationForRoom(client.sessionId, roomId)
|
||||
notificationCleaner.clearMembershipNotificationForRoom(client.sessionId, roomId)
|
||||
}
|
||||
roomId
|
||||
}.runCatchingUpdatingState(declinedAction)
|
||||
|
||||
@@ -30,8 +30,8 @@ import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
||||
import io.element.android.libraries.matrix.test.room.join.FakeJoinRoom
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationCleaner
|
||||
import io.element.android.tests.testutils.WarmUpRule
|
||||
import io.element.android.tests.testutils.lambda.assert
|
||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||
@@ -133,7 +133,7 @@ class AcceptDeclineInvitePresenterTest {
|
||||
val clearMembershipNotificationForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ ->
|
||||
Result.success(Unit)
|
||||
}
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMembershipNotificationForRoomLambda = clearMembershipNotificationForRoomLambda
|
||||
)
|
||||
val declineInviteSuccess = lambdaRecorder { ->
|
||||
@@ -149,7 +149,7 @@ class AcceptDeclineInvitePresenterTest {
|
||||
}
|
||||
val presenter = createAcceptDeclineInvitePresenter(
|
||||
client = client,
|
||||
notificationDrawerManager = notificationDrawerManager,
|
||||
notificationCleaner = fakeNotificationCleaner,
|
||||
)
|
||||
presenter.test {
|
||||
val inviteData = anInviteData()
|
||||
@@ -219,7 +219,7 @@ class AcceptDeclineInvitePresenterTest {
|
||||
val clearMembershipNotificationForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ ->
|
||||
Result.success(Unit)
|
||||
}
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMembershipNotificationForRoomLambda = clearMembershipNotificationForRoomLambda
|
||||
)
|
||||
val joinRoomSuccess = lambdaRecorder { _: RoomId, _: List<String>, _: JoinedRoom.Trigger ->
|
||||
@@ -227,7 +227,7 @@ class AcceptDeclineInvitePresenterTest {
|
||||
}
|
||||
val presenter = createAcceptDeclineInvitePresenter(
|
||||
joinRoomLambda = joinRoomSuccess,
|
||||
notificationDrawerManager = notificationDrawerManager,
|
||||
notificationCleaner = fakeNotificationCleaner,
|
||||
)
|
||||
presenter.test {
|
||||
val inviteData = anInviteData()
|
||||
@@ -274,12 +274,12 @@ class AcceptDeclineInvitePresenterTest {
|
||||
joinRoomLambda: (RoomId, List<String>, JoinedRoom.Trigger) -> Result<Unit> = { _, _, _ ->
|
||||
Result.success(Unit)
|
||||
},
|
||||
notificationDrawerManager: NotificationDrawerManager = FakeNotificationDrawerManager(),
|
||||
notificationCleaner: NotificationCleaner = FakeNotificationCleaner(),
|
||||
): AcceptDeclineInvitePresenter {
|
||||
return AcceptDeclineInvitePresenter(
|
||||
client = client,
|
||||
joinRoom = FakeJoinRoom(joinRoomLambda),
|
||||
notificationDrawerManager = notificationDrawerManager,
|
||||
notificationCleaner = notificationCleaner,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
|
||||
interface NotificationDrawerManager {
|
||||
interface NotificationCleaner {
|
||||
fun clearAllMessagesEvents(sessionId: SessionId)
|
||||
fun clearMessagesForRoom(sessionId: SessionId, roomId: RoomId)
|
||||
fun clearEvent(sessionId: SessionId, eventId: EventId)
|
||||
@@ -20,7 +20,7 @@ import com.squareup.anvil.annotations.ContributesTo
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.libraries.push.impl.notifications.DefaultNotificationDrawerManager
|
||||
|
||||
@Module
|
||||
@@ -29,5 +29,5 @@ abstract class PushBindsModule {
|
||||
@Binds
|
||||
abstract fun bindNotificationDrawerManager(
|
||||
defaultNotificationDrawerManager: DefaultNotificationDrawerManager
|
||||
): NotificationDrawerManager
|
||||
): NotificationCleaner
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
|
||||
import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent
|
||||
import io.element.android.libraries.push.impl.notifications.model.shouldIgnoreEventInRoom
|
||||
@@ -59,7 +59,7 @@ class DefaultNotificationDrawerManager @Inject constructor(
|
||||
private val matrixClientProvider: MatrixClientProvider,
|
||||
private val imageLoaderHolder: ImageLoaderHolder,
|
||||
private val activeNotificationsProvider: ActiveNotificationsProvider,
|
||||
) : NotificationDrawerManager {
|
||||
) : NotificationCleaner {
|
||||
private var appNavigationStateObserver: Job? = null
|
||||
|
||||
// TODO EAx add a setting per user for this
|
||||
|
||||
@@ -28,7 +28,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoom
|
||||
import io.element.android.libraries.matrix.api.room.isDm
|
||||
import io.element.android.libraries.matrix.api.timeline.ReceiptType
|
||||
import io.element.android.libraries.preferences.api.store.SessionPreferencesStoreFactory
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.libraries.push.impl.R
|
||||
import io.element.android.libraries.push.impl.notifications.model.NotifiableMessageEvent
|
||||
import io.element.android.libraries.push.impl.push.OnNotifiableEventReceived
|
||||
@@ -47,7 +47,7 @@ class NotificationBroadcastReceiverHandler @Inject constructor(
|
||||
private val appCoroutineScope: CoroutineScope,
|
||||
private val matrixClientProvider: MatrixClientProvider,
|
||||
private val sessionPreferencesStore: SessionPreferencesStoreFactory,
|
||||
private val notificationDrawerManager: NotificationDrawerManager,
|
||||
private val notificationCleaner: NotificationCleaner,
|
||||
private val actionIds: NotificationActionIds,
|
||||
private val systemClock: SystemClock,
|
||||
private val onNotifiableEventReceived: OnNotifiableEventReceived,
|
||||
@@ -66,26 +66,26 @@ class NotificationBroadcastReceiverHandler @Inject constructor(
|
||||
handleSmartReply(sessionId, roomId, threadId, intent)
|
||||
}
|
||||
actionIds.dismissRoom -> if (roomId != null) {
|
||||
notificationDrawerManager.clearMessagesForRoom(sessionId, roomId)
|
||||
notificationCleaner.clearMessagesForRoom(sessionId, roomId)
|
||||
}
|
||||
actionIds.dismissSummary ->
|
||||
notificationDrawerManager.clearAllMessagesEvents(sessionId)
|
||||
notificationCleaner.clearAllMessagesEvents(sessionId)
|
||||
actionIds.dismissInvite -> if (roomId != null) {
|
||||
notificationDrawerManager.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
notificationCleaner.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
}
|
||||
actionIds.dismissEvent -> if (eventId != null) {
|
||||
notificationDrawerManager.clearEvent(sessionId, eventId)
|
||||
notificationCleaner.clearEvent(sessionId, eventId)
|
||||
}
|
||||
actionIds.markRoomRead -> if (roomId != null) {
|
||||
notificationDrawerManager.clearMessagesForRoom(sessionId, roomId)
|
||||
notificationCleaner.clearMessagesForRoom(sessionId, roomId)
|
||||
handleMarkAsRead(sessionId, roomId)
|
||||
}
|
||||
actionIds.join -> if (roomId != null) {
|
||||
notificationDrawerManager.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
notificationCleaner.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
handleJoinRoom(sessionId, roomId)
|
||||
}
|
||||
actionIds.reject -> if (roomId != null) {
|
||||
notificationDrawerManager.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
notificationCleaner.clearMembershipNotificationForRoom(sessionId, roomId)
|
||||
handleRejectRoom(sessionId, roomId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,11 +40,11 @@ import io.element.android.libraries.preferences.api.store.SessionPreferencesStor
|
||||
import io.element.android.libraries.preferences.api.store.SessionPreferencesStoreFactory
|
||||
import io.element.android.libraries.preferences.test.FakeSessionPreferencesStoreFactory
|
||||
import io.element.android.libraries.preferences.test.InMemorySessionPreferencesStore
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent
|
||||
import io.element.android.libraries.push.impl.push.FakeOnNotifiableEventReceived
|
||||
import io.element.android.libraries.push.impl.push.OnNotifiableEventReceived
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationDrawerManager
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationCleaner
|
||||
import io.element.android.services.toolbox.api.strings.StringProvider
|
||||
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
||||
import io.element.android.services.toolbox.test.strings.FakeStringProvider
|
||||
@@ -90,11 +90,11 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
@Test
|
||||
fun `Test dismiss room`() = runTest {
|
||||
val clearMessagesForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMessagesForRoomLambda = clearMessagesForRoomLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -111,11 +111,11 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
@Test
|
||||
fun `Test dismiss summary`() = runTest {
|
||||
val clearAllMessagesEventsLambda = lambdaRecorder<SessionId, Unit> { _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearAllMessagesEventsLambda = clearAllMessagesEventsLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -140,11 +140,11 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
@Test
|
||||
fun `Test dismiss Invite`() = runTest {
|
||||
val clearMembershipNotificationForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMembershipNotificationForRoomLambda = clearMembershipNotificationForRoomLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -170,11 +170,11 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
@Test
|
||||
fun `Test dismiss Event`() = runTest {
|
||||
val clearEventLambda = lambdaRecorder<SessionId, EventId, Unit> { _, _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearEventLambda = clearEventLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -227,13 +227,13 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
)
|
||||
val clearMessagesForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ -> }
|
||||
val matrixRoom = FakeMatrixRoom()
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMessagesForRoomLambda = clearMessagesForRoomLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
sessionPreferencesStore = sessionPreferencesStore,
|
||||
matrixRoom = matrixRoom,
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -262,12 +262,12 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
fun `Test join room`() = runTest {
|
||||
val joinRoom = lambdaRecorder<RoomId, Result<Unit>> { _ -> Result.success(Unit) }
|
||||
val clearMembershipNotificationForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMembershipNotificationForRoomLambda = clearMembershipNotificationForRoomLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
joinRoom = joinRoom,
|
||||
notificationDrawerManager = notificationDrawerManager,
|
||||
notificationCleaner = fakeNotificationCleaner,
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -301,12 +301,12 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
leaveRoomLambda = leaveRoom
|
||||
}
|
||||
val clearMembershipNotificationForRoomLambda = lambdaRecorder<SessionId, RoomId, Unit> { _, _ -> }
|
||||
val notificationDrawerManager = FakeNotificationDrawerManager(
|
||||
val fakeNotificationCleaner = FakeNotificationCleaner(
|
||||
clearMembershipNotificationForRoomLambda = clearMembershipNotificationForRoomLambda,
|
||||
)
|
||||
val sut = createNotificationBroadcastReceiverHandler(
|
||||
matrixRoom = matrixRoom,
|
||||
notificationDrawerManager = notificationDrawerManager
|
||||
notificationCleaner = fakeNotificationCleaner
|
||||
)
|
||||
sut.onReceive(
|
||||
createIntent(
|
||||
@@ -447,7 +447,7 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
joinRoomLambda = joinRoom
|
||||
},
|
||||
sessionPreferencesStore: SessionPreferencesStoreFactory = FakeSessionPreferencesStoreFactory(),
|
||||
notificationDrawerManager: NotificationDrawerManager = FakeNotificationDrawerManager(),
|
||||
notificationCleaner: NotificationCleaner = FakeNotificationCleaner(),
|
||||
systemClock: SystemClock = FakeSystemClock(),
|
||||
onNotifiableEventReceived: OnNotifiableEventReceived = FakeOnNotifiableEventReceived(),
|
||||
stringProvider: StringProvider = FakeStringProvider(),
|
||||
@@ -463,7 +463,7 @@ class NotificationBroadcastReceiverHandlerTest {
|
||||
}
|
||||
},
|
||||
sessionPreferencesStore = sessionPreferencesStore,
|
||||
notificationDrawerManager = notificationDrawerManager,
|
||||
notificationCleaner = notificationCleaner,
|
||||
actionIds = actionIds,
|
||||
systemClock = systemClock,
|
||||
onNotifiableEventReceived = onNotifiableEventReceived,
|
||||
|
||||
@@ -19,16 +19,16 @@ package io.element.android.libraries.push.test.notifications
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.libraries.push.api.notifications.NotificationCleaner
|
||||
import io.element.android.tests.testutils.lambda.lambdaError
|
||||
|
||||
class FakeNotificationDrawerManager(
|
||||
class FakeNotificationCleaner(
|
||||
private val clearAllMessagesEventsLambda: (SessionId) -> Unit = { lambdaError() },
|
||||
private val clearMessagesForRoomLambda: (SessionId, RoomId) -> Unit = { _, _ -> lambdaError() },
|
||||
private val clearEventLambda: (SessionId, EventId) -> Unit = { _, _ -> lambdaError() },
|
||||
private val clearMembershipNotificationForSessionLambda: (SessionId) -> Unit = { lambdaError() },
|
||||
private val clearMembershipNotificationForRoomLambda: (SessionId, RoomId) -> Unit = { _, _ -> lambdaError() }
|
||||
) : NotificationDrawerManager {
|
||||
) : NotificationCleaner {
|
||||
override fun clearAllMessagesEvents(sessionId: SessionId) {
|
||||
clearAllMessagesEventsLambda(sessionId)
|
||||
}
|
||||
@@ -56,7 +56,7 @@ import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.impl.room.join.DefaultJoinRoom
|
||||
import io.element.android.libraries.preferences.impl.store.DefaultSessionPreferencesStore
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationDrawerManager
|
||||
import io.element.android.libraries.push.test.notifications.FakeNotificationCleaner
|
||||
import io.element.android.services.analytics.noop.NoopAnalyticsService
|
||||
import io.element.android.services.toolbox.impl.strings.AndroidStringProvider
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -144,7 +144,7 @@ class RoomListScreen(
|
||||
acceptDeclineInvitePresenter = AcceptDeclineInvitePresenter(
|
||||
client = matrixClient,
|
||||
joinRoom = DefaultJoinRoom(matrixClient, NoopAnalyticsService()),
|
||||
notificationDrawerManager = FakeNotificationDrawerManager(),
|
||||
notificationCleaner = FakeNotificationCleaner(),
|
||||
),
|
||||
analyticsService = NoopAnalyticsService(),
|
||||
fullScreenIntentPermissionsPresenter = object : FullScreenIntentPermissionsPresenter {
|
||||
|
||||
Reference in New Issue
Block a user