Added refresh item to subscriptions view
This commit is contained in:
parent
39a9a48c99
commit
889144f993
|
@ -25,19 +25,28 @@ import de.danoeh.antennapod.activity.MainActivity;
|
||||||
import de.danoeh.antennapod.adapter.SubscriptionsAdapter;
|
import de.danoeh.antennapod.adapter.SubscriptionsAdapter;
|
||||||
import de.danoeh.antennapod.core.asynctask.FeedRemover;
|
import de.danoeh.antennapod.core.asynctask.FeedRemover;
|
||||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||||
|
import de.danoeh.antennapod.core.event.DownloadEvent;
|
||||||
|
import de.danoeh.antennapod.core.event.DownloaderUpdate;
|
||||||
import de.danoeh.antennapod.core.feed.EventDistributor;
|
import de.danoeh.antennapod.core.feed.EventDistributor;
|
||||||
import de.danoeh.antennapod.core.feed.Feed;
|
import de.danoeh.antennapod.core.feed.Feed;
|
||||||
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
|
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
|
||||||
|
import de.danoeh.antennapod.core.service.download.DownloadService;
|
||||||
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||||
import de.danoeh.antennapod.core.storage.DBReader;
|
import de.danoeh.antennapod.core.storage.DBReader;
|
||||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||||
|
import de.danoeh.antennapod.core.storage.DownloadRequester;
|
||||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||||
|
import de.danoeh.antennapod.core.util.download.AutoUpdateManager;
|
||||||
import de.danoeh.antennapod.dialog.RenameFeedDialog;
|
import de.danoeh.antennapod.dialog.RenameFeedDialog;
|
||||||
|
import de.danoeh.antennapod.menuhandler.MenuItemUtils;
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.Disposable;
|
import io.reactivex.disposables.Disposable;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment for displaying feed subscriptions
|
* Fragment for displaying feed subscriptions
|
||||||
|
@ -56,6 +65,7 @@ public class SubscriptionFragment extends Fragment {
|
||||||
private SubscriptionsAdapter subscriptionAdapter;
|
private SubscriptionsAdapter subscriptionAdapter;
|
||||||
|
|
||||||
private int mPosition = -1;
|
private int mPosition = -1;
|
||||||
|
private boolean isUpdatingFeeds = false;
|
||||||
|
|
||||||
private Disposable disposable;
|
private Disposable disposable;
|
||||||
private SharedPreferences prefs;
|
private SharedPreferences prefs;
|
||||||
|
@ -89,6 +99,8 @@ public class SubscriptionFragment extends Fragment {
|
||||||
menu.findItem(R.id.subscription_num_columns_3).setChecked(columns == 3);
|
menu.findItem(R.id.subscription_num_columns_3).setChecked(columns == 3);
|
||||||
menu.findItem(R.id.subscription_num_columns_4).setChecked(columns == 4);
|
menu.findItem(R.id.subscription_num_columns_4).setChecked(columns == 4);
|
||||||
menu.findItem(R.id.subscription_num_columns_5).setChecked(columns == 5);
|
menu.findItem(R.id.subscription_num_columns_5).setChecked(columns == 5);
|
||||||
|
|
||||||
|
isUpdatingFeeds = MenuItemUtils.updateRefreshMenuItem(menu, R.id.refresh_item, updateRefreshMenuItemChecker);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -97,6 +109,9 @@ public class SubscriptionFragment extends Fragment {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
|
case R.id.refresh_item:
|
||||||
|
AutoUpdateManager.runImmediate(requireContext());
|
||||||
|
return true;
|
||||||
case R.id.subscription_num_columns_2:
|
case R.id.subscription_num_columns_2:
|
||||||
setColumnNumber(2);
|
setColumnNumber(2);
|
||||||
return true;
|
return true;
|
||||||
|
@ -136,6 +151,7 @@ public class SubscriptionFragment extends Fragment {
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
EventDistributor.getInstance().register(contentUpdate);
|
EventDistributor.getInstance().register(contentUpdate);
|
||||||
|
EventBus.getDefault().register(this);
|
||||||
loadSubscriptions();
|
loadSubscriptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +159,7 @@ public class SubscriptionFragment extends Fragment {
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
EventDistributor.getInstance().unregister(contentUpdate);
|
EventDistributor.getInstance().unregister(contentUpdate);
|
||||||
|
EventBus.getDefault().unregister(this);
|
||||||
if(disposable != null) {
|
if(disposable != null) {
|
||||||
disposable.dispose();
|
disposable.dispose();
|
||||||
}
|
}
|
||||||
|
@ -278,6 +295,18 @@ public class SubscriptionFragment 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;
|
||||||
|
if (isUpdatingFeeds != update.feedIds.length > 0) {
|
||||||
|
getActivity().invalidateOptionsMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final MenuItemUtils.UpdateRefreshMenuItemChecker updateRefreshMenuItemChecker =
|
||||||
|
() -> DownloadService.isRunning && DownloadRequester.getInstance().isDownloadingFeeds();
|
||||||
|
|
||||||
private final SubscriptionsAdapter.ItemAccess itemAccess = new SubscriptionsAdapter.ItemAccess() {
|
private final SubscriptionsAdapter.ItemAccess itemAccess = new SubscriptionsAdapter.ItemAccess() {
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
|
|
|
@ -2,6 +2,13 @@
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:custom="http://schemas.android.com/apk/res-auto">
|
xmlns:custom="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/refresh_item"
|
||||||
|
android:title="@string/refresh_label"
|
||||||
|
android:menuCategory="container"
|
||||||
|
custom:showAsAction="always"
|
||||||
|
android:icon="?attr/navigation_refresh"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/subscription_num_columns"
|
android:id="@+id/subscription_num_columns"
|
||||||
android:title="@string/subscription_num_columns"
|
android:title="@string/subscription_num_columns"
|
||||||
|
|
Loading…
Reference in New Issue