fixing workflow streams on daashboard

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

Branch: refs/heads/master
Commit: 1e9c5cfade4a221a5e236439fd2a7f20264b0ffd
Parents: 5f424af
Author: larrytech7 <larrya...@gmail.com>
Authored: Thu Aug 13 18:06:45 2015 +0100
Committer: larrytech7 <larrya...@gmail.com>
Committed: Thu Aug 13 18:06:45 2015 +0100

----------------------------------------------------------------------
 .../adapters/FavoriteWorkflowAdapter.java       | 15 ++++++++++++
 .../mobile/adapters/WorkflowAdapter.java        |  4 +---
 .../mobile/fragments/WorkflowItemFragment.java  |  2 +-
 .../workflowdetails/WorkflowdetailFragment.java | 24 ++++++++++++++++----
 app/src/main/res/values/strings.xml             |  1 +
 5 files changed, 38 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
 
b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
index c2bdfa6..4ad6eef 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
@@ -25,6 +25,8 @@ package org.apache.taverna.mobile.adapters;
  */
 
 import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -110,6 +112,7 @@ public class FavoriteWorkflowAdapter extends 
RecyclerView.Adapter<FavoriteWorkfl
             public void onClick(View view) {
                 Toast.makeText(context, String.format("%s", "Removed 
"),Toast.LENGTH_SHORT).show();
                 try {
+                    //removeMarkedWorkflow(String.valueOf(data.get(0)));
                     favDB.delete(String.valueOf(data.get(0)));
                     notifyDataSetChanged();
                 } catch (JSONException e) {
@@ -119,6 +122,18 @@ public class FavoriteWorkflowAdapter extends 
RecyclerView.Adapter<FavoriteWorkfl
             }
         });
     }
+    //remove a workflow from the marked state
+    private void removeMarkedWorkflow(String strToRemove){
+        SharedPreferences sharedPreferences = 
PreferenceManager.getDefaultSharedPreferences(context);
+        char[] charsequence = 
sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, "").toCharArray();
+        for(int i=0; i<charsequence.length; i++){
+            if(charsequence[i] == strToRemove.charAt(0)){
+                charsequence[i] = '0';
+                break;
+            }
+        }
+        sharedPreferences.edit().putString(WorkflowAdapter.FAVORITE_LIST_DB, 
charsequence.toString()).apply();
+    }
 
     @Override
     public int getItemCount() {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/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 0d1c99c..8cecae7 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
@@ -147,8 +147,6 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<WorkflowAdapter.ViewHo
     @Override
     public void onBindViewHolder(final ViewHolder viewHolder, int i) {
 
-        final int j = i; //position of workflow item that has workflow data
-
         final long wid = workflowList.get(i).getId();
         final String author = workflowList.get(i).getWorkflow_author();
 //        final String author = workflowList.get(i).getUploader().getName();
@@ -169,6 +167,7 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<WorkflowAdapter.ViewHo
 //        it.putExtra("workflowid", workflow.get(i).getId()); //workflow_url
         it.putExtra("uri",uri);//uri
         it.putExtra("wtitle", title); //pass this workflow's title to the 
detail activity so the corresponding run can be fetched
+        it.putExtra("wid", wid);
         WorkflowdetailFragment.WORKFLO_ID = title;//workflow.get(i).getId();
 
             //determine whether to mark button as favorited or not
@@ -182,7 +181,6 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<WorkflowAdapter.ViewHo
                     }
             }
 
-
         viewHolder.btn_view_workflow.setOnClickListener(new 
View.OnClickListener() {
             @Override
             public void onClick(View view) {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/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 0228a24..784e631 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
@@ -294,7 +294,7 @@ public class WorkflowItemFragment extends Fragment 
implements SwipeRefreshLayout
         isRefreshData = true;
         isLoadMoreData = false;
 
-        new 
WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+currentPage);
+        new WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+1);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
 
b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
index 94e072e..38a348c 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
@@ -33,6 +33,7 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Loader;
+import android.content.SharedPreferences;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.net.Uri;
@@ -110,6 +111,7 @@ public class WorkflowdetailFragment extends Fragment 
implements View.OnClickList
     private static String download_url;
     public static String WORKFLO_ID = "";
     public static Context cont;
+    SharedPreferences sharedPreferences;
     private static boolean LOAD_STATE = false;
     private static boolean DROPUPLOAD = false;
     static Animation zoomin;
@@ -119,6 +121,7 @@ public class WorkflowdetailFragment extends Fragment 
implements View.OnClickList
     final static private String BOX_APP_KEY = "doicbvkfyzligh2";
     final static private String BOX_APP_SECRET = "3uuuw36mm7jkflc";
     static Workflow currentWorkflow =  null;
+    private long wid;
 
     private DropboxAPI<AndroidAuthSession> mDBApi;
 
@@ -157,12 +160,23 @@ public class WorkflowdetailFragment extends Fragment 
implements View.OnClickList
         zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout);
 
         isZoomIn = false;
