Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit f901b4a3 authored by Rafael Tonholo's avatar Rafael Tonholo
Browse files

refactor(outbox): use OutboxFolderManager to retrieve the outbox id in SyncNotificationController

parent d0c97aa4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -53,7 +53,12 @@ val coreNotificationModule = module {
        )
    }
    single {
        SyncNotificationController(notificationHelper = get(), actionBuilder = get(), resourceProvider = get())
        SyncNotificationController(
            notificationHelper = get(),
            actionBuilder = get(),
            resourceProvider = get(),
            outboxFolderManager = get(),
        )
    }
    single {
        SendFailedNotificationController(
+6 −1
Original line number Diff line number Diff line
@@ -5,11 +5,13 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.fsck.k9.mailstore.LocalFolder
import net.thunderbird.core.android.account.LegacyAccountDto
import net.thunderbird.feature.mail.folder.api.OutboxFolderManager

internal class SyncNotificationController(
    private val notificationHelper: NotificationHelper,
    private val actionBuilder: NotificationActionCreator,
    private val resourceProvider: NotificationResourceProvider,
    private val outboxFolderManager: OutboxFolderManager,
) {
    fun showSendingNotification(account: LegacyAccountDto) {
        val accountName = account.displayName
@@ -17,7 +19,10 @@ internal class SyncNotificationController(
        val tickerText = resourceProvider.sendingMailBody(accountName)

        val notificationId = NotificationIds.getFetchingMailNotificationId(account)
        val outboxFolderId = account.outboxFolderId ?: error("Outbox folder not configured")
        val outboxFolderId = outboxFolderManager
            .getOutboxFolderIdSync(account.id)
            .takeIf { it != -1L }
            ?: error("Outbox folder not configured")
        val showMessageListPendingIntent = actionBuilder.createViewFolderPendingIntent(account, outboxFolderId)

        val notificationBuilder = notificationHelper
+4 −1
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@ import com.fsck.k9.notification.NotificationIds.getFetchingMailNotificationId
import net.thunderbird.core.android.account.LegacyAccountDto
import net.thunderbird.core.android.testing.MockHelper.mockBuilder
import net.thunderbird.core.android.testing.RobolectricTest
import net.thunderbird.feature.account.AccountIdFactory
import net.thunderbird.legacy.core.mailstore.folder.FakeOutboxFolderManager
import org.junit.Test
import org.mockito.ArgumentMatchers.anyLong
import org.mockito.Mockito.verify
@@ -37,6 +39,7 @@ class SyncNotificationControllerTest : RobolectricTest() {
        notificationHelper = createFakeNotificationHelper(notificationManager, builder, lockScreenNotificationBuilder),
        actionBuilder = createActionBuilder(contentIntent),
        resourceProvider = resourceProvider,
        outboxFolderManager = FakeOutboxFolderManager(outboxFolderId = 33L),
    )

    @Test
@@ -130,10 +133,10 @@ class SyncNotificationControllerTest : RobolectricTest() {

    private fun createFakeAccount(): LegacyAccountDto {
        return mock {
            on { id } doReturn AccountIdFactory.create()
            on { accountNumber } doReturn ACCOUNT_NUMBER
            on { name } doReturn ACCOUNT_NAME
            on { displayName } doReturn ACCOUNT_NAME
            on { outboxFolderId } doReturn 33L
        }
    }