Skip to content

Commit 3698e54

Browse files
committed
Refactor: Move codeable get free estimate url remote config to wrapper
This is done to make sure that everything 'FirebaseRemoteConfig' related is only being accessed via the 'FirebaseRemoteConfigWrapper', thus aligning this with any other such call across the app, which in turn will make it easier to reason about all Firebase 'Remote Config' related functionality configured for this project.
1 parent 49b81f8 commit 3698e54

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +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
7-
8-
private const val CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY = "codeable_get_free_estimate_url"
6+
import org.wordpress.android.util.FirebaseRemoteConfigWrapper
97

108
sealed class ThreatDetailsNavigationEvents {
119
class OpenThreatActionDialog(
@@ -24,8 +22,10 @@ sealed class ThreatDetailsNavigationEvents {
2422

2523
data class ShowUpdatedFixState(val threatId: Long) : ThreatDetailsNavigationEvents()
2624

27-
object ShowGetFreeEstimate : ThreatDetailsNavigationEvents() {
28-
fun url() = FirebaseRemoteConfig.getInstance().getString(CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY)
25+
data class ShowGetFreeEstimate(
26+
val firebaseRemoteConfigWrapper: FirebaseRemoteConfigWrapper
27+
) : ThreatDetailsNavigationEvents() {
28+
fun url() = firebaseRemoteConfigWrapper.getCodeableGetFreeEstimateUrl()
2929
}
3030

3131
data class ShowJetpackSettings(val url: String) : ThreatDetailsNavigationEvents()

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.wordpress.android.ui.utils.HtmlMessageUtils
2929
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
32+
import org.wordpress.android.util.FirebaseRemoteConfigWrapper
3233
import org.wordpress.android.util.analytics.ScanTracker
3334
import org.wordpress.android.viewmodel.Event
3435
import org.wordpress.android.viewmodel.ResourceProvider
@@ -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 firebaseRemoteConfigWrapper: FirebaseRemoteConfigWrapper
4749
) : ViewModel() {
4850
private lateinit var site: SiteModel
4951
private lateinit var threatModel: ThreatModel
@@ -153,7 +155,7 @@ class ThreatDetailsViewModel @Inject constructor(
153155

154156
private fun onGetFreeEstimateButtonClicked() {
155157
scanTracker.trackOnGetFreeEstimateButtonClicked()
156-
updateNavigationEvent(ThreatDetailsNavigationEvents.ShowGetFreeEstimate)
158+
updateNavigationEvent(ThreatDetailsNavigationEvents.ShowGetFreeEstimate(firebaseRemoteConfigWrapper))
157159
}
158160

159161
private fun onEnterServerCredsIconClicked() {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@ import javax.inject.Singleton
88
class FirebaseRemoteConfigWrapper @Inject constructor() {
99
fun getOpenWebLinksWithJetpackFlowFrequency() =
1010
FirebaseRemoteConfig.getInstance().getLong(OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_KEY)
11+
fun getCodeableGetFreeEstimateUrl() =
12+
FirebaseRemoteConfig.getInstance().getString(CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY)
1113
fun getPerformanceMonitoringSampleRate(): Double =
1214
FirebaseRemoteConfig.getInstance().getDouble(PERFORMANCE_MONITORING_SAMPLE_RATE_KEY)
1315

1416
companion object {
1517
private const val PERFORMANCE_MONITORING_SAMPLE_RATE_KEY = "wp_android_performance_monitoring_sample_rate"
1618

19+
private const val CODEABLE_GET_FREE_ESTIMATE_FIREBASE_KEY = "codeable_get_free_estimate_url"
20+
1721
private const val OPEN_WEB_LINKS_WITH_JETPACK_FLOW_FREQUENCY_KEY = "open_web_links_with_jetpack_flow_frequency"
1822
}
1923
}

WordPress/src/test/java/org/wordpress/android/ui/jetpack/scan/details/ThreatDetailsViewModelTest.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import org.wordpress.android.ui.pages.SnackbarMessageHolder
3737
import org.wordpress.android.ui.utils.HtmlMessageUtils
3838
import org.wordpress.android.ui.utils.UiString.UiStringRes
3939
import org.wordpress.android.ui.utils.UiString.UiStringText
40+
import org.wordpress.android.util.FirebaseRemoteConfigWrapper
4041
import org.wordpress.android.util.analytics.ScanTracker
4142
import org.wordpress.android.viewmodel.Event
4243
import org.wordpress.android.viewmodel.ResourceProvider
@@ -78,6 +79,9 @@ class ThreatDetailsViewModelTest : BaseUnitTest() {
7879
@Mock
7980
private lateinit var scanTracker: ScanTracker
8081

82+
@Mock
83+
private lateinit var firebaseRemoteConfigWrapper: FirebaseRemoteConfigWrapper
84+
8185
@Mock
8286
private lateinit var scanStore: ScanStore
8387

@@ -99,7 +103,8 @@ class ThreatDetailsViewModelTest : BaseUnitTest() {
99103
builder,
100104
htmlMessageUtils,
101105
resourceProvider,
102-
scanTracker
106+
scanTracker,
107+
firebaseRemoteConfigWrapper
103108
)
104109
whenever(site.name).thenReturn(TEST_SITE_NAME)
105110
whenever(selectedSiteRepository.getSelectedSite()).thenReturn(site)

0 commit comments

Comments
 (0)