Skip to content

Commit 63c2b74

Browse files
authored
Fix crash when ML Kit GenAI feature is not available on device (#44)
* Fix crash when ML Kit GenAI feature is not available on device * Use Log.e() for logging exceptions
1 parent 8cb484b commit 63c2b74

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed

ai-catalog/samples/genai-image-description/src/main/java/com/android/ai/samples/genai_image_description/GenAIImageDescriptionViewModel.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package com.android.ai.samples.genai_image_description
2020
import android.content.Context
2121
import android.net.Uri
2222
import android.provider.MediaStore
23+
import android.util.Log
2324
import androidx.lifecycle.ViewModel
2425
import androidx.lifecycle.viewModelScope
2526
import com.android.ai.samples.geminimultimodal.R
@@ -52,7 +53,13 @@ class GenAIImageDescriptionViewModel @Inject constructor() : ViewModel() {
5253

5354
viewModelScope.launch {
5455
imageDescriber?.let { imageDescriber ->
55-
val featureStatus = imageDescriber.checkFeatureStatus().await()
56+
var featureStatus = FeatureStatus.UNAVAILABLE
57+
58+
try {
59+
featureStatus = imageDescriber.checkFeatureStatus().await()
60+
} catch (error: Exception) {
61+
Log.e("GenAIImageDesc", "Error checking feature status", error)
62+
}
5663

5764
if (featureStatus == FeatureStatus.UNAVAILABLE) {
5865
_resultGenerated.value =

ai-catalog/samples/genai-summarization/src/main/java/com/android/ai/samples/genai_summarization/GenAISummarizationViewModel.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.android.ai.samples.genai_summarization
1919

2020
import android.content.Context
21+
import android.util.Log
2122
import androidx.lifecycle.ViewModel
2223
import androidx.lifecycle.viewModelScope
2324
import com.google.mlkit.genai.common.FeatureStatus
@@ -52,7 +53,15 @@ class GenAISummarizationViewModel @Inject constructor() : ViewModel() {
5253

5354
viewModelScope.launch {
5455
summarizer?.let { summarizer ->
55-
val featureStatus = summarizer.checkFeatureStatus().await()
56+
57+
var featureStatus = FeatureStatus.UNAVAILABLE
58+
59+
try {
60+
featureStatus = summarizer.checkFeatureStatus().await()
61+
} catch (error: Exception) {
62+
Log.e("GenAISummarization", "Error checking feature status", error)
63+
}
64+
5665
if (featureStatus == FeatureStatus.UNAVAILABLE) {
5766
_summarizationGenerated.value =
5867
context.getString(R.string.summarization_not_available)

ai-catalog/samples/genai-writing-assistance/src/main/java/com/android/ai/samples/genai_writing_assistance/GenAIWritingAssistanceViewModel.kt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.android.ai.samples.genai_writing_assistance
1919

2020
import android.content.Context
21+
import android.util.Log
2122
import androidx.lifecycle.ViewModel
2223
import androidx.lifecycle.viewModelScope
2324
import com.google.mlkit.genai.common.FeatureStatus
@@ -59,7 +60,15 @@ class GenAIWritingAssistanceViewModel @Inject constructor() : ViewModel() {
5960

6061
viewModelScope.launch {
6162
proofreader?.let { proofreader ->
62-
val proofreadFeatureStatus = proofreader.checkFeatureStatus().await()
63+
64+
var proofreadFeatureStatus = FeatureStatus.UNAVAILABLE
65+
66+
try {
67+
proofreadFeatureStatus = proofreader.checkFeatureStatus().await()
68+
} catch (error: Exception) {
69+
Log.e("GenAIProofread", "Error checking feature status", error)
70+
}
71+
6372
if (proofreadFeatureStatus == FeatureStatus.UNAVAILABLE) {
6473
_resultGenerated.value =
6574
context.getString(R.string.genai_writing_assistance_not_available)
@@ -105,7 +114,14 @@ class GenAIWritingAssistanceViewModel @Inject constructor() : ViewModel() {
105114

106115
viewModelScope.launch {
107116
rewriter?.let { rewriter ->
108-
val rewriteFeatureStatus = rewriter.checkFeatureStatus().await()
117+
var rewriteFeatureStatus = FeatureStatus.UNAVAILABLE
118+
119+
try {
120+
rewriteFeatureStatus = rewriter.checkFeatureStatus().await()
121+
} catch (error: Exception) {
122+
Log.e("GenAIRewrite", "Error checking feature status", error)
123+
}
124+
109125
if (rewriteFeatureStatus == FeatureStatus.UNAVAILABLE) {
110126
_resultGenerated.value =
111127
context.getString(R.string.genai_writing_assistance_not_available)

0 commit comments

Comments
 (0)