mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
More rework of feed item list to deal with missing feeds.
This commit is contained in:
parent
07b9bd559e
commit
37ebbb4fd5
1 changed files with 32 additions and 44 deletions
|
@ -38,15 +38,12 @@ public class FeedItemListFragment extends StoryItemListFragment implements Loade
|
||||||
private ContentResolver contentResolver;
|
private ContentResolver contentResolver;
|
||||||
private String feedId;
|
private String feedId;
|
||||||
private FeedItemsAdapter adapter;
|
private FeedItemsAdapter adapter;
|
||||||
private Uri storiesUri;
|
|
||||||
private int currentState;
|
private int currentState;
|
||||||
private int currentPage = 1;
|
private int currentPage = 1;
|
||||||
private boolean requestedPage = false;
|
private boolean requestedPage = false;
|
||||||
private boolean doRequest = true;
|
|
||||||
|
|
||||||
public static int ITEMLIST_LOADER = 0x01;
|
public static int ITEMLIST_LOADER = 0x01;
|
||||||
private int READING_RETURNED = 0x02;
|
private int READING_RETURNED = 0x02;
|
||||||
private Feed feed;
|
|
||||||
|
|
||||||
private StoryOrder storyOrder;
|
private StoryOrder storyOrder;
|
||||||
|
|
||||||
|
@ -68,51 +65,43 @@ public class FeedItemListFragment extends StoryItemListFragment implements Loade
|
||||||
currentState = getArguments().getInt("currentState");
|
currentState = getArguments().getInt("currentState");
|
||||||
feedId = getArguments().getString("feedId");
|
feedId = getArguments().getString("feedId");
|
||||||
storyOrder = (StoryOrder)getArguments().getSerializable("storyOrder");
|
storyOrder = (StoryOrder)getArguments().getSerializable("storyOrder");
|
||||||
|
|
||||||
if (!NetworkUtils.isOnline(getActivity())) {
|
|
||||||
doRequest = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
View v = inflater.inflate(R.layout.fragment_itemlist, null);
|
View v = inflater.inflate(R.layout.fragment_itemlist, null);
|
||||||
ListView itemList = (ListView) v.findViewById(R.id.itemlistfragment_list);
|
ListView itemList = (ListView) v.findViewById(R.id.itemlistfragment_list);
|
||||||
|
|
||||||
itemList.setEmptyView(v.findViewById(R.id.empty_view));
|
itemList.setEmptyView(v.findViewById(R.id.empty_view));
|
||||||
|
|
||||||
contentResolver = getActivity().getContentResolver();
|
contentResolver = getActivity().getContentResolver();
|
||||||
storiesUri = FeedProvider.FEED_STORIES_URI.buildUpon().appendPath(feedId).build();
|
Uri storiesUri = FeedProvider.FEED_STORIES_URI.buildUpon().appendPath(feedId).build();
|
||||||
Cursor cursor = contentResolver.query(storiesUri, null, DatabaseConstants.getStorySelectionFromState(currentState), null, DatabaseConstants.getStorySortOrder(storyOrder));
|
Cursor storiesCursor = contentResolver.query(storiesUri, null, DatabaseConstants.getStorySelectionFromState(currentState), null, DatabaseConstants.getStorySortOrder(storyOrder));
|
||||||
|
|
||||||
setupFeed();
|
|
||||||
|
|
||||||
String[] groupFrom = new String[] { DatabaseConstants.STORY_TITLE, DatabaseConstants.STORY_AUTHORS, DatabaseConstants.STORY_READ, DatabaseConstants.STORY_SHORTDATE, DatabaseConstants.STORY_INTELLIGENCE_AUTHORS };
|
|
||||||
int[] groupTo = new int[] { R.id.row_item_title, R.id.row_item_author, R.id.row_item_title, R.id.row_item_date, R.id.row_item_sidebar };
|
|
||||||
|
|
||||||
getLoaderManager().initLoader(ITEMLIST_LOADER , null, this);
|
|
||||||
|
|
||||||
adapter = new FeedItemsAdapter(getActivity(), feed, R.layout.row_item, cursor, groupFrom, groupTo, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
|
|
||||||
|
|
||||||
itemList.setOnScrollListener(this);
|
|
||||||
|
|
||||||
adapter.setViewBinder(new FeedItemViewBinder(getActivity()));
|
|
||||||
itemList.setAdapter(adapter);
|
|
||||||
itemList.setOnItemClickListener(this);
|
|
||||||
itemList.setOnCreateContextMenuListener(this);
|
|
||||||
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setupFeed() {
|
|
||||||
Uri feedUri = FeedProvider.FEEDS_URI.buildUpon().appendPath(feedId).build();
|
Uri feedUri = FeedProvider.FEEDS_URI.buildUpon().appendPath(feedId).build();
|
||||||
Cursor feedCursor = contentResolver.query(feedUri, null, null, null, null);
|
Cursor feedCursor = contentResolver.query(feedUri, null, null, null, null);
|
||||||
|
|
||||||
if (feedCursor.getCount() > 0) {
|
if (feedCursor.getCount() > 0) {
|
||||||
feedCursor.moveToFirst();
|
feedCursor.moveToFirst();
|
||||||
feed = Feed.fromCursor(feedCursor);
|
Feed feed = Feed.fromCursor(feedCursor);
|
||||||
|
|
||||||
|
String[] groupFrom = new String[] { DatabaseConstants.STORY_TITLE, DatabaseConstants.STORY_AUTHORS, DatabaseConstants.STORY_READ, DatabaseConstants.STORY_SHORTDATE, DatabaseConstants.STORY_INTELLIGENCE_AUTHORS };
|
||||||
|
int[] groupTo = new int[] { R.id.row_item_title, R.id.row_item_author, R.id.row_item_title, R.id.row_item_date, R.id.row_item_sidebar };
|
||||||
|
|
||||||
|
getLoaderManager().initLoader(ITEMLIST_LOADER , null, this);
|
||||||
|
|
||||||
|
adapter = new FeedItemsAdapter(getActivity(), feed, R.layout.row_item, storiesCursor, groupFrom, groupTo, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
|
||||||
|
|
||||||
|
itemList.setOnScrollListener(this);
|
||||||
|
|
||||||
|
adapter.setViewBinder(new FeedItemViewBinder(getActivity()));
|
||||||
|
itemList.setAdapter(adapter);
|
||||||
|
itemList.setOnItemClickListener(this);
|
||||||
|
itemList.setOnCreateContextMenuListener(this);
|
||||||
} else {
|
} else {
|
||||||
Log.w(this.getClass().getName(), "Feed not found in DB, can't load.");
|
Log.w(this.getClass().getName(), "Feed not found in DB, can't load.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -130,7 +119,6 @@ public class FeedItemListFragment extends StoryItemListFragment implements Loade
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hasUpdated() {
|
public void hasUpdated() {
|
||||||
setupFeed();
|
|
||||||
getLoaderManager().restartLoader(ITEMLIST_LOADER , null, this);
|
getLoaderManager().restartLoader(ITEMLIST_LOADER , null, this);
|
||||||
requestedPage = false;
|
requestedPage = false;
|
||||||
}
|
}
|
||||||
|
@ -154,12 +142,12 @@ public class FeedItemListFragment extends StoryItemListFragment implements Loade
|
||||||
refreshStories();
|
refreshStories();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void refreshStories() {
|
protected void refreshStories() {
|
||||||
final String selection = DatabaseConstants.getStorySelectionFromState(currentState);
|
Uri storiesUri = FeedProvider.FEED_STORIES_URI.buildUpon().appendPath(feedId).build();
|
||||||
Cursor cursor = contentResolver.query(storiesUri, null, selection, null, DatabaseConstants.getStorySortOrder(storyOrder));
|
Cursor cursor = contentResolver.query(storiesUri, null, DatabaseConstants.getStorySelectionFromState(currentState), null, DatabaseConstants.getStorySortOrder(storyOrder));
|
||||||
adapter.swapCursor(cursor);
|
adapter.swapCursor(cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onScroll(AbsListView view, int firstVisible, int visibleCount, int totalCount) {
|
public void onScroll(AbsListView view, int firstVisible, int visibleCount, int totalCount) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue