Loading feature/widget/message-list/src/main/kotlin/app/k9mail/feature/widget/message/list/BaseMessageListWidgetProvider.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading Loading @@ -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, Loading feature/widget/message-list/src/main/kotlin/app/k9mail/feature/widget/message/list/MessageListRemoteViewFactory.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ val unreadWidgetModule = module { defaultFolderProvider = get(), folderRepository = get(), folderNameFormatter = get(), coreResourceProvider = get(), ) } single { Loading feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProvider.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading @@ -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") } Loading feature/widget/unread/src/test/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProviderTest.kt +9 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -42,6 +43,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() { defaultFolderStrategy, folderRepository, folderNameFormatter, coreResourceProvider, ) @Before Loading Loading @@ -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" Loading @@ -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 Loading
feature/widget/message-list/src/main/kotlin/app/k9mail/feature/widget/message/list/BaseMessageListWidgetProvider.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading Loading @@ -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, Loading
feature/widget/message-list/src/main/kotlin/app/k9mail/feature/widget/message/list/MessageListRemoteViewFactory.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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) Loading
feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ val unreadWidgetModule = module { defaultFolderProvider = get(), folderRepository = get(), folderNameFormatter = get(), coreResourceProvider = get(), ) } single { Loading
feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProvider.kt +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading @@ -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") } Loading
feature/widget/unread/src/test/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProviderTest.kt +9 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -42,6 +43,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() { defaultFolderStrategy, folderRepository, folderNameFormatter, coreResourceProvider, ) @Before Loading Loading @@ -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" Loading @@ -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