From c3fc9a57cc1103ad6a40b07171832d75c2c61bdd Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sat, 11 May 2024 03:03:53 -0500 Subject: [PATCH] Replace now with currentTimeMillis --- .../com/todoroo/astrid/dao/TaskDaoTests.kt | 10 ++--- .../astrid/repeats/RepeatWithSubtasksTests.kt | 6 +-- .../org/tasks/data/CaldavDaoShiftTests.kt | 8 ++-- .../java/org/tasks/data/LocationDaoTest.kt | 42 +++++++++++-------- .../java/org/tasks/data/TaskDaoTests.kt | 10 ++--- .../ui/editviewmodel/TaskListViewModelTest.kt | 16 +++---- .../java/org/tasks/FlipperHttpInterceptor.kt | 6 +-- .../org/tasks/preferences/fragments/Debug.kt | 4 +- .../java/org/tasks/analytics/Firebase.kt | 8 ++-- .../GoogleGeofenceTransitionIntentService.kt | 6 +-- .../java/org/tasks/play/PlayServices.kt | 4 +- .../todoroo/andlib/utility/DateUtilities.java | 6 --- .../astrid/activity/TaskListFragment.kt | 3 +- .../astrid/adapter/AstridTaskAdapter.kt | 4 +- .../com/todoroo/astrid/alarms/AlarmService.kt | 8 ++-- .../java/com/todoroo/astrid/api/PermaSql.java | 5 ++- .../com/todoroo/astrid/gcal/GCalHelper.kt | 5 ++- .../todoroo/astrid/service/TaskCompleter.kt | 3 +- .../com/todoroo/astrid/service/TaskCreator.kt | 5 ++- .../todoroo/astrid/service/TaskDuplicator.kt | 6 +-- .../com/todoroo/astrid/service/TaskMover.kt | 6 +-- .../com/todoroo/astrid/service/Upgrader.kt | 4 +- .../com/todoroo/astrid/timers/TimerPlugin.kt | 6 +-- app/src/main/java/org/tasks/Tasks.kt | 4 +- .../main/java/org/tasks/caldav/iCalendar.kt | 4 +- .../java/org/tasks/caldav/iCalendarMerge.kt | 4 +- .../org/tasks/compose/edit/StartDateRow.kt | 4 +- .../java/org/tasks/data/TaskExtensions.kt | 15 +++---- .../org/tasks/dialogs/MyDatePickerDialog.kt | 3 +- .../org/tasks/dialogs/MyTimePickerDialog.kt | 4 +- .../java/org/tasks/googleapis/BaseInvoker.kt | 8 ++-- .../main/java/org/tasks/jobs/BackupWork.kt | 4 +- .../java/org/tasks/jobs/NotificationWork.kt | 4 +- .../main/java/org/tasks/jobs/WorkManager.kt | 4 +- .../java/org/tasks/jobs/WorkManagerImpl.kt | 7 ++-- .../NotificationClearedReceiver.kt | 4 +- .../java/org/tasks/preferences/Preferences.kt | 6 +-- .../org/tasks/tasklist/SectionedDataSource.kt | 4 +- .../java/org/tasks/tasklist/TaskViewHolder.kt | 4 +- .../java/org/tasks/ui/SubtaskControlSet.kt | 4 +- .../java/org/tasks/ui/TaskEditViewModel.kt | 5 +-- .../java/org/tasks/ui/TaskListViewModel.kt | 8 ++-- .../tasks/widget/TasksWidgetViewFactory.kt | 4 +- 43 files changed, 147 insertions(+), 138 deletions(-) diff --git a/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.kt b/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.kt index d3174015d..3ef68e32c 100644 --- a/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.kt +++ b/app/src/androidTest/java/com/todoroo/astrid/dao/TaskDaoTests.kt @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.dao -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.data.Task import com.todoroo.astrid.service.TaskDeleter import dagger.hilt.android.testing.HiltAndroidTest @@ -15,6 +14,7 @@ import org.junit.Assert.* import org.junit.Test import org.tasks.injection.InjectingTestCase import org.tasks.injection.ProductionModule +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @UninstallModules(ProductionModule::class) @@ -75,23 +75,23 @@ class TaskDaoTests : InjectingTestCase() { // create hidden task task = Task() task.title = "hidden" - task.hideUntil = DateUtilities.now() + 10000 + task.hideUntil = currentTimeMillis() + 10000 taskDao.createNew(task) // create task with deadlines task = Task() task.title = "deadlineInFuture" - task.dueDate = DateUtilities.now() + 10000 + task.dueDate = currentTimeMillis() + 10000 taskDao.createNew(task) task = Task() task.title = "deadlineInPast" - task.dueDate = DateUtilities.now() - 10000 + task.dueDate = currentTimeMillis() - 10000 taskDao.createNew(task) // create completed task task = Task() task.title = "completed" - task.completionDate = DateUtilities.now() - 10000 + task.completionDate = currentTimeMillis() - 10000 taskDao.createNew(task) // check is active diff --git a/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatWithSubtasksTests.kt b/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatWithSubtasksTests.kt index 98e9fd417..edbf75eb4 100644 --- a/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatWithSubtasksTests.kt +++ b/app/src/androidTest/java/com/todoroo/astrid/repeats/RepeatWithSubtasksTests.kt @@ -1,6 +1,5 @@ package com.todoroo.astrid.repeats -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.data.Task import com.todoroo.astrid.service.TaskCompleter import dagger.hilt.android.testing.HiltAndroidTest @@ -12,6 +11,7 @@ import org.junit.Test import org.tasks.data.TaskDao import org.tasks.injection.InjectingTestCase import org.tasks.injection.ProductionModule +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @UninstallModules(ProductionModule::class) @@ -35,7 +35,7 @@ class RepeatWithSubtasksTests : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) @@ -56,7 +56,7 @@ class RepeatWithSubtasksTests : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) diff --git a/app/src/androidTest/java/org/tasks/data/CaldavDaoShiftTests.kt b/app/src/androidTest/java/org/tasks/data/CaldavDaoShiftTests.kt index bc4936efe..c46601b07 100644 --- a/app/src/androidTest/java/org/tasks/data/CaldavDaoShiftTests.kt +++ b/app/src/androidTest/java/org/tasks/data/CaldavDaoShiftTests.kt @@ -2,7 +2,6 @@ package org.tasks.data import com.natpryce.makeiteasy.MakeItEasy.with import com.natpryce.makeiteasy.PropertyValue -import com.todoroo.andlib.utility.DateUtilities.now import dagger.hilt.android.testing.HiltAndroidTest import dagger.hilt.android.testing.UninstallModules import kotlinx.coroutines.runBlocking @@ -15,6 +14,7 @@ import org.tasks.injection.ProductionModule import org.tasks.makers.TaskContainerMaker import org.tasks.makers.TaskContainerMaker.CREATED import org.tasks.time.DateTime +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @UninstallModules(ProductionModule::class) @@ -101,7 +101,9 @@ class CaldavDaoShiftTests : InjectingTestCase() { fun ignoreMovedTasksWhenShiftingDown() = runBlocking { val created = DateTime(2020, 5, 17, 9, 53, 17) addTask(with(CREATED, created)) - caldavDao.update(caldavDao.getTask(tasks[0].id).apply { this?.deleted = now() }!!) + caldavDao.update(caldavDao.getTask(tasks[0].id).apply { this?.deleted = + currentTimeMillis() + }!!) caldavDao.shiftDown("calendar", 0, created.toAppleEpoch()) @@ -112,7 +114,7 @@ class CaldavDaoShiftTests : InjectingTestCase() { fun ignoreDeletedTasksWhenShiftingDown() = runBlocking { val created = DateTime(2020, 5, 17, 9, 53, 17) addTask(with(CREATED, created)) - taskDao.update(taskDao.fetch(tasks[0].id).apply { this?.deletionDate = now() }!!) + taskDao.update(taskDao.fetch(tasks[0].id).apply { this?.deletionDate = currentTimeMillis() }!!) caldavDao.shiftDown("calendar", 0, created.toAppleEpoch()) diff --git a/app/src/androidTest/java/org/tasks/data/LocationDaoTest.kt b/app/src/androidTest/java/org/tasks/data/LocationDaoTest.kt index f37553741..91ac7e771 100644 --- a/app/src/androidTest/java/org/tasks/data/LocationDaoTest.kt +++ b/app/src/androidTest/java/org/tasks/data/LocationDaoTest.kt @@ -1,7 +1,6 @@ package org.tasks.data import com.natpryce.makeiteasy.MakeItEasy.with -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.data.Task import dagger.hilt.android.testing.HiltAndroidTest @@ -21,6 +20,7 @@ import org.tasks.makers.TaskMaker.DUE_TIME import org.tasks.makers.TaskMaker.HIDE_TYPE import org.tasks.makers.TaskMaker.ID import org.tasks.makers.TaskMaker.newTask +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @UninstallModules(ProductionModule::class) @@ -113,33 +113,33 @@ class LocationDaoTest : InjectingTestCase() { @Test fun ignoreArrivalForSnoozedTask() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) val task = taskDao.createNew(newTask()) alarmDao.insert(Alarm(task, newDateTime().plusMinutes(15).millis, TYPE_SNOOZE)) locationDao.insert(Geofence(task = task, place = place.uid, isArrival = true)) - assertTrue(locationDao.getArrivalGeofences(place.uid!!, now()).isEmpty()) + assertTrue(locationDao.getArrivalGeofences(place.uid!!, currentTimeMillis()).isEmpty()) } } @Test fun ignoreDepartureForSnoozedTask() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) val task = taskDao.createNew(newTask()) alarmDao.insert(Alarm(task, newDateTime().plusMinutes(15).millis, TYPE_SNOOZE)) locationDao.insert(Geofence(task = task, place = place.uid, isDeparture = true)) - assertTrue(locationDao.getDepartureGeofences(place.uid!!, now()).isEmpty()) + assertTrue(locationDao.getDepartureGeofences(place.uid!!, currentTimeMillis()).isEmpty()) } } @Test fun getArrivalWithElapsedSnooze() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) val task = taskDao.createNew(newTask()) @@ -147,13 +147,15 @@ class LocationDaoTest : InjectingTestCase() { val geofence = Geofence(task = task, place = place.uid, isArrival = true) .let { it.copy(id = locationDao.insert(it)) } - assertEquals(listOf(geofence), locationDao.getArrivalGeofences(place.uid!!, now())) + assertEquals(listOf(geofence), locationDao.getArrivalGeofences(place.uid!!, + currentTimeMillis() + )) } } @Test fun getDepartureWithElapsedSnooze() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) val task = taskDao.createNew(newTask()) @@ -161,13 +163,15 @@ class LocationDaoTest : InjectingTestCase() { val geofence = Geofence(task = task, place = place.uid, isDeparture = true) .let { it.copy(id = locationDao.insert(it)) } - assertEquals(listOf(geofence), locationDao.getDepartureGeofences(place.uid!!, now())) + assertEquals(listOf(geofence), locationDao.getDepartureGeofences(place.uid!!, + currentTimeMillis() + )) } } @Test fun ignoreArrivalForHiddenTask() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) taskDao.createNew(newTask( @@ -176,13 +180,13 @@ class LocationDaoTest : InjectingTestCase() { with(HIDE_TYPE, Task.HIDE_UNTIL_DUE_TIME))) locationDao.insert(Geofence(task = 1, place = place.uid, isArrival = true)) - assertTrue(locationDao.getArrivalGeofences(place.uid!!, now()).isEmpty()) + assertTrue(locationDao.getArrivalGeofences(place.uid!!, currentTimeMillis()).isEmpty()) } } @Test fun ignoreDepartureForHiddenTask() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) taskDao.createNew(newTask( @@ -191,13 +195,13 @@ class LocationDaoTest : InjectingTestCase() { with(HIDE_TYPE, Task.HIDE_UNTIL_DUE_TIME))) locationDao.insert(Geofence(task = 1, place = place.uid, isDeparture = true)) - assertTrue(locationDao.getDepartureGeofences(place.uid!!, now()).isEmpty()) + assertTrue(locationDao.getDepartureGeofences(place.uid!!, currentTimeMillis()).isEmpty()) } } @Test fun getArrivalWithElapsedHideUntil() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) taskDao.createNew(newTask( @@ -209,13 +213,15 @@ class LocationDaoTest : InjectingTestCase() { it.copy(id = locationDao.insert(it)) } - assertEquals(listOf(geofence), locationDao.getArrivalGeofences(place.uid!!, now())) + assertEquals(listOf(geofence), locationDao.getArrivalGeofences(place.uid!!, + currentTimeMillis() + )) } } @Test fun getDepartureWithElapsedHideUntil() = runBlocking { - freezeAt(now()).thawAfter { + freezeAt(currentTimeMillis()).thawAfter { val place = Place() locationDao.insert(place) taskDao.createNew(newTask( @@ -225,7 +231,9 @@ class LocationDaoTest : InjectingTestCase() { val geofence = Geofence(task = 1, place = place.uid, isDeparture = true) .let { it.copy(id = locationDao.insert(it)) } - assertEquals(listOf(geofence), locationDao.getDepartureGeofences(place.uid!!, now())) + assertEquals(listOf(geofence), locationDao.getDepartureGeofences(place.uid!!, + currentTimeMillis() + )) } } } diff --git a/app/src/androidTest/java/org/tasks/data/TaskDaoTests.kt b/app/src/androidTest/java/org/tasks/data/TaskDaoTests.kt index 7ff251366..f3b1aca72 100644 --- a/app/src/androidTest/java/org/tasks/data/TaskDaoTests.kt +++ b/app/src/androidTest/java/org/tasks/data/TaskDaoTests.kt @@ -6,7 +6,6 @@ package org.tasks.data import com.natpryce.makeiteasy.MakeItEasy.with -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.data.Task import com.todoroo.astrid.service.TaskDeleter import dagger.hilt.android.testing.HiltAndroidTest @@ -19,6 +18,7 @@ import org.tasks.injection.InjectingTestCase import org.tasks.injection.ProductionModule import org.tasks.makers.TaskMaker.PARENT import org.tasks.makers.TaskMaker.newTask +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @UninstallModules(ProductionModule::class) @@ -44,23 +44,23 @@ class TaskDaoTests : InjectingTestCase() { // create hidden task task = Task() task.title = "hidden" - task.hideUntil = DateUtilities.now() + 10000 + task.hideUntil = currentTimeMillis() + 10000 taskDao.createNew(task) // create task with deadlines task = Task() task.title = "deadlineInFuture" - task.dueDate = DateUtilities.now() + 10000 + task.dueDate = currentTimeMillis() + 10000 taskDao.createNew(task) task = Task() task.title = "deadlineInPast" - task.dueDate = DateUtilities.now() - 10000 + task.dueDate = currentTimeMillis() - 10000 taskDao.createNew(task) // create completed task task = Task() task.title = "completed" - task.completionDate = DateUtilities.now() - 10000 + task.completionDate = currentTimeMillis() - 10000 taskDao.createNew(task) // check is active diff --git a/app/src/androidTest/java/org/tasks/ui/editviewmodel/TaskListViewModelTest.kt b/app/src/androidTest/java/org/tasks/ui/editviewmodel/TaskListViewModelTest.kt index cd116f01e..f5af9b2c5 100644 --- a/app/src/androidTest/java/org/tasks/ui/editviewmodel/TaskListViewModelTest.kt +++ b/app/src/androidTest/java/org/tasks/ui/editviewmodel/TaskListViewModelTest.kt @@ -1,6 +1,5 @@ package org.tasks.ui.editviewmodel -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.core.BuiltInFilterExposer import com.todoroo.astrid.data.Task import com.todoroo.astrid.service.TaskDeleter @@ -19,6 +18,7 @@ import org.tasks.data.TaskDao import org.tasks.injection.InjectingTestCase import org.tasks.injection.ProductionModule import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.TaskListViewModel import javax.inject.Inject @@ -53,7 +53,7 @@ class TaskListViewModelTest : InjectingTestCase() { @Test fun clearCompletedTask() = runBlocking { val task = taskDao.createNew( - Task(completionDate = now()) + Task(completionDate = currentTimeMillis()) ) clearCompleted() @@ -71,7 +71,7 @@ class TaskListViewModelTest : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) @@ -91,7 +91,7 @@ class TaskListViewModelTest : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) @@ -109,7 +109,7 @@ class TaskListViewModelTest : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) @@ -123,7 +123,7 @@ class TaskListViewModelTest : InjectingTestCase() { val grandparent = taskDao.createNew( Task( recurrence = "RRULE:FREQ=DAILY;INTERVAL=1", - completionDate = now(), + completionDate = currentTimeMillis(), ) ) val parent = taskDao.createNew( @@ -132,7 +132,7 @@ class TaskListViewModelTest : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) @@ -148,7 +148,7 @@ class TaskListViewModelTest : InjectingTestCase() { val child = taskDao.createNew( Task( parent = parent, - completionDate = now(), + completionDate = currentTimeMillis(), ) ) diff --git a/app/src/debug/java/org/tasks/FlipperHttpInterceptor.kt b/app/src/debug/java/org/tasks/FlipperHttpInterceptor.kt index 658013072..55f6edc21 100644 --- a/app/src/debug/java/org/tasks/FlipperHttpInterceptor.kt +++ b/app/src/debug/java/org/tasks/FlipperHttpInterceptor.kt @@ -5,8 +5,8 @@ import com.facebook.flipper.plugins.network.NetworkReporter import com.facebook.flipper.plugins.network.NetworkReporter.ResponseInfo import com.google.api.client.http.* import com.google.api.client.json.GenericJson -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.helper.UUIDHelper +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.io.ByteArrayOutputStream import java.io.IOException @@ -18,12 +18,12 @@ internal class FlipperHttpInterceptor(private val plugin: NetworkFlipperPlugi private set override fun intercept(request: HttpRequest) { - plugin.reportRequest(toRequestInfo(request, DateUtilities.now())) + plugin.reportRequest(toRequestInfo(request, currentTimeMillis())) } @Throws(IOException::class) override fun interceptResponse(response: HttpResponse) { - plugin.reportResponse(toResponseInfo(response, DateUtilities.now())) + plugin.reportResponse(toResponseInfo(response, currentTimeMillis())) } @Throws(IOException::class) diff --git a/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt b/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt index 144acdc9e..543b81fbe 100644 --- a/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt +++ b/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt @@ -5,7 +5,6 @@ import androidx.annotation.StringRes import androidx.lifecycle.lifecycleScope import androidx.preference.Preference import at.bitfire.cert4android.CustomCertManager.Companion.resetCertificates -import com.todoroo.andlib.utility.DateUtilities.now import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import org.tasks.R @@ -14,6 +13,7 @@ import org.tasks.billing.Inventory import org.tasks.extensions.Context.toast import org.tasks.injection.InjectingPreferenceFragment import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import java.util.concurrent.TimeUnit import javax.inject.Inject import kotlin.math.min @@ -62,7 +62,7 @@ class Debug : InjectingPreferenceFragment() { findPreference(R.string.debug_clear_hints).setOnPreferenceClickListener { preferences.installDate = - min(preferences.installDate, now() - TimeUnit.DAYS.toMillis(14)) + min(preferences.installDate, currentTimeMillis() - TimeUnit.DAYS.toMillis(14)) preferences.lastSubscribeRequest = 0L preferences.lastReviewRequest = 0L preferences.shownBeastModeHint = false diff --git a/app/src/googleplay/java/org/tasks/analytics/Firebase.kt b/app/src/googleplay/java/org/tasks/analytics/Firebase.kt index b371e8b1d..07fa79ffd 100644 --- a/app/src/googleplay/java/org/tasks/analytics/Firebase.kt +++ b/app/src/googleplay/java/org/tasks/analytics/Firebase.kt @@ -7,11 +7,11 @@ import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.crashlytics.FirebaseCrashlytics import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.ktx.remoteConfigSettings -import com.todoroo.andlib.utility.DateUtilities.now import dagger.hilt.android.qualifiers.ApplicationContext import org.tasks.R import org.tasks.jobs.WorkManager import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.util.concurrent.TimeUnit import javax.inject.Inject @@ -64,14 +64,14 @@ class Firebase @Inject constructor( } private val installCooldown: Boolean - get() = preferences.installDate + days("install_cooldown", 14L) > now() + get() = preferences.installDate + days("install_cooldown", 14L) > currentTimeMillis() val reviewCooldown: Boolean - get() = installCooldown || preferences.lastReviewRequest + days("review_cooldown", 30L) > now() + get() = installCooldown || preferences.lastReviewRequest + days("review_cooldown", 30L) > currentTimeMillis() val subscribeCooldown: Boolean get() = installCooldown - || preferences.lastSubscribeRequest + days("subscribe_cooldown", 30L) > now() + || preferences.lastSubscribeRequest + days("subscribe_cooldown", 30L) > currentTimeMillis() val moreOptionsBadge: Boolean get() = remoteConfig?.getBoolean("more_options_badge") ?: false diff --git a/app/src/googleplay/java/org/tasks/location/GoogleGeofenceTransitionIntentService.kt b/app/src/googleplay/java/org/tasks/location/GoogleGeofenceTransitionIntentService.kt index ba05fea6c..826d4752e 100644 --- a/app/src/googleplay/java/org/tasks/location/GoogleGeofenceTransitionIntentService.kt +++ b/app/src/googleplay/java/org/tasks/location/GoogleGeofenceTransitionIntentService.kt @@ -5,11 +5,11 @@ import android.content.Context import android.content.Intent import com.google.android.gms.location.Geofence import com.google.android.gms.location.GeofencingEvent -import com.todoroo.andlib.utility.DateUtilities import dagger.hilt.android.AndroidEntryPoint import org.tasks.Notifier import org.tasks.data.LocationDao import org.tasks.injection.InjectingJobIntentService +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import javax.inject.Inject @@ -45,9 +45,9 @@ class GoogleGeofenceTransitionIntentService : InjectingJobIntentService() { return } val geofences = if (arrival) { - locationDao.getArrivalGeofences(place.uid!!, DateUtilities.now()) + locationDao.getArrivalGeofences(place.uid!!, currentTimeMillis()) } else { - locationDao.getDepartureGeofences(place.uid!!, DateUtilities.now()) + locationDao.getDepartureGeofences(place.uid!!, currentTimeMillis()) } notifier.triggerNotifications(place.id, geofences, arrival) } catch (e: Exception) { diff --git a/app/src/googleplay/java/org/tasks/play/PlayServices.kt b/app/src/googleplay/java/org/tasks/play/PlayServices.kt index 4d8f4358e..c04fbe164 100644 --- a/app/src/googleplay/java/org/tasks/play/PlayServices.kt +++ b/app/src/googleplay/java/org/tasks/play/PlayServices.kt @@ -8,12 +8,12 @@ import com.google.android.gms.common.GoogleApiAvailability.getInstance import com.google.android.play.core.ktx.launchReview import com.google.android.play.core.ktx.requestReview import com.google.android.play.core.review.ReviewManagerFactory -import com.todoroo.andlib.utility.DateUtilities.now import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.launch import org.tasks.R import org.tasks.analytics.Firebase import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject class PlayServices @Inject constructor( @@ -33,7 +33,7 @@ class PlayServices @Inject constructor( val request = requestReview() launchReview(activity, request) } - preferences.lastReviewRequest = now() + preferences.lastReviewRequest = currentTimeMillis() firebase.logEvent(R.string.event_request_review) } catch (e: Exception) { firebase.reportException(e) diff --git a/app/src/main/java/com/todoroo/andlib/utility/DateUtilities.java b/app/src/main/java/com/todoroo/andlib/utility/DateUtilities.java index 9e6918c8c..b3179d84c 100644 --- a/app/src/main/java/com/todoroo/andlib/utility/DateUtilities.java +++ b/app/src/main/java/com/todoroo/andlib/utility/DateUtilities.java @@ -7,7 +7,6 @@ package com.todoroo.andlib.utility; import static org.tasks.date.DateTimeUtils.newDateTime; -import static org.tasks.time.DateTimeUtils2.currentTimeMillis; import android.content.Context; import android.text.format.DateFormat; @@ -38,11 +37,6 @@ public class DateUtilities { static Boolean is24HourOverride = null; - /** Returns unixtime for current time */ - public static long now() { - return currentTimeMillis(); - } - /* ====================================================================== * =========================================================== formatters * ====================================================================== */ diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index 1ba24694d..6a701bb1c 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -125,6 +125,7 @@ import org.tasks.tasklist.TaskViewHolder import org.tasks.tasklist.ViewHolderFactory import org.tasks.themes.ColorProvider import org.tasks.themes.ThemeColor +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.TaskEditEvent import org.tasks.ui.TaskEditEventBus import org.tasks.ui.TaskListEvent @@ -351,7 +352,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL if (Tasks.IS_GOOGLE_PLAY) { context.startActivity(Intent(context, PurchaseActivity::class.java)) } else { - preferences.lastSubscribeRequest = DateUtilities.now() + preferences.lastSubscribeRequest = currentTimeMillis() context.openUri(R.string.url_donate) } }, diff --git a/app/src/main/java/com/todoroo/astrid/adapter/AstridTaskAdapter.kt b/app/src/main/java/com/todoroo/astrid/adapter/AstridTaskAdapter.kt index 2464360cd..5421f02dd 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/AstridTaskAdapter.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/AstridTaskAdapter.kt @@ -1,6 +1,5 @@ package com.todoroo.astrid.adapter -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.api.AstridOrderingFilter import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.data.Task @@ -12,6 +11,7 @@ import org.tasks.data.CaldavDao import org.tasks.data.GoogleTaskDao import org.tasks.data.TaskContainer import org.tasks.data.TaskListMetadata +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.util.Collections import kotlin.math.abs @@ -67,7 +67,7 @@ class AstridTaskAdapter internal constructor( override suspend fun onTaskDeleted(task: Task) = updater.onDeleteTask(list, filter, task.uuid) override suspend fun onCompletedTask(uuid: String, newState: Boolean) { - val completionDate = if (newState) DateUtilities.now() else 0 + val completionDate = if (newState) currentTimeMillis() else 0 if (!newState) { val chained = chainedCompletions[uuid] if (chained != null) { diff --git a/app/src/main/java/com/todoroo/astrid/alarms/AlarmService.kt b/app/src/main/java/com/todoroo/astrid/alarms/AlarmService.kt index 56c8dda93..845f01e14 100644 --- a/app/src/main/java/com/todoroo/astrid/alarms/AlarmService.kt +++ b/app/src/main/java/com/todoroo/astrid/alarms/AlarmService.kt @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.alarms -import com.todoroo.andlib.utility.DateUtilities import org.tasks.LocalBroadcastManager import org.tasks.data.Alarm import org.tasks.data.Alarm.Companion.TYPE_SNOOZE @@ -14,6 +13,7 @@ import org.tasks.data.TaskDao import org.tasks.jobs.AlarmEntry import org.tasks.jobs.WorkManager import org.tasks.notifications.NotificationManager +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import javax.inject.Inject @@ -71,7 +71,7 @@ class AlarmService @Inject constructor( } suspend fun getAlarms(): Pair, List> { - val start = DateUtilities.now() + val start = currentTimeMillis() val overdue = ArrayList() val future = ArrayList() alarmDao.getActiveAlarms() @@ -81,7 +81,7 @@ class AlarmService @Inject constructor( val alarmEntries = alarms.mapNotNull { alarmCalculator.toAlarmEntry(task, it) } - val (now, later) = alarmEntries.partition { it.time <= DateUtilities.now() } + val (now, later) = alarmEntries.partition { it.time <= currentTimeMillis() } later .find { it.type == TYPE_SNOOZE } ?.let { future.add(it) } @@ -90,7 +90,7 @@ class AlarmService @Inject constructor( later.minByOrNull { it.time }?.let { future.add(it) } } } - Timber.d("took ${DateUtilities.now() - start}ms overdue=${overdue.size} future=${future.size}") + Timber.d("took ${currentTimeMillis() - start}ms overdue=${overdue.size} future=${future.size}") return overdue to future } diff --git a/app/src/main/java/com/todoroo/astrid/api/PermaSql.java b/app/src/main/java/com/todoroo/astrid/api/PermaSql.java index fe4213d3a..70849b7dc 100644 --- a/app/src/main/java/com/todoroo/astrid/api/PermaSql.java +++ b/app/src/main/java/com/todoroo/astrid/api/PermaSql.java @@ -7,6 +7,7 @@ package com.todoroo.astrid.api; import static org.tasks.date.DateTimeUtils.newDateTime; +import static org.tasks.time.DateTimeUtils2.currentTimeMillis; import com.todoroo.andlib.utility.DateUtilities; import org.tasks.time.DateTime; @@ -51,7 +52,7 @@ public final class PermaSql { /** Replace placeholder strings with actual */ public static String replacePlaceholdersForQuery(String value) { if (value.contains(VALUE_NOW)) { - value = value.replace(VALUE_NOW, Long.toString(DateUtilities.now())); + value = value.replace(VALUE_NOW, Long.toString(currentTimeMillis())); } if (value.contains(VALUE_EOD) || value.contains(VALUE_EOD_DAY_AFTER) @@ -74,7 +75,7 @@ public final class PermaSql { public static String replacePlaceholdersForNewTask(String value) { if (value.contains(VALUE_NOW)) { - value = value.replace(VALUE_NOW, Long.toString(DateUtilities.now())); + value = value.replace(VALUE_NOW, Long.toString(currentTimeMillis())); } if (value.contains(VALUE_EOD) || value.contains(VALUE_EOD_DAY_AFTER) diff --git a/app/src/main/java/com/todoroo/astrid/gcal/GCalHelper.kt b/app/src/main/java/com/todoroo/astrid/gcal/GCalHelper.kt index a2a04088c..8c31cfdcd 100644 --- a/app/src/main/java/com/todoroo/astrid/gcal/GCalHelper.kt +++ b/app/src/main/java/com/todoroo/astrid/gcal/GCalHelper.kt @@ -20,6 +20,7 @@ import org.tasks.calendars.CalendarEventProvider import org.tasks.data.TaskDao import org.tasks.preferences.PermissionChecker import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.util.TimeZone import javax.inject.Inject @@ -134,7 +135,9 @@ class GCalHelper @Inject constructor( private fun createStartAndEndDate(task: Task, values: ContentValues) { val dueDate = task.dueDate val tzCorrectedDueDate = dueDate + TimeZone.getDefault().getOffset(dueDate) - val tzCorrectedDueDateNow = DateUtilities.now() + TimeZone.getDefault().getOffset(DateUtilities.now()) + val tzCorrectedDueDateNow = currentTimeMillis() + TimeZone.getDefault().getOffset( + currentTimeMillis() + ) // FIXME: doesn't respect timezones, see story 17443653 if (task.hasDueDate()) { if (task.hasDueTime()) { diff --git a/app/src/main/java/com/todoroo/astrid/service/TaskCompleter.kt b/app/src/main/java/com/todoroo/astrid/service/TaskCompleter.kt index 58d5d8cf7..5faf93d8e 100644 --- a/app/src/main/java/com/todoroo/astrid/service/TaskCompleter.kt +++ b/app/src/main/java/com/todoroo/astrid/service/TaskCompleter.kt @@ -7,7 +7,6 @@ import android.media.AudioAttributes import android.media.AudioAttributes.USAGE_NOTIFICATION_EVENT import android.media.RingtoneManager import androidx.room.withTransaction -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.dao.Database import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.data.Task @@ -39,7 +38,7 @@ class TaskCompleter @Inject internal constructor( ?: Timber.e("Could not find task $taskId") suspend fun setComplete(item: Task, completed: Boolean, includeChildren: Boolean = true) { - val completionDate = if (completed) DateUtilities.now() else 0L + val completionDate = if (completed) currentTimeMillis() else 0L ArrayList() .apply { if (includeChildren) { diff --git a/app/src/main/java/com/todoroo/astrid/service/TaskCreator.kt b/app/src/main/java/com/todoroo/astrid/service/TaskCreator.kt index 59d29a176..9436f9040 100644 --- a/app/src/main/java/com/todoroo/astrid/service/TaskCreator.kt +++ b/app/src/main/java/com/todoroo/astrid/service/TaskCreator.kt @@ -39,6 +39,7 @@ import org.tasks.data.createHideUntil import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.Preferences import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import javax.inject.Inject @@ -138,8 +139,8 @@ class TaskCreator @Inject constructor( internal suspend fun create(values: Map?, title: String?): Task { val task = Task( title = title?.trim { it <= ' ' }, - creationDate = DateUtilities.now(), - modificationDate = DateUtilities.now(), + creationDate = currentTimeMillis(), + modificationDate = currentTimeMillis(), remoteId = UUIDHelper.newUUID(), priority = preferences.defaultPriority, ) diff --git a/app/src/main/java/com/todoroo/astrid/service/TaskDuplicator.kt b/app/src/main/java/com/todoroo/astrid/service/TaskDuplicator.kt index 410631a52..e5bed120a 100644 --- a/app/src/main/java/com/todoroo/astrid/service/TaskDuplicator.kt +++ b/app/src/main/java/com/todoroo/astrid/service/TaskDuplicator.kt @@ -1,6 +1,5 @@ package com.todoroo.astrid.service -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task.Companion.NO_ID @@ -20,6 +19,7 @@ import org.tasks.data.TagDataDao import org.tasks.data.TaskAttachmentDao import org.tasks.db.DbUtils.dbchunk import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject class TaskDuplicator @Inject constructor( @@ -51,8 +51,8 @@ class TaskDuplicator @Inject constructor( private suspend fun clone(task: Task, parentId: Long): Task { val clone = task.copy( id = NO_ID, - creationDate = DateUtilities.now(), - modificationDate = DateUtilities.now(), + creationDate = currentTimeMillis(), + modificationDate = currentTimeMillis(), reminderLast = 0, completionDate = 0L, calendarURI = "", diff --git a/app/src/main/java/com/todoroo/astrid/service/TaskMover.kt b/app/src/main/java/com/todoroo/astrid/service/TaskMover.kt index 03d9ed8f0..96446c862 100644 --- a/app/src/main/java/com/todoroo/astrid/service/TaskMover.kt +++ b/app/src/main/java/com/todoroo/astrid/service/TaskMover.kt @@ -1,7 +1,6 @@ package com.todoroo.astrid.service import android.content.Context -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.Filter import com.todoroo.astrid.api.GtasksFilter @@ -20,6 +19,7 @@ import org.tasks.data.getLocalList import org.tasks.db.DbUtils.dbchunk import org.tasks.preferences.Preferences import org.tasks.sync.SyncAdapters +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject class TaskMover @Inject constructor( @@ -102,7 +102,7 @@ class TaskMover @Inject constructor( } val id = task.id val children = taskDao.getChildren(id) - caldavDao.markDeleted(children + id, DateUtilities.now()) + caldavDao.markDeleted(children + id, currentTimeMillis()) when(selected) { is GtasksFilter -> { val listId = selected.remoteId @@ -158,7 +158,7 @@ class TaskMover @Inject constructor( children = caldavDao.getTasks(childIds) toDelete.addAll(childIds) } - caldavDao.markDeleted(toDelete, DateUtilities.now()) + caldavDao.markDeleted(toDelete, currentTimeMillis()) when (selected) { is CaldavFilter -> { val from = caldavDao.getCalendar(caldavTask.calendar!!) diff --git a/app/src/main/java/com/todoroo/astrid/service/Upgrader.kt b/app/src/main/java/com/todoroo/astrid/service/Upgrader.kt index 15b98f971..e7af3d5e5 100644 --- a/app/src/main/java/com/todoroo/astrid/service/Upgrader.kt +++ b/app/src/main/java/com/todoroo/astrid/service/Upgrader.kt @@ -6,7 +6,6 @@ import androidx.annotation.ColorRes import com.google.common.collect.ImmutableListMultimap import com.google.common.collect.ListMultimap import com.google.common.collect.Multimaps -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.api.GtasksFilter import com.todoroo.astrid.dao.TaskDao import dagger.Lazy @@ -36,6 +35,7 @@ import org.tasks.data.UpgraderDao import org.tasks.data.UserActivityDao import org.tasks.preferences.DefaultFilterProvider import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.widget.AppWidgetManager import org.tasks.widget.WidgetPreferences import java.io.File @@ -123,7 +123,7 @@ class Upgrader @Inject constructor( private fun setInstallDetails(version: Int) { preferences.installVersion = version - preferences.installDate = now() + preferences.installDate = currentTimeMillis() } private fun run(from: Int, version: Int, runnable: suspend () -> Unit) { diff --git a/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.kt b/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.kt index 86f921b7d..7ab26f171 100644 --- a/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.kt +++ b/app/src/main/java/com/todoroo/astrid/timers/TimerPlugin.kt @@ -5,10 +5,10 @@ */ package com.todoroo.astrid.timers -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.data.Task import org.tasks.data.TaskDao import org.tasks.notifications.NotificationManager +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject class TimerPlugin @Inject constructor( @@ -31,11 +31,11 @@ class TimerPlugin @Inject constructor( private suspend fun updateTimer(task: Task, start: Boolean) { if (start) { if (task.timerStart == 0L) { - task.timerStart = DateUtilities.now() + task.timerStart = currentTimeMillis() } } else { if (task.timerStart > 0) { - val newElapsed = ((DateUtilities.now() - task.timerStart) / 1000L).toInt() + val newElapsed = ((currentTimeMillis() - task.timerStart) / 1000L).toInt() task.timerStart = 0L task.elapsedSeconds += newElapsed } diff --git a/app/src/main/java/org/tasks/Tasks.kt b/app/src/main/java/org/tasks/Tasks.kt index 43017396f..250c5a61f 100644 --- a/app/src/main/java/org/tasks/Tasks.kt +++ b/app/src/main/java/org/tasks/Tasks.kt @@ -12,7 +12,6 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner import androidx.lifecycle.coroutineScope import androidx.work.Configuration -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.service.Upgrader import dagger.Lazy import dagger.hilt.android.HiltAndroidApp @@ -31,6 +30,7 @@ import org.tasks.preferences.Preferences import org.tasks.receivers.RefreshReceiver import org.tasks.scheduling.NotificationSchedulerIntentService import org.tasks.themes.ThemeBase +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.widget.AppWidgetManager import timber.log.Timber import java.util.concurrent.TimeUnit @@ -62,7 +62,7 @@ class Tasks : Application(), Configuration.Provider { ProcessLifecycleOwner.get().lifecycle.addObserver( object : DefaultLifecycleObserver { override fun onResume(owner: LifecycleOwner) { - if (now() - preferences.lastSync > TimeUnit.MINUTES.toMillis(5)) { + if (currentTimeMillis() - preferences.lastSync > TimeUnit.MINUTES.toMillis(5)) { owner.lifecycle.coroutineScope.launch { workManager.get().sync(true) } diff --git a/app/src/main/java/org/tasks/caldav/iCalendar.kt b/app/src/main/java/org/tasks/caldav/iCalendar.kt index 3a7722b20..a83d27fc6 100644 --- a/app/src/main/java/org/tasks/caldav/iCalendar.kt +++ b/app/src/main/java/org/tasks/caldav/iCalendar.kt @@ -3,7 +3,6 @@ package org.tasks.caldav import at.bitfire.ical4android.Task import at.bitfire.ical4android.Task.Companion.tasksFromReader import at.bitfire.ical4android.util.DateUtils.ical4jTimeZone -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.alarms.AlarmService import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.service.TaskCreator @@ -61,6 +60,7 @@ import org.tasks.repeats.RecurrenceUtils.newRRule import org.tasks.time.DateTimeUtils.startOfDay import org.tasks.time.DateTimeUtils.startOfMinute import org.tasks.time.DateTimeUtils.toDate +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.io.ByteArrayOutputStream import java.io.StringReader @@ -261,7 +261,7 @@ class iCalendar @Inject constructor( val changed = alarmService.synchronizeAlarms(caldavTask.task, remoteReminders.toMutableSet()) if (changed) { - task.modificationDate = DateUtilities.now() + task.modificationDate = currentTimeMillis() } } } diff --git a/app/src/main/java/org/tasks/caldav/iCalendarMerge.kt b/app/src/main/java/org/tasks/caldav/iCalendarMerge.kt index 3610ee0f9..51146c82a 100644 --- a/app/src/main/java/org/tasks/caldav/iCalendarMerge.kt +++ b/app/src/main/java/org/tasks/caldav/iCalendarMerge.kt @@ -1,7 +1,6 @@ package org.tasks.caldav import at.bitfire.ical4android.Task -import com.todoroo.andlib.utility.DateUtilities import net.fortuna.ical4j.model.property.Status import org.tasks.caldav.iCalendar.Companion.collapsed import org.tasks.caldav.iCalendar.Companion.getLocal @@ -17,6 +16,7 @@ import org.tasks.data.setRecurrence import org.tasks.date.DateTimeUtils.newDateTime import org.tasks.time.DateTime.UTC import org.tasks.time.DateTimeUtils.startOfSecond +import org.tasks.time.DateTimeUtils2.currentTimeMillis fun com.todoroo.astrid.data.Task.applyRemote( remote: Task, @@ -50,7 +50,7 @@ private fun com.todoroo.astrid.data.Task.applyCompletedAt(remote: Task, local: T completionDate = getLocal(completedAt) } else if (remote.status === Status.VTODO_COMPLETED) { if (!isCompleted) { - completionDate = DateUtilities.now() + completionDate = currentTimeMillis() } } else { completionDate = 0L diff --git a/app/src/main/java/org/tasks/compose/edit/StartDateRow.kt b/app/src/main/java/org/tasks/compose/edit/StartDateRow.kt index 1cd940c6c..ff96c9f07 100644 --- a/app/src/main/java/org/tasks/compose/edit/StartDateRow.kt +++ b/app/src/main/java/org/tasks/compose/edit/StartDateRow.kt @@ -14,18 +14,18 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.google.android.material.composethemeadapter.MdcTheme -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.ui.StartDateControlSet.Companion.getRelativeDateString import org.tasks.R import org.tasks.compose.TaskEditRow import org.tasks.dialogs.StartDatePicker +import org.tasks.time.DateTimeUtils2.currentTimeMillis @Composable fun StartDateRow( startDate: Long, selectedDay: Long, selectedTime: Int, - currentTime: Long = DateUtilities.now(), + currentTime: Long = currentTimeMillis(), hasDueDate: Boolean, printDate: () -> String, onClick: () -> Unit, diff --git a/app/src/main/java/org/tasks/data/TaskExtensions.kt b/app/src/main/java/org/tasks/data/TaskExtensions.kt index d715ce1fd..4a058ad4b 100644 --- a/app/src/main/java/org/tasks/data/TaskExtensions.kt +++ b/app/src/main/java/org/tasks/data/TaskExtensions.kt @@ -6,10 +6,11 @@ import net.fortuna.ical4j.model.Recur import org.tasks.date.DateTimeUtils import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis /** Checks whether task is hidden. Requires HIDDEN_UNTIL */ val Task.isHidden - get() = hideUntil > DateUtilities.now() + get() = hideUntil > currentTimeMillis() /** * Create hide until for this task. @@ -43,7 +44,7 @@ val Task.isOverdue: Boolean if (isCompleted || !hasDueDate()) { return false } - val compareTo = if (hasDueTime()) DateUtilities.now() else DateTimeUtils.newDateTime().startOfDay().millis + val compareTo = if (hasDueTime()) currentTimeMillis() else DateTimeUtils.newDateTime().startOfDay().millis return dueDate < compareTo } @@ -65,11 +66,11 @@ fun Task.hasNotes(): Boolean { fun createDueDate(setting: Int, customDate: Long): Long { val date: Long = when (setting) { Task.URGENCY_NONE -> 0 - Task.URGENCY_TODAY -> DateUtilities.now() - Task.URGENCY_TOMORROW -> DateUtilities.now() + DateUtilities.ONE_DAY - Task.URGENCY_DAY_AFTER -> DateUtilities.now() + 2 * DateUtilities.ONE_DAY - Task.URGENCY_NEXT_WEEK -> DateUtilities.now() + DateUtilities.ONE_WEEK - Task.URGENCY_IN_TWO_WEEKS -> DateUtilities.now() + 2 * DateUtilities.ONE_WEEK + Task.URGENCY_TODAY -> currentTimeMillis() + Task.URGENCY_TOMORROW -> currentTimeMillis() + DateUtilities.ONE_DAY + Task.URGENCY_DAY_AFTER -> currentTimeMillis() + 2 * DateUtilities.ONE_DAY + Task.URGENCY_NEXT_WEEK -> currentTimeMillis() + DateUtilities.ONE_WEEK + Task.URGENCY_IN_TWO_WEEKS -> currentTimeMillis() + 2 * DateUtilities.ONE_WEEK Task.URGENCY_SPECIFIC_DAY, Task.URGENCY_SPECIFIC_DAY_TIME -> customDate else -> throw IllegalArgumentException("Unknown setting $setting") } diff --git a/app/src/main/java/org/tasks/dialogs/MyDatePickerDialog.kt b/app/src/main/java/org/tasks/dialogs/MyDatePickerDialog.kt index 53f3b6a2c..3ba0025d2 100644 --- a/app/src/main/java/org/tasks/dialogs/MyDatePickerDialog.kt +++ b/app/src/main/java/org/tasks/dialogs/MyDatePickerDialog.kt @@ -8,7 +8,6 @@ import androidx.fragment.app.DialogFragment import com.google.android.material.datepicker.MaterialDatePicker import com.google.android.material.datepicker.MaterialDatePicker.INPUT_MODE_CALENDAR import com.google.android.material.datepicker.MaterialDatePicker.INPUT_MODE_TEXT -import com.todoroo.andlib.utility.DateUtilities import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.preferences.Preferences @@ -45,7 +44,7 @@ class MyDatePickerDialog : DialogFragment() { } private val initial: Long - get() = arguments?.getLong(MyTimePickerDialog.EXTRA_TIMESTAMP) ?: DateUtilities.now().startOfDay() + get() = arguments?.getLong(MyTimePickerDialog.EXTRA_TIMESTAMP) ?: currentTimeMillis().startOfDay() private fun selected(year: Int, month: Int, day: Int) { targetFragment?.onActivityResult( diff --git a/app/src/main/java/org/tasks/dialogs/MyTimePickerDialog.kt b/app/src/main/java/org/tasks/dialogs/MyTimePickerDialog.kt index 4df4f8ef0..efb05177a 100644 --- a/app/src/main/java/org/tasks/dialogs/MyTimePickerDialog.kt +++ b/app/src/main/java/org/tasks/dialogs/MyTimePickerDialog.kt @@ -13,13 +13,13 @@ import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOC import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_KEYBOARD import com.google.android.material.timepicker.TimeFormat.CLOCK_12H import com.google.android.material.timepicker.TimeFormat.CLOCK_24H -import com.todoroo.andlib.utility.DateUtilities.now import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.preferences.Preferences import org.tasks.time.DateTime import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @AndroidEntryPoint @@ -47,7 +47,7 @@ class MyTimePickerDialog : DialogFragment() { } private val initial: Long - get() = arguments?.getLong(EXTRA_TIMESTAMP) ?: now().startOfDay() + get() = arguments?.getLong(EXTRA_TIMESTAMP) ?: currentTimeMillis().startOfDay() private fun selected(hour: Int, minute: Int) { targetFragment?.onActivityResult( diff --git a/app/src/main/java/org/tasks/googleapis/BaseInvoker.kt b/app/src/main/java/org/tasks/googleapis/BaseInvoker.kt index 4039e6874..fa4d34e9b 100644 --- a/app/src/main/java/org/tasks/googleapis/BaseInvoker.kt +++ b/app/src/main/java/org/tasks/googleapis/BaseInvoker.kt @@ -3,7 +3,6 @@ package org.tasks.googleapis import com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest import com.google.api.client.http.HttpResponseException import com.google.api.client.json.GenericJson -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.gtasks.api.HttpCredentialsAdapter import com.todoroo.astrid.gtasks.api.HttpNotFoundException import kotlinx.coroutines.Dispatchers @@ -11,6 +10,7 @@ import kotlinx.coroutines.withContext import org.tasks.BuildConfig import org.tasks.DebugNetworkInterceptor import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.io.IOException @@ -29,9 +29,11 @@ abstract class BaseInvoker( Timber.d("%s request: %s", caller, request) val response: T? = try { if (preferences.isFlipperEnabled) { - val start = DateUtilities.now() + val start = currentTimeMillis() val httpResponse = request.executeUnparsed() - interceptor.report(httpResponse, request.responseClass, start, DateUtilities.now()) + interceptor.report(httpResponse, request.responseClass, start, + currentTimeMillis() + ) } else { request.execute() } diff --git a/app/src/main/java/org/tasks/jobs/BackupWork.kt b/app/src/main/java/org/tasks/jobs/BackupWork.kt index 814840828..6f7730073 100644 --- a/app/src/main/java/org/tasks/jobs/BackupWork.kt +++ b/app/src/main/java/org/tasks/jobs/BackupWork.kt @@ -5,7 +5,6 @@ import android.content.Context import androidx.documentfile.provider.DocumentFile import androidx.hilt.work.HiltWorker import androidx.work.WorkerParameters -import com.todoroo.andlib.utility.DateUtilities import dagger.assisted.Assisted import dagger.assisted.AssistedInject import org.tasks.R @@ -14,6 +13,7 @@ import org.tasks.backup.BackupConstants import org.tasks.backup.BackupConstants.BACKUP_CLEANUP_MATCHER import org.tasks.backup.TasksJsonExporter import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.io.File import java.io.FileFilter @@ -28,7 +28,7 @@ class BackupWork @AssistedInject constructor( private val workManager: WorkManager) : RepeatingWorker(context, workerParams, firebase) { override suspend fun run(): Result { - preferences.setLong(R.string.p_last_backup, DateUtilities.now()) + preferences.setLong(R.string.p_last_backup, currentTimeMillis()) startBackup(context) return Result.success() } diff --git a/app/src/main/java/org/tasks/jobs/NotificationWork.kt b/app/src/main/java/org/tasks/jobs/NotificationWork.kt index 93e7273cf..752728513 100644 --- a/app/src/main/java/org/tasks/jobs/NotificationWork.kt +++ b/app/src/main/java/org/tasks/jobs/NotificationWork.kt @@ -5,7 +5,6 @@ import androidx.core.app.NotificationCompat import androidx.hilt.work.HiltWorker import androidx.work.ForegroundInfo import androidx.work.WorkerParameters -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.alarms.AlarmService import dagger.assisted.Assisted import dagger.assisted.AssistedInject @@ -18,6 +17,7 @@ import org.tasks.data.AlarmDao import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.notifications.NotificationManager import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber @HiltWorker @@ -35,7 +35,7 @@ class NotificationWork @AssistedInject constructor( override suspend fun run(): Result { if (preferences.isCurrentlyQuietHours) { - nextAlarm = preferences.adjustForQuietHours(now()) + nextAlarm = preferences.adjustForQuietHours(currentTimeMillis()) return Result.success() } val (overdue, _) = alarmService.getAlarms() diff --git a/app/src/main/java/org/tasks/jobs/WorkManager.kt b/app/src/main/java/org/tasks/jobs/WorkManager.kt index e3b0ab71b..fd4fb89d5 100644 --- a/app/src/main/java/org/tasks/jobs/WorkManager.kt +++ b/app/src/main/java/org/tasks/jobs/WorkManager.kt @@ -1,11 +1,11 @@ package org.tasks.jobs import android.net.Uri -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.data.Task import org.tasks.BuildConfig import org.tasks.data.CaldavAccount import org.tasks.data.Place +import org.tasks.time.DateTimeUtils2.currentTimeMillis interface WorkManager { @@ -21,7 +21,7 @@ interface WorkManager { fun updateBackgroundSync() - suspend fun scheduleRefresh(timestamp: Long = now() + 5_000) + suspend fun scheduleRefresh(timestamp: Long = currentTimeMillis() + 5_000) fun triggerNotifications(expedited: Boolean = false) diff --git a/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt b/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt index 3f763ebd1..ae86e88a6 100644 --- a/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt +++ b/app/src/main/java/org/tasks/jobs/WorkManagerImpl.kt @@ -21,7 +21,6 @@ import androidx.work.Worker import androidx.work.workDataOf import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.AndroidUtilities.atLeastS -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.data.Task import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -148,13 +147,13 @@ class WorkManagerImpl( enqueueUnique( TAG_NOTIFICATIONS, NotificationWork::class.java, - time = if (expedited) 0 else now() + 5_000, + time = if (expedited) 0 else currentTimeMillis() + 5_000, expedited = expedited, ) } override fun scheduleNotification(scheduledTime: Long) { - val time = max(now(), scheduledTime) + val time = max(currentTimeMillis(), scheduledTime) if (time < currentTimeMillis()) { val intent = notificationIntent @@ -221,7 +220,7 @@ class WorkManagerImpl( time: Long = 0, expedited: Boolean = false, ) { - val delay = time - now() + val delay = time - currentTimeMillis() val builder = OneTimeWorkRequest.Builder(c) if (delay > 0) { builder.setInitialDelay(delay, TimeUnit.MILLISECONDS) diff --git a/app/src/main/java/org/tasks/notifications/NotificationClearedReceiver.kt b/app/src/main/java/org/tasks/notifications/NotificationClearedReceiver.kt index cf1743cb6..604c21d42 100644 --- a/app/src/main/java/org/tasks/notifications/NotificationClearedReceiver.kt +++ b/app/src/main/java/org/tasks/notifications/NotificationClearedReceiver.kt @@ -3,13 +3,13 @@ package org.tasks.notifications import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.alarms.AlarmService import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import org.tasks.injection.ApplicationScope import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import javax.inject.Inject @@ -31,7 +31,7 @@ class NotificationClearedReceiver : BroadcastReceiver() { // so sleep for 1s instead if (snoozeTime == 0L) snoozeTime = 1000L alarmService.snooze( - time = now() + snoozeTime, + time = currentTimeMillis() + snoozeTime, taskIds = listOf(notificationId) ) } else { diff --git a/app/src/main/java/org/tasks/preferences/Preferences.kt b/app/src/main/java/org/tasks/preferences/Preferences.kt index bc74c74cb..15e7b8e80 100644 --- a/app/src/main/java/org/tasks/preferences/Preferences.kt +++ b/app/src/main/java/org/tasks/preferences/Preferences.kt @@ -15,7 +15,6 @@ import androidx.documentfile.provider.DocumentFile import androidx.preference.PreferenceManager import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.activity.BeastModePreferences import com.todoroo.astrid.core.SortHelper import com.todoroo.astrid.data.Task @@ -30,6 +29,7 @@ import org.tasks.extensions.Context.getResourceUri import org.tasks.themes.ColorProvider import org.tasks.themes.ThemeBase import org.tasks.time.DateTime +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber import java.io.File import java.net.URI @@ -497,8 +497,8 @@ class Preferences @JvmOverloads constructor( get() = BuildConfig.DEBUG && getBoolean(R.string.p_flipper, false) var isPositionHackEnabled: Boolean - get() = getLong(R.string.p_google_tasks_position_hack, 0) > now() - DateUtilities.ONE_WEEK - set(value) { setLong(R.string.p_google_tasks_position_hack, if (value) now() else 0) } + get() = getLong(R.string.p_google_tasks_position_hack, 0) > currentTimeMillis() - DateUtilities.ONE_WEEK + set(value) { setLong(R.string.p_google_tasks_position_hack, if (value) currentTimeMillis() else 0) } override var isManualSort: Boolean get() = getBoolean(R.string.p_manual_sort, false) diff --git a/app/src/main/java/org/tasks/tasklist/SectionedDataSource.kt b/app/src/main/java/org/tasks/tasklist/SectionedDataSource.kt index ed4cb0b7a..900ee2903 100644 --- a/app/src/main/java/org/tasks/tasklist/SectionedDataSource.kt +++ b/app/src/main/java/org/tasks/tasklist/SectionedDataSource.kt @@ -2,10 +2,10 @@ package org.tasks.tasklist import android.util.SparseArray import androidx.core.util.forEach -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.core.SortHelper import org.tasks.data.TaskContainer import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.TaskListViewModel.UiItem class SectionedDataSource( @@ -103,7 +103,7 @@ class SectionedDataSource( private fun getSections(): SparseArray { val sections = ArrayList() - val startOfToday = now().startOfDay() + val startOfToday = currentTimeMillis().startOfDay() for (i in tasks.indices) { val task = tasks[i] val sortGroup = task.sortGroup diff --git a/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt b/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt index e37e5d27a..d6573d41a 100644 --- a/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt +++ b/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt @@ -15,7 +15,6 @@ import androidx.compose.ui.unit.dp import androidx.recyclerview.widget.RecyclerView import com.google.android.material.composethemeadapter.MdcTheme import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.api.CaldavFilter import com.todoroo.astrid.api.Filter import com.todoroo.astrid.api.GtasksFilter @@ -40,6 +39,7 @@ import org.tasks.filters.PlaceFilter import org.tasks.markdown.Markdown import org.tasks.preferences.Preferences import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.CheckBoxProvider import org.tasks.ui.ChipProvider import java.time.format.FormatStyle @@ -216,7 +216,7 @@ class TaskViewHolder internal constructor( dueDate.setTextColor(textColorSecondary) } val dateValue: String? = if (sortByDueDate - && (task.sortGroup ?: 0) >= now().startOfDay() + && (task.sortGroup ?: 0) >= currentTimeMillis().startOfDay() ) { task.takeIf { it.hasDueTime() }?.let { DateUtilities.getTimeString(context, newDateTime(task.dueDate)) diff --git a/app/src/main/java/org/tasks/ui/SubtaskControlSet.kt b/app/src/main/java/org/tasks/ui/SubtaskControlSet.kt index bd8a5e336..79d4485e9 100644 --- a/app/src/main/java/org/tasks/ui/SubtaskControlSet.kt +++ b/app/src/main/java/org/tasks/ui/SubtaskControlSet.kt @@ -11,7 +11,6 @@ import androidx.lifecycle.lifecycleScope import com.google.android.material.composethemeadapter.MdcTheme import com.todoroo.andlib.sql.Criterion import com.todoroo.andlib.sql.QueryTemplate -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.activity.MainActivityViewModel import com.todoroo.astrid.api.FilterImpl import com.todoroo.astrid.dao.TaskDao @@ -28,6 +27,7 @@ import org.tasks.data.TaskDao.TaskCriteria.activeAndVisible import org.tasks.preferences.Preferences import org.tasks.tasklist.SectionedDataSource import org.tasks.themes.ColorProvider +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @AndroidEntryPoint @@ -75,7 +75,7 @@ class SubtaskControlSet : TaskEditControlFragment() { viewModel.newSubtasks.value = ArrayList(viewModel.newSubtasks.value).apply { val modified = it.copy( - completionDate = if (it.isCompleted) 0 else now() + completionDate = if (it.isCompleted) 0 else currentTimeMillis() ) set(indexOf(it), modified) } diff --git a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt index ff751ee6d..ccc584dfa 100644 --- a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt @@ -7,7 +7,6 @@ import androidx.core.net.toUri import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.activity.TaskEditFragment import com.todoroo.astrid.alarms.AlarmService import com.todoroo.astrid.api.CaldavFilter @@ -359,7 +358,7 @@ class TaskEditViewModel @Inject constructor( ) { alarmService.synchronizeAlarms(task.id, selectedAlarms.value.toMutableSet()) task.putTransitory(FORCE_CALDAV_SYNC, true) - task.modificationDate = now() + task.modificationDate = currentTimeMillis() } if ( @@ -475,7 +474,7 @@ class TaskEditViewModel @Inject constructor( } userActivity.message = message userActivity.targetId = task.uuid - userActivity.created = now() + userActivity.created = currentTimeMillis() viewModelScope.launch { withContext(NonCancellable) { userActivityDao.createNew(userActivity) diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt index 54401a275..04f65e8d4 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt @@ -6,7 +6,6 @@ import android.content.Context import android.content.Intent import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.api.AstridOrderingFilter import com.todoroo.astrid.api.EmptyFilter import com.todoroo.astrid.api.Filter @@ -41,6 +40,7 @@ import org.tasks.db.QueryUtils import org.tasks.preferences.Preferences import org.tasks.preferences.QueryPreferences import org.tasks.tasklist.SectionedDataSource +import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject @HiltViewModel @@ -68,7 +68,7 @@ class TaskListViewModel @Inject constructor( data class State( val filter: Filter = EmptyFilter(), - val now: Long = DateUtilities.now(), + val now: Long = currentTimeMillis(), val searchQuery: String? = null, val tasks: TasksResults = TasksResults.Loading, val begForSubscription: Boolean = false, @@ -98,7 +98,7 @@ class TaskListViewModel @Inject constructor( fun invalidate() { _state.update { it.copy( - now = DateUtilities.now(), + now = currentTimeMillis(), syncOngoing = preferences.isSyncOngoing, ) } @@ -108,7 +108,7 @@ class TaskListViewModel @Inject constructor( _state.update { it.copy(begForSubscription = false) } - preferences.lastSubscribeRequest = DateUtilities.now() + preferences.lastSubscribeRequest = currentTimeMillis() firebase.logEvent(R.string.event_banner_sub, R.string.param_click to clickedPurchase) } diff --git a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt index e98e41c72..5c504e0c1 100644 --- a/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt +++ b/app/src/main/java/org/tasks/widget/TasksWidgetViewFactory.kt @@ -6,7 +6,6 @@ import android.view.View import android.widget.RemoteViews import android.widget.RemoteViewsService.RemoteViewsFactory import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.andlib.utility.DateUtilities.now import com.todoroo.astrid.api.AstridOrderingFilter import com.todoroo.astrid.api.Filter import com.todoroo.astrid.core.SortHelper @@ -31,6 +30,7 @@ import org.tasks.tasklist.HeaderFormatter import org.tasks.tasklist.SectionedDataSource import org.tasks.themes.ColorProvider.Companion.priorityColor import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.CheckBoxProvider.Companion.getCheckboxRes import timber.log.Timber import java.time.format.FormatStyle @@ -285,7 +285,7 @@ internal class TasksWidgetViewFactory( setViewVisibility(dueDateRes, View.VISIBLE) val text = if ( settings.groupMode == SortHelper.SORT_DUE && - (task.sortGroup ?: 0L) >= now().startOfDay() && + (task.sortGroup ?: 0L) >= currentTimeMillis().startOfDay() && !disableGroups ) { task.takeIf { it.hasDueTime() }?.let {