kopia lustrzana https://github.com/ryukoposting/Signal-Android
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
rodzic
c27f5787fe
commit
bd915cdd7f
|
@ -553,6 +553,8 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
|
||||||
}
|
}
|
||||||
cursor = Objects.requireNonNull(data.first);
|
cursor = Objects.requireNonNull(data.first);
|
||||||
|
|
||||||
|
viewModel.setCursor(this, cursor, leftIsRecent);
|
||||||
|
|
||||||
int mediaPosition = Objects.requireNonNull(data.second);
|
int mediaPosition = Objects.requireNonNull(data.second);
|
||||||
|
|
||||||
CursorPagerAdapter oldAdapter = (CursorPagerAdapter) mediaPager.getAdapter();
|
CursorPagerAdapter oldAdapter = (CursorPagerAdapter) mediaPager.getAdapter();
|
||||||
|
@ -565,13 +567,13 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
|
||||||
oldAdapter.setActive(true);
|
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;
|
if (item == 0) {
|
||||||
mediaPager.setCurrentItem(item);
|
viewPagerListener.onPageSelected(0);
|
||||||
|
}
|
||||||
if (item == 0) {
|
|
||||||
viewPagerListener.onPageSelected(0);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mediaNotAvailable();
|
mediaNotAvailable();
|
||||||
|
|
Ładowanie…
Reference in New Issue