Small fixes and refactorings

This commit is contained in:
Martin Fietz 2015-05-12 13:42:21 +02:00
parent 42b20170bc
commit 44b3a3bb87
5 changed files with 25 additions and 24 deletions

View File

@ -544,12 +544,12 @@ public class ItemlistFragment extends ListFragment {
@Override
public FeedItem getItem(int position) {
return (feed != null) ? feed.getItemAtIndex(true, position) : null;
return (feed != null) ? feed.getItemAtIndex(position) : null;
}
@Override
public int getCount() {
return (feed != null) ? feed.getNumOfItems(true) : 0;
return (feed != null) ? feed.getNumOfItems() : 0;
}
@Override

View File

@ -129,7 +129,7 @@ public class FeedMenuHandler {
builder.setPositiveButton(R.string.confirm_label, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
feed.setFeedItemsFilter(hidden.toArray(new String[hidden.size()]));
feed.setHiddenItemProperties(hidden.toArray(new String[hidden.size()]));
DBWriter.setFeedItemsFilter(context, feed.getId(), hidden);
}
});

View File

@ -2,6 +2,7 @@ package de.danoeh.antennapod.core.feed;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
@ -188,21 +189,16 @@ public class Feed extends FeedFile implements FlattrThing, PicassoImageResource
/**
* Returns the number of FeedItems.
*
* @param enableEpisodeFilter true if this method should only count items with episodes if
* the 'display only episodes' - preference is set to true by the
* user.
*/
public int getNumOfItems(boolean enableEpisodeFilter) {
public int getNumOfItems() {
return items.size();
}
/**
* Returns the item at the specified index.
*
* @param enableEpisodeFilter true if this method should ignore items without episdodes if
* the episodes filter has been enabled by the user.
*/
public FeedItem getItemAtIndex(boolean enableEpisodeFilter, int position) {
public FeedItem getItemAtIndex(int position) {
return items.get(position);
}
@ -481,14 +477,14 @@ public class Feed extends FeedFile implements FlattrThing, PicassoImageResource
this.nextPageLink = nextPageLink;
}
@Nullable
public FeedItemFilter getItemFilter() {
return itemfilter;
}
public void setFeedItemsFilter(String[] filter) {
if (filter != null) {
this.itemfilter = new FeedItemFilter(filter);
public void setHiddenItemProperties(String[] properties) {
if (properties != null) {
this.itemfilter = new FeedItemFilter(properties);
}
}

View File

@ -11,7 +11,7 @@ import de.danoeh.antennapod.core.storage.DBReader;
public class FeedItemFilter {
private final String[] filter;
private final String[] properties;
private boolean hideUnplayed = false;
private boolean hidePaused = false;
@ -21,15 +21,15 @@ public class FeedItemFilter {
private boolean hideDownloaded = false;
private boolean hideNotDownloaded = false;
public FeedItemFilter(String filter) {
this(StringUtils.split(filter, ','));
public FeedItemFilter(String properties) {
this(StringUtils.split(properties, ','));
}
public FeedItemFilter(String[] filter) {
this.filter = filter;
for(String f : filter) {
public FeedItemFilter(String[] properties) {
this.properties = properties;
for(String property : properties) {
// see R.arrays.feed_filter_values
switch(f) {
switch(property) {
case "unplayed":
hideUnplayed = true;
break;
@ -56,7 +56,7 @@ public class FeedItemFilter {
}
public List<FeedItem> filter(Context context, List<FeedItem> items) {
if(filter.length == 0) {
if(properties.length == 0) {
return items;
}
List<FeedItem> result = new ArrayList<FeedItem>();
@ -76,7 +76,7 @@ public class FeedItemFilter {
}
public String[] getValues() {
return filter.clone();
return properties.clone();
}
}

View File

@ -434,7 +434,11 @@ public class PodDBAdapter {
values.put(KEY_FLATTR_STATUS, feed.getFlattrStatus().toLong());
values.put(KEY_IS_PAGED, feed.isPaged());
values.put(KEY_NEXT_PAGE_LINK, feed.getNextPageLink());
values.put(KEY_HIDE, StringUtils.join(feed.getItemFilter(), ","));
if(feed.getItemFilter() != null && feed.getItemFilter().getValues().length > 0) {
values.put(KEY_HIDE, StringUtils.join(feed.getItemFilter().getValues(), ","));
} else {
values.put(KEY_HIDE, "");
}
values.put(KEY_LAST_UPDATE_FAILED, feed.hasLastUpdateFailed());
if (feed.getId() == 0) {
// Create new entry
@ -1464,6 +1468,7 @@ public class PodDBAdapter {
db.execSQL(CREATE_INDEX_FEEDMEDIA_FEEDITEM);
db.execSQL(CREATE_INDEX_QUEUE_FEEDITEM);
db.execSQL(CREATE_INDEX_SIMPLECHAPTERS_FEEDITEM);
}
@Override