Skip to content

Commit ccecd6c

Browse files
Allowing users to mock & inject Tweaks
1 parent a583349 commit ccecd6c

File tree

3 files changed

+16
-19
lines changed

3 files changed

+16
-19
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ task clean(type: Delete) {
4444
allprojects {
4545

4646
group = 'com.gmerinojimenez.tweaks'
47-
version = '0.0.11'
47+
version = '0.0.12'
4848

4949
}

library/src/enabled/java/com/gmerinojimenez/tweaks/Tweaks.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,23 @@ import kotlinx.coroutines.flow.StateFlow
3434
import javax.inject.Inject
3535

3636

37-
class Tweaks {
37+
open class Tweaks {
3838

3939
@Inject
4040
internal lateinit var tweaksBusinessLogic: TweaksBusinessLogic
4141

42-
fun <T>getTweakValue(key: String): StateFlow<T?> = tweaksBusinessLogic.getValue(key)
43-
44-
fun <T> getTweakValue(entry: TweakEntry<T>): StateFlow<T?> = tweaksBusinessLogic.getValue(entry)
42+
open fun <T>getTweakValue(key: String): StateFlow<T?> = tweaksBusinessLogic.getValue(key)
43+
44+
open fun <T> getTweakValue(entry: TweakEntry<T>): StateFlow<T?> = tweaksBusinessLogic.getValue(entry)
4545

4646
private fun initializeGraph(tweaksGraph: TweaksGraph) {
4747
tweaksBusinessLogic.initialize(tweaksGraph)
4848
}
4949

5050
companion object {
5151
const val TWEAKS_NAVIGATION_ENTRYPOINT = "tweaks"
52-
private var reference: Tweaks? = null
53-
internal lateinit var component: TweaksComponent
52+
private var reference: Tweaks = Tweaks()
53+
private lateinit var component: TweaksComponent
5454

5555
fun init(
5656
application: Application,
@@ -59,19 +59,19 @@ class Tweaks {
5959
reference = Tweaks()
6060
inject(application)
6161

62-
reference!!.initializeGraph(tweaksGraph)
62+
reference.initializeGraph(tweaksGraph)
6363
}
6464

6565
@JvmStatic
66-
fun getReference() = reference!!
66+
fun getReference(): Tweaks = reference
6767

6868
private fun inject(application: Application) {
6969
component = DaggerTweaksComponent
7070
.builder()
7171
.tweaksModule(TweaksModule(application))
7272
.build()
7373

74-
component.inject(reference!!)
74+
component.inject(reference)
7575
}
7676
}
7777

library/src/noop/java/com/gmerinojimenez/tweaks/Tweaks.kt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,18 @@ import com.gmerinojimenez.tweaks.domain.*
88
import kotlinx.coroutines.flow.MutableStateFlow
99
import kotlinx.coroutines.flow.StateFlow
1010

11-
class Tweaks {
11+
open class Tweaks {
1212

13-
internal lateinit var tweaksGraph: TweaksGraph
1413
private val keyToEntryValueMap: MutableMap<String, TweakEntry<*>> = mutableMapOf()
1514

1615
@Suppress("UNCHECKED_CAST")
17-
fun <T> getTweakValue(key: String): StateFlow<T?> {
16+
open fun <T> getTweakValue(key: String): StateFlow<T?> {
1817
val entry= keyToEntryValueMap[key] as TweakEntry<T>
1918
return getTweakValue(entry)
2019
}
2120

2221
@Suppress("UNCHECKED_CAST")
23-
fun <T> getTweakValue(entry: TweakEntry<T>): StateFlow<T?> = when (entry as Modifiable) {
22+
open fun <T> getTweakValue(entry: TweakEntry<T>): StateFlow<T?> = when (entry as Modifiable) {
2423
is ReadOnly<*> -> (entry as ReadOnly<T>).value
2524
is Editable<*> -> (entry as Editable<T>).defaultValue ?: MutableStateFlow(null)
2625
}
@@ -39,19 +38,17 @@ class Tweaks {
3938

4039
companion object {
4140
const val TWEAKS_NAVIGATION_ENTRYPOINT = "tweaks"
42-
private var reference: Tweaks? = null
41+
private var reference: Tweaks = Tweaks()
4342

4443
@JvmStatic
4544
fun init(
46-
application: Application,
4745
tweaksGraph: TweaksGraph,
4846
) {
49-
reference = Tweaks()
50-
reference!!.initialize(tweaksGraph)
47+
reference.initialize(tweaksGraph)
5148
}
5249

5350
@JvmStatic
54-
fun getReference() = reference!!
51+
fun getReference(): Tweaks = reference
5552
}
5653

5754

0 commit comments

Comments
 (0)