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;
             }
         }
+
     }
 }

Reply via email to