Remove Firebase RemoteConfig

pull/1800/head
Alex Baker 2 years ago
parent 15d4e5182c
commit 75701f0b42

@ -234,7 +234,6 @@ dependencies {
googleplayImplementation("com.google.firebase:firebase-analytics:${Versions.analytics}") {
exclude("com.google.android.gms", "play-services-ads-identifier")
}
googleplayImplementation("com.google.firebase:firebase-config-ktx:${Versions.remote_config}")
googleplayImplementation("com.google.android.gms:play-services-location:19.0.1")
googleplayImplementation("com.google.android.gms:play-services-maps:18.0.2")
googleplayImplementation("com.android.billingclient:billing-ktx:3.0.3")

@ -7,11 +7,5 @@ import javax.inject.Inject
class Firebase @Inject constructor() {
fun reportException(t: Throwable) = Timber.e(t)
fun updateRemoteConfig() {}
fun noChurn() = true
fun averageSubscription() = 0
fun logEvent(event: Int, vararg params: Pair<Int, Any>) {}
}

@ -5,14 +5,10 @@ import android.os.Bundle
import androidx.annotation.StringRes
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 dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.R
import org.tasks.jobs.WorkManager
import org.tasks.preferences.Preferences
import timber.log.Timber
import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Singleton
@ -24,7 +20,6 @@ class Firebase @Inject constructor(
private var crashlytics: FirebaseCrashlytics? = null
private var analytics: FirebaseAnalytics? = null
private var remoteConfig: FirebaseRemoteConfig? = null
fun reportException(t: Throwable) {
Timber.e(t)
@ -40,12 +35,6 @@ class Firebase @Inject constructor(
)
}
fun updateRemoteConfig() {
remoteConfig?.fetchAndActivate()?.addOnSuccessListener {
Timber.d(it.toString())
}
}
fun logEvent(@StringRes event: Int, vararg p: Pair<Int, Any>) {
analytics?.logEvent(context.getString(event), Bundle().apply {
p.forEach {
@ -59,10 +48,6 @@ class Firebase @Inject constructor(
})
}
fun noChurn(): Boolean = remoteConfig?.getBoolean("no_churn") ?: false
fun averageSubscription(): Double = remoteConfig?.getDouble("avg_sub") ?: 4.01
init {
if (preferences.isTrackingEnabled) {
analytics = FirebaseAnalytics.getInstance(context).apply {
@ -71,13 +56,6 @@ class Firebase @Inject constructor(
crashlytics = FirebaseCrashlytics.getInstance().apply {
setCrashlyticsCollectionEnabled(true)
}
remoteConfig = FirebaseRemoteConfig.getInstance().apply {
setConfigSettingsAsync(remoteConfigSettings {
minimumFetchIntervalInSeconds =
TimeUnit.HOURS.toSeconds(WorkManager.REMOTE_CONFIG_INTERVAL_HOURS)
})
setDefaultsAsync(R.xml.remote_config_defaults)
}
}
}
}

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingDefaultResource">
<entry>
<key>no_churn</key>
<value>false</value>
</entry>
<entry>
<key>avg_sub</key>
<value>4.01</value>
</entry>
</defaultsMap>

@ -82,7 +82,6 @@ class Tasks : Application(), Configuration.Provider {
updateBackgroundSync()
scheduleMidnightRefresh()
scheduleBackup()
scheduleConfigRefresh()
OpenTaskContentObserver.registerObserver(context, contentObserver.get())
updatePurchases()
}

@ -45,7 +45,6 @@ class WhatsNewDialog : DialogFragment() {
val begForSubscription = !inventory.hasPro
val begForRating = !preferences.getBoolean(R.string.p_clicked_rate, false)
&& (inventory.purchasedThemes() || firebase.noChurn())
&& (!begForSubscription || Random.nextBoolean())
when {
@ -120,6 +119,6 @@ class WhatsNewDialog : DialogFragment() {
Pair(R.string.param_whats_new_display_rate, displayedRate),
Pair(R.string.param_whats_new_display_subscribe, displayedSubscribe),
Pair(R.string.param_user_pro, inventory.hasPro),
Pair(R.string.param_user_no_churn, firebase.noChurn()))
)
}
}

@ -1,21 +0,0 @@
package org.tasks.jobs
import android.content.Context
import androidx.hilt.work.HiltWorker
import androidx.work.WorkerParameters
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import org.tasks.analytics.Firebase
import org.tasks.injection.BaseWorker
@HiltWorker
class RemoteConfigWork @AssistedInject constructor(
@Assisted context: Context,
@Assisted workerParams: WorkerParameters,
firebase: Firebase) : BaseWorker(context, workerParams, firebase) {
override suspend fun run(): Result {
firebase.updateRemoteConfig()
return Result.success()
}
}

@ -2,7 +2,6 @@ package org.tasks.jobs
import android.net.Uri
import com.todoroo.astrid.data.Task
import org.tasks.BuildConfig
import org.tasks.data.CaldavAccount
import org.tasks.data.Place
@ -36,8 +35,6 @@ interface WorkManager {
fun scheduleBackup()
fun scheduleConfigRefresh()
fun scheduleDriveUpload(uri: Uri, purge: Boolean)
fun cancelNotifications()
@ -45,7 +42,6 @@ interface WorkManager {
fun updatePurchases()
companion object {
val REMOTE_CONFIG_INTERVAL_HOURS = if (BuildConfig.DEBUG) 1 else 12.toLong()
const val MAX_CLEANUP_LENGTH = 500
const val TAG_BACKUP = "tag_backup"
const val TAG_REFRESH = "tag_refresh"
@ -58,7 +54,6 @@ interface WorkManager {
const val TAG_BACKGROUND_SYNC_CALDAV = "tag_background_sync_caldav"
const val TAG_BACKGROUND_SYNC_ETEBASE = "tag_background_sync_etebase"
const val TAG_BACKGROUND_SYNC_OPENTASKS = "tag_background_sync_opentasks"
const val TAG_REMOTE_CONFIG = "tag_remote_config"
const val TAG_MIGRATE_LOCAL = "tag_migrate_local"
const val TAG_UPDATE_PURCHASES = "tag_update_purchases"
}

@ -40,7 +40,6 @@ import org.tasks.jobs.MigrateLocalWork.Companion.EXTRA_ACCOUNT
import org.tasks.jobs.SyncWork.Companion.EXTRA_BACKGROUND
import org.tasks.jobs.SyncWork.Companion.EXTRA_IMMEDIATE
import org.tasks.jobs.WorkManager.Companion.MAX_CLEANUP_LENGTH
import org.tasks.jobs.WorkManager.Companion.REMOTE_CONFIG_INTERVAL_HOURS
import org.tasks.jobs.WorkManager.Companion.TAG_BACKGROUND_SYNC_CALDAV
import org.tasks.jobs.WorkManager.Companion.TAG_BACKGROUND_SYNC_ETEBASE
import org.tasks.jobs.WorkManager.Companion.TAG_BACKGROUND_SYNC_GOOGLE_TASKS
@ -49,7 +48,6 @@ import org.tasks.jobs.WorkManager.Companion.TAG_BACKUP
import org.tasks.jobs.WorkManager.Companion.TAG_MIDNIGHT_REFRESH
import org.tasks.jobs.WorkManager.Companion.TAG_MIGRATE_LOCAL
import org.tasks.jobs.WorkManager.Companion.TAG_REFRESH
import org.tasks.jobs.WorkManager.Companion.TAG_REMOTE_CONFIG
import org.tasks.jobs.WorkManager.Companion.TAG_SYNC_CALDAV
import org.tasks.jobs.WorkManager.Companion.TAG_SYNC_ETEBASE
import org.tasks.jobs.WorkManager.Companion.TAG_SYNC_GOOGLE_TASKS
@ -228,18 +226,6 @@ class WorkManagerImpl constructor(
.millis
.coerceAtMost(midnight()))
override fun scheduleConfigRefresh() {
throttle.run {
workManager.enqueueUniquePeriodicWork(
TAG_REMOTE_CONFIG,
ExistingPeriodicWorkPolicy.KEEP,
PeriodicWorkRequest.Builder(
RemoteConfigWork::class.java, REMOTE_CONFIG_INTERVAL_HOURS, TimeUnit.HOURS)
.setConstraints(networkConstraints)
.build())
}
}
override fun scheduleDriveUpload(uri: Uri, purge: Boolean) {
if (!preferences.getBoolean(R.string.p_google_drive_backup, false)) {
return

@ -58,8 +58,6 @@ class HelpAndFeedback : InjectingPreferenceFragment() {
R.string.p_collect_statistics,
R.string.rate_tasks,
)
} else if (!firebase.noChurn()) {
remove(R.string.rate_tasks)
} else {
openUrl(R.string.rate_tasks, R.string.market_url)
}

@ -8,7 +8,6 @@ object Versions {
const val room = "2.4.2"
const val crashlytics = "18.2.8"
const val analytics = "20.1.0"
const val remote_config = "21.0.1"
const val okhttp = "4.9.3"
const val flipper = "0.136.0"
const val mockito = "3.9.0"

@ -201,31 +201,6 @@
+| +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| +--- com.google.android.gms:play-services-measurement-base:20.1.0 (*)
+| \--- com.google.android.gms:play-services-measurement-impl:20.1.0 (*)
++--- com.google.firebase:firebase-config-ktx:21.0.1
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- com.google.firebase:firebase-abt:21.0.0
+| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.0 (*)
+| | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 19.0.0 (*)
+| +--- com.google.firebase:firebase-common:20.0.0 (*)
+| +--- com.google.firebase:firebase-common-ktx:20.0.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.6.10 (*)
+| +--- com.google.firebase:firebase-components:17.0.0 (*)
+| +--- com.google.firebase:firebase-config:21.0.1
+| | +--- com.google.android.gms:play-services-tasks:17.0.2 -> 18.0.1 (*)
+| | +--- com.google.firebase:firebase-abt:21.0.0 (*)
+| | +--- com.google.firebase:firebase-common:20.0.0 (*)
+| | +--- com.google.firebase:firebase-components:17.0.0 (*)
+| | +--- com.google.firebase:firebase-installations:17.0.0 (*)
+| | +--- com.google.firebase:firebase-installations-interop:17.0.0 (*)
+| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 -> 19.0.0 (*)
+| +--- com.google.firebase:firebase-installations:17.0.0 (*)
+| +--- com.google.firebase:firebase-installations-interop:17.0.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.6.10 (*)
++--- com.google.android.gms:play-services-location:19.0.1
+| +--- com.google.android.gms:play-services-base:18.0.1
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)

Loading…
Cancel
Save