parent
7507dadbe7
commit
d075a33d4e
2 changed files with 26 additions and 8 deletions
|
@ -239,6 +239,11 @@ public final class MediaPreviewActivity extends PassphraseRequiredActionBarActiv
|
|||
return;
|
||||
}
|
||||
|
||||
if (!((MediaItemAdapter) mediaPager.getAdapter()).hasFragmentFor(mediaPager.getCurrentItem())) {
|
||||
Log.d(TAG, "MediaItemAdapter wasn't ready. Posting again...");
|
||||
viewModel.resubmitPreviewData();
|
||||
}
|
||||
|
||||
View playbackControls = ((MediaItemAdapter) mediaPager.getAdapter()).getPlaybackControls(mediaPager.getCurrentItem());
|
||||
|
||||
if (previewData.getAlbumThumbnails().isEmpty() && previewData.getCaption() == null && playbackControls == null) {
|
||||
|
@ -427,16 +432,14 @@ public final class MediaPreviewActivity extends PassphraseRequiredActionBarActiv
|
|||
mediaPager.setAdapter(adapter);
|
||||
adapter.setActive(true);
|
||||
|
||||
Util.postToMain(() -> {
|
||||
viewModel.setCursor(this, data.first, leftIsRecent);
|
||||
viewModel.setCursor(this, data.first, leftIsRecent);
|
||||
|
||||
int item = restartItem >= 0 ? restartItem : data.second;
|
||||
mediaPager.setCurrentItem(item);
|
||||
int item = restartItem >= 0 ? restartItem : data.second;
|
||||
mediaPager.setCurrentItem(item);
|
||||
|
||||
if (item == 0) {
|
||||
viewPagerListener.onPageSelected(0);
|
||||
}
|
||||
});
|
||||
if (item == 0) {
|
||||
viewPagerListener.onPageSelected(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -565,6 +568,11 @@ public final class MediaPreviewActivity extends PassphraseRequiredActionBarActiv
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFragmentFor(int position) {
|
||||
return mediaPreviewFragment != null;
|
||||
}
|
||||
}
|
||||
|
||||
private static void anchorMarginsToBottomInsets(@NonNull View viewToAnchor) {
|
||||
|
@ -703,6 +711,11 @@ public final class MediaPreviewActivity extends PassphraseRequiredActionBarActiv
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFragmentFor(int position) {
|
||||
return mediaFragments.containsKey(position);
|
||||
}
|
||||
|
||||
private int getCursorPosition(int position) {
|
||||
if (leftIsRecent) return position;
|
||||
else return cursor.getCount() - 1 - position;
|
||||
|
@ -737,5 +750,6 @@ public final class MediaPreviewActivity extends PassphraseRequiredActionBarActiv
|
|||
MediaItem getMediaItemFor(int position);
|
||||
void pause(int position);
|
||||
@Nullable View getPlaybackControls(int position);
|
||||
boolean hasFragmentFor(int position);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,6 +83,10 @@ public class MediaPreviewViewModel extends ViewModel {
|
|||
rail.indexOf(activeMedia)));
|
||||
}
|
||||
|
||||
public void resubmitPreviewData() {
|
||||
previewData.postValue(previewData.getValue());
|
||||
}
|
||||
|
||||
private int getCursorPosition(int position) {
|
||||
if (cursor == null) {
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue