Move DBReader to :storage:database (#7027)
This commit is contained in:
parent
15eab50223
commit
69b24699a3
@ -12,9 +12,9 @@ import androidx.test.rule.ActivityTestRule;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.storage.database.LongList;
|
||||
import de.danoeh.antennapod.core.util.playback.PlaybackController;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
|
@ -48,7 +48,7 @@ import de.danoeh.antennapod.model.download.DownloadRequest;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.core.service.download.Downloader;
|
||||
import de.danoeh.antennapod.core.service.download.HttpDownloader;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.net.discovery.CombinedSearcher;
|
||||
import de.danoeh.antennapod.net.discovery.PodcastSearchResult;
|
||||
|
@ -27,8 +27,8 @@ import java.util.List;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.ui.common.ThemeSwitcher;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.databinding.SubscriptionSelectionActivityBinding;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
@ -143,7 +143,8 @@ public class SelectSubscriptionActivity extends AppCompatActivity {
|
||||
}
|
||||
disposable = Observable.fromCallable(
|
||||
() -> {
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter());
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter(),
|
||||
UserPreferences.getFeedOrder(), UserPreferences.getFeedCounterSetting());
|
||||
return getFeedItems(data.items, new ArrayList<>());
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
|
@ -45,7 +45,7 @@ import de.danoeh.antennapod.event.playback.SleepTimerUpdatedEvent;
|
||||
import de.danoeh.antennapod.fragment.ChaptersFragment;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
|
@ -10,7 +10,7 @@ import android.widget.Toast;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.actionbutton.DownloadActionButton;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.DownloadErrorLabel;
|
||||
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
|
||||
import de.danoeh.antennapod.model.download.DownloadError;
|
||||
|
@ -30,7 +30,7 @@ import de.danoeh.antennapod.fragment.CompletedDownloadsFragment;
|
||||
import de.danoeh.antennapod.fragment.InboxFragment;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.fragment.AddFeedFragment;
|
||||
import de.danoeh.antennapod.fragment.NavDrawerFragment;
|
||||
import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
|
||||
|
@ -33,7 +33,7 @@ import java.util.List;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.fragment.FeedItemlistFragment;
|
||||
import de.danoeh.antennapod.fragment.SubscriptionFragment;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
|
@ -11,7 +11,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.util.DownloadErrorLabel;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.event.MessageEvent;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
|
@ -4,6 +4,7 @@ import android.content.Context;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.FeedOrder;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -19,7 +20,7 @@ public class FeedSortDialog {
|
||||
dialog.setTitle(context.getString(R.string.pref_nav_drawer_feed_order_title));
|
||||
dialog.setNegativeButton(android.R.string.cancel, (d, listener) -> d.dismiss());
|
||||
|
||||
int selected = UserPreferences.getFeedOrder();
|
||||
int selected = UserPreferences.getFeedOrder().id;
|
||||
List<String> entryValues =
|
||||
Arrays.asList(context.getResources().getStringArray(R.array.nav_drawer_feed_order_values));
|
||||
final int selectedIndex = entryValues.indexOf("" + selected);
|
||||
@ -27,7 +28,7 @@ public class FeedSortDialog {
|
||||
String[] items = context.getResources().getStringArray(R.array.nav_drawer_feed_order_options);
|
||||
dialog.setSingleChoiceItems(items, selectedIndex, (d, which) -> {
|
||||
if (selectedIndex != which) {
|
||||
UserPreferences.setFeedOrder(entryValues.get(which));
|
||||
UserPreferences.setFeedOrder(FeedOrder.fromOrdinal(Integer.parseInt(entryValues.get(which))));
|
||||
//Update subscriptions
|
||||
EventBus.getDefault().post(new UnreadItemsUpdateEvent());
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import android.view.LayoutInflater;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
|
||||
|
@ -22,10 +22,12 @@ import java.util.Set;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.adapter.SimpleChipAdapter;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.databinding.EditTagsDialogBinding;
|
||||
import de.danoeh.antennapod.model.feed.FeedCounter;
|
||||
import de.danoeh.antennapod.model.feed.FeedOrder;
|
||||
import de.danoeh.antennapod.model.feed.FeedPreferences;
|
||||
import de.danoeh.antennapod.view.ItemOffsetDecoration;
|
||||
import io.reactivex.Observable;
|
||||
@ -110,7 +112,7 @@ public class TagSettingsDialog extends DialogFragment {
|
||||
private void loadTags() {
|
||||
Observable.fromCallable(
|
||||
() -> {
|
||||
NavDrawerData data = DBReader.getNavDrawerData(null);
|
||||
NavDrawerData data = DBReader.getNavDrawerData(null, FeedOrder.ALPHABETICAL, FeedCounter.SHOW_NONE);
|
||||
List<NavDrawerData.DrawerItem> items = data.items;
|
||||
List<String> folders = new ArrayList<String>();
|
||||
for (NavDrawerData.DrawerItem item : items) {
|
||||
|
@ -8,8 +8,8 @@ import java.util.concurrent.TimeUnit;
|
||||
import android.util.Log;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import de.danoeh.antennapod.core.BuildConfig;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
@ -8,7 +8,7 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.dialog.AllEpisodesFilterDialog;
|
||||
import de.danoeh.antennapod.dialog.ItemSortDialog;
|
||||
import de.danoeh.antennapod.event.FeedListUpdateEvent;
|
||||
|
@ -20,7 +20,7 @@ import de.danoeh.antennapod.adapter.EpisodeItemListAdapter;
|
||||
import de.danoeh.antennapod.adapter.actionbutton.DeleteActionButton;
|
||||
import de.danoeh.antennapod.event.DownloadLogEvent;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
|
||||
import de.danoeh.antennapod.dialog.ItemSortDialog;
|
||||
|
@ -25,7 +25,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.OnlineFeedViewActivity;
|
||||
import de.danoeh.antennapod.adapter.itunes.ItunesAdapter;
|
||||
import de.danoeh.antennapod.core.BuildConfig;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.event.DiscoveryDefaultUpdateEvent;
|
||||
import de.danoeh.antennapod.net.discovery.ItunesTopListLoader;
|
||||
import de.danoeh.antennapod.net.discovery.PodcastSearchResult;
|
||||
|
@ -14,7 +14,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.adapter.DownloadLogAdapter;
|
||||
import de.danoeh.antennapod.event.DownloadLogEvent;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.databinding.DownloadLogFragmentBinding;
|
||||
import de.danoeh.antennapod.dialog.DownloadLogDetailsDialog;
|
||||
|
@ -34,7 +34,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||
import de.danoeh.antennapod.core.util.ShareUtils;
|
||||
|
@ -41,9 +41,9 @@ import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.EpisodeItemListAdapter;
|
||||
import de.danoeh.antennapod.event.FeedEvent;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.util.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.storage.database.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||
import de.danoeh.antennapod.core.util.ShareUtils;
|
||||
|
@ -36,7 +36,7 @@ import de.danoeh.antennapod.model.feed.FeedFilter;
|
||||
import de.danoeh.antennapod.model.feed.FeedPreferences;
|
||||
import de.danoeh.antennapod.model.feed.VolumeAdaptionSetting;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.dialog.EpisodeFilterDialog;
|
||||
import de.danoeh.antennapod.dialog.FeedPreferenceSkipDialog;
|
||||
|
@ -14,7 +14,7 @@ import androidx.annotation.Nullable;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.dialog.ItemSortDialog;
|
||||
import de.danoeh.antennapod.event.FeedListUpdateEvent;
|
||||
|
@ -13,7 +13,7 @@ import android.view.ViewGroup;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.playback.PlaybackController;
|
||||
import de.danoeh.antennapod.core.util.gui.ShownotesCleaner;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
|
@ -48,7 +48,7 @@ import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
|
||||
import de.danoeh.antennapod.storage.preferences.UsageStatistics;
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.ui.common.DateFormatter;
|
||||
import de.danoeh.antennapod.ui.common.CircularProgressBar;
|
||||
|
@ -21,7 +21,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.event.FeedItemEvent;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
|
@ -33,6 +33,7 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.google.android.material.shape.MaterialShapeDrawable;
|
||||
import com.google.android.material.shape.ShapeAppearanceModel;
|
||||
|
||||
import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithmFactory;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
@ -50,9 +51,9 @@ import de.danoeh.antennapod.activity.PreferenceActivity;
|
||||
import de.danoeh.antennapod.adapter.NavListAdapter;
|
||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.dialog.DrawerPreferencesDialog;
|
||||
import de.danoeh.antennapod.dialog.RemoveFeedDialog;
|
||||
import de.danoeh.antennapod.dialog.RenameItemDialog;
|
||||
@ -92,6 +93,7 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
|
||||
};
|
||||
|
||||
private NavDrawerData navDrawerData;
|
||||
private int reclaimableSpace = 0;
|
||||
private List<NavDrawerData.DrawerItem> flatItemList;
|
||||
private NavDrawerData.DrawerItem contextPressedItem = null;
|
||||
private NavListAdapter navAdapter;
|
||||
@ -325,7 +327,7 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
|
||||
|
||||
@Override
|
||||
public int getReclaimableItems() {
|
||||
return (navDrawerData != null) ? navDrawerData.reclaimableSpace : 0;
|
||||
return reclaimableSpace;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -414,7 +416,9 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
|
||||
private void loadData() {
|
||||
disposable = Observable.fromCallable(
|
||||
() -> {
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter());
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter(),
|
||||
UserPreferences.getFeedOrder(), UserPreferences.getFeedCounterSetting());
|
||||
reclaimableSpace = EpisodeCleanupAlgorithmFactory.build().getReclaimableItems();
|
||||
return new Pair<>(data, makeFlatDrawerData(data.items, 0));
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
|
@ -9,7 +9,7 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.event.playback.PlaybackHistoryEvent;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
|
@ -41,7 +41,7 @@ import de.danoeh.antennapod.adapter.QueueRecyclerAdapter;
|
||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||
import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
|
@ -21,7 +21,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.activity.OnlineFeedViewActivity;
|
||||
import de.danoeh.antennapod.adapter.FeedDiscoverAdapter;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.event.DiscoveryDefaultUpdateEvent;
|
||||
import de.danoeh.antennapod.net.discovery.ItunesTopListLoader;
|
||||
import de.danoeh.antennapod.net.discovery.PodcastSearchResult;
|
||||
|
@ -34,8 +34,8 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.SubscriptionsRecyclerAdapter;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
|
||||
import de.danoeh.antennapod.dialog.FeedSortDialog;
|
||||
import de.danoeh.antennapod.dialog.RenameItemDialog;
|
||||
@ -277,7 +277,8 @@ public class SubscriptionFragment extends Fragment
|
||||
emptyView.hide();
|
||||
disposable = Observable.fromCallable(
|
||||
() -> {
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter());
|
||||
NavDrawerData data = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter(),
|
||||
UserPreferences.getFeedOrder(), UserPreferences.getFeedCounterSetting());
|
||||
List<NavDrawerData.DrawerItem> items = data.items;
|
||||
for (NavDrawerData.DrawerItem item : items) {
|
||||
if (item.type == NavDrawerData.DrawerItem.Type.TAG
|
||||
|
@ -12,7 +12,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.storage.database.LongList;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.view.LocalDeleteModal;
|
||||
|
||||
|
@ -28,7 +28,7 @@ import com.google.android.material.snackbar.Snackbar;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.OpmlImportActivity;
|
||||
import de.danoeh.antennapod.activity.PreferenceActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
|
@ -8,7 +8,7 @@ import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
|
@ -30,7 +30,7 @@ import java.util.List;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
|
||||
import de.danoeh.antennapod.databinding.HomeFragmentBinding;
|
||||
import de.danoeh.antennapod.event.FeedListUpdateEvent;
|
||||
@ -193,7 +193,8 @@ public class HomeFragment extends Fragment implements Toolbar.OnMenuItemClickLis
|
||||
disposable.dispose();
|
||||
}
|
||||
disposable = Observable.fromCallable(() ->
|
||||
DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter()).items.size())
|
||||
DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter(),
|
||||
UserPreferences.getFeedOrder(), UserPreferences.getFeedCounterSetting()).items.size())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(numSubscriptions -> {
|
||||
|
@ -15,7 +15,7 @@ import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.EpisodeItemListAdapter;
|
||||
import de.danoeh.antennapod.event.DownloadLogEvent;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.event.FeedItemEvent;
|
||||
import de.danoeh.antennapod.event.PlayerStatusEvent;
|
||||
import de.danoeh.antennapod.event.playback.PlaybackPositionEvent;
|
||||
|
@ -11,8 +11,8 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import de.danoeh.antennapod.databinding.HomeSectionEchoBinding;
|
||||
import de.danoeh.antennapod.ui.echo.EchoActivity;
|
||||
import de.danoeh.antennapod.ui.home.HomeFragment;
|
||||
|
@ -14,7 +14,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.HorizontalItemListAdapter;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.event.EpisodeDownloadEvent;
|
||||
import de.danoeh.antennapod.event.FeedItemEvent;
|
||||
|
@ -15,7 +15,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.EpisodeItemListAdapter;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.event.EpisodeDownloadEvent;
|
||||
import de.danoeh.antennapod.event.FeedItemEvent;
|
||||
|
@ -14,7 +14,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.HorizontalItemListAdapter;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.event.EpisodeDownloadEvent;
|
||||
import de.danoeh.antennapod.event.FeedItemEvent;
|
||||
|
@ -16,7 +16,7 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.adapter.HorizontalFeedListAdapter;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.event.FeedListUpdateEvent;
|
||||
import de.danoeh.antennapod.fragment.SubscriptionFragment;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
|
@ -35,7 +35,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
|
||||
public class OpmlBackupAgent extends BackupAgentHelper {
|
||||
private static final String OPML_BACKUP_KEY = "opml";
|
||||
|
@ -30,7 +30,7 @@ import de.danoeh.antennapod.core.R;
|
||||
import de.danoeh.antennapod.core.util.FastDocumentFile;
|
||||
import de.danoeh.antennapod.model.MediaMetadataRetrieverCompat;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.parser.feed.util.DateUtils;
|
||||
|
@ -24,7 +24,7 @@ import de.danoeh.antennapod.core.service.download.DownloadRequestCreator;
|
||||
import de.danoeh.antennapod.core.service.download.Downloader;
|
||||
import de.danoeh.antennapod.core.service.download.NewEpisodesNotification;
|
||||
import de.danoeh.antennapod.core.service.download.handler.FeedParserTask;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.net.common.NetworkUtils;
|
||||
|
@ -21,7 +21,7 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
import de.danoeh.antennapod.core.ClientConfigurator;
|
||||
import de.danoeh.antennapod.core.R;
|
||||
import de.danoeh.antennapod.core.service.download.handler.MediaDownloadedHandler;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.event.MessageEvent;
|
||||
import de.danoeh.antennapod.model.download.DownloadError;
|
||||
|
@ -16,7 +16,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
|
||||
import de.danoeh.antennapod.model.download.DownloadRequest;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.sync.queue.SynchronizationQueueSink;
|
||||
import de.danoeh.antennapod.core.util.ChapterUtils;
|
||||
|
@ -69,7 +69,7 @@ import de.danoeh.antennapod.storage.preferences.SleepTimerPreferences;
|
||||
import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
|
||||
import de.danoeh.antennapod.core.service.QuickSettingsTileService;
|
||||
import de.danoeh.antennapod.core.service.playback.PlaybackServiceTaskManager.SleepTimer;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.storage.FeedSearcher;
|
||||
import de.danoeh.antennapod.core.sync.queue.SynchronizationQueueSink;
|
||||
|
@ -17,6 +17,7 @@ import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
|
||||
/**
|
||||
* Implementation of the EpisodeCleanupAlgorithm interface used by AntennaPod.
|
||||
|
@ -14,6 +14,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
|
||||
/**
|
||||
* A cleanup algorithm that removes any item that isn't in the queue and isn't a favorite
|
||||
|
@ -13,6 +13,7 @@ import de.danoeh.antennapod.core.util.PlaybackStatus;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedPreferences;
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.net.common.NetworkUtils;
|
||||
import de.danoeh.antennapod.core.util.PowerUtils;
|
||||
|
@ -18,6 +18,7 @@ import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.model.feed.FeedPreferences;
|
||||
import de.danoeh.antennapod.net.sync.model.EpisodeAction;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
import de.danoeh.antennapod.storage.database.mapper.FeedCursorMapper;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
|
@ -16,6 +16,7 @@ import de.danoeh.antennapod.event.DownloadLogEvent;
|
||||
import de.danoeh.antennapod.core.feed.LocalFeedUpdater;
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||
import de.danoeh.antennapod.core.service.playback.PlaybackServiceInterface;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@ -44,10 +45,10 @@ import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.core.sync.queue.SynchronizationQueueSink;
|
||||
import de.danoeh.antennapod.core.util.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.storage.database.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.core.util.Permutor;
|
||||
import de.danoeh.antennapod.storage.database.LongList;
|
||||
import de.danoeh.antennapod.storage.database.Permutor;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
|
@ -3,6 +3,7 @@ package de.danoeh.antennapod.core.storage;
|
||||
import android.content.Context;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
|
||||
public abstract class EpisodeCleanupAlgorithm {
|
||||
|
@ -15,6 +15,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
|
||||
/**
|
||||
|
@ -42,12 +42,12 @@ import de.danoeh.antennapod.core.R;
|
||||
import de.danoeh.antennapod.event.SyncServiceEvent;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.sync.queue.SynchronizationQueueStorage;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.storage.database.LongList;
|
||||
import de.danoeh.antennapod.net.common.UrlChecker;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
|
@ -10,7 +10,7 @@ import de.danoeh.antennapod.model.feed.Chapter;
|
||||
import de.danoeh.antennapod.core.feed.ChapterMerger;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.parser.feed.PodcastIndexChapterParser;
|
||||
import de.danoeh.antennapod.parser.media.id3.ChapterReader;
|
||||
import de.danoeh.antennapod.parser.media.id3.ID3ReaderException;
|
||||
|
@ -13,7 +13,7 @@ import android.util.Pair;
|
||||
import android.view.SurfaceHolder;
|
||||
import androidx.annotation.NonNull;
|
||||
import de.danoeh.antennapod.core.service.playback.PlaybackServiceInterface;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.event.playback.PlaybackPositionEvent;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
|
@ -10,7 +10,7 @@ import androidx.work.Worker;
|
||||
import androidx.work.WorkerParameters;
|
||||
import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils;
|
||||
import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.model.playback.Playable;
|
||||
import de.danoeh.antennapod.playback.base.PlayerStatus;
|
||||
|
||||
|
@ -36,7 +36,7 @@ import java.util.Objects;
|
||||
import de.danoeh.antennapod.core.ApplicationCallbacks;
|
||||
import de.danoeh.antennapod.core.ClientConfig;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.endsWith;
|
||||
|
@ -12,12 +12,16 @@ import java.util.Random;
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedCounter;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.model.feed.FeedOrder;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.NavDrawerData;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.storage.database.LongList;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
@ -331,7 +335,8 @@ public class DbReaderTest {
|
||||
final int numFeeds = 10;
|
||||
final int numItems = 10;
|
||||
DbTestUtils.saveFeedlist(numFeeds, numItems, true);
|
||||
NavDrawerData navDrawerData = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter());
|
||||
NavDrawerData navDrawerData = DBReader.getNavDrawerData(
|
||||
UserPreferences.getSubscriptionsFilter(), FeedOrder.COUNTER, FeedCounter.SHOW_NEW);
|
||||
assertEquals(numFeeds, navDrawerData.items.size());
|
||||
assertEquals(0, navDrawerData.numNewItems);
|
||||
assertEquals(0, navDrawerData.queueSize);
|
||||
@ -360,7 +365,8 @@ public class DbReaderTest {
|
||||
|
||||
adapter.close();
|
||||
|
||||
NavDrawerData navDrawerData = DBReader.getNavDrawerData(UserPreferences.getSubscriptionsFilter());
|
||||
NavDrawerData navDrawerData = DBReader.getNavDrawerData(
|
||||
UserPreferences.getSubscriptionsFilter(), FeedOrder.COUNTER, FeedCounter.SHOW_NEW);
|
||||
assertEquals(numFeeds, navDrawerData.items.size());
|
||||
assertEquals(numNew, navDrawerData.numNewItems);
|
||||
assertEquals(numQueue, navDrawerData.queueSize);
|
||||
|
@ -5,6 +5,7 @@ import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package de.danoeh.antennapod.core.storage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -9,7 +8,6 @@ import de.danoeh.antennapod.model.feed.Chapter;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.core.util.comparator.FeedItemPubdateComparator;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@ -62,7 +60,6 @@ abstract class DbTestUtils {
|
||||
}
|
||||
f.getItems().add(item);
|
||||
}
|
||||
Collections.sort(f.getItems(), new FeedItemPubdateComparator());
|
||||
adapter.setCompleteFeed(f);
|
||||
assertTrue(f.getId() != 0);
|
||||
for (FeedItem item : f.getItems()) {
|
||||
|
@ -12,6 +12,7 @@ import androidx.test.platform.app.InstrumentationRegistry;
|
||||
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
|
||||
import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterfaceStub;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
import org.awaitility.Awaitility;
|
||||
import org.junit.After;
|
||||
|
@ -1,6 +1,8 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.storage.database.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.storage.database.Permutor;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -0,0 +1,23 @@
|
||||
package de.danoeh.antennapod.model.feed;
|
||||
|
||||
public enum FeedOrder {
|
||||
COUNTER(0),
|
||||
ALPHABETICAL(1),
|
||||
MOST_PLAYED(3),
|
||||
MOST_RECENT_EPISODE(2);
|
||||
|
||||
public final int id;
|
||||
|
||||
FeedOrder(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public static FeedOrder fromOrdinal(int id) {
|
||||
for (FeedOrder counter : values()) {
|
||||
if (counter.id == id) {
|
||||
return counter;
|
||||
}
|
||||
}
|
||||
return MOST_RECENT_EPISODE;
|
||||
}
|
||||
}
|
@ -15,5 +15,8 @@ dependencies {
|
||||
implementation project(':model')
|
||||
|
||||
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
|
||||
implementation "androidx.core:core:$coreVersion"
|
||||
implementation "commons-io:commons-io:$commonsioVersion"
|
||||
|
||||
testImplementation "junit:junit:$junitVersion"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.storage;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import android.database.Cursor;
|
||||
import android.util.Log;
|
||||
@ -14,19 +14,17 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import de.danoeh.antennapod.core.util.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.core.util.LongList;
|
||||
import de.danoeh.antennapod.model.feed.Chapter;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedCounter;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.model.feed.FeedMedia;
|
||||
import de.danoeh.antennapod.model.feed.FeedOrder;
|
||||
import de.danoeh.antennapod.model.feed.FeedPreferences;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.model.feed.SubscriptionsFilter;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.model.download.DownloadResult;
|
||||
import de.danoeh.antennapod.storage.database.PodDBAdapter;
|
||||
import de.danoeh.antennapod.storage.database.mapper.ChapterCursorMapper;
|
||||
import de.danoeh.antennapod.storage.database.mapper.DownloadResultCursorMapper;
|
||||
import de.danoeh.antennapod.storage.database.mapper.FeedCursorMapper;
|
||||
@ -223,7 +221,7 @@ public final class DBReader {
|
||||
}
|
||||
|
||||
@NonNull
|
||||
static List<FeedItem> getQueue(PodDBAdapter adapter) {
|
||||
public static List<FeedItem> getQueue(PodDBAdapter adapter) {
|
||||
Log.d(TAG, "getQueue()");
|
||||
try (Cursor cursor = adapter.getQueueCursor()) {
|
||||
List<FeedItem> items = extractItemlistFromCursor(adapter, cursor);
|
||||
@ -759,12 +757,12 @@ public final class DBReader {
|
||||
* items.
|
||||
*/
|
||||
@NonNull
|
||||
public static NavDrawerData getNavDrawerData(@Nullable SubscriptionsFilter subscriptionsFilter) {
|
||||
Log.d(TAG, "getNavDrawerData() called with: " + "");
|
||||
public static NavDrawerData getNavDrawerData(@Nullable SubscriptionsFilter subscriptionsFilter,
|
||||
FeedOrder feedOrder, FeedCounter feedCounter) {
|
||||
PodDBAdapter adapter = PodDBAdapter.getInstance();
|
||||
adapter.open();
|
||||
|
||||
final Map<Long, Integer> feedCounters = adapter.getFeedCounters(UserPreferences.getFeedCounterSetting());
|
||||
final Map<Long, Integer> feedCounters = adapter.getFeedCounters(feedCounter);
|
||||
List<Feed> feeds = getFeedList(adapter);
|
||||
|
||||
if (subscriptionsFilter != null) {
|
||||
@ -772,54 +770,57 @@ public final class DBReader {
|
||||
}
|
||||
|
||||
Comparator<Feed> comparator;
|
||||
int feedOrder = UserPreferences.getFeedOrder();
|
||||
if (feedOrder == UserPreferences.FEED_ORDER_COUNTER) {
|
||||
comparator = (lhs, rhs) -> {
|
||||
long counterLhs = feedCounters.containsKey(lhs.getId()) ? feedCounters.get(lhs.getId()) : 0;
|
||||
long counterRhs = feedCounters.containsKey(rhs.getId()) ? feedCounters.get(rhs.getId()) : 0;
|
||||
if (counterLhs > counterRhs) {
|
||||
// reverse natural order: podcast with most unplayed episodes first
|
||||
return -1;
|
||||
} else if (counterLhs == counterRhs) {
|
||||
return lhs.getTitle().compareToIgnoreCase(rhs.getTitle());
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
} else if (feedOrder == UserPreferences.FEED_ORDER_ALPHABETICAL) {
|
||||
comparator = (lhs, rhs) -> {
|
||||
String t1 = lhs.getTitle();
|
||||
String t2 = rhs.getTitle();
|
||||
if (t1 == null) {
|
||||
return 1;
|
||||
} else if (t2 == null) {
|
||||
return -1;
|
||||
} else {
|
||||
return t1.compareToIgnoreCase(t2);
|
||||
}
|
||||
};
|
||||
} else if (feedOrder == UserPreferences.FEED_ORDER_MOST_PLAYED) {
|
||||
final Map<Long, Integer> playedCounters = adapter.getPlayedEpisodesCounters();
|
||||
|
||||
comparator = (lhs, rhs) -> {
|
||||
long counterLhs = playedCounters.containsKey(lhs.getId()) ? playedCounters.get(lhs.getId()) : 0;
|
||||
long counterRhs = playedCounters.containsKey(rhs.getId()) ? playedCounters.get(rhs.getId()) : 0;
|
||||
if (counterLhs > counterRhs) {
|
||||
// podcast with most played episodes first
|
||||
return -1;
|
||||
} else if (counterLhs == counterRhs) {
|
||||
return lhs.getTitle().compareToIgnoreCase(rhs.getTitle());
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
} else {
|
||||
final Map<Long, Long> recentPubDates = adapter.getMostRecentItemDates();
|
||||
comparator = (lhs, rhs) -> {
|
||||
long dateLhs = recentPubDates.containsKey(lhs.getId()) ? recentPubDates.get(lhs.getId()) : 0;
|
||||
long dateRhs = recentPubDates.containsKey(rhs.getId()) ? recentPubDates.get(rhs.getId()) : 0;
|
||||
return Long.compare(dateRhs, dateLhs);
|
||||
};
|
||||
switch (feedOrder) {
|
||||
case COUNTER:
|
||||
comparator = (lhs, rhs) -> {
|
||||
long counterLhs = feedCounters.containsKey(lhs.getId()) ? feedCounters.get(lhs.getId()) : 0;
|
||||
long counterRhs = feedCounters.containsKey(rhs.getId()) ? feedCounters.get(rhs.getId()) : 0;
|
||||
if (counterLhs > counterRhs) {
|
||||
// reverse natural order: podcast with most unplayed episodes first
|
||||
return -1;
|
||||
} else if (counterLhs == counterRhs) {
|
||||
return lhs.getTitle().compareToIgnoreCase(rhs.getTitle());
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
break;
|
||||
case ALPHABETICAL:
|
||||
comparator = (lhs, rhs) -> {
|
||||
String t1 = lhs.getTitle();
|
||||
String t2 = rhs.getTitle();
|
||||
if (t1 == null) {
|
||||
return 1;
|
||||
} else if (t2 == null) {
|
||||
return -1;
|
||||
} else {
|
||||
return t1.compareToIgnoreCase(t2);
|
||||
}
|
||||
};
|
||||
break;
|
||||
case MOST_PLAYED:
|
||||
final Map<Long, Integer> playedCounters = adapter.getPlayedEpisodesCounters();
|
||||
comparator = (lhs, rhs) -> {
|
||||
long counterLhs = playedCounters.containsKey(lhs.getId()) ? playedCounters.get(lhs.getId()) : 0;
|
||||
long counterRhs = playedCounters.containsKey(rhs.getId()) ? playedCounters.get(rhs.getId()) : 0;
|
||||
if (counterLhs > counterRhs) {
|
||||
// podcast with most played episodes first
|
||||
return -1;
|
||||
} else if (counterLhs == counterRhs) {
|
||||
return lhs.getTitle().compareToIgnoreCase(rhs.getTitle());
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
break;
|
||||
default:
|
||||
final Map<Long, Long> recentPubDates = adapter.getMostRecentItemDates();
|
||||
comparator = (lhs, rhs) -> {
|
||||
long dateLhs = recentPubDates.containsKey(lhs.getId()) ? recentPubDates.get(lhs.getId()) : 0;
|
||||
long dateRhs = recentPubDates.containsKey(rhs.getId()) ? recentPubDates.get(rhs.getId()) : 0;
|
||||
return Long.compare(dateRhs, dateLhs);
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
Collections.sort(feeds, comparator);
|
||||
@ -852,8 +853,7 @@ public final class DBReader {
|
||||
Collections.sort(foldersSorted, (o1, o2) -> o1.getTitle().compareToIgnoreCase(o2.getTitle()));
|
||||
items.addAll(foldersSorted);
|
||||
|
||||
NavDrawerData result = new NavDrawerData(items, queueSize, numNewItems, numDownloadedItems,
|
||||
feedCounters, EpisodeCleanupAlgorithmFactory.build().getReclaimableItems());
|
||||
NavDrawerData result = new NavDrawerData(items, queueSize, numNewItems, numDownloadedItems, feedCounters);
|
||||
adapter.close();
|
||||
return result;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.storage;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
|
||||
@ -12,20 +12,17 @@ public class NavDrawerData {
|
||||
public final int numNewItems;
|
||||
public final int numDownloadedItems;
|
||||
public final Map<Long, Integer> feedCounters;
|
||||
public final int reclaimableSpace;
|
||||
|
||||
public NavDrawerData(List<DrawerItem> feeds,
|
||||
int queueSize,
|
||||
int numNewItems,
|
||||
int numDownloadedItems,
|
||||
Map<Long, Integer> feedIndicatorValues,
|
||||
int reclaimableSpace) {
|
||||
Map<Long, Integer> feedIndicatorValues) {
|
||||
this.items = feeds;
|
||||
this.queueSize = queueSize;
|
||||
this.numNewItems = numNewItems;
|
||||
this.numDownloadedItems = numDownloadedItems;
|
||||
this.feedCounters = feedIndicatorValues;
|
||||
this.reclaimableSpace = reclaimableSpace;
|
||||
}
|
||||
|
||||
public abstract static class DrawerItem {
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.util;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package de.danoeh.antennapod.core.storage;
|
||||
package de.danoeh.antennapod.storage.database;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
|
@ -13,6 +13,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.FeedOrder;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
|
||||
@ -134,9 +135,6 @@ public class UserPreferences {
|
||||
public static final int NOTIFICATION_BUTTON_PLAYBACK_SPEED = 4;
|
||||
public static final int NOTIFICATION_BUTTON_SLEEP_TIMER = 5;
|
||||
public static final int EPISODE_CACHE_SIZE_UNLIMITED = -1;
|
||||
public static final int FEED_ORDER_COUNTER = 0;
|
||||
public static final int FEED_ORDER_ALPHABETICAL = 1;
|
||||
public static final int FEED_ORDER_MOST_PLAYED = 3;
|
||||
public static final String DEFAULT_PAGE_REMEMBER = "remember";
|
||||
|
||||
private static Context context;
|
||||
@ -239,15 +237,13 @@ public class UserPreferences {
|
||||
return showButtonOnFullNotification(NOTIFICATION_BUTTON_SLEEP_TIMER);
|
||||
}
|
||||
|
||||
public static int getFeedOrder() {
|
||||
String value = prefs.getString(PREF_DRAWER_FEED_ORDER, "" + FEED_ORDER_COUNTER);
|
||||
return Integer.parseInt(value);
|
||||
public static FeedOrder getFeedOrder() {
|
||||
String value = prefs.getString(PREF_DRAWER_FEED_ORDER, "" + FeedOrder.COUNTER.id);
|
||||
return FeedOrder.fromOrdinal(Integer.parseInt(value));
|
||||
}
|
||||
|
||||
public static void setFeedOrder(String selected) {
|
||||
prefs.edit()
|
||||
.putString(PREF_DRAWER_FEED_ORDER, selected)
|
||||
.apply();
|
||||
public static void setFeedOrder(FeedOrder feedOrder) {
|
||||
prefs.edit().putString(PREF_DRAWER_FEED_ORDER, "" + feedOrder.id).apply();
|
||||
}
|
||||
|
||||
public static FeedCounter getFeedCounterSetting() {
|
||||
|
@ -15,6 +15,7 @@ android {
|
||||
dependencies {
|
||||
implementation project(":core")
|
||||
implementation project(":model")
|
||||
implementation project(':storage:database')
|
||||
implementation project(":storage:preferences")
|
||||
implementation project(':ui:common')
|
||||
implementation project(':ui:glide')
|
||||
|
@ -24,9 +24,9 @@ import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.ui.echo.databinding.EchoActivityBinding;
|
||||
|
@ -12,6 +12,7 @@ dependencies {
|
||||
implementation project(":core")
|
||||
implementation project(":event")
|
||||
implementation project(":model")
|
||||
implementation project(':storage:database')
|
||||
implementation project(":ui:app-start-intent")
|
||||
implementation project(":ui:common")
|
||||
|
||||
|
@ -12,8 +12,7 @@ import android.widget.TextView;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -14,7 +14,7 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
|
@ -3,7 +3,7 @@ package de.danoeh.antennapod.ui.statistics.downloads;
|
||||
import android.content.Context;
|
||||
import android.text.format.Formatter;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import de.danoeh.antennapod.ui.statistics.PieChartView;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
import de.danoeh.antennapod.ui.statistics.StatisticsListAdapter;
|
||||
|
@ -9,8 +9,8 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.ui.common.DateFormatter;
|
||||
import de.danoeh.antennapod.core.util.ReleaseScheduleGuesser;
|
||||
|
@ -2,7 +2,7 @@ package de.danoeh.antennapod.ui.statistics.subscriptions;
|
||||
|
||||
import android.text.format.DateFormat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.storage.database.StatisticsItem;
|
||||
import de.danoeh.antennapod.ui.common.Converter;
|
||||
import de.danoeh.antennapod.ui.statistics.PieChartView;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
|
@ -15,8 +15,8 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.event.StatisticsEvent;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
import de.danoeh.antennapod.ui.statistics.StatisticsFragment;
|
||||
import io.reactivex.Observable;
|
||||
|
@ -12,7 +12,7 @@ import android.util.AttributeSet;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.common.ThemeUtils;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
|
||||
|
@ -7,7 +7,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -12,8 +12,8 @@ import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.event.StatisticsEvent;
|
||||
import de.danoeh.antennapod.storage.database.DBReader;
|
||||
import de.danoeh.antennapod.ui.statistics.R;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
|
Loading…
x
Reference in New Issue
Block a user