Handle RuntimeException in Picker UI queries
Bug: 299077775
Test: Fixes flakes in CloudPhotoPickerTest#testVersionChange
Change-Id: I3bb3d1c8fd034dd6a3bb4b881f6b9c9e69cd8f9f
diff --git a/src/com/android/providers/media/photopicker/viewmodel/PickerViewModel.java b/src/com/android/providers/media/photopicker/viewmodel/PickerViewModel.java
index 5e1e05d..99f27ec 100644
--- a/src/com/android/providers/media/photopicker/viewmodel/PickerViewModel.java
+++ b/src/com/android/providers/media/photopicker/viewmodel/PickerViewModel.java
@@ -525,12 +525,18 @@
private Cursor fetchItems(Category category, UserId userId,
PaginationParameters pagingParameters) {
- if (shouldShowOnlyLocalFeatures()) {
- return mItemsProvider.getLocalItems(category, pagingParameters,
- mMimeTypeFilters, userId, mCancellationSignal);
- } else {
- return mItemsProvider.getAllItems(category, pagingParameters,
- mMimeTypeFilters, userId, mCancellationSignal);
+ try {
+ if (shouldShowOnlyLocalFeatures()) {
+ return mItemsProvider.getLocalItems(category, pagingParameters,
+ mMimeTypeFilters, userId, mCancellationSignal);
+ } else {
+ return mItemsProvider.getAllItems(category, pagingParameters,
+ mMimeTypeFilters, userId, mCancellationSignal);
+ }
+ } catch (RuntimeException ignored) {
+ // Catch OperationCanceledException.
+ Log.e(TAG, "Failed to fetch items due to a runtime exception", ignored);
+ return null;
}
}
@@ -689,10 +695,18 @@
}
private Cursor fetchCategories(UserId userId) {
- if (shouldShowOnlyLocalFeatures()) {
- return mItemsProvider.getLocalCategories(mMimeTypeFilters, userId, mCancellationSignal);
- } else {
- return mItemsProvider.getAllCategories(mMimeTypeFilters, userId, mCancellationSignal);
+ try {
+ if (shouldShowOnlyLocalFeatures()) {
+ return mItemsProvider
+ .getLocalCategories(mMimeTypeFilters, userId, mCancellationSignal);
+ } else {
+ return mItemsProvider
+ .getAllCategories(mMimeTypeFilters, userId, mCancellationSignal);
+ }
+ } catch (RuntimeException ignored) {
+ // Catch OperationCanceledException.
+ Log.e(TAG, "Failed to fetch categories due to a runtime exception", ignored);
+ return null;
}
}