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())
