Search in sources :

Example 41 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class RemoteMedia method equals.

@Override
public boolean equals(Object other) {
    if (other instanceof RemoteMedia) {
        RemoteMedia rm = (RemoteMedia) other;
        return TextUtils.equals(downloadUrl, rm.downloadUrl) && TextUtils.equals(feedUrl, rm.feedUrl) && TextUtils.equals(itemIdentifier, rm.itemIdentifier);
    }
    if (other instanceof FeedMedia) {
        FeedMedia fm = (FeedMedia) other;
        if (!TextUtils.equals(downloadUrl, fm.getStreamUrl())) {
            return false;
        }
        FeedItem fi = fm.getItem();
        if (fi == null || !TextUtils.equals(itemIdentifier, fi.getItemIdentifier())) {
            return false;
        }
        Feed feed = fi.getFeed();
        return feed != null && TextUtils.equals(feedUrl, feed.getDownload_url());
    }
    return false;
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 42 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class FeedItemUtilTest method createFeedItem.

private static FeedItem createFeedItem(String feedLink, String itemLink) {
    Feed feed = new Feed();
    feed.setLink(feedLink);
    FeedItem feedItem = new FeedItem();
    feedItem.setLink(itemLink);
    feedItem.setFeed(feed);
    feed.setItems(Collections.singletonList(feedItem));
    return feedItem;
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 43 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class FeedItemPermutorsTest method getTestList.

/**
 * Generates a list with test data.
 */
private List<FeedItem> getTestList() {
    List<FeedItem> itemList = new ArrayList<>();
    Calendar calendar = Calendar.getInstance();
    // January 1st
    calendar.set(2019, 0, 1);
    Feed feed1 = new Feed(null, null, "Feed title 1");
    FeedItem feedItem1 = new FeedItem(1, "Title 1", null, null, calendar.getTime(), 0, feed1);
    FeedMedia feedMedia1 = new FeedMedia(0, feedItem1, 1000, 0, 0, null, null, null, true, null, 0, 0);
    feedItem1.setMedia(feedMedia1);
    itemList.add(feedItem1);
    // March 1st
    calendar.set(2019, 2, 1);
    Feed feed2 = new Feed(null, null, "Feed title 3");
    FeedItem feedItem2 = new FeedItem(3, "Title 3", null, null, calendar.getTime(), 0, feed2);
    FeedMedia feedMedia2 = new FeedMedia(0, feedItem2, 3000, 0, 0, null, null, null, true, null, 0, 0);
    feedItem2.setMedia(feedMedia2);
    itemList.add(feedItem2);
    // February 1st
    calendar.set(2019, 1, 1);
    Feed feed3 = new Feed(null, null, "Feed title 2");
    FeedItem feedItem3 = new FeedItem(2, "Title 2", null, null, calendar.getTime(), 0, feed3);
    FeedMedia feedMedia3 = new FeedMedia(0, feedItem3, 2000, 0, 0, null, null, null, true, null, 0, 0);
    feedItem3.setMedia(feedMedia3);
    itemList.add(feedItem3);
    return itemList;
}
Also used : FeedItem(de.danoeh.antennapod.model.feed.FeedItem) FeedMedia(de.danoeh.antennapod.model.feed.FeedMedia) Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 44 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class RemoveFeedDialog method showDialog.

private static void showDialog(Context context, List<Feed> feeds, String message) {
    ConfirmationDialog dialog = new ConfirmationDialog(context, R.string.remove_feed_label, message) {

        @Override
        public void onConfirmButtonPressed(DialogInterface clickedDialog) {
            clickedDialog.dismiss();
            ProgressDialog progressDialog = new ProgressDialog(context);
            progressDialog.setMessage(context.getString(R.string.feed_remover_msg));
            progressDialog.setIndeterminate(true);
            progressDialog.setCancelable(false);
            progressDialog.show();
            Completable.fromAction(() -> {
                for (Feed feed : feeds) {
                    DBWriter.deleteFeed(context, feed.getId()).get();
                }
            }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(() -> {
                Log.d(TAG, "Feed(s) deleted");
                progressDialog.dismiss();
            }, error -> {
                Log.e(TAG, Log.getStackTraceString(error));
                progressDialog.dismiss();
            });
        }
    };
    dialog.createNewDialog().show();
}
Also used : DialogInterface(android.content.DialogInterface) ProgressDialog(android.app.ProgressDialog) ConfirmationDialog(de.danoeh.antennapod.core.dialog.ConfirmationDialog) Feed(de.danoeh.antennapod.model.feed.Feed)

Example 45 with Feed

use of de.danoeh.antennapod.model.feed.Feed in project AntennaPod by AntennaPod.

the class RenameItemDialog method show.

public void show() {
    Activity activity = activityRef.get();
    if (activity == null) {
        return;
    }
    View content = View.inflate(activity, R.layout.edit_text_dialog, null);
    EditTextDialogBinding alertViewBinding = EditTextDialogBinding.bind(content);
    String title = feed != null ? feed.getTitle() : drawerItem.getTitle();
    alertViewBinding.urlEditText.setText(title);
    AlertDialog dialog = new AlertDialog.Builder(activity).setView(content).setTitle(feed != null ? R.string.rename_feed_label : R.string.rename_tag_label).setPositiveButton(android.R.string.ok, (d, input) -> {
        String newTitle = alertViewBinding.urlEditText.getText().toString();
        if (feed != null) {
            feed.setCustomTitle(newTitle);
            DBWriter.setFeedCustomTitle(feed);
        } else {
            renameTag(newTitle);
        }
    }).setNeutralButton(de.danoeh.antennapod.core.R.string.reset, null).setNegativeButton(de.danoeh.antennapod.core.R.string.cancel_label, null).show();
    // To prevent cancelling the dialog on button click
    dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener((view) -> alertViewBinding.urlEditText.setText(title));
}
Also used : AlertDialog(androidx.appcompat.app.AlertDialog) List(java.util.List) NavDrawerData(de.danoeh.antennapod.core.storage.NavDrawerData) FeedPreferences(de.danoeh.antennapod.model.feed.FeedPreferences) AlertDialog(androidx.appcompat.app.AlertDialog) DBWriter(de.danoeh.antennapod.core.storage.DBWriter) R(de.danoeh.antennapod.R) View(android.view.View) EditTextDialogBinding(de.danoeh.antennapod.databinding.EditTextDialogBinding) WeakReference(java.lang.ref.WeakReference) Activity(android.app.Activity) Feed(de.danoeh.antennapod.model.feed.Feed) ArrayList(java.util.ArrayList) Activity(android.app.Activity) View(android.view.View) EditTextDialogBinding(de.danoeh.antennapod.databinding.EditTextDialogBinding)

Aggregations

Feed (de.danoeh.antennapod.model.feed.Feed)125 FeedItem (de.danoeh.antennapod.model.feed.FeedItem)75 Test (org.junit.Test)61 ArrayList (java.util.ArrayList)43 Date (java.util.Date)37 File (java.io.File)31 FeedMedia (de.danoeh.antennapod.model.feed.FeedMedia)27 Cursor (android.database.Cursor)15 FeedPreferences (de.danoeh.antennapod.model.feed.FeedPreferences)12 NonNull (androidx.annotation.NonNull)10 Nullable (androidx.annotation.Nullable)8 View (android.view.View)7 DownloadStatus (de.danoeh.antennapod.core.service.download.DownloadStatus)7 Log (android.util.Log)6 R (de.danoeh.antennapod.R)6 DownloadRequest (de.danoeh.antennapod.core.service.download.DownloadRequest)6 List (java.util.List)6 ViewGroup (android.view.ViewGroup)5 AlertDialog (androidx.appcompat.app.AlertDialog)5 RequestOptions (com.bumptech.glide.request.RequestOptions)5