Replace now with currentTimeMillis

pull/2884/head
Alex Baker 3 weeks ago
parent 6e14d07d0c
commit c3fc9a57cc

@ -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

@ -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(),
)
)

@ -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())

@ -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()
))
}
}
}

@ -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

@ -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(),
)
)

@ -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<T>(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)

@ -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

@ -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

@ -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) {

@ -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)

@ -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
* ====================================================================== */

@ -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)
}
},

@ -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) {

@ -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<AlarmEntry>, List<AlarmEntry>> {
val start = DateUtilities.now()
val start = currentTimeMillis()
val overdue = ArrayList<AlarmEntry>()
val future = ArrayList<AlarmEntry>()
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
}

@ -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)

@ -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()) {

@ -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<Task?>()
.apply {
if (includeChildren) {

@ -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<String, Any>?, 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,
)

@ -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 = "",

@ -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!!)

@ -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) {

@ -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
}

@ -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)
}

@ -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()
}
}
}

@ -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

@ -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,

@ -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")
}

@ -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(

@ -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(

@ -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()
}

@ -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()
}

@ -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()

@ -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)

@ -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)

@ -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 {

@ -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)

@ -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<AdapterSection> {
val sections = ArrayList<AdapterSection>()
val startOfToday = now().startOfDay()
val startOfToday = currentTimeMillis().startOfDay()
for (i in tasks.indices) {
val task = tasks[i]
val sortGroup = task.sortGroup

@ -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))

@ -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)
}

@ -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)

@ -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)
}

@ -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 {

Loading…
Cancel
Save