add swipe refresh layout logic

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/a84be443
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/a84be443
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/a84be443

Branch: refs/heads/master
Commit: a84be443795b3b8f95983ad27c5c02e43c9a52e4
Parents: 78afb47
Author: Sagar <[email protected]>
Authored: Tue Jul 5 23:07:32 2016 +0530
Committer: Sagar <[email protected]>
Committed: Tue Jul 5 23:07:32 2016 +0530

----------------------------------------------------------------------
 .../mobile/ui/workflow/WorkflowFragment.java    | 46 ++++++++++++++++++++
 .../mobile/ui/workflow/WorkflowPresenter.java   |  3 --
 2 files changed, 46 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/a84be443/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
index be433d7..074ef9e 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
@@ -28,10 +28,13 @@ import 
org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner;
 import org.apache.taverna.mobile.ui.adapter.WorkflowAdapter;
 import org.apache.taverna.mobile.ui.workflowdetail.WorkflowDetailActivity;
 import org.apache.taverna.mobile.utils.ConnectionInfo;
+import org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.design.widget.Snackbar;
 import android.support.v4.app.Fragment;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -57,6 +60,9 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
     @BindView(R.id.progress_circular)
     ProgressBar mProgressBar;
 
+    @BindView(R.id.swipe_refresh)
+    ScrollChildSwipeRefreshLayout mSwipeRefresh;
+
     private DataManager dataManager;
 
     private WorkflowPresenter mWorkflowPresenter;
@@ -96,6 +102,7 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
         mRecyclerView.setAdapter(mWorkflowAdapter);
         mRecyclerView.addOnItemTouchListener(new 
RecyclerItemClickListner(getActivity(), this));
 
+        showProgressbar(true);
         mWorkflowPresenter.loadAllWorkflow(mPageNumber);
 
         mRecyclerView.addOnScrollListener(new 
EndlessRecyclerOnScrollListener(layoutManager) {
@@ -116,6 +123,29 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
             }
         });
 
+        mSwipeRefresh.setColorSchemeResources(R.color.colorAccent, 
R.color.colorAccent, R.color
+                .colorPrimary);
+        mSwipeRefresh.setOnRefreshListener(new 
SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                if (mConnectionInfo.isConnectingToInternet()) {
+                    if (mSwipeRefresh.isRefreshing()) {
+                        mPageNumber = 1;
+                        mWorkflowPresenter.loadAllWorkflow(mPageNumber);
+                        Log.d(LOG_TAG, "Swipe Refresh");
+                    }
+                } else {
+                    Log.d(LOG_TAG, "NO Internet Connection");
+                    showErrorSnackBar();
+                    if (mSwipeRefresh.isRefreshing()) {
+                        mSwipeRefresh.setRefreshing(false);
+                    }
+                }
+
+            }
+        });
+
+
         return rootView;
     }
 
@@ -134,10 +164,26 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
     @Override
     public void showErrorSnackBar() {
 
+        final Snackbar snackbar = Snackbar.make(mRecyclerView, "NO Internet 
Connection", Snackbar
+                .LENGTH_INDEFINITE);
+        snackbar.setAction("OK", new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                snackbar.dismiss();
+            }
+        });
+
+        snackbar.show();
     }
 
     @Override
     public void showWorkflows(Workflows workflows) {
+
+        if (mSwipeRefresh.isRefreshing()) {
+            mSwipeRefresh.setRefreshing(false);
+            mWorkflowList.clear();
+        }
+
         mWorkflowList.addAll(workflows.getWorkflowList());
         mWorkflowAdapter.notifyDataSetChanged();
     }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/a84be443/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
index b828227..5d62a25 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java
@@ -54,9 +54,6 @@ public class WorkflowPresenter extends 
BasePresenter<WorkflowMvpView> {
     }
 
     public void loadAllWorkflow(int pageNumber) {
-        if (pageNumber == 1) {
-            getMvpView().showProgressbar(true);
-        }
         if (mSubscriptions != null) mSubscriptions.unsubscribe();
         mSubscriptions = 
mDataManager.getAllWorkflow(getQueryOptions(pageNumber))
                 .observeOn(AndroidSchedulers.mainThread())

Reply via email to