From e730d34b8a5e7f0d4f5c4fb244e4dfe41847c470 Mon Sep 17 00:00:00 2001 From: Floens Date: Sat, 17 Nov 2018 22:20:11 +0100 Subject: [PATCH] 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). --- .../chan/core/presenter/ImageViewerPresenter.java | 7 ++++--- .../org/floens/chan/ui/view/MultiImageView.java | 13 ++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java index 3bcf8d64..3fd938ce 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java @@ -189,6 +189,10 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. } 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); setTitle(postImage, position); callback.scrollToImage(postImage); @@ -205,9 +209,6 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. callback.showProgress(progress.get(selectedPosition) >= 0f); 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 diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java index 67f4a2d7..cddf0436 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java @@ -182,14 +182,13 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener public void setVolume(boolean muted) { final float volume = muted ? 0f : 1f; - if (ChanSettings.videoUseExoplayer.get()) { - if (exoPlayer != null) { - exoPlayer.getAudioComponent().setVolume(volume); - } - } else { - if (mediaPlayer != null) { - mediaPlayer.setVolume(volume, volume); + if (exoPlayer != null) { + Player.AudioComponent audioComponent = exoPlayer.getAudioComponent(); + if (audioComponent != null) { + audioComponent.setVolume(volume); } + } else if (mediaPlayer != null) { + mediaPlayer.setVolume(volume, volume); } }