summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
index 74701c867..633904bb0 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
@@ -62,6 +62,7 @@ public class SdlSession extends BaseSdlSession {
WeakReference<Context> contextWeakReference;
MediaStreamingStatus mediaStreamingStatus;
boolean requiresAudioSupport = false;
+ MediaStreamingStatus.Callback mediaStreamingStatusCallback;
public SdlSession(ISdlSessionListener listener, MultiplexTransportConfig config) {
super(listener, config);
@@ -79,6 +80,17 @@ public class SdlSession extends BaseSdlSession {
this.sessionListener = listener;
}
+ /**
+ * Sets a callback that is triggered when there are no audio output methods available. If this
+ * is set then the caller of this method will be responsible for shutting the session down.
+ *
+ * @param mediaStreamingStatusCallback the callback that will be triggered when audio output is
+ * no longer available.
+ */
+ public void setMediaStreamingStatusCallback(MediaStreamingStatus.Callback mediaStreamingStatusCallback) {
+ this.mediaStreamingStatusCallback = mediaStreamingStatusCallback;
+ }
+
protected SdlProtocolBase getSdlProtocolImplementation() {
if (transportConfig instanceof MultiplexTransportConfig) {
return new SdlProtocol(this, (MultiplexTransportConfig) transportConfig);
@@ -94,8 +106,12 @@ public class SdlSession extends BaseSdlSession {
mediaStreamingStatus = new MediaStreamingStatus(contextWeakReference.get(), new MediaStreamingStatus.Callback() {
@Override
public void onAudioNoLongerAvailable() {
- close();
- shutdown("Audio output no longer available");
+ if (mediaStreamingStatusCallback != null) {
+ mediaStreamingStatusCallback.onAudioNoLongerAvailable();
+ } else {
+ close();
+ shutdown("Audio output no longer available");
+ }
}
});
}