Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master 4d6ecbc90 -> e1aa16800


refactored the workflow code and enhance code quality


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

Branch: refs/heads/master
Commit: 08342b63441f86b5bf22a4de0424b800072bd8a5
Parents: 03b5b4c
Author: Rajan Maurya <[email protected]>
Authored: Tue Nov 1 12:36:06 2016 +0530
Committer: Rajan Maurya <[email protected]>
Committed: Tue Nov 1 12:36:06 2016 +0530

----------------------------------------------------------------------
 .../mobile/ui/adapter/WorkflowAdapter.java      | 17 ++--
 .../mobile/ui/workflow/WorkflowFragment.java    | 90 +++++++-------------
 .../mobile/ui/workflow/WorkflowMvpView.java     |  2 +-
 .../mobile/ui/workflow/WorkflowPresenter.java   |  7 +-
 .../workflowdetail/WorkflowDetailActivity.java  | 14 +--
 .../apache/taverna/mobile/utils/Constants.java  |  4 +
 app/src/main/res/layout/fragment_dashboard.xml  |  3 +-
 app/src/main/res/values/colors.xml              | 36 ++++++++
 8 files changed, 91 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java 
b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
index dc6908c..cb06667 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
@@ -25,12 +25,6 @@
 
 package org.apache.taverna.mobile.ui.adapter;
 
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.data.model.Workflow;
-
 import android.content.Context;
 import android.net.Uri;
 import android.support.v7.widget.RecyclerView;
@@ -41,6 +35,12 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.model.Workflow;
+
 import java.util.List;
 
 import butterknife.BindView;
@@ -66,7 +66,6 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolde
     public void addWorkflow(Workflow workflow) {
         this.mWorkflowList.add(workflow);
         this.notifyDataSetChanged();
-
     }
 
     @Override
@@ -76,12 +75,10 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolde
         if (viewType == VIEW_ITEM) {
             View v = LayoutInflater.from(parent.getContext()).inflate(
                     R.layout.item_recyclerview_dashboard, parent, false);
-
             vh = new ViewHolder(v);
         } else {
             View v = LayoutInflater.from(parent.getContext()).inflate(
                     R.layout.item_progressbar, parent, false);
-
             vh = new ProgressViewHolder(v);
         }
         return vh;
@@ -95,7 +92,6 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolde
             String date = workflow.getCreatedAt()
                     .substring(0, workflow.getCreatedAt().indexOf(' '));
 
