From b1709493199ecb06ce3653ffb1437dba0335161f Mon Sep 17 00:00:00 2001 From: Javier Mejia Date: Thu, 17 Jan 2019 11:31:35 +0100 Subject: [PATCH] Fixed possible null pointer exception when the listener is null added preferred language option --- .../maxwell/speechrecognition/SpeechRecognition.java | 10 ++++++++-- .../SpeechRecognitionPermissions.java | 9 ++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognition.java b/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognition.java index ad45845..98856ed 100644 --- a/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognition.java +++ b/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognition.java @@ -12,6 +12,8 @@ import android.support.annotation.Nullable; import android.util.Log; +import java.util.Locale; + /** * Created by Maxwell on 13-Jan-18. */ @@ -86,8 +88,12 @@ public void setSpeechRecognitionPermissionListener(@NonNull OnSpeechRecognitionP this.onSpeechRecognitionPermissionListener = onSpeechRecognitionPermissionListener; } - public void setPreferredLanguage(){ - throw new UnsupportedOperationException(); + public void setPreferredLanguage(String preferredLanguage) { + recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, preferredLanguage); + } + + public void setDevicePreferredLanguage() { + recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault().toString().replace("_", "-")); } /** diff --git a/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognitionPermissions.java b/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognitionPermissions.java index 878d677..e58e1cb 100644 --- a/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognitionPermissions.java +++ b/app/src/main/java/com/maxwell/speechrecognition/SpeechRecognitionPermissions.java @@ -57,11 +57,14 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in // If request is granted, the result arrays are not empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - onSpeechRecognitionPermissionListener.onPermissionGranted(); + if (onSpeechRecognitionPermissionListener != null) { + onSpeechRecognitionPermissionListener.onPermissionGranted(); + } return; } } - - onSpeechRecognitionPermissionListener.onPermissionDenied(); + if (onSpeechRecognitionPermissionListener != null) { + onSpeechRecognitionPermissionListener.onPermissionDenied(); + } } }