Loading app/core/src/main/java/com/fsck/k9/K9.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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") Loading app/core/src/main/java/com/fsck/k9/QuietTimeChecker.java +15 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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; } } app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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()) { Loading app/core/src/main/java/com/fsck/k9/job/K9JobManager.kt +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading @@ -20,7 +31,7 @@ class K9JobManager( mailSyncWorkerManager.scheduleMailSync(account) } private fun scheduleMailSync() { fun scheduleMailSync() { cancelAllMailSyncJobs() preferences.accounts.forEach { account -> Loading app/core/src/main/java/com/fsck/k9/job/KoinModule.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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
app/core/src/main/java/com/fsck/k9/K9.kt +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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") Loading
app/core/src/main/java/com/fsck/k9/QuietTimeChecker.java +15 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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; } }
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +1 −1 Original line number Diff line number Diff line Loading @@ -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()) { Loading
app/core/src/main/java/com/fsck/k9/job/K9JobManager.kt +12 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) { Loading @@ -20,7 +31,7 @@ class K9JobManager( mailSyncWorkerManager.scheduleMailSync(account) } private fun scheduleMailSync() { fun scheduleMailSync() { cancelAllMailSyncJobs() preferences.accounts.forEach { account -> Loading
app/core/src/main/java/com/fsck/k9/job/KoinModule.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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) } }