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

Commit 2e3ec4ae authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Run mail sync after networkQuitePeriod

parent 8caad608
Loading
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -127,8 +127,8 @@ object K9 : EarlyInit {
    var backgroundOps = BACKGROUND_OPS.ALWAYS

    var isNetworkQuietTimeEnabled = true
    var networkQuietTimeStarts: String? = null
    var networkQuietTimeEnds: String? = null
    var networkQuietTimeStarts: String? = "7:00"
    var networkQuietTimeEnds: String? = "22:00"

    @JvmStatic
    var isShowAnimations = true
@@ -356,7 +356,7 @@ object K9 : EarlyInit {
        quietTimeEnds = storage.getString("quietTimeEnds", "7:00")

        isNetworkQuietTimeEnabled = storage.getBoolean("networkQuietTimeEnabled", true)
        networkQuietTimeStarts = storage.getString("networkQuietTimeStarts", "21:00")
        networkQuietTimeStarts = storage.getString("networkQuietTimeStarts", "22:00")
        networkQuietTimeEnds = storage.getString("networkQuietTimeEnds", "7:00")


+15 −2
Original line number Diff line number Diff line
@@ -6,13 +6,13 @@ import java.util.Calendar;
import kotlinx.datetime.Clock;


class QuietTimeChecker {
public class QuietTimeChecker {
    private final Clock clock;
    private final int quietTimeStart;
    private final int quietTimeEnd;


    QuietTimeChecker(Clock clock, String quietTimeStart, String quietTimeEnd) {
    public QuietTimeChecker(Clock clock, String quietTimeStart, String quietTimeEnd) {
        this.clock = clock;
        this.quietTimeStart = parseTime(quietTimeStart);
        this.quietTimeEnd = parseTime(quietTimeEnd);
@@ -43,4 +43,17 @@ class QuietTimeChecker {
            return minutesSinceMidnight >= quietTimeStart && minutesSinceMidnight <= quietTimeEnd;
        }
    }

    public int minuteToNextEndTime() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(clock.now().toEpochMilliseconds());

        int nowInMin = (calendar.get(Calendar.HOUR_OF_DAY) * 60) + calendar.get(Calendar.MINUTE);

        if (quietTimeEnd >= nowInMin) {
            return quietTimeEnd - nowInMin;
        }

        return (24 * 60) - nowInMin + quietTimeEnd;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -531,7 +531,7 @@ public class MessagingController {
        );
    }

    public void synchronizeMailboxBlocking(Account account, String folderServerId, Boolean initialSync) {
    public void synchronizeMailboxBlocking(Account account, String folderServerId, boolean initialSync) {
        long folderId = getFolderId(account, folderServerId);

        if (!initialSync && K9.INSTANCE.isNetworkQuietTime() && folderId == account.getInboxFolderId()) {
+12 −1
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package com.fsck.k9.job

import androidx.work.WorkManager
import com.fsck.k9.Account
import com.fsck.k9.K9
import com.fsck.k9.Preferences
import timber.log.Timber

@@ -13,6 +14,16 @@ class K9JobManager(
    fun scheduleAllMailJobs() {
        Timber.v("scheduling all jobs")
        scheduleMailSync()
        scheduleSyncAfterQuiteTime()
    }

    fun scheduleSyncAfterQuiteTime() {
        if (!K9.isNetworkQuietTimeEnabled || K9.networkQuietTimeStarts == null || K9.networkQuietTimeEnds == null) {
            mailSyncWorkerManager.cancelSyncAfterQuitePeriodJob()
            return
        }

        mailSyncWorkerManager.scheduleSyncAfterQuitePeriod()
    }

    fun scheduleMailSync(account: Account) {
@@ -20,7 +31,7 @@ class K9JobManager(
        mailSyncWorkerManager.scheduleMailSync(account)
    }

    private fun scheduleMailSync() {
    fun scheduleMailSync() {
        cancelAllMailSyncJobs()

        preferences.accounts.forEach { account ->
+3 −0
Original line number Diff line number Diff line
@@ -15,4 +15,7 @@ val jobModule = module {
    factory { (parameters: WorkerParameters) ->
        MailSyncWorker(messagingController = get(), preferences = get(), context = get(), parameters)
    }
    factory { (parameters: WorkerParameters) ->
        SyncAfterQuitePeriodWorker(jobManager = get(), context = get(), parameters = parameters)
    }
}
Loading