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

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

Change `MessageListRepository` to interface and default implementation and...

Change `MessageListRepository` to interface and default implementation and move interface to `:legacy:mailstore` module
parent 19ee10e0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,10 +2,10 @@ package app.k9mail.feature.widget.message.list

import app.k9mail.legacy.account.Account
import app.k9mail.legacy.account.Account.SortType
import app.k9mail.legacy.mailstore.MessageListRepository
import com.fsck.k9.Preferences
import com.fsck.k9.helper.MessageHelper
import com.fsck.k9.mailstore.MessageColumns
import com.fsck.k9.mailstore.MessageListRepository
import com.fsck.k9.search.SqlQueryBuilder
import com.fsck.k9.search.getAccounts
import timber.log.Timber
+2 −2
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@ import android.appwidget.AppWidgetManager
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import app.k9mail.legacy.mailstore.MessageListChangedListener
import app.k9mail.legacy.mailstore.MessageListRepository
import com.fsck.k9.core.BuildConfig
import com.fsck.k9.mailstore.MessageListChangedListener
import com.fsck.k9.mailstore.MessageListRepository
import timber.log.Timber

class MessageListWidgetManager(
+11 −13
Original line number Diff line number Diff line
package com.fsck.k9.mailstore

import app.k9mail.legacy.mailstore.MessageListChangedListener
import app.k9mail.legacy.mailstore.MessageListRepository
import app.k9mail.legacy.mailstore.MessageMapper
import app.k9mail.legacy.mailstore.MessageStoreManager
import java.util.concurrent.CopyOnWriteArraySet

class MessageListRepository(
class DefaultMessageListRepository(
    private val messageStoreManager: MessageStoreManager,
) {
) : MessageListRepository {
    private val globalListeners = CopyOnWriteArraySet<MessageListChangedListener>()
    private val accountListeners = CopyOnWriteArraySet<Pair<String, MessageListChangedListener>>()

    fun addListener(listener: MessageListChangedListener) {
    override fun addListener(listener: MessageListChangedListener) {
        globalListeners.add(listener)
    }

    fun addListener(accountUuid: String, listener: MessageListChangedListener) {
    override fun addListener(accountUuid: String, listener: MessageListChangedListener) {
        accountListeners.add(accountUuid to listener)
    }

    fun removeListener(listener: MessageListChangedListener) {
    override fun removeListener(listener: MessageListChangedListener) {
        globalListeners.remove(listener)

        val accountEntries = accountListeners.filter { it.second == listener }.toSet()
@@ -27,7 +29,7 @@ class MessageListRepository(
        }
    }

    fun notifyMessageListChanged(accountUuid: String) {
    override fun notifyMessageListChanged(accountUuid: String) {
        for (listener in globalListeners) {
            listener.onMessageListChanged()
        }
@@ -42,7 +44,7 @@ class MessageListRepository(
    /**
     * Retrieve list of messages from [MessageStore] but override values with data from [MessageListCache].
     */
    fun <T> getMessages(
    override fun <T> getMessages(
        accountUuid: String,
        selection: String,
        selectionArgs: Array<String>,
@@ -59,7 +61,7 @@ class MessageListRepository(
    /**
     * Retrieve threaded list of messages from [MessageStore] but override values with data from [MessageListCache].
     */
    fun <T> getThreadedMessages(
    override fun <T> getThreadedMessages(
        accountUuid: String,
        selection: String,
        selectionArgs: Array<String>,
@@ -76,7 +78,7 @@ class MessageListRepository(
    /**
     * Retrieve list of messages in a thread from [MessageStore] but override values with data from [MessageListCache].
     */
    fun <T> getThread(
    override fun <T> getThread(
        accountUuid: String,
        threadId: Long,
        sortOrder: String,
@@ -89,7 +91,3 @@ class MessageListRepository(
        return messageStore.getThread(threadId, sortOrder, mapper)
    }
}

fun interface MessageListChangedListener {
    fun onMessageListChanged()
}
+2 −1
Original line number Diff line number Diff line
package com.fsck.k9.mailstore

import app.k9mail.legacy.mailstore.FolderRepository
import app.k9mail.legacy.mailstore.MessageListRepository
import app.k9mail.legacy.mailstore.MessageStoreManager
import com.fsck.k9.message.extractors.AttachmentCounter
import com.fsck.k9.message.extractors.MessageFulltextCreator
@@ -35,5 +36,5 @@ val mailStoreModule = module {
            attachmentCounter = get(),
        )
    }
    single { MessageListRepository(messageStoreManager = get()) }
    single<MessageListRepository> { DefaultMessageListRepository(messageStoreManager = get()) }
}
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.text.TextUtils;
import androidx.core.database.CursorKt;
import app.k9mail.legacy.account.Account;
import app.k9mail.legacy.di.DI;
import app.k9mail.legacy.mailstore.MessageListRepository;
import app.k9mail.legacy.mailstore.MoreMessages;
import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessagingControllerCommands.PendingCommand;
Loading