exoplayer: fix audio icon missing after swiping.

the icon has to be reset at the start of onPageSwiped To, because
the explayer callback is immediate and otherwise the reset would
happen after the callback.
also a small change to setVolume to look at the connected players
and not the setting (setting can be changed while playing a video
theoretially).
master
Floens 7 years ago
parent 93043503e0
commit e730d34b8a
  1. 7
      Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java
  2. 13
      Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java

@ -189,6 +189,10 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
} }
private void onPageSwipedTo(int position) { private void onPageSwipedTo(int position) {
// Reset volume icon.
// If it has audio, we'll know after it is loaded.
callback.showVolumeMenuItem(false, true);
PostImage postImage = images.get(selectedPosition); PostImage postImage = images.get(selectedPosition);
setTitle(postImage, position); setTitle(postImage, position);
callback.scrollToImage(postImage); callback.scrollToImage(postImage);
@ -205,9 +209,6 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
callback.showProgress(progress.get(selectedPosition) >= 0f); callback.showProgress(progress.get(selectedPosition) >= 0f);
callback.onLoadProgress(progress.get(selectedPosition)); callback.onLoadProgress(progress.get(selectedPosition));
// If it has audio, we'll know after it is loaded.
callback.showVolumeMenuItem(false, true);
} }
// Called from either a page swipe caused a lowres image to the center or an // Called from either a page swipe caused a lowres image to the center or an

@ -182,14 +182,13 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener
public void setVolume(boolean muted) { public void setVolume(boolean muted) {
final float volume = muted ? 0f : 1f; final float volume = muted ? 0f : 1f;
if (ChanSettings.videoUseExoplayer.get()) { if (exoPlayer != null) {
if (exoPlayer != null) { Player.AudioComponent audioComponent = exoPlayer.getAudioComponent();
exoPlayer.getAudioComponent().setVolume(volume); if (audioComponent != null) {
} audioComponent.setVolume(volume);
} else {
if (mediaPlayer != null) {
mediaPlayer.setVolume(volume, volume);
} }
} else if (mediaPlayer != null) {
mediaPlayer.setVolume(volume, volume);
} }
} }

Loading…
Cancel
Save