From 7d20baf4f920cbec901d2f7408b836cf91d8bc60 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 12 Apr 2019 11:28:29 +0200 Subject: Upgraded EventBus to v3 Also made sure that register/unregister are called in onStart/onStop instead of onResume/onPause (prevents possible MultiWindow problems where updates are not received because activity is not fucused). --- .../danoeh/antennapod/activity/MainActivity.java | 8 ++++++-- .../antennapod/activity/MediaplayerActivity.java | 6 ++++++ .../activity/MediaplayerInfoActivity.java | 19 +++++++----------- .../activity/OnlineFeedViewActivity.java | 18 ++++++++--------- .../danoeh/antennapod/dialog/SleepTimerDialog.java | 2 +- .../antennapod/fragment/AllEpisodesFragment.java | 10 +++++++--- .../antennapod/fragment/ChaptersFragment.java | 5 ++++- .../danoeh/antennapod/fragment/CoverFragment.java | 5 ++++- .../fragment/ExternalPlayerFragment.java | 5 ++++- .../fragment/FavoriteEpisodesFragment.java | 3 +++ .../fragment/ItemDescriptionFragment.java | 5 ++++- .../danoeh/antennapod/fragment/ItemFragment.java | 19 +++++++++++++----- .../antennapod/fragment/ItemlistFragment.java | 15 +++++++++----- .../fragment/PlaybackHistoryFragment.java | 23 ++++++++-------------- .../danoeh/antennapod/fragment/QueueFragment.java | 9 +++++++-- .../fragment/RunningDownloadsFragment.java | 14 +++++++------ 16 files changed, 101 insertions(+), 65 deletions(-) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index 3bbe206f8..0b9735f59 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -43,7 +43,6 @@ import de.danoeh.antennapod.core.dialog.ConfirmationDialog; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.event.ProgressEvent; import de.danoeh.antennapod.core.event.QueueEvent; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; @@ -68,11 +67,13 @@ import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.fragment.SubscriptionFragment; import de.danoeh.antennapod.menuhandler.NavDrawerActivity; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * The activity that is shown when the user launches the app. @@ -765,6 +766,7 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi }, error -> Log.e(TAG, Log.getStackTraceString(error))); } + @Subscribe public void onEvent(QueueEvent event) { Log.d(TAG, "onEvent(" + event + ")"); // we are only interested in the number of queue items, not download status or position @@ -776,6 +778,7 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi loadData(); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ProgressEvent event) { Log.d(TAG, "onEvent(" + event + ")"); switch(event.action) { @@ -794,6 +797,7 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi } } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(MessageEvent event) { Log.d(TAG, "onEvent(" + event + ")"); View parentLayout = findViewById(R.id.drawer_layout); diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index aaab579a2..c31e6b11a 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -68,6 +68,9 @@ import io.reactivex.Observable; 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; /** @@ -285,6 +288,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements controller.init(); loadMediaInfo(); onPositionObserverUpdate(); + EventBus.getDefault().register(this); } @Override @@ -297,6 +301,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements if (disposable != null) { disposable.dispose(); } + EventBus.getDefault().unregister(this); super.onStop(); } @@ -664,6 +669,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements StorageUtils.checkStorageAvailability(this); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ServiceEvent event) { Log.d(TAG, "onEvent(" + event + ")"); if (event.action == ServiceEvent.Action.SERVICE_STARTED) { diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java index 4a1dae3e9..7b2ab3249 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java @@ -7,7 +7,6 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; -import android.support.annotation.Nullable; import android.support.design.widget.AppBarLayout; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; @@ -34,7 +33,6 @@ import com.viewpagerindicator.CirclePageIndicator; import java.util.List; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.adapter.ChaptersListAdapter; import de.danoeh.antennapod.adapter.NavListAdapter; import de.danoeh.antennapod.core.asynctask.FeedRemover; import de.danoeh.antennapod.core.dialog.ConfirmationDialog; @@ -62,11 +60,13 @@ import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; import de.danoeh.antennapod.fragment.QueueFragment; import de.danoeh.antennapod.fragment.SubscriptionFragment; import de.danoeh.antennapod.menuhandler.NavDrawerActivity; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Activity for playing files that do not require a video surface. @@ -107,12 +107,6 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem private Disposable disposable; - @Override - protected void onPause() { - super.onPause(); - EventBus.getDefault().unregister(this); - } - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -127,6 +121,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem disposable.dispose(); } EventDistributor.getInstance().unregister(contentUpdate); + EventBus.getDefault().unregister(this); saveCurrentFragment(); } @@ -176,10 +171,9 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem } @Override - protected void onResume() { - super.onResume(); + protected void onStart() { + super.onStart(); AutoUpdateManager.checkShouldRefreshFeeds(getApplicationContext()); - EventDistributor.getInstance().register(contentUpdate); EventBus.getDefault().register(this); loadData(); @@ -443,6 +437,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem }, error -> Log.e(TAG, Log.getStackTraceString(error))); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(MessageEvent event) { Log.d(TAG, "onEvent(" + event + ")"); View parentLayout = findViewById(R.id.drawer_layout); diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java index 145908e97..35c423a47 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java @@ -31,6 +31,9 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import org.apache.commons.lang3.StringUtils; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -68,7 +71,6 @@ import de.danoeh.antennapod.core.util.URLChecker; import de.danoeh.antennapod.core.util.syndication.FeedDiscoverer; import de.danoeh.antennapod.core.util.syndication.HtmlToPlainText; import de.danoeh.antennapod.dialog.AuthenticationDialog; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -123,6 +125,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity { } }; + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(DownloadEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); setSubscribeButtonState(feed); @@ -193,24 +196,19 @@ public class OnlineFeedViewActivity extends AppCompatActivity { } @Override - protected void onResume() { - super.onResume(); + protected void onStart() { + super.onStart(); isPaused = false; EventDistributor.getInstance().register(listener); EventBus.getDefault().register(this); } @Override - protected void onPause() { - super.onPause(); + protected void onStop() { + super.onStop(); isPaused = true; EventDistributor.getInstance().unregister(listener); EventBus.getDefault().unregister(this); - } - - @Override - protected void onStop() { - super.onStop(); if (downloader != null && !downloader.isFinished()) { downloader.cancel(); } diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java index 4b8601ec6..dc056a3f9 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java @@ -18,7 +18,7 @@ import com.afollestad.materialdialogs.MaterialDialog; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.preferences.SleepTimerPreferences; -import de.greenrobot.event.EventBus; +import org.greenrobot.eventbus.EventBus; public abstract class SleepTimerDialog { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index 20913d414..0352031d9 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -51,11 +51,13 @@ import de.danoeh.antennapod.core.util.FeedItemUtil; import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; import de.danoeh.antennapod.menuhandler.MenuItemUtils; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Shows unread or recently published episodes @@ -106,12 +108,12 @@ public class AllEpisodesFragment extends Fragment { if (viewsCreated && itemsLoaded) { onFragmentLoaded(); } + EventBus.getDefault().register(this); } @Override public void onResume() { super.onResume(); - EventBus.getDefault().registerSticky(this); loadItems(); registerForContextMenu(recyclerView); } @@ -119,7 +121,6 @@ public class AllEpisodesFragment extends Fragment { @Override public void onPause() { super.onPause(); - EventBus.getDefault().unregister(this); saveScrollPosition(); unregisterForContextMenu(recyclerView); } @@ -127,6 +128,7 @@ public class AllEpisodesFragment extends Fragment { @Override public void onStop() { super.onStop(); + EventBus.getDefault().unregister(this); EventDistributor.getInstance().unregister(contentUpdate); if (disposable != null) { disposable.dispose(); @@ -429,6 +431,7 @@ public class AllEpisodesFragment extends Fragment { }; + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); if (episodes == null || listAdapter == null) { @@ -452,6 +455,7 @@ public class AllEpisodesFragment extends Fragment { return true; } + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onEventMainThread(DownloadEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index 8f2073ed0..b30540567 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -11,7 +11,9 @@ import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; -import de.greenrobot.event.EventBus; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; public class ChaptersFragment extends ListFragment { @@ -67,6 +69,7 @@ public class ChaptersFragment extends ListFragment { controller = null; } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ServiceEvent event) { if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { controller.init(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index 88d748c5a..fb92b1e68 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -17,7 +17,9 @@ import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; -import de.greenrobot.event.EventBus; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; /** * Displays the cover and the title of a FeedItem. @@ -86,6 +88,7 @@ public class CoverFragment extends Fragment { EventBus.getDefault().register(this); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ServiceEvent event) { if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { controller.init(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java index 2c35bdba4..45c2232cd 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java @@ -24,11 +24,13 @@ import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; -import de.greenrobot.event.EventBus; import io.reactivex.Maybe; 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; /** * Fragment which is supposed to be displayed outside of the MediaplayerActivity @@ -92,6 +94,7 @@ public class ExternalPlayerFragment extends Fragment { loadMediaInfo(); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ServiceEvent event) { Log.d(TAG, "onEvent(" + event + ")"); if (event.action == ServiceEvent.Action.SERVICE_STARTED) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java index cda89bbd3..d9d9c4c07 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java @@ -18,6 +18,8 @@ import de.danoeh.antennapod.core.event.FavoritesEvent; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; /** @@ -37,6 +39,7 @@ public class FavoriteEpisodesFragment extends AllEpisodesFragment { @Override protected String getPrefName() { return PREF_NAME; } + @Subscribe public void onEvent(FavoritesEvent event) { Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); loadItems(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java index 27ffb0a70..85ee6fb64 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java @@ -36,11 +36,13 @@ import de.danoeh.antennapod.core.util.NetworkUtils; import de.danoeh.antennapod.core.util.ShareUtils; import de.danoeh.antennapod.core.util.playback.PlaybackController; import de.danoeh.antennapod.core.util.playback.Timeline; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Displays the description of a Playable object in a Webview. @@ -313,6 +315,7 @@ public class ItemDescriptionFragment extends Fragment { EventBus.getDefault().register(this); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(ServiceEvent event) { if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { controller.init(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index e114ef405..1d40a36b5 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -68,11 +68,13 @@ import de.danoeh.antennapod.core.util.playback.Timeline; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; import de.danoeh.antennapod.view.OnSwipeGesture; import de.danoeh.antennapod.view.SwipeGestureDetector; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Displays information about a FeedItem and actions. @@ -265,11 +267,16 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { load(); } + @Override + public void onStart() { + super.onStart(); + EventDistributor.getInstance().register(contentUpdate); + EventBus.getDefault().register(this); + } + @Override public void onResume() { super.onResume(); - EventDistributor.getInstance().register(contentUpdate); - EventBus.getDefault().registerSticky(this); if(itemsLoaded) { progbarLoading.setVisibility(View.GONE); updateAppearance(); @@ -277,8 +284,8 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { } @Override - public void onPause() { - super.onPause(); + public void onStop() { + super.onStop(); EventDistributor.getInstance().unregister(contentUpdate); EventBus.getDefault().unregister(this); } @@ -537,6 +544,7 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { ((MainActivity)getActivity()).loadChildFragment(fragment); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); for(FeedItem item : event.items) { @@ -547,6 +555,7 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { } } + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onEventMainThread(DownloadEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index dfd9ac924..98fb9ea11 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -67,11 +67,13 @@ import de.danoeh.antennapod.dialog.RenameFeedDialog; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; import de.danoeh.antennapod.menuhandler.FeedMenuHandler; import de.danoeh.antennapod.menuhandler.MenuItemUtils; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Displays a list of FeedItems. @@ -142,6 +144,8 @@ public class ItemlistFragment extends ListFragment { @Override public void onStart() { super.onStart(); + EventDistributor.getInstance().register(contentUpdate); + EventBus.getDefault().register(this); if (viewsCreated && itemsLoaded) { onFragmentLoaded(); } @@ -150,16 +154,14 @@ public class ItemlistFragment extends ListFragment { @Override public void onResume() { super.onResume(); - EventDistributor.getInstance().register(contentUpdate); - EventBus.getDefault().registerSticky(this); ((MainActivity)getActivity()).getSupportActionBar().setTitle(""); updateProgressBarVisibility(); loadItems(); } @Override - public void onPause() { - super.onPause(); + public void onStop() { + super.onStop(); EventDistributor.getInstance().unregister(contentUpdate); EventBus.getDefault().unregister(this); if(disposable != null) { @@ -358,6 +360,7 @@ public class ItemlistFragment extends ListFragment { activity.getSupportActionBar().setTitle(feed.getTitle()); } + @Subscribe public void onEvent(FeedEvent event) { Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); if(event.feedId == feedID) { @@ -365,6 +368,7 @@ public class ItemlistFragment extends ListFragment { } } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); if(feed == null || feed.getItems() == null || adapter == null) { @@ -379,6 +383,7 @@ public class ItemlistFragment extends ListFragment { } } + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onEventMainThread(DownloadEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java index e8f35b180..efa727ca0 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/PlaybackHistoryFragment.java @@ -31,11 +31,13 @@ import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.FeedItemUtil; import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.view.EmptyViewHandler; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; public class PlaybackHistoryFragment extends ListFragment { @@ -91,29 +93,18 @@ public class PlaybackHistoryFragment extends ListFragment { } - - @Override - public void onResume() { - super.onResume(); - EventBus.getDefault().registerSticky(this); - loadItems(); - } - @Override public void onStart() { super.onStart(); EventDistributor.getInstance().register(contentUpdate); - } - - @Override - public void onPause() { - super.onPause(); - EventBus.getDefault().unregister(this); + EventBus.getDefault().register(this); + loadItems(); } @Override public void onStop() { super.onStop(); + EventBus.getDefault().unregister(this); EventDistributor.getInstance().unregister(contentUpdate); if(disposable != null) { disposable.dispose(); @@ -135,6 +126,7 @@ public class PlaybackHistoryFragment extends ListFragment { viewsCreated = false; } + @Subscribe(sticky = true) public void onEvent(DownloadEvent event) { Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; @@ -193,6 +185,7 @@ public class PlaybackHistoryFragment extends ListFragment { } } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); if(playbackHistory == null) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 1a2152f51..145e2a696 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -52,11 +52,13 @@ import de.danoeh.antennapod.core.util.LongList; import de.danoeh.antennapod.core.util.QueueSorter; import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler; import de.danoeh.antennapod.menuhandler.MenuItemUtils; -import de.greenrobot.event.EventBus; import io.reactivex.Observable; 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; /** * Shows all items in the queue @@ -104,7 +106,7 @@ public class QueueFragment extends Fragment { } loadItems(true); EventDistributor.getInstance().register(contentUpdate); - EventBus.getDefault().registerSticky(this); + EventBus.getDefault().register(this); } @Override @@ -123,6 +125,7 @@ public class QueueFragment extends Fragment { } } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(QueueEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); if(queue == null || recyclerAdapter == null) { @@ -158,6 +161,7 @@ public class QueueFragment extends Fragment { onFragmentLoaded(false); } + @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(FeedItemEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); if(queue == null || recyclerAdapter == null) { @@ -174,6 +178,7 @@ public class QueueFragment extends Fragment { } } + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onEventMainThread(DownloadEvent event) { Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java index 3c40b542c..718502ea2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java @@ -21,7 +21,8 @@ import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequester; import de.danoeh.antennapod.view.EmptyViewHandler; -import de.greenrobot.event.EventBus; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; /** * Displays all running downloads and provides actions to cancel them @@ -54,14 +55,14 @@ public class RunningDownloadsFragment extends ListFragment { } @Override - public void onResume() { - super.onResume(); - EventBus.getDefault().registerSticky(this); + public void onStart() { + super.onStart(); + EventBus.getDefault().register(this); } @Override - public void onPause() { - super.onPause(); + public void onStop() { + super.onStop(); EventBus.getDefault().unregister(this); } @@ -72,6 +73,7 @@ public class RunningDownloadsFragment extends ListFragment { adapter = null; } + @Subscribe(sticky = true) public void onEvent(DownloadEvent event) { Log.d(TAG, "onEvent() called with: " + "event = [" + event + "]"); DownloaderUpdate update = event.update; -- cgit v1.2.3 From 09f4ebf08ad17435249d0daddfe290ae1d0484f4 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 12 Apr 2019 11:39:38 +0200 Subject: Let PlaybackController handle listening for service start --- .../danoeh/antennapod/activity/MediaplayerActivity.java | 16 ---------------- .../de/danoeh/antennapod/fragment/ChaptersFragment.java | 13 ------------- .../de/danoeh/antennapod/fragment/CoverFragment.java | 13 ------------- .../antennapod/fragment/ExternalPlayerFragment.java | 14 -------------- .../antennapod/fragment/ItemDescriptionFragment.java | 13 ------------- 5 files changed, 69 deletions(-) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index c31e6b11a..023a566d6 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -38,7 +38,6 @@ import com.joanzapata.iconify.fonts.FontAwesomeIcons; import java.util.Locale; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; @@ -68,9 +67,6 @@ import io.reactivex.Observable; 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; /** @@ -288,7 +284,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements controller.init(); loadMediaInfo(); onPositionObserverUpdate(); - EventBus.getDefault().register(this); } @Override @@ -301,7 +296,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements if (disposable != null) { disposable.dispose(); } - EventBus.getDefault().unregister(this); super.onStop(); } @@ -669,16 +663,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements StorageUtils.checkStorageAvailability(this); } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - Log.d(TAG, "onEvent(" + event + ")"); - if (event.action == ServiceEvent.Action.SERVICE_STARTED) { - if (controller != null) { - controller.init(); - } - } - } - /** * Called by 'handleStatus()' when the PlaybackService is waiting for * a video surface. diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index b30540567..e91821e7d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -7,13 +7,9 @@ import android.widget.ListView; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.ChaptersListAdapter; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; public class ChaptersFragment extends ListFragment { @@ -58,24 +54,15 @@ public class ChaptersFragment extends ListFragment { }; controller.init(); onMediaChanged(controller.getMedia()); - EventBus.getDefault().register(this); } @Override public void onStop() { super.onStop(); - EventBus.getDefault().unregister(this); controller.release(); controller = null; } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { - controller.init(); - } - } - private void onMediaChanged(Playable media) { if (adapter != null) { adapter.setMedia(media); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java index fb92b1e68..f409c15fb 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java @@ -13,13 +13,9 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; /** * Displays the cover and the title of a FeedItem. @@ -85,20 +81,11 @@ public class CoverFragment extends Fragment { }; controller.init(); loadMediaInfo(); - EventBus.getDefault().register(this); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { - controller.init(); - } } @Override public void onStop() { super.onStop(); - EventBus.getDefault().unregister(this); controller.release(); controller = null; } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java index 45c2232cd..eca54f90b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java @@ -18,7 +18,6 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.MediaType; import de.danoeh.antennapod.core.glide.ApGlideSettings; import de.danoeh.antennapod.core.service.playback.PlaybackService; @@ -28,9 +27,6 @@ import io.reactivex.Maybe; 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; /** * Fragment which is supposed to be displayed outside of the MediaplayerActivity @@ -94,14 +90,6 @@ public class ExternalPlayerFragment extends Fragment { loadMediaInfo(); } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - Log.d(TAG, "onEvent(" + event + ")"); - if (event.action == ServiceEvent.Action.SERVICE_STARTED) { - controller.init(); - } - } - private PlaybackController setupPlaybackController() { return new PlaybackController(getActivity(), true) { @@ -147,7 +135,6 @@ public class ExternalPlayerFragment extends Fragment { public void onStart() { super.onStart(); controller.init(); - EventBus.getDefault().register(this); } @Override @@ -156,7 +143,6 @@ public class ExternalPlayerFragment extends Fragment { if (controller != null) { controller.release(); } - EventBus.getDefault().unregister(this); } @Override diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java index 85ee6fb64..daabb75e4 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java @@ -28,7 +28,6 @@ import android.widget.Toast; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MediaplayerInfoActivity; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.core.util.IntentUtils; @@ -40,9 +39,6 @@ import io.reactivex.Observable; 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; /** * Displays the description of a Playable object in a Webview. @@ -312,20 +308,11 @@ public class ItemDescriptionFragment extends Fragment { }; controller.init(); load(); - EventBus.getDefault().register(this); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { - controller.init(); - } } @Override public void onStop() { super.onStop(); - EventBus.getDefault().unregister(this); controller.release(); controller = null; } -- cgit v1.2.3 From ccbcdb686174ad976e59a85858db08a6398992cc Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 19 May 2019 19:01:26 +0200 Subject: Fixed crash --- .../java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java index 7cbff6210..10380cb2c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java @@ -154,6 +154,13 @@ public class ExternalPlayerFragment extends Fragment { } } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(ServiceEvent event) { + if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { + controller.init(); + } + } + @Override public void onDestroy() { super.onDestroy(); -- cgit v1.2.3 From 55874607dff955ca68e7e1a6c271049c72c1677b Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 19 May 2019 19:13:57 +0200 Subject: No longer need to listen to serviceEvent. PlaybackController does that automatically --- .../java/de/danoeh/antennapod/fragment/ChaptersFragment.java | 12 ------------ .../danoeh/antennapod/fragment/ExternalPlayerFragment.java | 12 ------------ 2 files changed, 24 deletions(-) (limited to 'app/src/main/java/de/danoeh') diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java index f9f84c71e..0ffd1a8da 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java @@ -11,7 +11,6 @@ import java.util.ListIterator; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.ChaptersListAdapter; -import de.danoeh.antennapod.core.event.ServiceEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; @@ -20,9 +19,6 @@ import io.reactivex.Maybe; 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; public class ChaptersFragment extends ListFragment { private static final String TAG = "ChaptersFragment"; @@ -65,7 +61,6 @@ public class ChaptersFragment extends ListFragment { controller.init(); loadMediaInfo(); - EventBus.getDefault().register(this); } @Override @@ -101,13 +96,6 @@ public class ChaptersFragment extends ListFragment { return chapters.size() - 1; } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { - controller.init(); - } - } - private void loadMediaInfo() { if (disposable != null) { disposable.dispose(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java index 10380cb2c..348c73b92 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ExternalPlayerFragment.java @@ -28,9 +28,6 @@ import io.reactivex.Maybe; 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; /** * Fragment which is supposed to be displayed outside of the MediaplayerActivity @@ -141,26 +138,17 @@ public class ExternalPlayerFragment extends Fragment { controller = setupPlaybackController(); controller.init(); loadMediaInfo(); - EventBus.getDefault().register(this); } @Override public void onStop() { super.onStop(); - EventBus.getDefault().unregister(this); if (controller != null) { controller.release(); controller = null; } } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(ServiceEvent event) { - if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) { - controller.init(); - } - } - @Override public void onDestroy() { super.onDestroy(); -- cgit v1.2.3