0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-19 19:52:14 +02:00

Add MessagingControllerMailChecker to hide MessagingController´ from K9Drawer

This commit is contained in:
Wolf-Martell Montwé 2024-08-06 18:25:40 +02:00
parent 49a273e5b8
commit b1825c26b8
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
4 changed files with 25 additions and 8 deletions

View File

@ -31,6 +31,7 @@ import app.k9mail.legacy.account.Account;
import app.k9mail.legacy.account.Account.DeletePolicy;
import app.k9mail.legacy.di.DI;
import app.k9mail.legacy.message.controller.MessageReference;
import app.k9mail.legacy.message.controller.MessagingControllerMailChecker;
import app.k9mail.legacy.message.controller.MessagingControllerRegistry;
import app.k9mail.legacy.message.controller.MessagingListener;
import app.k9mail.legacy.message.controller.SimpleMessagingListener;
@ -106,7 +107,7 @@ import static com.fsck.k9.mail.Flag.X_REMOTE_COPY_STARTED;
* it removes itself. Thus, any commands that that activity submitted are
* removed from the queue once the activity is no longer active.
*/
public class MessagingController implements MessagingControllerRegistry {
public class MessagingController implements MessagingControllerRegistry, MessagingControllerMailChecker {
public static final Set<Flag> SYNC_FLAGS = EnumSet.of(Flag.SEEN, Flag.FLAGGED, Flag.ANSWERED, Flag.FORWARDED);
private static final long FOLDER_LIST_STALENESS_THRESHOLD = 30 * 60 * 1000L;

View File

@ -0,0 +1,13 @@
package app.k9mail.legacy.message.controller
import app.k9mail.legacy.account.Account
interface MessagingControllerMailChecker {
fun checkMail(
account: Account?,
ignoreLastCheckedTime: Boolean,
useManualWakeLock: Boolean,
notify: Boolean,
listener: MessagingListener?,
)
}

View File

@ -15,6 +15,7 @@ import app.k9mail.core.ui.legacy.designsystem.atom.icon.Icons
import app.k9mail.legacy.account.Account
import app.k9mail.legacy.folder.DisplayFolder
import app.k9mail.legacy.folder.Folder
import app.k9mail.legacy.message.controller.MessagingControllerMailChecker
import app.k9mail.legacy.message.controller.SimpleMessagingListener
import app.k9mail.legacy.ui.account.AccountsViewModel
import app.k9mail.legacy.ui.account.DisplayAccount
@ -27,7 +28,6 @@ import app.k9mail.legacy.ui.theme.Theme
import app.k9mail.legacy.ui.theme.ThemeManager
import com.fsck.k9.K9
import com.fsck.k9.activity.MessageList
import com.fsck.k9.controller.MessagingController
import com.fsck.k9.ui.account.AccountImageLoader
import com.fsck.k9.ui.base.livedata.observeNotNull
import com.fsck.k9.ui.settings.SettingsActivity
@ -69,7 +69,7 @@ class K9Drawer(private val parent: MessageList, savedInstanceState: Bundle?) : K
private val folderNameFormatter: FolderNameFormatter by inject()
private val themeManager: ThemeManager by inject()
private val resources: Resources by inject()
private val messagingController: MessagingController by inject()
private val messagingController: MessagingControllerMailChecker by inject()
private val accountImageLoader: AccountImageLoader by inject()
private val folderIconProvider: FolderIconProvider by inject()
@ -310,11 +310,11 @@ class K9Drawer(private val parent: MessageList, savedInstanceState: Bundle?) : K
swipeRefreshLayout.setOnRefreshListener {
val accountToRefresh = if (headerView.selectionListShown) null else account
messagingController.checkMail(
accountToRefresh,
true,
true,
true,
object : SimpleMessagingListener() {
account = accountToRefresh,
ignoreLastCheckedTime = true,
useManualWakeLock = true,
notify = true,
listener = object : SimpleMessagingListener() {
override fun checkMailFinished(context: Context?, account: Account?) {
swipeRefreshLayout.post {
swipeRefreshLayout.isRefreshing = false

View File

@ -1,7 +1,9 @@
package com.fsck.k9.ui
import android.content.Context
import app.k9mail.legacy.message.controller.MessagingControllerMailChecker
import app.k9mail.legacy.ui.theme.ThemeProvider
import com.fsck.k9.controller.MessagingController
import com.fsck.k9.ui.helper.DisplayHtmlUiFactory
import com.fsck.k9.ui.helper.HtmlSettingsProvider
import com.fsck.k9.ui.helper.SizeFormatter
@ -14,6 +16,7 @@ val uiModule = module {
single<ThemeProvider> { K9ThemeProvider() }
single { HtmlSettingsProvider(get()) }
single { DisplayHtmlUiFactory(get()) }
single<MessagingControllerMailChecker> { get<MessagingController>() }
factory(named("MessageView")) { get<DisplayHtmlUiFactory>().createForMessageView() }
factory { (context: Context) -> SizeFormatter(context.resources) }
factory { ShareIntentBuilder(resourceProvider = get(), textPartFinder = get(), quoteDateFormatter = get()) }