From 8768144c9107945cfaf56ed4db771c3def8d00de Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 13 Apr 2021 22:48:01 +0200 Subject: Don't handle play image resource in PlaybackController --- .../core/util/playback/PlaybackController.java | 84 +++------------------- 1 file changed, 10 insertions(+), 74 deletions(-) (limited to 'core/src/main/java/de/danoeh') diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java index 9e3f0058e..ac801e6da 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java @@ -7,7 +7,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; -import android.content.res.TypedArray; import android.media.MediaPlayer; import android.os.Build; import android.os.IBinder; @@ -15,7 +14,6 @@ import android.text.TextUtils; import android.util.Log; import android.util.Pair; import android.view.SurfaceHolder; -import android.widget.ImageButton; import androidx.annotation.NonNull; import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.event.MessageEvent; @@ -28,12 +26,6 @@ import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.service.playback.PlaybackServiceMediaPlayer; import de.danoeh.antennapod.core.service.playback.PlayerStatus; -import de.danoeh.antennapod.ui.common.ThemeUtils; -import io.reactivex.Maybe; -import io.reactivex.MaybeOnSubscribe; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -60,8 +52,6 @@ public abstract class PlaybackController { private boolean initialized = false; private boolean eventsRegistered = false; - private Disposable mediaLoader; - public PlaybackController(@NonNull Activity activity) { this.activity = activity; } @@ -77,7 +67,7 @@ public abstract class PlaybackController { if (PlaybackService.isRunning) { initServiceRunning(); } else { - initServiceNotRunning(); + updatePlayButtonShowsPlay(true); } } @@ -312,21 +302,6 @@ public abstract class PlaybackController { * should be used to update the GUI or start/cancel background threads. */ private void handleStatus() { - final int playResource; - final int pauseResource; - final CharSequence playText = activity.getString(R.string.play_label); - final CharSequence pauseText = activity.getString(R.string.pause_label); - - if (PlaybackService.getCurrentMediaType() == MediaType.AUDIO || PlaybackService.isCasting()) { - TypedArray res = activity.obtainStyledAttributes(new int[]{ R.attr.av_play, R.attr.av_pause}); - playResource = res.getResourceId(0, R.drawable.ic_av_play_black_48dp); - pauseResource = res.getResourceId(1, R.drawable.ic_av_pause_black_48dp); - res.recycle(); - } else { - playResource = R.drawable.ic_av_play_white_80dp; - pauseResource = R.drawable.ic_av_pause_white_80dp; - } - Log.d(TAG, "status: " + status.toString()); switch (status) { case ERROR: @@ -336,37 +311,31 @@ public abstract class PlaybackController { case PAUSED: checkMediaInfoLoaded(); onPositionObserverUpdate(); - updatePlayButtonAppearance(playResource, playText); - if (!PlaybackService.isCasting() && - PlaybackService.getCurrentMediaType() == MediaType.VIDEO) { + updatePlayButtonShowsPlay(true); + if (!PlaybackService.isCasting() && PlaybackService.getCurrentMediaType() == MediaType.VIDEO) { setScreenOn(false); } break; case PLAYING: checkMediaInfoLoaded(); - if (!PlaybackService.isCasting() && - PlaybackService.getCurrentMediaType() == MediaType.VIDEO) { + if (!PlaybackService.isCasting() && PlaybackService.getCurrentMediaType() == MediaType.VIDEO) { onAwaitingVideoSurface(); setScreenOn(true); } - updatePlayButtonAppearance(pauseResource, pauseText); + updatePlayButtonShowsPlay(false); break; case PREPARING: checkMediaInfoLoaded(); if (playbackService != null) { - if (playbackService.isStartWhenPrepared()) { - updatePlayButtonAppearance(pauseResource, pauseText); - } else { - updatePlayButtonAppearance(playResource, playText); - } + updatePlayButtonShowsPlay(!playbackService.isStartWhenPrepared()); } break; case STOPPED: - updatePlayButtonAppearance(playResource, playText); + updatePlayButtonShowsPlay(true); break; case PREPARED: checkMediaInfoLoaded(); - updatePlayButtonAppearance(playResource, playText); + updatePlayButtonShowsPlay(true); onPositionObserverUpdate(); break; case SEEKING: @@ -374,7 +343,7 @@ public abstract class PlaybackController { break; case INITIALIZED: checkMediaInfoLoaded(); - updatePlayButtonAppearance(playResource, playText); + updatePlayButtonShowsPlay(true); break; } } @@ -386,16 +355,8 @@ public abstract class PlaybackController { mediaInfoLoaded = true; } - private void updatePlayButtonAppearance(int resource, CharSequence contentDescription) { - ImageButton butPlay = getPlayButton(); - if(butPlay != null) { - butPlay.setImageResource(resource); - butPlay.setContentDescription(contentDescription); - } - } + protected void updatePlayButtonShowsPlay(boolean showPlay) { - public ImageButton getPlayButton() { - return null; } public abstract void loadMediaInfo(); @@ -662,29 +623,4 @@ public abstract class PlaybackController { public boolean isStreaming() { return playbackService != null && playbackService.isStreaming(); } - - private void initServiceNotRunning() { - if (getPlayButton() == null) { - return; - } - Log.v(TAG, "initServiceNotRunning()"); - mediaLoader = Maybe.create((MaybeOnSubscribe) emitter -> { - Playable media = getMedia(); - if (media != null) { - emitter.onSuccess(media); - } else { - emitter.onComplete(); - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(media -> { - if (media.getMediaType() == MediaType.AUDIO) { - getPlayButton().setImageResource( - ThemeUtils.getDrawableFromAttr(activity, de.danoeh.antennapod.core.R.attr.av_play)); - } else { - getPlayButton().setImageResource(R.drawable.ic_av_play_white_80dp); - } - }, error -> Log.e(TAG, Log.getStackTraceString(error))); - } } -- cgit v1.2.3