Skip to content

Commit 8a2057d

Browse files
authored
Merge pull request #18537 from wordpress-mobile/issue/migrate-fb-remote-config-to-be
Migrate from Firebase remote config to BE remote config
2 parents e8b1b21 + 01f5b01 commit 8a2057d

16 files changed

+98
-46
lines changed

WordPress/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,6 @@ dependencies {
423423
implementation "androidx.lifecycle:lifecycle-process:$androidxLifecycleVersion"
424424
implementation "com.android.volley:volley:$androidVolleyVersion"
425425
implementation "com.google.firebase:firebase-messaging:$firebaseMessagingVersion"
426-
implementation "com.google.firebase:firebase-config:$firebaseConfigVersion"
427426
implementation "com.google.android.gms:play-services-auth:$googlePlayServicesAuthVersion"
428427
implementation "com.google.android.gms:play-services-code-scanner:$googlePlayServicesCodeScannerVersion"
429428
implementation "com.google.mlkit:barcode-scanning-common:$googleMLKitBarcodeScanningVersion"

WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkOpenWebLinksWithJetpackHelper.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@ import org.wordpress.android.util.AppLog
66
import org.wordpress.android.util.AppLog.T
77
import org.wordpress.android.util.BuildConfigWrapper
88
import org.wordpress.android.util.DateTimeUtilsWrapper
9-
import org.wordpress.android.util.FirebaseRemoteConfigWrapper
109
import org.wordpress.android.util.PackageManagerWrapper
1110
import org.wordpress.android.util.config.OpenWebLinksWithJetpackFlowFeatureConfig
11+
import org.wordpress.android.util.config.RemoteConfigWrapper
1212
import java.util.Date
1313
import javax.inject.Inject
1414

1515
@Suppress("TooManyFunctions")
1616
class DeepLinkOpenWebLinksWithJetpackHelper @Inject constructor(
1717
private val openWebLinksWithJetpackFlowFeatureConfig: OpenWebLinksWithJetpackFlowFeatureConfig,
1818
private val appPrefsWrapper: AppPrefsWrapper,
19-
private val firebaseRemoteConfigWrapper: FirebaseRemoteConfigWrapper,
2019
private val packageManagerWrapper: PackageManagerWrapper,
2120
private val dateTimeUtilsWrapper: DateTimeUtilsWrapper,
22-
private val buildConfigWrapper: BuildConfigWrapper
21+
private val buildConfigWrapper: BuildConfigWrapper,
22+
private val remoteConfigWrapper: RemoteConfigWrapper
2323
) {
2424
fun shouldShowOpenLinksInJetpackOverlay() = showOverlay()
2525

@@ -76,7 +76,7 @@ class DeepLinkOpenWebLinksWithJetpackHelper @Inject constructor(
7676
}
7777

7878
private fun hasExceededOverlayFrequency(): Boolean {
79-
val frequency = firebaseRemoteConfigWrapper.getOpenWebLinksWithJetpackFlowFrequency()
79+
val frequency = remoteConfigWrapper.getOpenWebLinksWithJetpackFlowFrequency()
8080
if (frequency == 0L) return false // Only show the overlay 1X and it's already been shown do not show again
8181

8282
val lastShownDate = Date(getOpenWebLinksWithJetpackOverlayLastShownTimestamp())

WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/details/ThreatDetailsFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class ThreatDetailsFragment : Fragment(R.layout.threat_details_fragment) {
9191
ActivityLauncher.viewScanRequestFixState(requireActivity(), site, events.threatId)
9292
}
9393
is ShowGetFreeEstimate -> {
94-
ActivityLauncher.openUrlExternal(context, events.url())
94+
ActivityLauncher.openUrlExternal(context, events.url)
9595
}
9696
is ShowJetpackSettings -> ActivityLauncher.openUrlExternal(context, events.url)
9797
}

WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/details/ThreatDetailsNavigationEvents.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package org.wordpress.android.ui.jetpack.scan.details
22

33
import androidx.annotation.StringRes
4-
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
54
import org.wordpress.android.R
65
import org.wordpress.android.ui.utils.UiString
76

8-
private const val CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY = "codeable_get_free_estimate_url"
9-
107
sealed class ThreatDetailsNavigationEvents {
118
class OpenThreatActionDialog(
129
val title: UiString,
@@ -24,9 +21,7 @@ sealed class ThreatDetailsNavigationEvents {
2421

2522
data class ShowUpdatedFixState(val threatId: Long) : ThreatDetailsNavigationEvents()
2623

27-
object ShowGetFreeEstimate : ThreatDetailsNavigationEvents() {
28-
fun url() = FirebaseRemoteConfig.getInstance().getString(CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY)
29-
}
24+
data class ShowGetFreeEstimate(val url: String) : ThreatDetailsNavigationEvents()
3025

3126
data class ShowJetpackSettings(val url: String) : ThreatDetailsNavigationEvents()
3227
}

WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/details/ThreatDetailsViewModel.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import org.wordpress.android.ui.utils.UiString
3030
import org.wordpress.android.ui.utils.UiString.UiStringRes
3131
import org.wordpress.android.ui.utils.UiString.UiStringText
3232
import org.wordpress.android.util.analytics.ScanTracker
33+
import org.wordpress.android.util.config.RemoteConfigWrapper
3334
import org.wordpress.android.viewmodel.Event
3435
import org.wordpress.android.viewmodel.ResourceProvider
3536
import javax.inject.Inject
@@ -43,7 +44,8 @@ class ThreatDetailsViewModel @Inject constructor(
4344
private val builder: ThreatDetailsListItemsBuilder,
4445
private val htmlMessageUtils: HtmlMessageUtils,
4546
private val resourceProvider: ResourceProvider,
46-
private val scanTracker: ScanTracker
47+
private val scanTracker: ScanTracker,
48+
private val remoteConfigWrapper: RemoteConfigWrapper
4749
) : ViewModel() {
4850
private lateinit var site: SiteModel
4951
private lateinit var threatModel: ThreatModel
@@ -153,7 +155,9 @@ class ThreatDetailsViewModel @Inject constructor(
153155

154156
private fun onGetFreeEstimateButtonClicked() {
155157
scanTracker.trackOnGetFreeEstimateButtonClicked()
156-
updateNavigationEvent(ThreatDetailsNavigationEvents.ShowGetFreeEstimate)
158+
updateNavigationEvent(ThreatDetailsNavigationEvents.ShowGetFreeEstimate(
159+
remoteConfigWrapper.getCodeableGetFreeEstimateUrl())
160+
)
157161
}
158162

159163
private fun onEnterServerCredsIconClicked() {

WordPress/src/main/java/org/wordpress/android/util/FirebaseRemoteConfigWrapper.kt

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.wordpress.android.util.config
2+
3+
import org.wordpress.android.annotation.RemoteFieldDefaultGenerater
4+
import javax.inject.Inject
5+
6+
const val CODEABLE_GET_FREE_ESTIMATE_URL_REMOTE_FIELD = "codeable_get_free_estimate_url"
7+
const val CODEABLE_GET_FREE_ESTIMATE_URL_DEFAULT = "https://codeable.io/partners/jetpack-scan/"
8+
9+
@RemoteFieldDefaultGenerater(
10+
remoteField = CODEABLE_GET_FREE_ESTIMATE_URL_REMOTE_FIELD,
11+
defaultValue = CODEABLE_GET_FREE_ESTIMATE_URL_DEFAULT
12+
)
13+
14+
class CodeableGetFreeEstimateUrlConfig @Inject constructor(appConfig: AppConfig) :
15+
RemoteConfigField<String>(
16+
appConfig,
17+
CODEABLE_GET_FREE_ESTIMATE_URL_REMOTE_FIELD
18+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.wordpress.android.util.config
2+
3+
import org.wordpress.android.annotation.RemoteFieldDefaultGenerater
4+
import javax.inject.Inject
5+
6+
const val OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_REMOTE_FIELD = "open_web_links_with_jetpack_flow_frequency"
7+
const val OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_DEFAULT = "0"
8+
9+
@RemoteFieldDefaultGenerater(
10+
remoteField = OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_REMOTE_FIELD,
11+
defaultValue = OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_DEFAULT
12+
)
13+
14+
class OpenWebLinksWithJetpackFlowFrequencyConfig @Inject constructor(appConfig: AppConfig) :
15+
RemoteConfigField<Long>(
16+
appConfig,
17+
OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_REMOTE_FIELD
18+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.wordpress.android.util.config
2+
3+
import org.wordpress.android.annotation.RemoteFieldDefaultGenerater
4+
import javax.inject.Inject
5+
6+
const val PERFORMANCE_MONITORING_SAMPLE_RATE_REMOTE_FIELD = "wp_android_performance_monitoring_sample_rate"
7+
const val PERFORMANCE_MONITORING_SAMPLE_RATE_DEFAULT = "0.0"
8+
9+
@RemoteFieldDefaultGenerater(
10+
remoteField = PERFORMANCE_MONITORING_SAMPLE_RATE_REMOTE_FIELD,
11+
defaultValue = PERFORMANCE_MONITORING_SAMPLE_RATE_DEFAULT
12+
)
13+
14+
class PerformanceMonitoringSampleRateConfig @Inject constructor(appConfig: AppConfig) :
15+
RemoteConfigField<Double>(
16+
appConfig,
17+
PERFORMANCE_MONITORING_SAMPLE_RATE_REMOTE_FIELD
18+
)

WordPress/src/main/java/org/wordpress/android/util/config/RemoteConfigField.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ open class RemoteConfigField<T : Any>(val appConfig: AppConfig, val remoteField:
88
Int::class -> remoteFieldValue.toInt() as R
99
String::class -> remoteFieldValue as R
1010
Long::class -> remoteFieldValue.toLong() as R
11+
Double::class -> remoteFieldValue.toDouble() as R
1112
// add other types here if need
1213
else -> throw IllegalStateException("Unknown Generic Type")
1314
}

0 commit comments

Comments
 (0)