mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Clean up story order pref storage. Will support easier changing of orders for new folder types (like Saved stories)
This commit is contained in:
parent
fedba2870b
commit
af5d082fb9
10 changed files with 42 additions and 112 deletions
|
@ -45,16 +45,6 @@ public class AllSharedStoriesItemsList extends ItemsList {
|
|||
return FeedSet.allSocialFeeds();
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFolder(this, PrefConstants.ALL_SHARED_STORIES_FOLDER_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFolder(this, PrefConstants.ALL_SHARED_STORIES_FOLDER_NAME, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFolder(this, PrefConstants.ALL_SHARED_STORIES_FOLDER_NAME, newValue);
|
||||
|
|
|
@ -60,16 +60,6 @@ public class AllStoriesItemsList extends ItemsList implements MarkAllReadDialogL
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME, newValue);
|
||||
|
|
|
@ -76,16 +76,6 @@ public class FeedItemsList extends ItemsList {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFeed(this, feed.feedId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFeed(this, feed.feedId, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFeed(this, feed.feedId, newValue);
|
||||
|
|
|
@ -65,16 +65,6 @@ public class FolderItemsList extends ItemsList implements MarkAllReadDialogListe
|
|||
super.markItemListAsRead();
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFolder(this, folderName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFolder(this, folderName, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFolder(this, folderName, newValue);
|
||||
|
|
|
@ -58,18 +58,6 @@ public class GlobalSharedStoriesItemsList extends ItemsList {
|
|||
}
|
||||
}
|
||||
|
||||
// Story order and read filter are fixed for global shared stories
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return StoryOrder.NEWEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
// Not supported for global shared stories
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
// Not supported for global shared stories
|
||||
|
@ -80,5 +68,4 @@ public class GlobalSharedStoriesItemsList extends ItemsList {
|
|||
return ReadFilter.UNREAD;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -123,8 +123,13 @@ public abstract class ItemsList extends NbActivity implements StoryOrderChangedL
|
|||
return false;
|
||||
}
|
||||
|
||||
// TODO: can all of these be replaced with PrefsUtils queries via FeedSet?
|
||||
public abstract StoryOrder getStoryOrder();
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrder(this, fs);
|
||||
}
|
||||
|
||||
protected void updateStoryOrderPreference(StoryOrder newOrder) {
|
||||
PrefsUtils.updateStoryOrder(this, fs, newOrder);
|
||||
}
|
||||
|
||||
protected abstract ReadFilter getReadFilter();
|
||||
|
||||
|
@ -168,8 +173,6 @@ public abstract class ItemsList extends NbActivity implements StoryOrderChangedL
|
|||
itemListFragment.hasUpdated();
|
||||
itemListFragment.scrollToTop();
|
||||
}
|
||||
|
||||
public abstract void updateStoryOrderPreference(StoryOrder newValue);
|
||||
|
||||
@Override
|
||||
public void readFilterChanged(ReadFilter newValue) {
|
||||
|
|
|
@ -58,17 +58,6 @@ public class ReadStoriesItemsList extends ItemsList {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
// dummy method. read stories don't have an order option
|
||||
return StoryOrder.NEWEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
// dummy method. read stories don't have an order option
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
// dummy method. read stories don't have an order option
|
||||
|
@ -80,5 +69,4 @@ public class ReadStoriesItemsList extends ItemsList {
|
|||
return ReadFilter.ALL;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -58,19 +58,9 @@ public class SavedStoriesItemsList extends ItemsList {
|
|||
}
|
||||
}
|
||||
|
||||
// Note: the following four methods are required by our parent spec but are not
|
||||
// relevant since saved stories have no read/unread status nor ordering.
|
||||
// Note: the following two methods are required by our parent spec but are not
|
||||
// relevant since saved stories have no read/unread status.
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFolder(this, PrefConstants.ALL_STORIES_FOLDER_NAME, newValue);
|
||||
|
|
|
@ -51,16 +51,6 @@ public class SocialFeedItemsList extends ItemsList {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryOrder getStoryOrder() {
|
||||
return PrefsUtils.getStoryOrderForFeed(this, socialFeed.userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoryOrderPreference(StoryOrder newValue) {
|
||||
PrefsUtils.setStoryOrderForFeed(this, socialFeed.userId, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateReadFilterPreference(ReadFilter newValue) {
|
||||
PrefsUtils.setReadFilterForFeed(this, socialFeed.userId, newValue);
|
||||
|
|
|
@ -392,38 +392,50 @@ public class PrefsUtils {
|
|||
public static StoryOrder getStoryOrder(Context context, FeedSet fs) {
|
||||
if (fs.isAllNormal()) {
|
||||
return getStoryOrderForFolder(context, PrefConstants.ALL_STORIES_FOLDER_NAME);
|
||||
}
|
||||
if (fs.getSingleFeed() != null) {
|
||||
} else if (fs.getSingleFeed() != null) {
|
||||
return getStoryOrderForFeed(context, fs.getSingleFeed());
|
||||
}
|
||||
if (fs.getMultipleFeeds() != null) {
|
||||
} else if (fs.getMultipleFeeds() != null) {
|
||||
return getStoryOrderForFolder(context, fs.getFolderName());
|
||||
}
|
||||
|
||||
if (fs.isAllSocial()) {
|
||||
} else if (fs.isAllSocial()) {
|
||||
return getStoryOrderForFolder(context, PrefConstants.ALL_SHARED_STORIES_FOLDER_NAME);
|
||||
}
|
||||
if (fs.getSingleSocialFeed() != null) {
|
||||
} else if (fs.getSingleSocialFeed() != null) {
|
||||
return getStoryOrderForFeed(context, fs.getSingleSocialFeed().getKey());
|
||||
}
|
||||
if (fs.getMultipleSocialFeeds() != null) {
|
||||
} else if (fs.getMultipleSocialFeeds() != null) {
|
||||
throw new IllegalArgumentException( "requests for multiple social feeds not supported" );
|
||||
}
|
||||
|
||||
if (fs.isAllRead()) {
|
||||
} else if (fs.isAllRead()) {
|
||||
// dummy value, not really used
|
||||
return StoryOrder.NEWEST;
|
||||
}
|
||||
|
||||
if (fs.isAllSaved()) {
|
||||
} else if (fs.isAllSaved()) {
|
||||
return getStoryOrderForFolder(context, PrefConstants.SAVED_STORIES_FOLDER_NAME);
|
||||
}
|
||||
|
||||
if (fs.isGlobalShared()) {
|
||||
} else if (fs.isGlobalShared()) {
|
||||
return StoryOrder.NEWEST;
|
||||
} else {
|
||||
throw new IllegalArgumentException( "unknown type of feed set" );
|
||||
}
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException( "unknown type of feed set" );
|
||||
public static void updateStoryOrder(Context context, FeedSet fs, StoryOrder newOrder) {
|
||||
if (fs.isAllNormal()) {
|
||||
setStoryOrderForFolder(context, PrefConstants.ALL_STORIES_FOLDER_NAME, newOrder);
|
||||
} else if (fs.getSingleFeed() != null) {
|
||||
setStoryOrderForFeed(context, fs.getSingleFeed(), newOrder);
|
||||
} else if (fs.getMultipleFeeds() != null) {
|
||||
setStoryOrderForFolder(context, fs.getFolderName(), newOrder);
|
||||
} else if (fs.isAllSocial()) {
|
||||
setStoryOrderForFolder(context, PrefConstants.ALL_SHARED_STORIES_FOLDER_NAME, newOrder);
|
||||
} else if (fs.getSingleSocialFeed() != null) {
|
||||
setStoryOrderForFeed(context, fs.getSingleSocialFeed().getKey(), newOrder);
|
||||
} else if (fs.getMultipleSocialFeeds() != null) {
|
||||
throw new IllegalArgumentException( "multiple social feeds not supported" );
|
||||
} else if (fs.isAllRead()) {
|
||||
throw new IllegalArgumentException( "AllRead FeedSet type has fixed ordering" );
|
||||
} else if (fs.isAllSaved()) {
|
||||
setStoryOrderForFolder(context, PrefConstants.SAVED_STORIES_FOLDER_NAME, newOrder);
|
||||
} else if (fs.isGlobalShared()) {
|
||||
throw new IllegalArgumentException( "GlobalShared FeedSet type has fixed ordering" );
|
||||
} else {
|
||||
throw new IllegalArgumentException( "unknown type of feed set" );
|
||||
}
|
||||
}
|
||||
|
||||
public static ReadFilter getReadFilter(Context context, FeedSet fs) {
|
||||
|
|
Loading…
Add table
Reference in a new issue