From 12bee5e504b16514670f042ff4c9efbc9dae53a6 Mon Sep 17 00:00:00 2001 From: dosiecki Date: Fri, 31 Oct 2014 05:35:56 -0700 Subject: [PATCH] Switch all social list to correctly use loaders. --- .../activity/AllSharedStoriesItemsList.java | 5 --- .../AllSharedStoriesItemListFragment.java | 37 ++++++++++--------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/clients/android/NewsBlur/src/com/newsblur/activity/AllSharedStoriesItemsList.java b/clients/android/NewsBlur/src/com/newsblur/activity/AllSharedStoriesItemsList.java index b8ae4bfad..f49a36fbc 100644 --- a/clients/android/NewsBlur/src/com/newsblur/activity/AllSharedStoriesItemsList.java +++ b/clients/android/NewsBlur/src/com/newsblur/activity/AllSharedStoriesItemsList.java @@ -1,17 +1,12 @@ package com.newsblur.activity; -import java.util.ArrayList; - import android.content.Intent; -import android.database.Cursor; import android.os.Bundle; import android.app.FragmentTransaction; import android.view.Menu; import android.view.MenuInflater; import com.newsblur.R; -import com.newsblur.database.DatabaseConstants; -import com.newsblur.database.FeedProvider; import com.newsblur.fragment.AllSharedStoriesItemListFragment; import com.newsblur.fragment.FeedItemListFragment; import com.newsblur.util.DefaultFeedView; diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/AllSharedStoriesItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/AllSharedStoriesItemListFragment.java index aaee09451..9b6205f0e 100644 --- a/clients/android/NewsBlur/src/com/newsblur/fragment/AllSharedStoriesItemListFragment.java +++ b/clients/android/NewsBlur/src/com/newsblur/fragment/AllSharedStoriesItemListFragment.java @@ -1,8 +1,5 @@ package com.newsblur.fragment; - -import android.content.ContentResolver; -import android.content.CursorLoader; import android.content.Intent; import android.content.Loader; import android.database.Cursor; @@ -31,33 +28,37 @@ import com.newsblur.view.SocialItemViewBinder; public class AllSharedStoriesItemListFragment extends ItemListFragment implements OnItemClickListener { - private ContentResolver contentResolver; + ListView itemList; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_itemlist, null); - ListView itemList = (ListView) v.findViewById(R.id.itemlistfragment_list); + itemList = (ListView) v.findViewById(R.id.itemlistfragment_list); setupBezelSwipeDetector(itemList); itemList.setEmptyView(v.findViewById(R.id.empty_view)); - - contentResolver = getActivity().getContentResolver(); - - String[] groupFrom = new String[] { DatabaseConstants.STORY_TITLE, DatabaseConstants.STORY_SHORT_CONTENT, DatabaseConstants.STORY_AUTHORS, DatabaseConstants.STORY_TIMESTAMP, DatabaseConstants.STORY_INTELLIGENCE_AUTHORS, DatabaseConstants.FEED_TITLE }; - int[] groupTo = new int[] { R.id.row_item_title, R.id.row_item_content, R.id.row_item_author, R.id.row_item_date, R.id.row_item_sidebar, R.id.row_item_feedtitle }; - // TODO: defer creation of the adapter until the loader's first callback so we don't leak this first ListView cursor - Cursor cursor = dbHelper.getStoriesCursor(getFeedSet(), currentState); - adapter = new MultipleFeedItemsAdapter(getActivity(), R.layout.row_socialitem, cursor, groupFrom, groupTo, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); - adapter.setViewBinder(new SocialItemViewBinder(getActivity())); - itemList.setAdapter(adapter); + itemList.setOnScrollListener(this); + itemList.setOnItemClickListener(this); + if (adapter != null) { + itemList.setAdapter(adapter); + } getLoaderManager().initLoader(ITEMLIST_LOADER , null, this); - itemList.setOnScrollListener(this); - itemList.setOnItemClickListener(this); - return v; } + @Override + public void onLoadFinished(Loader loader, Cursor cursor) { + if ((adapter == null) && (cursor != null)) { + String[] groupFrom = new String[] { DatabaseConstants.STORY_TITLE, DatabaseConstants.STORY_SHORT_CONTENT, DatabaseConstants.STORY_AUTHORS, DatabaseConstants.STORY_TIMESTAMP, DatabaseConstants.STORY_INTELLIGENCE_AUTHORS, DatabaseConstants.FEED_TITLE }; + int[] groupTo = new int[] { R.id.row_item_title, R.id.row_item_content, R.id.row_item_author, R.id.row_item_date, R.id.row_item_sidebar, R.id.row_item_feedtitle }; + adapter = new MultipleFeedItemsAdapter(getActivity(), R.layout.row_socialitem, cursor, groupFrom, groupTo, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); + adapter.setViewBinder(new SocialItemViewBinder(getActivity())); + itemList.setAdapter(adapter); + } + super.onLoadFinished(loader, cursor); + } + public static ItemListFragment newInstance(StateFilter currentState, DefaultFeedView defaultFeedView) { ItemListFragment everythingFragment = new AllSharedStoriesItemListFragment(); Bundle arguments = new Bundle();