diff options
author | Udi Finkelstein <github@udifink.com> | 2015-06-24 23:13:44 +0300 |
---|---|---|
committer | Udi Finkelstein <github@udifink.com> | 2015-07-09 01:16:45 +0300 |
commit | 85598f64a9169042742344ff4d6724119303e3d9 (patch) | |
tree | f578034edb1ec83f74000c1b97ecf2c10d960289 /app | |
parent | 0d2f99a1a7a473fc6abf1b23ff8b712ab1fb7c62 (diff) | |
download | AntennaPod-85598f64a9169042742344ff4d6724119303e3d9.zip |
Added new per-feed auto download override flag.
Diffstat (limited to 'app')
6 files changed, 86 insertions, 13 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java index 357335238..fae8baf65 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java @@ -14,11 +14,15 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.widget.AbsSpinner; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Spinner; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Toast; import com.joanzapata.android.iconify.Iconify; @@ -41,6 +45,7 @@ import de.danoeh.antennapod.menuhandler.FeedMenuHandler; */ public class FeedInfoActivity extends ActionBarActivity { private static final String TAG = "FeedInfoActivity"; + private boolean autoDeleteChanged = false; public static final String EXTRA_FEED_ID = "de.danoeh.antennapod.extra.feedId"; @@ -55,6 +60,7 @@ public class FeedInfoActivity extends ActionBarActivity { private EditText etxtUsername; private EditText etxtPassword; private CheckBox cbxAutoDownload; + private Spinner spnAutoDelete; private final View.OnClickListener copyUrlToClipboard = new View.OnClickListener() { @Override @@ -92,6 +98,7 @@ public class FeedInfoActivity extends ActionBarActivity { txtvAuthor = (TextView) findViewById(R.id.txtvAuthor); txtvUrl = (TextView) findViewById(R.id.txtvUrl); cbxAutoDownload = (CheckBox) findViewById(R.id.cbxAutoDownload); + spnAutoDelete = (Spinner) findViewById(R.id.spnAutoDelete); etxtUsername = (EditText) findViewById(R.id.etxtUsername); etxtPassword = (EditText) findViewById(R.id.etxtPassword); @@ -111,6 +118,7 @@ public class FeedInfoActivity extends ActionBarActivity { Log.d(TAG, "Language is " + feed.getLanguage()); Log.d(TAG, "Author is " + feed.getAuthor()); Log.d(TAG, "URL is " + feed.getDownload_url()); + FeedPreferences prefs = feed.getPreferences(); imgvCover.post(new Runnable() { @Override @@ -136,7 +144,7 @@ public class FeedInfoActivity extends ActionBarActivity { Iconify.addIcons(txtvUrl); cbxAutoDownload.setEnabled(UserPreferences.isEnableAutodownload()); - cbxAutoDownload.setChecked(feed.getPreferences().getAutoDownload()); + cbxAutoDownload.setChecked(prefs.getAutoDownload()); cbxAutoDownload.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -144,9 +152,38 @@ public class FeedInfoActivity extends ActionBarActivity { feed.savePreferences(FeedInfoActivity.this); } }); + spnAutoDelete.setOnItemSelectedListener(new OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { + FeedPreferences.AutoDeleteAction auto_delete_action; + switch (parent.getSelectedItemPosition()) { + case 0: + auto_delete_action = FeedPreferences.AutoDeleteAction.GLOBAL; + break; + + case 1: + auto_delete_action = FeedPreferences.AutoDeleteAction.YES; + break; + + case 2: + auto_delete_action = FeedPreferences.AutoDeleteAction.NO; + break; + + default: // TODO - add exceptions here + return; + } + feed.getPreferences().setAutoDeleteAction(auto_delete_action);// p + autoDeleteChanged = true; + } + @Override + public void onNothingSelected(AdapterView<?> parent) { + // Another interface callback + } + }); + spnAutoDelete.setSelection(prefs.getAutoDeleteAction().ordinal()); - etxtUsername.setText(feed.getPreferences().getUsername()); - etxtPassword.setText(feed.getPreferences().getPassword()); + etxtUsername.setText(prefs.getUsername()); + etxtPassword.setText(prefs.getPassword()); etxtUsername.addTextChangedListener(authTextWatcher); etxtPassword.addTextChangedListener(authTextWatcher); @@ -184,13 +221,18 @@ public class FeedInfoActivity extends ActionBarActivity { @Override protected void onPause() { super.onPause(); - if (feed != null && authInfoChanged) { - Log.d(TAG, "Auth info changed, saving credentials"); + if (feed != null) { FeedPreferences prefs = feed.getPreferences(); - prefs.setUsername(etxtUsername.getText().toString()); - prefs.setPassword(etxtPassword.getText().toString()); - DBWriter.setFeedPreferences(this, prefs); + if (authInfoChanged) { + Log.d(TAG, "Auth info changed, saving credentials"); + prefs.setUsername(etxtUsername.getText().toString()); + prefs.setPassword(etxtPassword.getText().toString()); + } + if (authInfoChanged || autoDeleteChanged) { + DBWriter.setFeedPreferences(this, prefs); + } authInfoChanged = false; + autoDeleteChanged = false; } } 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 2b1b13ae6..3ab384012 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java @@ -180,7 +180,7 @@ public abstract class OnlineFeedViewActivity extends ActionBarActivity { url = URLChecker.prepareURL(url); feed = new Feed(url, new Date(0)); if (username != null && password != null) { - feed.setPreferences(new FeedPreferences(0, false, username, password)); + feed.setPreferences(new FeedPreferences(0, false, FeedPreferences.AutoDeleteAction.GLOBAL, username, password)); } String fileUrl = new File(getExternalCacheDir(), FileNameGenerator.generateFileName(feed.getDownload_url())).toString(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index cbf3ffdd7..c74d87866 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -97,7 +97,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment { long itemId = token.getFeedItemId(); FeedItem item = DBReader.getFeedItem(context, itemId); FeedMedia media = item.getMedia(); - if(media != null && media.hasAlmostEnded() && UserPreferences.isAutoDelete()) { + if(media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete(UserPreferences.isAutoDelete())) { DBWriter.deleteFeedMediaOfItem(context, media.getId()); } } 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 282688210..f7e1ba767 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -431,7 +431,7 @@ public class QueueFragment extends Fragment { long itemId = token.getFeedItemId(); FeedItem item = DBReader.getFeedItem(context, itemId); FeedMedia media = item.getMedia(); - if(media != null && media.hasAlmostEnded() && UserPreferences.isAutoDelete()) { + if(media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete(UserPreferences.isAutoDelete())) { DBWriter.deleteFeedMediaOfItem(context, media.getId()); } } diff --git a/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java b/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java index 1fe9e2cf9..d05da8bb7 100644 --- a/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java +++ b/app/src/main/java/de/danoeh/antennapod/service/PlayerWidgetService.java @@ -62,7 +62,7 @@ public class PlayerWidgetService extends Service { DBWriter.markItemRead(this, item, true, false); DBWriter.removeQueueItem(this, item, false); DBWriter.addItemToPlaybackHistory(this, media); - if (UserPreferences.isAutoDelete()) { + if (item.getFeed().getPreferences().getCurrentAutoDelete(UserPreferences.isAutoDelete())) { Log.d(TAG, "Delete " + media.toString()); DBWriter.deleteFeedMediaOfItem(this, media.getId()); } diff --git a/app/src/main/res/layout/feedinfo.xml b/app/src/main/res/layout/feedinfo.xml index 4dab1e189..e3b5355e9 100644 --- a/app/src/main/res/layout/feedinfo.xml +++ b/app/src/main/res/layout/feedinfo.xml @@ -159,7 +159,38 @@ android:enabled="false" android:textColor="?android:attr/textColorPrimary" tools:background="@android:color/holo_red_light" - android:checked="false"/> + android:checked="false" /> + + <android.support.v7.widget.GridLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + app:columnCount="2" + app:rowCount="1"> + + <TextView + android:id="@+id/txtvFeedAutoDelete" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/auto_delete_label" + app:layout_row="0" + app:layout_column="0" + app:layout_gravity="center_vertical" + android:layout_marginRight="10dp" /> + + <Spinner + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:id="@+id/spnAutoDelete" + android:entries="@array/spnAutoDeleteItems" + android:layout_marginTop="8dp" + app:layout_row="0" + app:layout_column="1" + android:spinnerMode="dropdown" + app:layout_gravity="center" + android:dropDownWidth="wrap_content" + android:clickable="false" /> + </android.support.v7.widget.GridLayout> <TextView android:id="@+id/txtvAuthentication" |