diff --git a/app/src/generic/java/org/tasks/analytics/Firebase.kt b/app/src/generic/java/org/tasks/analytics/Firebase.kt index b23cf0ba1..d371fa0fa 100644 --- a/app/src/generic/java/org/tasks/analytics/Firebase.kt +++ b/app/src/generic/java/org/tasks/analytics/Firebase.kt @@ -1,10 +1,15 @@ package org.tasks.analytics +import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils2.currentTimeMillis import timber.log.Timber +import java.util.concurrent.TimeUnit import javax.inject.Inject @Suppress("UNUSED_PARAMETER") -class Firebase @Inject constructor() { +class Firebase @Inject constructor( + private val preferences: Preferences +) { fun reportException(t: Throwable) = Timber.e(t) fun updateRemoteConfig() {} @@ -15,7 +20,15 @@ class Firebase @Inject constructor() { fun completeTask(source: String) {} - val subscribeCooldown = false + val subscribeCooldown: Boolean + get() = installCooldown + || preferences.lastSubscribeRequest + days(28L) > currentTimeMillis() val nameYourPrice = false + + private val installCooldown: Boolean + get() = preferences.installDate + days(7L) > currentTimeMillis() + + private fun days(default: Long): Long = + TimeUnit.DAYS.toMillis(default) } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt index e7a641e42..730595e29 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt @@ -21,6 +21,7 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import org.tasks.LocalBroadcastManager import org.tasks.R +import org.tasks.TasksApplication.Companion.IS_GENERIC import org.tasks.analytics.Firebase import org.tasks.billing.Inventory import org.tasks.compose.throttleLatest @@ -206,7 +207,7 @@ class TaskListViewModel @Inject constructor( ) } - if (!inventory.hasPro && !firebase.subscribeCooldown) { + if ((IS_GENERIC || !inventory.hasPro) && !firebase.subscribeCooldown) { _state.update { it.copy(begForSubscription = true) }