Adding load more, in order to fetch more workflows from myexperiment
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/1c528562 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/1c528562 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/1c528562 Branch: refs/heads/master Commit: 1c528562c6877b8086bdfec8a35bd31e20fd2760 Parents: 5569845 Author: larrytech7 <larrya...@gmail.com> Authored: Thu Aug 6 22:50:32 2015 +0100 Committer: larrytech7 <larrya...@gmail.com> Committed: Thu Aug 6 22:50:32 2015 +0100 ---------------------------------------------------------------------- .../mobile/adapters/WorkflowAdapter.java | 4 +- .../mobile/fragments/WorkflowItemFragment.java | 44 ++++++++++++-------- 2 files changed, 28 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1c528562/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java index 74c42ed..f9e741d 100644 --- a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java @@ -87,8 +87,8 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo } public void addItems(List<Workflow> workflow, int position) throws ClassCastException{ - //add item to the list -// workflowList.add(position,workflow); + //add items to the current list of list + //workflowList.add(position,workflow); workflowList.addAll(workflow); notifyItemRangeInserted(position + 24, 25); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1c528562/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java index adcfb60..e93432b 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java @@ -91,11 +91,6 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout private static RecyclerView mListView; private SwipeRefreshLayout swipeRefreshLayout; - /** - * The Adapter which will be used to populate the ListView/GridView with - * Views. - */ - // private static WorkflowAdapter searchAdpater; private static View rootView; public static Context cx; private static boolean STATE_ON = false; @@ -112,6 +107,10 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout private boolean loading = true; private InfiniteScrollListener scrollListener; private RecyclerView.AdapterDataObserver workflowObserver; + //variables controlling the different kinds of data loading + public static boolean isLoadInitialData =true; + public static boolean isLoadMoreData = false; + public static boolean isRefreshData = false; public static WorkflowItemFragment newInstance(String param1, String param2) { WorkflowItemFragment fragment = new WorkflowItemFragment(); @@ -137,15 +136,11 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout mLinearLayoutManager = new LinearLayoutManager(cx); scrollListener = new InfiniteScrollListener(); workflowObserver= new RecyclerView.AdapterDataObserver() { - @Override - public void onChanged() { - super.onChanged(); - } @Override public void onItemRangeInserted(int positionStart, int itemCount) { super.onItemRangeInserted(positionStart, itemCount); - mListView.swapAdapter(workflowAdapter,true); + mListView.swapAdapter(workflowAdapter,false); Toast.makeText(getActivity(), "adding more workflows to listview", Toast.LENGTH_SHORT).show(); } }; @@ -272,13 +267,13 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout @Override public void onDestroy() { super.onDetach(); - workflowAdapter.unregisterAdapterDataObserver(workflowObserver); + // workflowAdapter.unregisterAdapterDataObserver(workflowObserver); } //handle a request to query for given workflows private void performSearch(String search){ WorkflowAdapter ladapter = new WorkflowAdapter(getActivity()); - WorkflowAdapter wk = workflowAdapter;//workflowAdapter; + WorkflowAdapter wk = workflowAdapter; if(!TextUtils.isEmpty(search)) { if (null != wk) @@ -297,6 +292,9 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout @Override public void onRefresh() { + isRefreshData = true; + isLoadInitialData = false; + isLoadMoreData = false; new WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+currentPage); } @@ -323,11 +321,14 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout @Override public void run() { WorkflowItemFragment.workflowAdapter = new WorkflowAdapter(cx,data); - workflowAdapter.addItems(data, previousTotal); - //workflowAdapter.notifyItemRangeInserted(previousTotal+24,25); - //mListView.getAdapter().notifyItemRangeInserted(previousTotal+24, 25); - mListView.swapAdapter(new WorkflowAdapter(cx,data), false); - // loadMoreWorkflows(data); + if(isLoadMoreData) { + isLoadMoreData = false; + isLoadInitialData = false; + isRefreshData = false; + workflowAdapter.addItems(data, previousTotal); + }else + mListView.swapAdapter(workflowAdapter, false); + if(WorkflowItemFragment.workflowAdapter.getItemCount() == 0){ mListView.setVisibility(View.GONE); noDataText.setVisibility(View.VISIBLE); @@ -407,7 +408,12 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout protected void onPostExecute(Bitmap bitmap) { img.setImageBitmap(bitmap); //cache this image for faster loading next time - avatarCache.put(row_id_as_key, bitmap); + try { + avatarCache.put(row_id_as_key, bitmap); + + }catch(NullPointerException np){ + + } } } @@ -438,10 +444,12 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout if(!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem+visibleThreshold)){ //list has reached end, load more. Toast.makeText(getActivity(), "Loading more", Toast.LENGTH_SHORT).show(); + isLoadMoreData = true; new WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+currentPage++); System.out.println(currentPage); loading = true; } } + } }