Skip to content

Commit 05ab959

Browse files
committed
adding more FirebaseMlException handling and logging
1 parent f2fed45 commit 05ab959

File tree

8 files changed

+16
-37
lines changed

8 files changed

+16
-37
lines changed

firebase-ml-modeldownloader/src/androidTest/java/com/google/firebase/ml/modeldownloader/TestGetModelLocal.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
*/
4242
@RunWith(AndroidJUnit4.class)
4343
public class TestGetModelLocal {
44-
private FirebaseModelDownloader firebaseModelDownloader;
44+
4545
private static final String MODEL_NAME_LOCAL = "getLocalModel";
4646
private static final String MODEL_NAME_LOCAL_2 = "getLocalModel2";
4747
private static final String MODEL_HASH = "origHash324";
@@ -51,14 +51,13 @@ public class TestGetModelLocal {
5151
private FirebaseApp app;
5252
private File firstDeviceModelFile;
5353
private File firstLoadTempModelFile;
54-
private SharedPreferencesUtil sharedPreferencesUtil;
5554

5655
@Before
5756
public void before() {
5857
app = FirebaseApp.initializeApp(ApplicationProvider.getApplicationContext());
59-
firebaseModelDownloader = FirebaseModelDownloader.getInstance(app);
58+
FirebaseModelDownloader firebaseModelDownloader = FirebaseModelDownloader.getInstance(app);
6059

61-
sharedPreferencesUtil = new SharedPreferencesUtil(app);
60+
SharedPreferencesUtil sharedPreferencesUtil = new SharedPreferencesUtil(app);
6261
// reset shared preferences and downloads for models used by this test.
6362
firebaseModelDownloader.deleteDownloadedModel(MODEL_NAME_LOCAL);
6463
firebaseModelDownloader.deleteDownloadedModel(MODEL_NAME_LOCAL_2);

firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/CustomModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public String getName() {
129129
* progress, returns null, if file update is in progress returns last fully downloaded model.
130130
*/
131131
@Nullable
132-
public File getFile() throws FirebaseMlException {
132+
public File getFile() {
133133
return getFile(ModelFileDownloadService.getInstance());
134134
}
135135

firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/FirebaseModelDownloader.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import androidx.annotation.Nullable;
1919
import androidx.annotation.RequiresApi;
2020
import androidx.annotation.VisibleForTesting;
21-
import com.google.android.datatransport.TransportFactory;
2221
import com.google.android.gms.common.internal.Preconditions;
2322
import com.google.android.gms.tasks.Task;
2423
import com.google.android.gms.tasks.TaskCompletionSource;
@@ -51,13 +50,11 @@ public class FirebaseModelDownloader {
5150

5251
@RequiresApi(api = VERSION_CODES.KITKAT)
5352
FirebaseModelDownloader(
54-
FirebaseApp firebaseApp,
55-
FirebaseInstallationsApi firebaseInstallationsApi,
56-
TransportFactory transportFactory) {
53+
FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi) {
5754
this.firebaseOptions = firebaseApp.getOptions();
5855
this.sharedPreferencesUtil = new SharedPreferencesUtil(firebaseApp);
5956
this.eventLogger = FirebaseMlLogger.getInstance();
60-
this.fileDownloadService = new ModelFileDownloadService(firebaseApp, transportFactory);
57+
this.fileDownloadService = new ModelFileDownloadService(firebaseApp);
6158
this.modelDownloadService =
6259
new CustomModelDownloadService(firebaseApp, firebaseInstallationsApi);
6360

firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/FirebaseModelDownloaderRegistrar.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,11 @@ public List<Component<?>> getComponents() {
4747
return Arrays.asList(
4848
Component.builder(FirebaseModelDownloader.class)
4949
.add(Dependency.required(FirebaseApp.class))
50-
.add(Dependency.required(TransportFactory.class))
5150
.add(Dependency.required(FirebaseInstallationsApi.class))
5251
.factory(
5352
c ->
5453
new FirebaseModelDownloader(
55-
c.get(FirebaseApp.class),
56-
c.get(FirebaseInstallationsApi.class),
57-
c.get(TransportFactory.class)))
54+
c.get(FirebaseApp.class), c.get(FirebaseInstallationsApi.class)))
5855
.build(),
5956
Component.builder(SharedPreferencesUtil.class)
6057
.add(Dependency.required(FirebaseApp.class))
@@ -77,11 +74,7 @@ public List<Component<?>> getComponents() {
7774
.build(),
7875
Component.builder(ModelFileDownloadService.class)
7976
.add(Dependency.required(FirebaseApp.class))
80-
.add(Dependency.required(TransportFactory.class))
81-
.factory(
82-
c ->
83-
new ModelFileDownloadService(
84-
c.get(FirebaseApp.class), c.get(TransportFactory.class)))
77+
.factory(c -> new ModelFileDownloadService(c.get(FirebaseApp.class)))
8578
.build(),
8679
Component.builder(CustomModelDownloadService.class)
8780
.add(Dependency.required(FirebaseApp.class))

firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/internal/CustomModelDownloadService.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ private Task<CustomModel> fetchDownloadDetails(String modelName, HttpURLConnecti
220220
return setAndLogException(
221221
modelName,
222222
httpResponseCode,
223-
errorMessage,
224223
String.format(
225224
Locale.getDefault(),
226225
"Bad http request for model (%s); error message: %s",
@@ -231,14 +230,12 @@ private Task<CustomModel> fetchDownloadDetails(String modelName, HttpURLConnecti
231230
return setAndLogException(
232231
modelName,
233232
httpResponseCode,
234-
errorMessage,
235233
"Too many requests to server please wait before trying again.",
236234
FirebaseMlException.INVALID_ARGUMENT);
237235
case HttpURLConnection.HTTP_SERVER_ERROR:
238236
return setAndLogException(
239237
modelName,
240238
httpResponseCode,
241-
errorMessage,
242239
String.format(
243240
Locale.getDefault(),
244241
"Server issue while fetching model (%s); error message: %s",
@@ -249,7 +246,6 @@ private Task<CustomModel> fetchDownloadDetails(String modelName, HttpURLConnecti
249246
return setAndLogException(
250247
modelName,
251248
httpResponseCode,
252-
errorMessage,
253249
String.format(
254250
Locale.getDefault(),
255251
"Failed to connect to Firebase ML download server with HTTP status code: %d"
@@ -272,11 +268,7 @@ private Task<CustomModel> fetchDownloadDetails(String modelName, HttpURLConnecti
272268
}
273269

274270
private Task<CustomModel> setAndLogException(
275-
String modelName,
276-
int httpResponseCode,
277-
String errorMessage,
278-
String s,
279-
@Code int invalidArgument) {
271+
String modelName, int httpResponseCode, String errorMessage, @Code int invalidArgument) {
280272
eventLogger.logModelInfoRetrieverFailure(
281273
new CustomModel(modelName, "", 0, 0),
282274
ErrorCode.MODEL_INFO_DOWNLOAD_UNSUCCESSFUL_HTTP_STATUS,

firebase-ml-modeldownloader/src/main/java/com/google/firebase/ml/modeldownloader/internal/ModelFileDownloadService.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import androidx.annotation.Nullable;
3434
import androidx.annotation.VisibleForTesting;
3535
import androidx.annotation.WorkerThread;
36-
import com.google.android.datatransport.TransportFactory;
3736
import com.google.android.gms.tasks.Task;
3837
import com.google.android.gms.tasks.TaskCompletionSource;
3938
import com.google.android.gms.tasks.Tasks;
@@ -81,8 +80,7 @@ public class ModelFileDownloadService {
8180
private CustomModelDownloadConditions downloadConditions =
8281
new CustomModelDownloadConditions.Builder().build();
8382

84-
public ModelFileDownloadService(
85-
@NonNull FirebaseApp firebaseApp, TransportFactory transportFactory) {
83+
public ModelFileDownloadService(@NonNull FirebaseApp firebaseApp) {
8684
this.context = firebaseApp.getApplicationContext();
8785
downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
8886
this.fileManager = ModelFileManager.getInstance();

firebase-ml-modeldownloader/src/test/java/com/google/firebase/ml/modeldownloader/CustomModelTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,36 +120,36 @@ public void customModel_getDownloadId() {
120120
}
121121

122122
@Test
123-
public void customModel_getFile_noLocalNoDownloadIncomplete() throws FirebaseMlException {
123+
public void customModel_getFile_noLocalNoDownloadIncomplete() {
124124
when(fileDownloadService.loadNewlyDownloadedModelFile(any(CustomModel.class))).thenReturn(null);
125125
assertNull(CUSTOM_MODEL.getFile(fileDownloadService));
126126
verify(fileDownloadService, times(1)).loadNewlyDownloadedModelFile(any());
127127
}
128128

129129
@Test
130-
public void customModel_getFile_localModelNoDownload() throws FirebaseMlException {
130+
public void customModel_getFile_localModelNoDownload() {
131131
when(fileDownloadService.loadNewlyDownloadedModelFile(any(CustomModel.class))).thenReturn(null);
132132
assertEquals(customModelWithFile.getFile(fileDownloadService), testModelFile);
133133
verify(fileDownloadService, times(1)).loadNewlyDownloadedModelFile(any());
134134
}
135135

136136
@Test
137-
public void customModel_getFile_localModelNoDownload_BadFile() throws FirebaseMlException {
137+
public void customModel_getFile_localModelNoDownload_BadFile() {
138138
when(fileDownloadService.loadNewlyDownloadedModelFile(any(CustomModel.class))).thenReturn(null);
139139
assertNull(CUSTOM_MODEL_BADFILE.getFile(fileDownloadService));
140140
verify(fileDownloadService, times(1)).loadNewlyDownloadedModelFile(any());
141141
}
142142

143143
@Test
144-
public void customModel_getFile_localModelDownloadComplete() throws FirebaseMlException {
144+
public void customModel_getFile_localModelDownloadComplete() {
145145
when(fileDownloadService.loadNewlyDownloadedModelFile(any(CustomModel.class)))
146146
.thenReturn(testModelFile2);
147147
assertEquals(customModelWithFile.getFile(fileDownloadService), testModelFile2);
148148
verify(fileDownloadService, times(1)).loadNewlyDownloadedModelFile(any());
149149
}
150150

151151
@Test
152-
public void customModel_getFile_noLocalDownloadComplete() throws FirebaseMlException {
152+
public void customModel_getFile_noLocalDownloadComplete() {
153153
when(fileDownloadService.loadNewlyDownloadedModelFile(any())).thenReturn(testModelFile);
154154
assertEquals(CUSTOM_MODEL.getFile(fileDownloadService), testModelFile);
155155
verify(fileDownloadService, times(1)).loadNewlyDownloadedModelFile(any());

firebase-ml-modeldownloader/src/test/java/com/google/firebase/ml/modeldownloader/FirebaseModelDownloaderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ public void getModel_latestModel_noLocalModel_modelDownloadServiceFails() throws
429429
}
430430

431431
@Test
432-
public void getModel_latestModel_noLocalModel_error() throws Exception {
432+
public void getModel_latestModel_noLocalModel_error() {
433433
when(mockPrefs.getCustomModelDetails(eq(MODEL_NAME)))
434434
.thenReturn(null)
435435
.thenReturn(null)

0 commit comments

Comments
 (0)