Fix issue where video controls may be missing.

Fixes #9121
This commit is contained in:
Greyson Parrelli 2019-10-23 14:36:50 -07:00
parent 7507dadbe7
commit d075a33d4e
2 changed files with 26 additions and 8 deletions

View file

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

View file

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