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
