diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionDownloadTask.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionDownloadTask.java index 318b99c1680..913a1e1feed 100644 --- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionDownloadTask.java +++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionDownloadTask.java @@ -1,6 +1,7 @@ package com.mapbox.services.android.navigation.ui.v5.voice; import android.os.AsyncTask; +import android.support.annotation.NonNull; import java.io.File; import java.io.FileOutputStream; @@ -73,11 +74,15 @@ private File saveAsFile(ResponseBody responseBody) { @Override protected void onPostExecute(File instructionFile) { - taskListener.onFinishedDownloading(instructionFile); + if (instructionFile == null) { + taskListener.onErrorDownloading(); + } else { + taskListener.onFinishedDownloading(instructionFile); + } } public interface TaskListener { - void onFinishedDownloading(File file); + void onFinishedDownloading(@NonNull File file); void onErrorDownloading(); } diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionListener.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionListener.java index 30579d19828..79146d9aef3 100644 --- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionListener.java +++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/InstructionListener.java @@ -1,6 +1,6 @@ package com.mapbox.services.android.navigation.ui.v5.voice; -public interface InstructionListener { +interface InstructionListener { void onStart(); diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/MapboxSpeechPlayer.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/MapboxSpeechPlayer.java index ea07894a139..9fcda77253d 100644 --- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/MapboxSpeechPlayer.java +++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/MapboxSpeechPlayer.java @@ -245,7 +245,7 @@ private void clearInstructionUrls() { private void executeInstructionTask(ResponseBody responseBody) { new InstructionDownloadTask(mapboxCache.getPath(), new InstructionDownloadTask.TaskListener() { @Override - public void onFinishedDownloading(File instructionFile) { + public void onFinishedDownloading(@NonNull File instructionFile) { playInstructionIfUpNext(instructionFile); instructionQueue.add(instructionFile); } diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/NavigationInstructionPlayer.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/NavigationInstructionPlayer.java index 0288e763a44..74cefadcf4d 100644 --- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/NavigationInstructionPlayer.java +++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/voice/NavigationInstructionPlayer.java @@ -18,7 +18,6 @@ public class NavigationInstructionPlayer implements InstructionListener { private AudioFocusRequest instructionFocusRequest; private MapboxSpeechPlayer mapboxSpeechPlayer; private AndroidSpeechPlayer androidSpeechPlayer; - private InstructionListener instructionListener; private Queue instructionQueue; private boolean isMuted; @@ -55,38 +54,22 @@ public void onDestroy() { androidSpeechPlayer.onDestroy(); } - public void setInstructionListener(InstructionListener instructionListener) { - this.instructionListener = instructionListener; - } - @Override public void onStart() { - if (instructionListener != null) { - instructionListener.onStart(); - } - requestAudioFocus(); instructionQueue.remove(); } @Override public void onDone() { - if (instructionListener != null) { - instructionListener.onDone(); - } - abandonAudioFocus(); } @Override public void onError(boolean isMapboxPlayer) { - if (instructionListener != null) { - instructionListener.onError(isMapboxPlayer); - } - - if (isMapboxPlayer) { // If mapbox player failed, try android speech player + if (isMapboxPlayer) { androidSpeechPlayer.play(instructionQueue.peek().getAnnouncement()); - } else { // If android speech player fails, just drop the instruction + } else { instructionQueue.remove(); } }