diff options
Diffstat (limited to 'core/src')
10 files changed, 51 insertions, 9 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java index 25b3a9ae6..f6322d6f4 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java +++ b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java @@ -167,7 +167,7 @@ public class Feed extends FeedFile implements FlattrThing, PicassoImageResource */ public Feed(String url, Date lastUpdate, String title, String username, String password) { this(url, lastUpdate, title); - preferences = new FeedPreferences(0, true, username, password); + preferences = new FeedPreferences(0, true, FeedPreferences.AutoDeleteAction.GLOBAL, username, password); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java index 2f0304182..cb264db03 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java @@ -11,19 +11,26 @@ public class FeedPreferences { private long feedID; private boolean autoDownload; + public enum AutoDeleteAction { + GLOBAL, + YES, + NO + } + private AutoDeleteAction auto_delete_action; private String username; private String password; - public FeedPreferences(long feedID, boolean autoDownload, String username, String password) { + public FeedPreferences(long feedID, boolean autoDownload, AutoDeleteAction auto_delete_action, String username, String password) { this.feedID = feedID; this.autoDownload = autoDownload; + this.auto_delete_action = auto_delete_action; this.username = username; this.password = password; } /** - * Compare another FeedPreferences with this one. The feedID and autoDownload attribute are excluded from the + * Compare another FeedPreferences with this one. The feedID, autoDownload and AutoDeleteAction attribute are excluded from the * comparison. * * @return True if the two objects are different. @@ -41,7 +48,7 @@ public class FeedPreferences { } /** - * Update this FeedPreferences object from another one. The feedID and autoDownload attributes are excluded + * Update this FeedPreferences object from another one. The feedID, autoDownload and AutoDeleteAction attributes are excluded * from the update. */ public void updateFromOther(FeedPreferences other) { @@ -67,6 +74,28 @@ public class FeedPreferences { this.autoDownload = autoDownload; } + public AutoDeleteAction getAutoDeleteAction() { + return auto_delete_action; + } + + public void setAutoDeleteAction(AutoDeleteAction auto_delete_action) { + this.auto_delete_action = auto_delete_action; + } + + public boolean getCurrentAutoDelete(boolean isAutoDelete) { + switch (auto_delete_action) { + case GLOBAL: + return isAutoDelete; + + case YES: + return true; + + case NO: + return false; + } + return false; // TODO - add exceptions here + } + public void save(Context context) { DBWriter.setFeedPreferences(context, this); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index 7fb878680..578bce854 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -891,7 +891,7 @@ public class DownloadService extends Service { feed.setFile_url(request.getDestination()); feed.setId(request.getFeedfileId()); feed.setDownloaded(true); - feed.setPreferences(new FeedPreferences(0, true, + feed.setPreferences(new FeedPreferences(0, true, FeedPreferences.AutoDeleteAction.GLOBAL, request.getUsername(), request.getPassword())); feed.setPageNr(request.getArguments().getInt(DownloadRequester.REQUEST_ARG_PAGE_NR, 0)); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 9ab3d93a1..6db77540f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -584,7 +584,7 @@ public class PlaybackService extends Service { } // Delete episode if enabled - if(UserPreferences.isAutoDelete()) { + if(item.getFeed().getPreferences().getCurrentAutoDelete(UserPreferences.isAutoDelete())) { DBWriter.deleteFeedMediaOfItem(PlaybackService.this, media.getId()); Log.d(TAG, "Episode Deleted"); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java index d4b63fdb1..76ecf09b6 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java @@ -196,7 +196,7 @@ public class PlaybackServiceMediaPlayer { DBWriter.markItemRead(context, item, true, false); DBWriter.removeQueueItem(context, item, false); DBWriter.addItemToPlaybackHistory(context, oldMedia); - if (UserPreferences.isAutoDelete()) { + if (item.getFeed().getPreferences().getCurrentAutoDelete(UserPreferences.isAutoDelete())) { Log.d(TAG, "Delete " + oldMedia.toString()); DBWriter.deleteFeedMediaOfItem(context, oldMedia.getId()); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java index 93aec54c8..634563099 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java @@ -338,9 +338,9 @@ public final class DBReader { if (image != null) { image.setOwner(feed); } - FeedPreferences preferences = new FeedPreferences(cursor.getLong(PodDBAdapter.IDX_FEED_SEL_STD_ID), cursor.getInt(PodDBAdapter.IDX_FEED_SEL_PREFERENCES_AUTO_DOWNLOAD) > 0, + FeedPreferences.AutoDeleteAction.values()[cursor.getInt(PodDBAdapter.IDX_FEED_SEL_PREFERENCES_AUTO_DELETE_ACTION)], cursor.getString(PodDBAdapter.IDX_FEED_SEL_PREFERENCES_USERNAME), cursor.getString(PodDBAdapter.IDX_FEED_SEL_PREFERENCES_PASSWORD)); diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java index 2be53047d..d6740212e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java @@ -150,6 +150,7 @@ public class PodDBAdapter { public static final String KEY_CHAPTER_TYPE = "type"; public static final String KEY_PLAYBACK_COMPLETION_DATE = "playback_completion_date"; public static final String KEY_AUTO_DOWNLOAD = "auto_download"; + public static final String KEY_AUTO_DELETE_ACTION = "auto_delete_action"; public static final String KEY_PLAYED_DURATION = "played_duration"; public static final String KEY_USERNAME = "username"; public static final String KEY_PASSWORD = "password"; @@ -187,7 +188,8 @@ public class PodDBAdapter { + KEY_IS_PAGED + " INTEGER DEFAULT 0," + KEY_NEXT_PAGE_LINK + " TEXT," + KEY_HIDE + " TEXT," - + KEY_LAST_UPDATE_FAILED + " INTEGER DEFAULT 0)"; + + KEY_LAST_UPDATE_FAILED + " INTEGER DEFAULT 0," + + KEY_AUTO_DELETE_ACTION + " INTEGER DEFAULT 0)"; public static final String CREATE_TABLE_FEED_ITEMS = "CREATE TABLE " + TABLE_NAME_FEED_ITEMS + " (" + TABLE_PRIMARY_KEY + KEY_TITLE @@ -283,6 +285,7 @@ public class PodDBAdapter { TABLE_NAME_FEEDS + "." + KEY_PASSWORD, TABLE_NAME_FEEDS + "." + KEY_HIDE, TABLE_NAME_FEEDS + "." + KEY_LAST_UPDATE_FAILED, + TABLE_NAME_FEEDS + "." + KEY_AUTO_DELETE_ACTION, }; // column indices for FEED_SEL_STD @@ -306,6 +309,7 @@ public class PodDBAdapter { public static final int IDX_FEED_SEL_STD_NEXT_PAGE_LINK = 17; public static final int IDX_FEED_SEL_PREFERENCES_USERNAME = 18; public static final int IDX_FEED_SEL_PREFERENCES_PASSWORD = 19; + public static final int IDX_FEED_SEL_PREFERENCES_AUTO_DELETE_ACTION = 22; /** * Select all columns from the feeditems-table except description and @@ -461,6 +465,7 @@ public class PodDBAdapter { } ContentValues values = new ContentValues(); values.put(KEY_AUTO_DOWNLOAD, prefs.getAutoDownload()); + values.put(KEY_AUTO_DELETE_ACTION,prefs.getAutoDeleteAction().ordinal()); values.put(KEY_USERNAME, prefs.getUsername()); values.put(KEY_PASSWORD, prefs.getPassword()); db.update(TABLE_NAME_FEEDS, values, KEY_ID + "=?", new String[]{String.valueOf(prefs.getFeedID())}); diff --git a/core/src/main/res/values-iw-rIL/strings.xml b/core/src/main/res/values-iw-rIL/strings.xml index 9e9c0e6bc..321d0dab6 100644 --- a/core/src/main/res/values-iw-rIL/strings.xml +++ b/core/src/main/res/values-iw-rIL/strings.xml @@ -58,6 +58,7 @@ <string name="close_label">סגור</string> <string name="retry_label">נסה שוב</string> <string name="auto_download_label">כלול בהורדות אוטומטיות</string> + <string name="auto_delete_label">מחק לאחר ההשמעה (גובר על ההגדרה הגלובלית)</string> <string name="parallel_downloads_suffix">\u0020הורדות במקביל</string> <!--'Add Feed' Activity labels--> <string name="feedurl_label">כתובת הזנה</string> diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml index 5fe5f24e8..6b45d1aef 100644 --- a/core/src/main/res/values/arrays.xml +++ b/core/src/main/res/values/arrays.xml @@ -1,6 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <resources> + <string-array name="spnAutoDeleteItems"> + <item>Global</item> + <item>Always</item> + <item>Never</item> + </string-array> + <string-array name="smart_mark_as_played_values"> <item>0</item> <item>15</item> diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 232ba238e..b0888111d 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -75,6 +75,7 @@ <string name="close_label">Close</string> <string name="retry_label">Retry</string> <string name="auto_download_label">Include in auto downloads</string> + <string name="auto_delete_label">Auto Delete Episode\n(override global default)</string> <string name="parallel_downloads_suffix">\u0020parallel downloads</string> <!-- 'Add Feed' Activity labels --> |