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.
fork-5.53.8
Rashad Sookram 2022-03-01 09:43:01 -05:00 zatwierdzone przez Alex Hart
rodzic c27f5787fe
commit bd915cdd7f
1 zmienionych plików z 8 dodań i 6 usunięć

Wyświetl plik

@ -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();