fixed workflow mark as favorite. Workflows can now be marked and saved into the 
dataabase without conflicts


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

Branch: refs/heads/master
Commit: 6feace8bbcdc9cae4cc0c77c1979f4c0a45c4412
Parents: bce8711
Author: larrytech7 <[email protected]>
Authored: Fri Jul 24 16:23:44 2015 +0100
Committer: larrytech7 <[email protected]>
Committed: Fri Jul 24 16:23:44 2015 +0100

----------------------------------------------------------------------
 .../mobile/adapters/WorkflowAdapter.java        |  6 ++--
 .../taverna/mobile/utils/Workflow_DB.java       | 38 ++++++++++++++++++--
 2 files changed, 40 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6feace8b/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 e89f6f0..81239c5 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
@@ -151,8 +151,10 @@ public class WorkflowAdapter extends 
RecyclerView.Adapter<WorkflowAdapter.ViewHo
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
-                boolean saved =  favDB.save();
-                if(saved) {
+                //boolean saved =  favDB.save();
+                int saved =
+                favDB.insert(mfav);
+                if(saved >0) {
                     Toast.makeText(context, "Workflow marked as favorite", 
Toast.LENGTH_SHORT).show();
                     
viewHolder.btn_mark_workflow.setCompoundDrawables(context.getResources().getDrawable(android.R.drawable.btn_star_big_on),null,null,null);
                     //refresh fragment since data has changed

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6feace8b/app/src/main/java/org/apache/taverna/mobile/utils/Workflow_DB.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/Workflow_DB.java 
b/app/src/main/java/org/apache/taverna/mobile/utils/Workflow_DB.java
index a82f214..1786e8e 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/Workflow_DB.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/Workflow_DB.java
@@ -81,7 +81,6 @@ public class Workflow_DB {
                        jarray.put(item);
                }
                dataobj.put(item_id, jarray);
-               Log.d(LIBTAG, ""+dataobj.toString(2));
                return this;
        }
        
@@ -95,7 +94,7 @@ public class Workflow_DB {
                                msharedpreference = 
PreferenceManager.getDefaultSharedPreferences(context);
                                //read key and get existing data
                                List<ArrayList<Object>> results = new 
ArrayList<ArrayList<Object>>();
-                               JSONObject mainJson = new 
JSONObject(msharedpreference.getString(ENTITY_KEY, ENTITY_KEY+":{}"));
+                               JSONObject mainJson = new 
JSONObject(msharedpreference.getString(ENTITY_KEY, "{"+ENTITY_KEY+":{}}"));
                                
                                Log.i(ENTITY_KEY, mainJson.toString(2));
                                
@@ -213,6 +212,41 @@ public class Workflow_DB {
                else
                        return false;
        }
+
+    /**
+     *
+     * @return the number of entities inserted
+     */
+    public int insert(ArrayList<Object> item){
+        long start = System.currentTimeMillis();
+        msharedpreference = 
PreferenceManager.getDefaultSharedPreferences(context);
+        try {
+            JSONObject jsonObject = new 
JSONObject(msharedpreference.getString(ENTITY_KEY, "{"+ENTITY_KEY+":{}}")); 
//main json db
+            System.out.println(jsonObject.toString(1));
+
+            JSONArray jsonArray;
+            if(jsonObject.has("ids"))
+                jsonArray = jsonObject.optJSONArray("ids");
+            else
+                jsonArray = new JSONArray();
+
+            String newItemId = generateRandomId(); //generate an entity id to 
be used for the new entity
+            jsonArray.put(jsonArray.length(),newItemId); //add new entity id
+            JSONArray newEntity = new JSONArray();
+            for(Object entity: item){
+                newEntity.put(entity);
+            }
+            jsonObject.put("ids", jsonArray);
+            jsonObject.put(newItemId, newEntity);
+            msharedpreference.edit().putString(ENTITY_KEY, 
jsonObject.toString()).commit();
+            long end = System.currentTimeMillis();
+            System.out.println("Insert benchmark length = "+(end - start));
+            return 1;
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
        
        /**
         * save the ids of all entity entries

Reply via email to