-
+         sharedPreferences = 
PreferenceManager.getDefaultSharedPreferences(getActivity());
+        wid = getActivity().getIntent().getLongExtra("wid", 0);
         Button createRun = (Button) rootView.findViewById(R.id.run_wk);
         createRun.setOnClickListener(this);
         Button download = (Button) rootView.findViewById(R.id.download_wk);
         download.setOnClickListener(this);
-        rootView.findViewById(R.id.mark_wk).setOnClickListener(this);
+        Button mark_workflow = (Button) rootView.findViewById(R.id.mark_wk);
+        mark_workflow.setOnClickListener(this);
+        final String favs = 
sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, "");
+        String[] ids = favs.split(",");
+        if(ids.length > 0) {
+            for (String id : ids)
+                if (id.equalsIgnoreCase("" +wid )){
+                    
mark_workflow.setBackgroundResource(R.drawable.abc_list_selector_disabled_holo_light);
+                    break;
+                }
+        }
         
rootView.findViewById(R.id.saveToDropboxButton).setOnClickListener(this);
         
rootView.findViewById(R.id.saveToGoogleDriveButton).setOnClickListener(this);
         (rootView.findViewById(R.id.wkf_image)).setOnLongClickListener(new 
View.OnLongClickListener() {
@@ -210,8 +224,9 @@ public class WorkflowdetailFragment extends Fragment 
implements View.OnClickList
 
                 break;
             case R.id.mark_wk:
-                //TODO mark a workflow as important and launch task to store 
the entry into the local database
+
                 ArrayList<Object> mfav = new ArrayList<Object>();
+                String favs = 
sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, "");
                 //save current workflow as favorite
                 mfav.add(currentWorkflow.getId());
                 mfav.add(currentWorkflow.getWorkflow_author());
@@ -222,8 +237,9 @@ public class WorkflowdetailFragment extends Fragment 
implements View.OnClickList
                 mfav.add(((TextView) 
rootView.findViewById(R.id.wkf_author)).getText());
                 int result = new Workflow_DB(getActivity(), 
WorkflowAdapter.WORKFLOW_FAVORITE_KEY).insert(mfav);
                 if(result >0) {
+                    
sharedPreferences.edit().putString(WorkflowAdapter.FAVORITE_LIST_DB, 
favs+wid+",").apply();
                     Toast.makeText(getActivity(), "Workflow marked as 
favorite", Toast.LENGTH_SHORT).show();
-                    ((Button) 
view).setCompoundDrawables(getActivity().getResources().getDrawable(android.R.drawable.btn_star_big_on),null,null,null);
+                     
view.setBackgroundResource(R.drawable.abc_list_selector_disabled_holo_light);
 
                 }else if(result == -1){
                     Toast.makeText(getActivity(),"sorry!, this workflow has 
already been marked as favorite",Toast.LENGTH_SHORT).show();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/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 39be676..25c2755 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -108,5 +108,6 @@ limitations under the License.
     <string name="usage_menu_Text">The navigation drawer brings up a menu. The 
workflow menu item allows one to quickly return to the workflow streams page 
from any screen. The \'Open Workflow\' item allows users to pick a valid 
workflow from external storage and run it against a Taverna Server through a 
Taverna Player. Settings allow user to configure player accounts and portal 
urls. Logout allows users to log-out of the app</string>
     <string name="usage_detail">Usage | Workfow Detail</string>
     <string name="usage_detail_text">The details screen allows users to run 
particular worklows and provides detailed information about the workflows. 
Workflows can also be downloaded from here. Workflows can also be marked from 
this screen which would save much more data for offline use than on the 
dashboard screen. This screen also provides a set of runs for the workflow from 
other users</string>
+    <string name="runid_text">Workflow Run ID:</string>
 
 </resources>

Reply via email to