Fix crash from using a closed Cursor.

The call to setActive was causing the cursor held by the ViewModel to be
used, which hadn't been updated yet.
This commit is contained in:
Rashad Sookram
2022-03-01 09:43:01 -05:00
committed by Alex Hart
parent c27f5787fe
commit bd915cdd7f

View File

@@ -553,6 +553,8 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
}
cursor = Objects.requireNonNull(data.first);
viewModel.setCursor(this, cursor, leftIsRecent);
int mediaPosition = Objects.requireNonNull(data.second);
CursorPagerAdapter oldAdapter = (CursorPagerAdapter) mediaPager.getAdapter();
@@ -565,13 +567,13 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
oldAdapter.setActive(true);
}
viewModel.setCursor(this, cursor, leftIsRecent);
if (oldAdapter == null || restartItem >= 0) {
int item = restartItem >= 0 ? restartItem : mediaPosition;
mediaPager.setCurrentItem(item);
int item = restartItem >= 0 ? restartItem : mediaPosition;
mediaPager.setCurrentItem(item);
if (item == 0) {
viewPagerListener.onPageSelected(0);
if (item == 0) {
viewPagerListener.onPageSelected(0);
}
}
} else {
mediaNotAvailable();