Skip to content

Commit d0b2790

Browse files
committed
Add provider functions
1 parent 12f0b73 commit d0b2790

File tree

5 files changed

+42
-4
lines changed

5 files changed

+42
-4
lines changed

libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/audioguidance/AppAudioGuidanceUi.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.lifecycle.Lifecycle
77
import androidx.lifecycle.LifecycleOwner
88
import androidx.lifecycle.lifecycleScope
99
import androidx.lifecycle.repeatOnLifecycle
10-
import com.mapbox.androidauto.MapboxCarApp
1110
import com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance
1211
import com.mapbox.navigation.ui.voice.api.MapboxAudioGuidanceState
1312
import com.mapbox.navigation.ui.voice.view.MapboxSoundButton

libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/audioguidance/CarAudioGuidanceUi.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.core.graphics.drawable.IconCompat
88
import androidx.lifecycle.Lifecycle
99
import androidx.lifecycle.coroutineScope
1010
import androidx.lifecycle.repeatOnLifecycle
11-
import com.mapbox.androidauto.MapboxCarApp
1211
import com.mapbox.androidauto.R
1312
import com.mapbox.androidauto.car.MainActionStrip
1413
import com.mapbox.androidauto.car.action.MapboxActionProvider

libnavui-voice/api/current.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,20 @@ package com.mapbox.navigation.ui.voice.api {
2222
}
2323

2424
public final class MapboxAudioGuidance implements com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver {
25-
ctor public MapboxAudioGuidance();
25+
method public static com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance create();
26+
method public static com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance getInstance();
2627
method public void mute();
2728
method public void onAttached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
2829
method public void onDetached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
2930
method public kotlinx.coroutines.flow.StateFlow<com.mapbox.navigation.ui.voice.api.MapboxAudioGuidanceState> stateFlow();
3031
method public void toggle();
3132
method public void unMute();
33+
field public static final com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance.Companion Companion;
34+
}
35+
36+
public static final class MapboxAudioGuidance.Companion {
37+
method public com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance create();
38+
method public com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance getInstance();
3239
}
3340

3441
public final class MapboxAudioGuidanceState {

libnavui-voice/src/main/java/com/mapbox/navigation/ui/voice/api/MapboxAudioGuidance.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,19 @@ internal constructor(
200200
booleanDataStoreKey("audio_guidance_muted", false)
201201
private const val DEFAULT_DATA_STORE_NAME = "mapbox_navigation_preferences"
202202

203+
/**
204+
* Construct an instance without registering to [MapboxNavigationApp].
205+
*/
206+
@JvmStatic
207+
fun create() = MapboxAudioGuidance(MapboxAudioGuidanceServices(), Dispatchers.Main)
208+
209+
/**
210+
* Get the registered instance or create one and register it to [MapboxNavigationApp].
211+
*/
212+
@JvmStatic
203213
fun getInstance(): MapboxAudioGuidance = MapboxNavigationApp
204214
.getObservers(MapboxAudioGuidance::class)
205-
.firstOrNull() ?: MapboxAudioGuidance(MapboxAudioGuidanceServices(), Dispatchers.Main)
215+
.firstOrNull() ?: create()
206216
.also { MapboxNavigationApp.registerObserver(it) }
207217
}
208218
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.mapbox.navigation.qa_test_app.testing;
2+
3+
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp;
4+
import com.mapbox.navigation.ui.voice.api.MapboxAudioGuidance;
5+
6+
import kotlinx.coroutines.CoroutineScope;
7+
8+
class JavaInterfaceChecker {
9+
10+
void MapboxAudioGuidance(
11+
CoroutineScope coroutineScope
12+
) {
13+
MapboxAudioGuidance sut = MapboxAudioGuidance.getInstance();
14+
sut.mute();
15+
sut.unMute();
16+
sut.toggle();
17+
MapboxNavigationApp.registerObserver(sut);
18+
MapboxNavigationApp.unregisterObserver(sut);
19+
JavaFlow.collect(sut.stateFlow(), coroutineScope, (enabled) -> {
20+
// observe state
21+
});
22+
}
23+
}

0 commit comments

Comments
 (0)