diff options
Diffstat (limited to 'app/src/main/java/de')
5 files changed, 54 insertions, 12 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..9a25674b6 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()) { 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..46148a214 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()) { 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..990b3bd54 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()) { Log.d(TAG, "Delete " + media.toString()); DBWriter.deleteFeedMediaOfItem(this, media.getId()); } |