Added pull to refresh functionality as simple view from android support library not third party library
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/4f660cbf Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/4f660cbf Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/4f660cbf Branch: refs/heads/master Commit: 4f660cbf5f5bfa6b21f64c573919935093bb6b5a Parents: 324da9c Author: larrytech7 <larrya...@gmail.com> Authored: Mon Jun 15 19:32:49 2015 +0100 Committer: larrytech7 <larrya...@gmail.com> Committed: Mon Jun 15 19:32:49 2015 +0100 ---------------------------------------------------------------------- .../activities/WorkflowDetailActivity.java | 1 - .../mobile/fragments/WorkflowItemFragment.java | 32 +++++++++----------- app/src/main/res/layout/fragment_item_list.xml | 6 +++- app/src/main/res/layout/workflow_layout.xml | 5 ++- app/src/main/res/values/strings.xml | 3 +- 5 files changed, 26 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4f660cbf/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java index 98c80f8..7c43b73 100644 --- a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java @@ -63,7 +63,6 @@ public class WorkflowDetailActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { - supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); super.onCreate(savedInstanceState); setContentView(R.layout.activity_workflow_detail); // Create the adapter that will return a fragment for each of the three http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4f660cbf/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 798cbf2..5793b33 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 @@ -25,10 +25,10 @@ package org.apache.taverna.mobile.fragments; */ import android.app.Activity; +import android.app.ProgressDialog; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v4.app.LoaderManager; -import android.support.v4.content.Loader; +import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -37,11 +37,8 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.view.animation.Animation; import android.view.animation.AnimationUtils; -import android.widget.AdapterView; -import android.widget.ProgressBar; import android.widget.TextView; import org.apache.taverna.mobile.R; @@ -62,14 +59,14 @@ import java.util.List; * Activities containing this fragment MUST implement the {@link org.apache.taverna.mobile.fragments.WorkflowItemFragment.OnWorkflowSelectedListener} * interface. */ -public class WorkflowItemFragment extends Fragment implements android.app.LoaderManager.LoaderCallbacks<List<Workflow>> { +public class WorkflowItemFragment extends Fragment implements android.app.LoaderManager.LoaderCallbacks<List<Workflow>>, SwipeRefreshLayout.OnRefreshListener { // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private Animation in; - private ProgressBar wpb; //progressbar used to indicate the state of the workflow loaders + private ProgressDialog mProgressDialog; //progressbar used to indicate the state of the workflow loaders // TODO: Rename and change types of parameters private String mParam1; @@ -81,6 +78,7 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader * The fragment's ListView/GridView. */ private RecyclerView mListView; + private SwipeRefreshLayout swipeRefreshLayout; /** * The Adapter which will be used to populate the ListView/GridView with @@ -129,7 +127,8 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_item, container, false); - wpb = (ProgressBar) view.findViewById(R.id.workflow_pb); + swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh); + swipeRefreshLayout.setOnRefreshListener(this); // Set the adapter mListView = (RecyclerView) view.findViewById(android.R.id.list); mListView.setHasFixedSize(true); @@ -235,24 +234,18 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader */ @Override public android.content.Loader<List<Workflow>> onCreateLoader(int id, Bundle args) { - if (null != wpb) - wpb.setVisibility(View.VISIBLE); + swipeRefreshLayout.setRefreshing(true); return new WorkflowLoader(getActivity()); } @Override public void onLoadFinished(android.content.Loader<List<Workflow>> loader, List<Workflow> workflows) { - // getActivity().setProgressBarIndeterminateVisibility(false); - if (null != wpb) - wpb.setVisibility(View.GONE); + swipeRefreshLayout.setRefreshing(false); loader.stopLoading(); workflowAdapter = new WorkflowAdapter(getActivity(), workflows); if(workflows.size() > 0) mListView.swapAdapter(workflowAdapter, true); - else { - // mListView.setVisibility(View.GONE); -// setEmptyText("No views available"); - } + } @Override @@ -261,6 +254,11 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader mListView.swapAdapter(null, false); } + @Override + public void onRefresh() { + getActivity().getLoaderManager().initLoader(0,null,this); + } + /** * This interface must be implemented by activities that contain this * fragment to allow an interaction in this fragment to be communicated http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4f660cbf/app/src/main/res/layout/fragment_item_list.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_item_list.xml b/app/src/main/res/layout/fragment_item_list.xml index 522164c..9852dfb 100644 --- a/app/src/main/res/layout/fragment_item_list.xml +++ b/app/src/main/res/layout/fragment_item_list.xml @@ -27,6 +27,10 @@ limitations under the License. <!--<ListView android:id="@android:id/list" android:layout_width="match_parent"--> <!--android:layout_height="match_parent" />--> + <android.support.v4.widget.SwipeRefreshLayout + android:id="@+id/refresh" + android:layout_height="match_parent" + android:layout_width="match_parent"> <android.support.v7.widget.RecyclerView xmlns:recycler_view="http://schemas.android.com/apk/res-auto" android:id="@android:id/list" @@ -37,7 +41,7 @@ limitations under the License. > </android.support.v7.widget.RecyclerView> - +</android.support.v4.widget.SwipeRefreshLayout> <TextView android:id="@android:id/empty" android:layout_width="match_parent" http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4f660cbf/app/src/main/res/layout/workflow_layout.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/workflow_layout.xml b/app/src/main/res/layout/workflow_layout.xml index 564979c..6bc3160 100644 --- a/app/src/main/res/layout/workflow_layout.xml +++ b/app/src/main/res/layout/workflow_layout.xml @@ -19,8 +19,11 @@ See the License for the specific language governing permissions and limitations under the License. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" android:layout_width="match_parent" + android:orientation="vertical" + android:layout_width="match_parent" android:layout_height="match_parent"> + + <android.support.v7.widget.RecyclerView xmlns:recycler_view="http://schemas.android.com/apk/res-auto" android:id="@+id/recycler_list" http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4f660cbf/app/src/main/res/values/strings.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 309ad1c..e7b2221 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,7 +53,7 @@ limitations under the License. <string name="workflow_download">Download</string> <string name="workflow_read">View</string> <string name="workflow_mark">Favorite</string> - <string name="workflow_authorhint">Workflow Author</string> + <string name="workflow_authorhint">Workflow Author </string> <string name="workflow_component">Workflow component</string> <string name="favorite_empty"> No Favorites Added Yet</string> <string name="workflow_empty"> No <b>Workflows</b> Available. Check your Connection to the Internet</string> @@ -78,5 +78,6 @@ limitations under the License. <string name="downloadcomplete"> download complete</string> <string name="seemore"> See more &raquo</string> <string name="loading">Loading details</string> + <string name="loadworkflows">Loading Workflows</string> </resources>