diff options
author | ByteHamster <info@bytehamster.com> | 2020-01-25 22:52:00 +0100 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-01-25 22:52:00 +0100 |
commit | 190b54ad70ccf25f869eb92b9699f0d90552974f (patch) | |
tree | fd64af8ec492ff9366d482628ce0d4eac4f390d3 /core/src/main/java/de/danoeh | |
parent | e2ec07f607ff05e900ac2dd524945ba8f9ff775c (diff) | |
download | AntennaPod-190b54ad70ccf25f869eb92b9699f0d90552974f.zip |
Converted to EventBus instead of broadcast
Diffstat (limited to 'core/src/main/java/de/danoeh')
3 files changed, 35 insertions, 35 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/settings/VolumeAdaptionChangedEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/settings/VolumeAdaptionChangedEvent.java new file mode 100644 index 000000000..3ed84f6a8 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/event/settings/VolumeAdaptionChangedEvent.java @@ -0,0 +1,21 @@ +package de.danoeh.antennapod.core.event.settings; + +import de.danoeh.antennapod.core.feed.VolumeAdaptionSetting; + +public class VolumeAdaptionChangedEvent { + private final VolumeAdaptionSetting volumeAdaptionSetting; + private final long feedId; + + public VolumeAdaptionChangedEvent(VolumeAdaptionSetting volumeAdaptionSetting, long feedId) { + this.volumeAdaptionSetting = volumeAdaptionSetting; + this.feedId = feedId; + } + + public VolumeAdaptionSetting getVolumeAdaptionSetting() { + return volumeAdaptionSetting; + } + + public long getFeedId() { + return feedId; + } +} diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 577e482ec..2fb37cc05 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -41,7 +41,6 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.Target; -import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -51,13 +50,13 @@ import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.event.PlaybackPositionEvent; import de.danoeh.antennapod.core.event.ServiceEvent; +import de.danoeh.antennapod.core.event.settings.VolumeAdaptionChangedEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; import de.danoeh.antennapod.core.feed.SearchResult; -import de.danoeh.antennapod.core.feed.VolumeAdaptionSetting; import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.SleepTimerPreferences; @@ -79,6 +78,7 @@ import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; /** * Controls the MediaPlayer that plays a FeedMedia-file @@ -137,13 +137,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { public static final String ACTION_PAUSE_PLAY_CURRENT_EPISODE = "action.de.danoeh.antennapod.core.service.pausePlayCurrentEpisode"; /** - * If the PlaybackService receives this action, it will try to apply the supplied volume adaption setting. - */ - public static final String ACTION_VOLUME_ADAPTION_CHANGED = "action.de.danoeh.antennapod.core.service.volumedAdaptionChanged"; - public static final String EXTRA_VOLUME_ADAPTION_SETTING = "PlaybackService.VolumeAdaptionSettingExtra"; - public static final String EXTRA_VOLUME_ADAPTION_AFFECTED_FEED = "PlaybackService.VolumeAdaptionSettingAffectedFeed"; - - /** * Custom action used by Android Wear */ private static final String CUSTOM_ACTION_FAST_FORWARD = "action.de.danoeh.antennapod.core.service.fastForward"; @@ -284,7 +277,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { registerReceiver(audioBecomingNoisy, new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY)); registerReceiver(skipCurrentEpisodeReceiver, new IntentFilter(ACTION_SKIP_CURRENT_EPISODE)); registerReceiver(pausePlayCurrentEpisodeReceiver, new IntentFilter(ACTION_PAUSE_PLAY_CURRENT_EPISODE)); - registerReceiver(volumeAdaptionChangedReceiver, new IntentFilter(ACTION_VOLUME_ADAPTION_CHANGED)); + EventBus.getDefault().register(this); taskManager = new PlaybackServiceTaskManager(this, taskManagerCallback); flavorHelper = new PlaybackServiceFlavorHelper(PlaybackService.this, flavorHelperCallback); @@ -356,7 +349,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { unregisterReceiver(audioBecomingNoisy); unregisterReceiver(skipCurrentEpisodeReceiver); unregisterReceiver(pausePlayCurrentEpisodeReceiver); - unregisterReceiver(volumeAdaptionChangedReceiver); flavorHelper.removeCastConsumer(); flavorHelper.unregisterWifiBroadcastReceiver(); mediaPlayer.shutdown(); @@ -1445,21 +1437,11 @@ public class PlaybackService extends MediaBrowserServiceCompat { } }; - private final BroadcastReceiver volumeAdaptionChangedReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (TextUtils.equals(intent.getAction(), ACTION_VOLUME_ADAPTION_CHANGED)) { - Log.d(TAG, "Received ACTION_VOLUME_ADAPTION_CHANGED intent"); - - String affectedFeed = intent.getStringExtra(EXTRA_VOLUME_ADAPTION_AFFECTED_FEED); - Serializable volumeAdaptionExtra = intent.getSerializableExtra(EXTRA_VOLUME_ADAPTION_SETTING); - VolumeAdaptionSetting volumeAdaptionSetting = (VolumeAdaptionSetting) volumeAdaptionExtra; - - PlaybackVolumeUpdater playbackVolumeUpdater = new PlaybackVolumeUpdater(); - playbackVolumeUpdater.updateVolumeIfNecessary(mediaPlayer, affectedFeed, volumeAdaptionSetting); - } - } - }; + @Subscribe + public void volumeAdaptionChanged(VolumeAdaptionChangedEvent event) { + PlaybackVolumeUpdater playbackVolumeUpdater = new PlaybackVolumeUpdater(); + playbackVolumeUpdater.updateVolumeIfNecessary(mediaPlayer, event.getFeedId(), event.getVolumeAdaptionSetting()); + } public static MediaType getCurrentMediaType() { return currentMediaType; diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackVolumeUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackVolumeUpdater.java index 9e8f34de5..0ef7e55bc 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackVolumeUpdater.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackVolumeUpdater.java @@ -7,18 +7,20 @@ import de.danoeh.antennapod.core.util.playback.Playable; class PlaybackVolumeUpdater { - public void updateVolumeIfNecessary(PlaybackServiceMediaPlayer mediaPlayer, String affectedFeedIdentifier, VolumeAdaptionSetting volumeAdaptionSetting) { + public void updateVolumeIfNecessary(PlaybackServiceMediaPlayer mediaPlayer, long feedId, + VolumeAdaptionSetting volumeAdaptionSetting) { Playable playable = mediaPlayer.getPlayable(); boolean isFeedMedia = playable instanceof FeedMedia; boolean isPlayableLoaded = isPlayableLoaded(mediaPlayer.getPlayerStatus()); if (isFeedMedia && isPlayableLoaded) { - updateFeedMediaVolumeIfNecessary(mediaPlayer, affectedFeedIdentifier, volumeAdaptionSetting, (FeedMedia) playable); + updateFeedMediaVolumeIfNecessary(mediaPlayer, feedId, volumeAdaptionSetting, (FeedMedia) playable); } } - private void updateFeedMediaVolumeIfNecessary(PlaybackServiceMediaPlayer mediaPlayer, String affectedFeedIdentifier, VolumeAdaptionSetting volumeAdaptionSetting, FeedMedia feedMedia) { - if (mediaBelongsToAffectedFeed(feedMedia, affectedFeedIdentifier)) { + private void updateFeedMediaVolumeIfNecessary(PlaybackServiceMediaPlayer mediaPlayer, long feedId, + VolumeAdaptionSetting volumeAdaptionSetting, FeedMedia feedMedia) { + if (feedMedia.getItem().getFeed().getId() == feedId) { FeedPreferences preferences = feedMedia.getItem().getFeed().getPreferences(); preferences.setVolumeAdaptionSetting(volumeAdaptionSetting); @@ -37,11 +39,6 @@ class PlaybackVolumeUpdater { || playerStatus == PlayerStatus.INITIALIZING; } - private static boolean mediaBelongsToAffectedFeed(FeedMedia feedMedia, String affectedFeedIdentifier) { - return affectedFeedIdentifier != null - && affectedFeedIdentifier.equals(feedMedia.getItem().getFeed().getIdentifyingValue()); - } - private void forceUpdateVolume(PlaybackServiceMediaPlayer mediaPlayer) { mediaPlayer.pause(false, false); mediaPlayer.resume(); |