-
             ((ViewHolder) holder).tvDate.setText(date);
             ((ViewHolder) holder).tvTitle.setText(workflow.getTitle());
             ((ViewHolder) 
holder).tvType.setText(workflow.getType().getContent());
@@ -114,7 +110,6 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolde
 
     @Override
     public int getItemCount() {
-        //Log.d(TAG, "getItemCount: " + mWorkflowList.size());
         return mWorkflowList.size();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/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 44033f4..d04b15d 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
@@ -27,7 +27,6 @@ import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -42,6 +41,7 @@ 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.Constants;
 import org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout;
 
 import java.util.ArrayList;
@@ -51,7 +51,7 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 
 public class WorkflowFragment extends Fragment implements WorkflowMvpView,
-        RecyclerItemClickListner.OnItemClickListener {
+        RecyclerItemClickListner.OnItemClickListener, 
SwipeRefreshLayout.OnRefreshListener {
     public final String LOG_TAG = getClass().getSimpleName();
 
     @BindView(R.id.rv_workflows)
@@ -63,130 +63,103 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
     @BindView(R.id.swipe_refresh)
     ScrollChildSwipeRefreshLayout mSwipeRefresh;
 
-    private DataManager dataManager;
-
     private WorkflowPresenter mWorkflowPresenter;
-
     private WorkflowAdapter mWorkflowAdapter;
 
-
     private int mPageNumber = 1;
     private List<Workflow> mWorkflowList;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         mWorkflowList = new ArrayList<>();
-        dataManager = new DataManager();
+        DataManager dataManager = new DataManager();
         mWorkflowPresenter = new WorkflowPresenter(dataManager);
-
     }
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle
             savedInstanceState) {
-
         View rootView = inflater.inflate(R.layout.fragment_dashboard, 
container, false);
         ButterKnife.bind(this, rootView);
         mWorkflowPresenter.attachView(this);
 
         final LinearLayoutManager layoutManager = new 
LinearLayoutManager(getActivity());
-
         mRecyclerView.setLayoutManager(layoutManager);
         mRecyclerView.setItemAnimator(new DefaultItemAnimator());
         mRecyclerView.hasFixedSize();
-
-        mWorkflowAdapter = new WorkflowAdapter(mWorkflowList, getContext());
-
+        mWorkflowAdapter = new WorkflowAdapter(mWorkflowList, getActivity());
         mRecyclerView.setAdapter(mWorkflowAdapter);
         mRecyclerView.addOnItemTouchListener(new 
RecyclerItemClickListner(getActivity(), this));
 
-        showProgressbar(true);
         mWorkflowPresenter.loadAllWorkflow(mPageNumber);
 
         mRecyclerView.addOnScrollListener(new 
EndlessRecyclerOnScrollListener(layoutManager) {
             @Override
             public void onLoadMore(int current_page) {
-
                 if (ConnectionInfo.isConnectingToInternet(getContext())
                         && mWorkflowList.size() % 10 == 0) {
                     mWorkflowList.add(null);
                     mWorkflowAdapter.notifyItemInserted(mWorkflowList.size());
                     ++mPageNumber;
                     mWorkflowPresenter.loadAllWorkflow(mPageNumber);
-                    Log.d(LOG_TAG, "Loading more");
                 } else if 
(!ConnectionInfo.isConnectingToInternet(getContext())) {
-                    Log.d(LOG_TAG, "Internet not available. Not loading more 
posts.");
-                    showErrorSnackBar();
+                    
showSnackBar(getActivity().getString(R.string.no_internet_connection));
                 }
             }
         });
 
-        mSwipeRefresh.setColorSchemeResources(R.color.colorAccent, 
R.color.colorAccent, R.color
-                .colorPrimary);
-        mSwipeRefresh.setOnRefreshListener(new 
SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                if (ConnectionInfo.isConnectingToInternet(getContext())) {
-
-                    mPageNumber = 1;
-                    mWorkflowPresenter.loadAllWorkflow(mPageNumber);
-
-                    mSwipeRefresh.setRefreshing(true);
+        mSwipeRefresh.setColorSchemeColors(getActivity()
+                .getResources().getIntArray(R.array.swipeRefreshColors));
+        mSwipeRefresh.setOnRefreshListener(this);
 
-                    Log.d(LOG_TAG, "Swipe Refresh");
+        return rootView;
+    }
 
-                } else {
-                    Log.d(LOG_TAG, "NO Internet Connection");
-                    showErrorSnackBar();
-                    if (mSwipeRefresh.isRefreshing()) {
-                        mSwipeRefresh.setRefreshing(false);
-                    }
-                }
 
+    @Override
+    public void onRefresh() {
+        if (ConnectionInfo.isConnectingToInternet(getContext())) {
+            mPageNumber = 1;
+            mWorkflowPresenter.loadAllWorkflow(mPageNumber);
+            mSwipeRefresh.setRefreshing(true);
+        } else {
+            
showSnackBar(getActivity().getString(R.string.no_internet_connection));
+            if (mSwipeRefresh.isRefreshing()) {
+                mSwipeRefresh.setRefreshing(false);
             }
-        });
-
-
-        return rootView;
+        }
     }
 
     @Override
-    public void showProgressbar(boolean b) {
-
-        if (b) {
+    public void showProgressbar(boolean show) {
+        mSwipeRefresh.setRefreshing(show);
+        if (show && mWorkflowAdapter.getItemCount() == 0) {
             mProgressBar.setVisibility(View.VISIBLE);
+            mSwipeRefresh.setRefreshing(false);
         } else {
             mProgressBar.setVisibility(View.GONE);
-            mRecyclerView.setVisibility(View.VISIBLE);
         }
 
     }
 
     @Override
-    public void showErrorSnackBar() {
-
-        final Snackbar snackbar = Snackbar.make(mRecyclerView, "NO Internet 
Connection", Snackbar
-                .LENGTH_INDEFINITE);
-        snackbar.setAction("OK", new View.OnClickListener() {
+    public void showSnackBar(String message) {
+        final Snackbar snackbar = Snackbar.make(mRecyclerView, message, 
Snackbar.LENGTH_INDEFINITE);
+        snackbar.setAction(getActivity().getString(R.string.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);
+        if (mPageNumber == 1) {
             mWorkflowList.clear();
         }
-
         mWorkflowList.addAll(workflows.getWorkflowList());
         mWorkflowAdapter.notifyDataSetChanged();
     }
@@ -196,7 +169,6 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
         if (mPageNumber != 1) {
             mWorkflowList.remove(mWorkflowList.size() - 1);
             mWorkflowAdapter.notifyDataSetChanged();
-
         }
     }
 
@@ -210,8 +182,8 @@ public class WorkflowFragment extends Fragment implements 
WorkflowMvpView,
     public void onItemClick(View childView, int position) {
         if (mWorkflowList.get(position) != null && position != -1) {
             Intent intent = new Intent(getActivity(), 
WorkflowDetailActivity.class);
-            intent.putExtra("id", mWorkflowList.get(position).getId());
-            intent.putExtra("title", mWorkflowList.get(position).getTitle());
+            intent.putExtra(Constants.WORKFLOW_ID, 
mWorkflowList.get(position).getId());
+            intent.putExtra(Constants.WORKFLOW_TITLE, 
mWorkflowList.get(position).getTitle());
             startActivity(intent);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java
index 677eb1d..2d09336 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java
@@ -26,7 +26,7 @@ public interface WorkflowMvpView extends MvpView {
 
     void showProgressbar(boolean b);
 
-    void showErrorSnackBar();
+    void showSnackBar(String message);
 
     void showWorkflows(Workflows workflows);
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/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 5d62a25..22192f7 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
@@ -33,7 +33,7 @@ import rx.schedulers.Schedulers;
 
 public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> {
 
-    public final String LOG_TAG = getClass().getSimpleName();
+    public final String LOG_TAG = WorkflowPresenter.class.getSimpleName();
     private DataManager mDataManager;
     private Subscription mSubscriptions;
 
@@ -54,6 +54,7 @@ public class WorkflowPresenter extends 
BasePresenter<WorkflowMvpView> {
     }
 
     public void loadAllWorkflow(int pageNumber) {
+        getMvpView().showProgressbar(true);
         if (mSubscriptions != null) mSubscriptions.unsubscribe();
         mSubscriptions = 
mDataManager.getAllWorkflow(getQueryOptions(pageNumber))
                 .observeOn(AndroidSchedulers.mainThread())
@@ -61,25 +62,25 @@ public class WorkflowPresenter extends 
BasePresenter<WorkflowMvpView> {
                 .subscribe(new Observer<Workflows>() {
                     @Override
                     public void onCompleted() {
-                        getMvpView().showProgressbar(false);
                     }
 
                     @Override
                     public void onError(Throwable e) {
                         getMvpView().showProgressbar(false);
+                        getMvpView().showSnackBar("Failed to load workflow");
                     }
 
                     @Override
                     public void onNext(Workflows workflows) {
                         getMvpView().removeLoadMoreProgressbar();
                         getMvpView().showWorkflows(workflows);
+                        getMvpView().showProgressbar(false);
                     }
                 });
 
     }
 
     private Map<String, String> getQueryOptions(int pageNumber) {
-
         Map<String, String> option = new HashMap<>();
         option.put("elements", "title,type,uploader,preview,created-at");
         option.put("page", String.valueOf(pageNumber));

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailActivity.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailActivity.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailActivity.java
index 1f03ac1..8aa5d70 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailActivity.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailActivity.java
@@ -19,14 +19,15 @@
 package org.apache.taverna.mobile.ui.workflowdetail;
 
 
-import org.apache.taverna.mobile.R;
-
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.utils.Constants;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 
@@ -43,20 +44,21 @@ public class WorkflowDetailActivity extends 
AppCompatActivity {
         ButterKnife.bind(this);
 
         setSupportActionBar(mToolbar);
-
         ActionBar actionbar = getSupportActionBar();
 
+        String workflowTitle = 
getIntent().getStringExtra(Constants.WORKFLOW_TITLE);
+        String workflowId = getIntent().getStringExtra(Constants.WORKFLOW_ID);
+
         if (actionbar != null) {
             actionbar.setHomeButtonEnabled(true);
             actionbar.setDisplayHomeAsUpEnabled(true);
-            actionbar.setTitle(getIntent().getStringExtra("title"));
+            actionbar.setTitle(workflowTitle);
         }
 
 
         if (savedInstanceState == null) {
             getSupportFragmentManager().beginTransaction()
-                    .add(R.id.frame_container
-                            , 
WorkflowDetailFragment.newInstance(getIntent().getStringExtra("id")))
+                    .add(R.id.frame_container, 
WorkflowDetailFragment.newInstance(workflowId))
                     .commit();
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/java/org/apache/taverna/mobile/utils/Constants.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/Constants.java 
b/app/src/main/java/org/apache/taverna/mobile/utils/Constants.java
index 17499c2..b4a0832 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/Constants.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/Constants.java
@@ -26,4 +26,8 @@ public class Constants {
     public static final String ARGS_URL = "url";
 
     public static final String WORKFLOW_URL = "Workflow_url";
+
+    public static final String WORKFLOW_ID = "workflow_id";
+
+    public static final String WORKFLOW_TITLE = "workflow_title";
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/res/layout/fragment_dashboard.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_dashboard.xml 
b/app/src/main/res/layout/fragment_dashboard.xml
index 0f960dc..c16fb63 100644
--- a/app/src/main/res/layout/fragment_dashboard.xml
+++ b/app/src/main/res/layout/fragment_dashboard.xml
@@ -40,8 +40,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:clipToPadding="false"
-                android:padding="@dimen/item_offset"
-                android:visibility="gone"/>
+                android:padding="@dimen/item_offset"/>
     </org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout>
 
     <ProgressBar

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/08342b63/app/src/main/res/values/colors.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/values/colors.xml 
b/app/src/main/res/values/colors.xml
index 718bedb..1225ace 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -23,4 +23,40 @@
        <color name="button_click_background">#e0e0e0</color>
        <color name="black_background">#EE2196F3</color>
        <color name="grey_background">#e0e0e0</color>
+
+       <!-- A light Holo shade of blue -->
+       <color name="blue_light">#ff33b5e5</color>
+       <!-- A light Holo shade of gray -->
+       <color name="gray_light">#33999999</color>
+       <!-- A dark Holo shade of gray -->
+       <color name="gray_dark">#BB666666</color>
+       <!-- A light Holo shade of green -->
+       <color name="green_light">#ff99cc00</color>
+       <!-- A light Holo shade of red -->
+       <color name="red_light">#ffff4444</color>
+       <!-- A dark Holo shade of blue -->
+       <color name="blue_dark">#ff0099cc</color>
+       <!-- A dark Holo shade of green -->
+       <color name="green_dark">#ff669900</color>
+       <!-- A dark Holo shade of red -->
+       <color name="red_dark">#ffcc0000</color>
+       <!-- A Holo shade of purple -->
+       <color name="purple">#ffaa66cc</color>
+       <!-- A light Holo shade of orange -->
+       <color name="orange_light">#ffffbb33</color>
+       <!-- A dark Holo shade of orange -->
+       <color name="orange_dark">#ffff8800</color>
+       <!-- A really bright Holo shade of blue -->
+       <color name="blue_bright">#ff00ddff</color>
+       <!-- A really bright Holo shade of gray -->
+       <color name="gray_bright">#33CCCCCC</color>
+
+       <!--Swipe Refresh Colors-->
+       <array name="swipeRefreshColors">
+               <item>@color/blue_light</item>
+               <item>@color/green_light</item>
+               <item>@color/red_light</item>
+               <item>@color/orange_light</item>
+       </array>
+
 </resources>
\ No newline at end of file

Reply via email to