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

Unverified Commit 957d85e8 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Remove `SearchAccount` dependency on `CoreResourceProvider

parent 99f03db1
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ import android.content.Context
import android.content.Intent
import android.widget.RemoteViews
import androidx.core.app.PendingIntentCompat
import com.fsck.k9.CoreResourceProvider
import com.fsck.k9.activity.MessageCompose
import com.fsck.k9.activity.MessageList
import com.fsck.k9.activity.MessageList.Companion.intentDisplaySearch
@@ -16,6 +17,7 @@ import org.koin.core.component.inject

abstract class BaseMessageListWidgetProvider : AppWidgetProvider(), KoinComponent {
    private val messageListWidgetManager: MessageListWidgetManager by inject()
    private val coreResourceProvider: CoreResourceProvider by inject()

    override fun onEnabled(context: Context) {
        messageListWidgetManager.onWidgetAdded()
@@ -61,7 +63,10 @@ abstract class BaseMessageListWidgetProvider : AppWidgetProvider(), KoinComponen
    }

    private fun viewUnifiedInboxPendingIntent(context: Context): PendingIntent {
        val unifiedInboxAccount = createUnifiedInboxAccount()
        val unifiedInboxAccount = createUnifiedInboxAccount(
            unifiedInboxTitle = coreResourceProvider.searchUnifiedInboxTitle(),
            unifiedInboxDetail = coreResourceProvider.searchUnifiedInboxDetail(),
        )
        val intent = intentDisplaySearch(
            context = context,
            search = unifiedInboxAccount.relatedSearch,
+6 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import android.widget.RemoteViewsService.RemoteViewsFactory
import androidx.core.content.ContextCompat
import app.k9mail.legacy.account.Account.SortType
import app.k9mail.legacy.search.LocalSearch
import com.fsck.k9.CoreResourceProvider
import com.fsck.k9.K9
import com.fsck.k9.activity.MessageList
import com.fsck.k9.search.SearchAccount
@@ -19,6 +20,7 @@ import org.koin.core.component.inject
@Suppress("TooManyFunctions")
internal class MessageListRemoteViewFactory(private val context: Context) : RemoteViewsFactory, KoinComponent {
    private val messageListLoader: MessageListLoader by inject()
    private val coreResourceProvider: CoreResourceProvider by inject()

    private lateinit var unifiedInboxSearch: LocalSearch

@@ -28,7 +30,10 @@ internal class MessageListRemoteViewFactory(private val context: Context) : Remo
    private var unreadTextColor = 0

    override fun onCreate() {
        unifiedInboxSearch = SearchAccount.createUnifiedInboxAccount().relatedSearch
        unifiedInboxSearch = SearchAccount.createUnifiedInboxAccount(
            unifiedInboxTitle = coreResourceProvider.searchUnifiedInboxTitle(),
            unifiedInboxDetail = coreResourceProvider.searchUnifiedInboxDetail(),
        ).relatedSearch

        senderAboveSubject = K9.isMessageListSenderAboveSubject
        readTextColor = ContextCompat.getColor(context, R.color.message_list_widget_text_read)
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ val unreadWidgetModule = module {
            defaultFolderProvider = get(),
            folderRepository = get(),
            folderNameFormatter = get(),
            coreResourceProvider = get(),
        )
    }
    single {
+6 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import android.content.Intent
import app.k9mail.legacy.account.Account
import app.k9mail.legacy.search.LocalSearch
import app.k9mail.legacy.ui.folder.FolderNameFormatter
import com.fsck.k9.CoreResourceProvider
import com.fsck.k9.Preferences
import com.fsck.k9.activity.MessageList
import com.fsck.k9.controller.MessageCountsProvider
@@ -20,6 +21,7 @@ class UnreadWidgetDataProvider(
    private val defaultFolderProvider: DefaultFolderProvider,
    private val folderRepository: FolderRepository,
    private val folderNameFormatter: FolderNameFormatter,
    private val coreResourceProvider: CoreResourceProvider,
) {
    fun loadUnreadWidgetData(configuration: UnreadWidgetConfiguration): UnreadWidgetData? = with(configuration) {
        if (SearchAccount.UNIFIED_INBOX == accountUuid) {
@@ -41,7 +43,10 @@ class UnreadWidgetDataProvider(
    }

    private fun getSearchAccount(accountUuid: String): SearchAccount = when (accountUuid) {
        SearchAccount.UNIFIED_INBOX -> SearchAccount.createUnifiedInboxAccount()
        SearchAccount.UNIFIED_INBOX -> SearchAccount.createUnifiedInboxAccount(
            unifiedInboxTitle = coreResourceProvider.searchUnifiedInboxTitle(),
            unifiedInboxDetail = coreResourceProvider.searchUnifiedInboxDetail(),
        )
        else -> throw AssertionError("SearchAccount expected")
    }

+9 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() {
    private val defaultFolderStrategy = createDefaultFolderStrategy()
    private val folderRepository = createFolderRepository()
    private val folderNameFormatter = createFolderNameFormatter()
    private val coreResourceProvider = createCoreResourceProvider()
    private val provider = UnreadWidgetDataProvider(
        context,
        preferences,
@@ -42,6 +43,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() {
        defaultFolderStrategy,
        folderRepository,
        folderNameFormatter,
        coreResourceProvider,
    )

    @Before
@@ -153,6 +155,11 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() {
        on { displayName(FOLDER) } doReturn LOCALIZED_FOLDER_NAME
    }

    private fun createCoreResourceProvider(): CoreResourceProvider = mock {
        on { searchUnifiedInboxTitle() } doReturn UNIFIED_INBOX_NAME
        on { searchUnifiedInboxDetail() } doReturn UNIFIED_INBOX_DETAIL
    }

    companion object {
        const val ACCOUNT_UUID = "00000000-0000-0000-0000-000000000000"
        const val ACCOUNT_NAME = "Test account"
@@ -161,6 +168,8 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() {
        const val ACCOUNT_UNREAD_COUNT = 2
        const val FOLDER_UNREAD_COUNT = 3
        const val LOCALIZED_FOLDER_NAME = "Posteingang"
        const val UNIFIED_INBOX_NAME = "Unified Inbox"
        const val UNIFIED_INBOX_DETAIL = "All Messages"
        val FOLDER = Folder(
            id = FOLDER_ID,
            name = "INBOX",
Loading