You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by ia...@apache.org on 2015/06/25 12:00:25 UTC

[1/6] incubator-taverna-mobile git commit: integrated myexperiment API for reading workflows

Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master 419867410 -> 0d76bcc37


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/simple-xml-2.7.1/simple-xml-2.7.1.iml
----------------------------------------------------------------------
diff --git a/simple-xml-2.7.1/simple-xml-2.7.1.iml b/simple-xml-2.7.1/simple-xml-2.7.1.iml
new file mode 100644
index 0000000..07735a7
--- /dev/null
+++ b/simple-xml-2.7.1/simple-xml-2.7.1.iml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="TavernaMobile2" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="android-gradle" name="Android-Gradle">
+      <configuration>
+        <option name="GRADLE_PROJECT_PATH" value=":simple-xml-2.7.1" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
+

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/simple-xml-2.7.1/simple-xml-2.7.1.jar
----------------------------------------------------------------------
diff --git a/simple-xml-2.7.1/simple-xml-2.7.1.jar b/simple-xml-2.7.1/simple-xml-2.7.1.jar
new file mode 100644
index 0000000..913725d
Binary files /dev/null and b/simple-xml-2.7.1/simple-xml-2.7.1.jar differ


[6/6] incubator-taverna-mobile git commit: This closes #5

Posted by ia...@apache.org.
This closes #5


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

Branch: refs/heads/master
Commit: 0d76bcc37a7342e864d305b890feab3fd75afe16
Parents: 4198674 1b07fee
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Thu Jun 25 10:59:26 2015 +0100
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Thu Jun 25 10:59:26 2015 +0100

----------------------------------------------------------------------
 app/app.iml                                     |   2 +
 .../DashboardMainActivity$MyAdapter.class       | Bin 1983 -> 1983 bytes
 .../activities/DashboardMainActivity.class      | Bin 8789 -> 8502 bytes
 .../LoginActivity$LoginFragment$LoginTask.class | Bin 5533 -> 4132 bytes
 .../LoginActivity$LoginFragment.class           | Bin 3446 -> 3446 bytes
 .../mobile/activities/LoginActivity.class       | Bin 1806 -> 1806 bytes
 .../adapters/FavoriteWorkflowAdapter.class      | Bin 2937 -> 2827 bytes
 .../mobile/adapters/WorkflowAdapter$1.class     | Bin 1461 -> 1461 bytes
 .../mobile/adapters/WorkflowAdapter$2.class     | Bin 2670 -> 2514 bytes
 .../mobile/adapters/WorkflowAdapter$3.class     | Bin 1418 -> 1581 bytes
 .../mobile/adapters/WorkflowAdapter$4.class     | Bin 0 -> 1418 bytes
 .../adapters/WorkflowAdapter$ViewHolder.class   | Bin 1506 -> 1506 bytes
 .../mobile/adapters/WorkflowAdapter.class       | Bin 6594 -> 7597 bytes
 .../mobile/fragments/FavoriteFragment.class     | Bin 5106 -> 5346 bytes
 .../fragments/WorkflowItemFragment$1.class      | Bin 0 -> 1109 bytes
 .../mobile/fragments/WorkflowItemFragment.class | Bin 9930 -> 11046 bytes
 .../WorkflowdetailFragment.class                | Bin 8969 -> 8969 bytes
 .../TavernaPlayerAPI$Authenticator.class        | Bin 926 -> 926 bytes
 .../mobile/tavernamobile/TavernaPlayerAPI.class | Bin 2240 -> 2240 bytes
 .../taverna/mobile/tavernamobile/User.class     | Bin 0 -> 2557 bytes
 .../Workflow$workflow_input_type.class          | Bin 1386 -> 1386 bytes
 .../taverna/mobile/tavernamobile/Workflow.class | Bin 5312 -> 8023 bytes
 .../tavernamobile/WorkflowComponent.class       | Bin 360 -> 360 bytes
 .../taverna/mobile/utils/DB_Utility.class       | Bin 1363 -> 1363 bytes
 .../apache/taverna/mobile/utils/HttpUtil.class  | Bin 0 -> 3921 bytes
 ...MyExperimentXmlParser$WorkflowItemRule.class | Bin 0 -> 1410 bytes
 .../MyExperimentXmlParser$WorkflowRule.class    | Bin 0 -> 3460 bytes
 .../mobile/utils/MyExperimentXmlParser.class    | Bin 0 -> 577 bytes
 .../mobile/utils/WorkflowDataCallback.class     | Bin 0 -> 299 bytes
 .../utils/WorkflowLoader$WorkflowRule.class     | Bin 0 -> 3198 bytes
 .../taverna/mobile/utils/WorkflowLoader.class   | Bin 5583 -> 4653 bytes
 .../mobile/utils/WorkflowLoaderMain.class       | Bin 0 -> 785 bytes
 .../taverna/mobile/utils/WorkflowParser.class   | Bin 0 -> 2072 bytes
 app/build/intermediates/dex/debug/classes.dex   | Bin 2162936 -> 2013576 bytes
 .../incremental/mergeAssets/debug/merger.xml    |   2 +-
 .../incremental/mergeResources/debug/merger.xml |   4 +-
 .../manifests/full/debug/AndroidManifest.xml    |   3 +-
 ...2dbcae8b037134953fc4e3eb3645a66e2931661a.jar | Bin 9649 -> 9649 bytes
 ...be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar | Bin 315406 -> 315406 bytes
 ...cb13d360204b697dbd760e7e80b4357b182d723b.jar | Bin 211882 -> 211882 bytes
 ...ebdf15783ac01747301cff830c2f3174571cec96.jar | Bin 97652 -> 97652 bytes
 ...ab39a2263976cb0fd278360818acc6d173a8d8e0.jar | Bin 76229 -> 76229 bytes
 ...0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar | Bin 0 -> 130265 bytes
 ...0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar | Bin 0 -> 8614 bytes
 ...2f3cb2807dead79ef0327bdd9269035b879fdd27.jar | Bin 1560 -> 1560 bytes
 .../debug/layout/fragment_workflow_about.xml    |   2 -
 .../debug/layout/fragment_workflow_licence.xml  |   1 -
 .../res/debug/menu/dashboard_main.xml           |   2 +-
 .../resources/resources-debug-androidTest.ap_   | Bin 776 -> 776 bytes
 .../intermediates/resources/resources-debug.ap_ | Bin 729303 -> 729244 bytes
 app/build/outputs/apk/app-debug-unaligned.apk   | Bin 1462942 -> 1597250 bytes
 app/build/outputs/apk/app-debug.apk             | Bin 1463342 -> 1597653 bytes
 .../logs/manifest-merger-debug-report.txt       |  50 +++---
 app/libs/simple-xml-2.7.1.jar                   | Bin 0 -> 427590 bytes
 app/libs/sjxp-2.2.jar                           | Bin 0 -> 24390 bytes
 app/src/main/AndroidManifest.xml                |   3 +-
 .../mobile/activities/LoginActivity.java        |  83 +++++-----
 .../mobile/adapters/WorkflowAdapter.java        |  38 +++--
 .../mobile/fragments/FavoriteFragment.java      | 143 ++++++++++++------
 .../mobile/fragments/WorkflowItemFragment.java  | 151 ++++++++-----------
 .../workflowdetails/WorkflowdetailFragment.java |   6 +-
 .../mobile/tavernamobile/TavernaPlayerAPI.java  |  25 ++-
 .../taverna/mobile/tavernamobile/User.java      | 129 ++++++++++++++++
 .../taverna/mobile/tavernamobile/Workflow.java  | 110 +++++++++++++-
 .../mobile/tavernamobile/WorkflowComponent.java |   3 +-
 .../apache/taverna/mobile/utils/DB_Utility.java |  23 +++
 .../apache/taverna/mobile/utils/HttpUtil.java   | 103 +++++++++++++
 .../mobile/utils/WorkflowDataCallback.java      |  14 ++
 .../taverna/mobile/utils/WorkflowLoader.java    |  83 +++++++---
 .../mobile/utils/WorkflowLoaderMain.java        |  44 ++++++
 .../utils/xmlparsers/MyExperimentXmlParser.java | 146 ++++++++++++++++++
 .../mobile/utils/xmlparsers/WorkflowParser.java |  35 +++++
 .../main/res/layout/fragment_workflow_about.xml |   1 -
 .../res/layout/fragment_workflow_licence.xml    |   1 -
 .../main/res/layout/workflow_item_layout.xml    |   9 +-
 build/intermediates/dex-cache/cache.xml         |  38 +++--
 build/intermediates/model_data.bin              | Bin 106687 -> 116572 bytes
 settings.gradle                                 |   2 +-
 simple-xml-2.7.1/simple-xml-2.7.1.iml           |  16 ++
 simple-xml-2.7.1/simple-xml-2.7.1.jar           | Bin 0 -> 427590 bytes
 80 files changed, 994 insertions(+), 278 deletions(-)
----------------------------------------------------------------------



[3/6] incubator-taverna-mobile git commit: integrated myexperiment API for reading workflows

Posted by ia...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/incremental/mergeResources/debug/merger.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/incremental/mergeResources/debug/merger.xml b/app/build/intermediates/incremental/mergeResources/debug/merger.xml
index 7178d1f..e916b0e 100644
--- a/app/build/intermediates/incremental/mergeResources/debug/merger.xml
+++ b/app/build/intermediates/incremental/mergeResources/debug/merger.xml
@@ -1624,7 +1624,7 @@
 
         <item name="android:listChoiceIndicatorSingle">@drawable/abc_btn_radio_material</item>
         <item name="android:listChoiceIndicatorMultiple">@drawable/abc_btn_check_material</item>
-    </style></file></source></dataSet><dataSet config="main"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res"><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+    </style></file></source></dataSet><dataSet config="main"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res"><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/strings_activity_settings.xml" qualifiers=""><string name="pref_player_title">Configure Taverna player portal</string><string name="pref_login_description">Decide whether or not to be automatically logged-in when next the app starts</string><string name="pref_remainLogged_in">Remain Logged-in</string><string name="pref_player_default"> http://heater.cs.man.ac.uk:3000/</string><string name="pref_header_general">General</string><string name="pref_server_title">Configure Taverna Server </string><string name="pref_server_default"> http://heater.cs.man.ac.uk:8090/taverna-2.5.4/</string><string name="pref_server_des">Configure a different Taverna Server for the app</string><string name="title_activity_settings">Settings</string><string name="pref_player_des">Configure a different pla
 yer URL for the app to use. End with the mount point(/)</string></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
         <!-- Customize your theme here. -->
     </style></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/dimens.xml" qualifiers=""><dimen name="activity_vertical_margin">16dp</dimen><dimen name="activity_horizontal_margin">16dp</dimen><dimen name="navigation_drawer_width">240dp</dimen></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/refs.xml" qualifiers=""><item name="fragment_item" type="layout">@layout/fragment_item_list</item></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/strings.xml" qualifiers=""><string name="downloadfailed">Download Failed. Please try again</string><string name="emailerr">Email must not be empty</string><string name="fetchrun">Fetching run components </string><string name="downloadduplicate">Already Downloading</string><string name="workflow_mark">Favorite</string><string name="downloadprogress">Workflow download in progress</string><string name="title_usage">Usage</string><string name="wktitle">TITL
 E</string><string name="title_favorite">Favorites</string><array name="workflow_info">
         <item>Date Created</item>
@@ -1633,4 +1633,4 @@
     </array><string name="detail_title_section1">Workflow </string><string name="detail_title_section4"> About </string><string name="detail_title_section2">Run History</string><string name="downloadcomplete">  download complete</string><string name="completebrand">Powered By Apache Taverna</string><string name="detail_title_section3">Licence | Policy</string><string name="loginpassword">Password</string><string name="menu_search">Search</string><string name="title_activity_dashboard_main">Dashboard</string><string name="title_about">About </string><string name="search_hint"> Search workflows by name</string><string name="passworderr">Password must not be empty</string><string name="title_activity_flash_screen">Taverna Mobile</string><string name="Logininfo">Login to your Account</string><string name="action_example">Example action</string><string name="hello_blank_fragment"> About Workflow </string><string name="workflow_authorhint">Workflow Author  </string><string name="descripti
 on">Workflow Description</string><string name="navigation_drawer_close">Close navigation drawer</string><string name="play_workflow">Create Run</string><string name="title_explore">Workflows</string><string name="loginbutton">Login</string><string name="seemore"> See more &amp;raquo</string><string name="loadworkflows">Loading Workflows</string><string name="created">Created :</string><string name="marked">Marked On</string><string name="keeplogin">Remain Logged-in</string><string name="loading">Loading details</string><string name="title_activity_workflow_detail">Workflow Detail</string><string name="title_openworkflow">Open Workflow</string><string name="workflow_component">Workflow component</string><string name="navigation_drawer_open">Open navigation drawer</string><string name="workflow_read">View</string><string name="hello_world"> Empty </string><string name="favorite_empty"> No Favorites Added Yet</string><string-array name="menus">
         <item>Usage</item>
         <item>Quit</item>
-    </string-array><string name="action_settings">Settings</string><string name="app_name">TavernaMobile</string><string name="brand">Powered By</string><string name="workflow_download">Download</string><string name="modified">Modified :</string><string name="workflow_empty"> No <b>Workflows</b> Available. Check your Connection to the Internet</string><string name="downloaderror">Unable to start Download. Check your internet connectivity</string><string name="loginusername">Email or Username</string><string name="title_exit">Logout</string></file><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_markworkflow_selected.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_workflows.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_usage.png"
  qualifiers="mdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_viewworkflow.png" qualifiers="mdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/icuserprofiles.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_poweredby.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_logout.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_launcher.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_user.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Deskt
 op/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_quit.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_about.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_markworkflow_unselected.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_openwk.png" qualifiers="mdpi-v4" type="mipmap"/><file name="searchable" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/searchable.xml" qualifiers="" type="xml"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-sw600dp/refs.xml" qualifiers="sw600dp-v13"><item name="fragment_item" type="layout">@layout/fragment_item_grid</item></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-sw
 600dp/strings.xml" qualifiers="sw600dp-v13"><string name="completebrand">Powered By Apache Taverna</string></file><file name="workflow_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_layout.xml" qualifiers="" type="layout"/><file name="activity_flash_screen" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_flash_screen.xml" qualifiers="" type="layout"/><file name="fragment_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_login.xml" qualifiers="" type="layout"/><file name="fragment_item_list" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_item_list.xml" qualifiers="" type="layout"/><file name="fragment_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_detail.xml" qualifiers="" type="layout"/><file name="fragment_item_grid" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fr
 agment_item_grid.xml" qualifiers="" type="layout"/><file name="fragment_workflow_run_history" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_run_history.xml" qualifiers="" type="layout"/><file name="fragment_navigation_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_navigation_drawer.xml" qualifiers="" type="layout"/><file name="menu_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/menu_item_layout.xml" qualifiers="" type="layout"/><file name="activity_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_login.xml" qualifiers="" type="layout"/><file name="activity_dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_dashboard_main.xml" qualifiers="" type="layout"/><file name="activity_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_workflow_detail.xm
 l" qualifiers="" type="layout"/><file name="workflow_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_item_layout.xml" qualifiers="" type="layout"/><file name="fragment_workflow_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_about.xml" qualifiers="" type="layout"/><file name="fragment_workflow_licence" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_licence.xml" qualifiers="" type="layout"/><file name="fragment_dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_dashboard_main.xml" qualifiers="" type="layout"/><file name="favorite_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/favorite_item_layout.xml" qualifiers="" type="layout"/><file name="fragment_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout-xlarge/fragment_login.xml" qualifiers="xlarge-v4" 
 type="layout"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-w820dp/dimens.xml" qualifiers="w820dp-v13"><dimen name="activity_horizontal_margin">64dp</dimen></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-w820dp/strings.xml" qualifiers="w820dp-v13"><string name="completebrand">Powered By Apache Taverna</string></file><file name="activity_dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout-land/activity_dashboard_main.xml" qualifiers="land" type="layout"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xxhdpi/ic_drawer.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic
 _markworkflow_selected.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_workflows.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_usage.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_viewworkflow.png" qualifiers="hdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/icuserprofiles.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_poweredby.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_logout.png" qualifiers="hdpi-v4" type="mipmap"/><file n
 ame="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_launcher.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_user.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_quit.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_about.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_markworkflow_unselected.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_openwk.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile
 2/app/src/main/res/mipmap-xxhdpi/ic_markworkflow_selected.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_workflows.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_usage.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_viewworkflow.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/icuserprofiles.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_poweredby.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi
 /ic_logout.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_user.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_quit.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_about.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_markworkflow_unselected.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_openwk.png" qualifiers="xxhdpi-v4" type="mipmap
 "/><file name="sliding_header" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/sliding_header.png" qualifiers="" type="drawable"/><file name="gear_icon" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/gear_icon.png" qualifiers="" type="drawable"/><file name="downloadwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/downloadwk.png" qualifiers="" type="drawable"/><file name="round_shape" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/round_shape.xml" qualifiers="" type="drawable"/><file name="download" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/download.jpg" qualifiers="" type="drawable"/><file name="tavernalogo" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/tavernalogo.png" qualifiers="" type="drawable"/><file name="ic_userprofile" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/ic_userprofile.png" qualifiers
 ="" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-hdpi/drawer_shadow.9.png" qualifiers="hdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-hdpi/ic_drawer.png" qualifiers="hdpi-v4" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xhdpi/ic_drawer.png" qualifiers="xhdpi-v4" type="drawable"/><file name="menu_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/menu_workflow_detail.xml" qualifiers="" type="menu"/><file name="global" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/global.xml" qualifiers="" type="menu"/><file name="dashboard_main" path="/root/Desktop/AndroidLab
 /TavernaMobile2/app/src/main/res/menu/dashboard_main.xml" qualifiers="" type="menu"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-large/refs.xml" qualifiers="large-v4"><item name="fragment_item" type="layout">@layout/fragment_item_grid</item></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-large/strings.xml" qualifiers="large-v4"><string name="completebrand">Powered By Apache Taverna</string><string name="play_workflow">Run</string></file><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_markworkflow_selected.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_workflows.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_usage.png" qualifiers="xhdpi-v4" type="mipmap"/><f
 ile name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_viewworkflow.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/icuserprofiles.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_poweredby.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_logout.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_launcher.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_user.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile
 2/app/src/main/res/mipmap-xhdpi/ic_quit.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_about.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_markworkflow_unselected.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_openwk.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_markworkflow_selected.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_viewworkflow.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_downloadworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app
 /src/main/res/drawable-mdpi/ic_downloadworkflow.png" qualifiers="mdpi-v4" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/drawer_shadow.9.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_drawer.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_markworkflow_unselected.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_markworkflow_selected.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_workflows.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/Tave
 rnaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_usage.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_viewworkflow.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/icuserprofiles.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_poweredby.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_logout.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxx
 hdpi/ic_user.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_quit.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_about.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_markworkflow_unselected.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_openwk.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="workflow_run_item" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_run_item.xml" qualifiers="" type="layout"/><file name="pref_headers" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/pref_headers.xml" qualifiers="" type="xml"/><f
 ile name="pref_general" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/pref_general.xml" qualifiers="" type="xml"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values/strings_activity_settings.xml" qualifiers=""><string name="pref_player_title">Configure Taverna player portal</string><string name="pref_login_description">Decide whether or not to be automatically logged-in when next the app starts</string><string name="pref_remainLogged_in">Remain Logged-in</string><string name="pref_player_default"> http://heater.cs.man.ac.uk:3000/</string><string name="pref_header_general">General</string><string name="pref_server_title">Configure Taverna Server </string><string name="pref_server_default"> http://heater.cs.man.ac.uk:8090/taverna-2.5.4/</string><string name="pref_server_des">Configure a different Taverna Server for the app</string><string name="title_activity_settings">Settings</string><string name="pref_player_des">Configure a different p
 layer URL for the app to use. End with the mount point(/)</string></file><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png" qualifiers="xhdpi-v4" type="mipmap"/></source><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/generated/res/
 rs/debug"/><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/generated/res/generated/debug"/></dataSet><dataSet config="debug"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/debug/res"/></dataSet><mergedItems><configuration qualifiers=""><declare-styleable name="SwitchCompatTextAppearance"><attr name="android:textSize"/><attr name="android:textColor"/><attr name="textAllCaps"/></declare-styleable><declare-styleable name="Spinner"><attr format="reference" name="prompt"/><attr format="enum" name="spinnerMode"><enum name="dialog" value="0"/><enum name="dropdown" value="1"/></attr><attr name="android:dropDownSelector"/><attr name="android:popupBackground"/><attr name="android:dropDownVerticalOffset"/><attr name="android:dropDownHorizontalOffset"/><attr name="android:dropDownWidth"/><attr format="reference" name="popupPromptView"/><attr name="android:gravity"/><attr format="boolean" name="disableChildrenWhenDisabled"/><attr name="android:background"/></declar
 e-styleable><declare-styleable name="PopupWindow"><attr format="boolean" name="overlapAnchor"/><attr name="android:popupBackground"/></declare-styleable><declare-styleable name="DrawerArrowToggle"><attr format="color" name="color"/><attr format="boolean" name="spinBars"/><attr format="dimension" name="drawableSize"/><attr format="dimension" name="gapBetweenBars"/><attr format="dimension" name="topBottomBarArrowSize"/><attr format="dimension" name="middleBarArrowSize"/><attr format="dimension" name="barSize"/><attr format="dimension" name="thickness"/></declare-styleable><declare-styleable name="ActionBarLayout"><attr name="android:layout_gravity"/></declare-styleable><declare-styleable name="ActivityChooserView"><attr format="string" name="initialActivityCount"/><attr format="reference" name="expandActivityOverflowButtonDrawable"/></declare-styleable><declare-styleable name="ViewStubCompat"><attr name="android:layout"/><attr name="android:inflatedId"/><attr name="android:id"/></decl
 are-styleable><declare-styleable name="ListPopupWindow"><attr name="android:dropDownVerticalOffset"/><attr name="android:dropDownHorizontalOffset"/></declare-styleable><declare-styleable name="CompatTextView"><attr format="reference|boolean" name="textAllCaps"/></declare-styleable><declare-styleable name="MenuView"><attr name="android:itemTextAppearance"/><attr name="android:horizontalDivider"/><attr name="android:verticalDivider"/><attr name="android:headerBackground"/><attr name="android:itemBackground"/><attr name="android:windowAnimationStyle"/><attr name="android:itemIconDisabledAlpha"/><attr format="boolean" name="preserveIconSpacing"/></declare-styleable><declare-styleable name="ActionBar"><attr name="navigationMode"><enum name="normal" value="0"/><enum name="listMode" value="1"/><enum name="tabMode" value="2"/></attr><attr name="displayOptions"><flag name="none" value="0"/><flag name="useLogo" value="0x1"/><flag name="showHome" value="0x2"/><flag name="homeAsUp" value="0x4"/
 ><flag name="showTitle" value="0x8"/><flag name="showCustom" value="0x10"/><flag name="disableHome" value="0x20"/></attr><attr name="title"/><attr format="string" name="subtitle"/><attr format="reference" name="titleTextStyle"/><attr format="reference" name="subtitleTextStyle"/><attr format="reference" name="icon"/><attr format="reference" name="logo"/><attr format="reference" name="divider"/><attr format="reference" name="background"/><attr format="reference|color" name="backgroundStacked"/><attr format="reference|color" name="backgroundSplit"/><attr format="reference" name="customNavigationLayout"/><attr name="height"/><attr format="reference" name="homeLayout"/><attr format="reference" name="progressBarStyle"/><attr format="reference" name="indeterminateProgressStyle"/><attr format="dimension" name="progressBarPadding"/><attr name="homeAsUpIndicator"/><attr format="dimension" name="itemPadding"/><attr format="boolean" name="hideOnContentScroll"/><attr format="dimension" name="con
 tentInsetStart"/><attr format="dimension" name="contentInsetEnd"/><attr format="dimension" name="contentInsetLeft"/><attr format="dimension" name="contentInsetRight"/><attr format="dimension" name="elevation"/><attr format="reference" name="popupTheme"/></declare-styleable><declare-styleable name="ActionMenuItemView"><attr name="android:minWidth"/></declare-styleable><declare-styleable name="MenuGroup"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:checkableBehavior"/><attr name="android:visible"/><attr name="android:enabled"/></declare-styleable><declare-styleable name="Toolbar"><attr format="reference" name="titleTextAppearance"/><attr format="reference" name="subtitleTextAppearance"/><attr name="title"/><attr name="subtitle"/><attr name="android:gravity"/><attr format="dimension" name="titleMargins"/><attr format="dimension" name="titleMarginStart"/><attr format="dimension" name="titleMarginEnd"/><attr format=
 "dimension" name="titleMarginTop"/><attr format="dimension" name="titleMarginBottom"/><attr name="contentInsetStart"/><attr name="contentInsetEnd"/><attr name="contentInsetLeft"/><attr name="contentInsetRight"/><attr format="dimension" name="maxButtonHeight"/><attr format="reference" name="theme"/><attr format="reference" name="collapseIcon"/><attr format="string" name="collapseContentDescription"/><attr name="popupTheme"/><attr format="reference" name="navigationIcon"/><attr format="string" name="navigationContentDescription"/><attr name="android:minHeight"/></declare-styleable><declare-styleable name="LinearLayoutCompat_Layout"><attr name="android:layout_width"/><attr name="android:layout_height"/><attr name="android:layout_weight"/><attr name="android:layout_gravity"/></declare-styleable><declare-styleable name="CardView"><attr format="color" name="cardBackgroundColor"/><attr format="dimension" name="cardCornerRadius"/><attr format="dimension" name="cardElevation"/><attr format="
 dimension" name="cardMaxElevation"/><attr format="boolean" name="cardUseCompatPadding"/><attr format="boolean" name="cardPreventCornerOverlap"/><attr format="dimension" name="contentPadding"/><attr format="dimension" name="contentPaddingLeft"/><attr format="dimension" name="contentPaddingRight"/><attr format="dimension" name="contentPaddingTop"/><attr format="dimension" name="contentPaddingBottom"/></declare-styleable><declare-styleable name="MenuItem"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:title"/><attr name="android:titleCondensed"/><attr name="android:icon"/><attr name="android:alphabeticShortcut"/><attr name="android:numericShortcut"/><attr name="android:checkable"/><attr name="android:checked"/><attr name="android:visible"/><attr name="android:enabled"/><attr name="android:onClick"/><attr name="showAsAction"><flag name="never" value="0"/><flag name="ifRoom" value="1"/><flag name="always" value="2"/><
 flag name="withText" value="4"/><flag name="collapseActionView" value="8"/></attr><attr format="reference" name="actionLayout"/><attr format="string" name="actionViewClass"/><attr format="string" name="actionProviderClass"/></declare-styleable><declare-styleable name="View"><attr format="dimension" name="paddingStart"/><attr format="dimension" name="paddingEnd"/><attr name="android:focusable"/></declare-styleable><declare-styleable name="PopupWindowBackgroundState"><attr format="boolean" name="state_above_anchor"/></declare-styleable><declare-styleable name="LinearLayoutCompat"><attr name="android:orientation"/><attr name="android:gravity"/><attr name="android:baselineAligned"/><attr name="android:baselineAlignedChildIndex"/><attr name="android:weightSum"/><attr format="boolean" name="measureWithLargestChild"/><attr name="divider"/><attr name="showDividers"><flag name="none" value="0"/><flag name="beginning" value="1"/><flag name="middle" value="2"/><flag name="end" value="4"/></att
 r><attr format="dimension" name="dividerPadding"/></declare-styleable><declare-styleable name="SearchView"><attr format="reference" name="layout"/><attr format="boolean" name="iconifiedByDefault"/><attr name="android:maxWidth"/><attr format="string" name="queryHint"/><attr name="android:imeOptions"/><attr name="android:inputType"/><attr format="reference" name="closeIcon"/><attr format="reference" name="goIcon"/><attr format="reference" name="searchIcon"/><attr format="reference" name="voiceIcon"/><attr format="reference" name="commitIcon"/><attr format="reference" name="suggestionRowLayout"/><attr format="reference" name="queryBackground"/><attr format="reference" name="submitBackground"/><attr name="android:focusable"/></declare-styleable><declare-styleable name="ActionMode"><attr name="titleTextStyle"/><attr name="subtitleTextStyle"/><attr name="background"/><attr name="backgroundSplit"/><attr name="height"/><attr format="reference" name="closeItemLayout"/></declare-styleable><de
 clare-styleable name="Theme"><attr format="boolean" name="windowActionBar"/><attr format="boolean" name="windowActionBarOverlay"/><attr format="boolean" name="windowActionModeOverlay"/><attr format="dimension|fraction" name="windowFixedWidthMajor"/><attr format="dimension|fraction" name="windowFixedHeightMinor"/><attr format="dimension|fraction" name="windowFixedWidthMinor"/><attr format="dimension|fraction" name="windowFixedHeightMajor"/><attr name="android:windowIsFloating"/><attr name="android:windowAnimationStyle"/><attr format="reference" name="actionBarTabStyle"/><attr format="reference" name="actionBarTabBarStyle"/><attr format="reference" name="actionBarTabTextStyle"/><attr format="reference" name="actionOverflowButtonStyle"/><attr format="reference" name="actionOverflowMenuStyle"/><attr format="reference" name="actionBarPopupTheme"/><attr format="reference" name="actionBarStyle"/><attr format="reference" name="actionBarSplitStyle"/><attr format="reference" name="actionBarTh
 eme"/><attr format="reference" name="actionBarWidgetTheme"/><attr format="dimension" name="actionBarSize"><enum name="wrap_content" value="0"/></attr><attr format="reference" name="actionBarDivider"/><attr format="reference" name="actionBarItemBackground"/><attr format="reference" name="actionMenuTextAppearance"/><attr format="color|reference" name="actionMenuTextColor"/><attr format="reference" name="actionModeStyle"/><attr format="reference" name="actionModeCloseButtonStyle"/><attr format="reference" name="actionModeBackground"/><attr format="reference" name="actionModeSplitBackground"/><attr format="reference" name="actionModeCloseDrawable"/><attr format="reference" name="actionModeCutDrawable"/><attr format="reference" name="actionModeCopyDrawable"/><attr format="reference" name="actionModePasteDrawable"/><attr format="reference" name="actionModeSelectAllDrawable"/><attr format="reference" name="actionModeShareDrawable"/><attr format="reference" name="actionModeFindDrawable"/><a
 ttr format="reference" name="actionModeWebSearchDrawable"/><attr format="reference" name="actionModePopupWindowStyle"/><attr format="reference" name="textAppearanceLargePopupMenu"/><attr format="reference" name="textAppearanceSmallPopupMenu"/><attr format="reference" name="actionDropDownStyle"/><attr format="dimension" name="dropdownListPreferredItemHeight"/><attr format="reference" name="spinnerStyle"/><attr format="reference" name="spinnerDropDownItemStyle"/><attr format="reference" name="homeAsUpIndicator"/><attr format="reference" name="actionButtonStyle"/><attr format="reference" name="buttonBarStyle"/><attr format="reference" name="buttonBarButtonStyle"/><attr format="reference" name="selectableItemBackground"/><attr format="reference" name="selectableItemBackgroundBorderless"/><attr format="reference" name="dividerVertical"/><attr format="reference" name="dividerHorizontal"/><attr format="reference" name="activityChooserViewStyle"/><attr format="reference" name="toolbarStyle"
 /><attr format="reference" name="toolbarNavigationButtonStyle"/><attr format="reference" name="popupMenuStyle"/><attr format="reference" name="popupWindowStyle"/><attr format="reference|color" name="editTextColor"/><attr format="reference" name="editTextBackground"/><attr format="reference" name="switchStyle"/><attr format="reference" name="textAppearanceSearchResultTitle"/><attr format="reference" name="textAppearanceSearchResultSubtitle"/><attr format="reference|color" name="textColorSearchUrl"/><attr format="reference" name="searchViewStyle"/><attr format="dimension" name="listPreferredItemHeight"/><attr format="dimension" name="listPreferredItemHeightSmall"/><attr format="dimension" name="listPreferredItemHeightLarge"/><attr format="dimension" name="listPreferredItemPaddingLeft"/><attr format="dimension" name="listPreferredItemPaddingRight"/><attr format="reference" name="dropDownListViewStyle"/><attr format="reference" name="listPopupWindowStyle"/><attr format="reference" name=
 "textAppearanceListItem"/><attr format="reference" name="textAppearanceListItemSmall"/><attr format="reference" name="panelBackground"/><attr format="dimension" name="panelMenuListWidth"/><attr format="reference" name="panelMenuListTheme"/><attr format="reference" name="listChoiceBackgroundIndicator"/><attr format="color" name="colorPrimary"/><attr format="color" name="colorPrimaryDark"/><attr format="color" name="colorAccent"/><attr format="color" name="colorControlNormal"/><attr format="color" name="colorControlActivated"/><attr format="color" name="colorControlHighlight"/><attr format="color" name="colorButtonNormal"/><attr format="color" name="colorSwitchThumbNormal"/></declare-styleable><declare-styleable name="ActionMenuView"/><declare-styleable name="SwitchCompat"><attr name="android:thumb"/><attr format="reference" name="track"/><attr name="android:textOn"/><attr name="android:textOff"/><attr format="dimension" name="thumbTextPadding"/><attr format="reference" name="switchTe
 xtAppearance"/><attr format="dimension" name="switchMinWidth"/><attr format="dimension" name="switchPadding"/><attr format="boolean" name="splitTrack"/><attr format="boolean" name="showText"/></declare-styleable></configuration></mergedItems></merger>
\ No newline at end of file
+    </string-array><string name="action_settings">Settings</string><string name="app_name">TavernaMobile</string><string name="brand">Powered By</string><string name="workflow_download">Download</string><string name="modified">Modified :</string><string name="workflow_empty"> No <b>Workflows</b> Available. Check your Connection to the Internet</string><string name="downloaderror">Unable to start Download. Check your internet connectivity</string><string name="loginusername">Email or Username</string><string name="title_exit">Logout</string></file><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_markworkflow_selected.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_workflows.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_usage.png"
  qualifiers="mdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_viewworkflow.png" qualifiers="mdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/icuserprofiles.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_poweredby.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_logout.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_launcher.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_user.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Deskt
 op/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_quit.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_about.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_markworkflow_unselected.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-mdpi/ic_openwk.png" qualifiers="mdpi-v4" type="mipmap"/><file name="pref_headers" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/pref_headers.xml" qualifiers="" type="xml"/><file name="searchable" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/searchable.xml" qu
 alifiers="" type="xml"/><file name="pref_general" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/xml/pref_general.xml" qualifiers="" type="xml"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-sw600dp/refs.xml" qualifiers="sw600dp-v13"><item name="fragment_item" type="layout">@layout/fragment_item_grid</item></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-sw600dp/strings.xml" qualifiers="sw600dp-v13"><string name="completebrand">Powered By Apache Taverna</string></file><file name="workflow_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_layout.xml" qualifiers="" type="layout"/><file name="activity_flash_screen" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_flash_screen.xml" qualifiers="" type="layout"/><file name="fragment_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_login.xml" qualifiers="" ty
 pe="layout"/><file name="fragment_item_list" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_item_list.xml" qualifiers="" type="layout"/><file name="fragment_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_detail.xml" qualifiers="" type="layout"/><file name="fragment_item_grid" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_item_grid.xml" qualifiers="" type="layout"/><file name="fragment_workflow_run_history" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_run_history.xml" qualifiers="" type="layout"/><file name="fragment_navigation_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_navigation_drawer.xml" qualifiers="" type="layout"/><file name="menu_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/menu_item_layout.xml" qualifiers="" type="layout"/><file na
 me="activity_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_login.xml" qualifiers="" type="layout"/><file name="activity_dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_dashboard_main.xml" qualifiers="" type="layout"/><file name="activity_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/activity_workflow_detail.xml" qualifiers="" type="layout"/><file name="workflow_run_item" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_run_item.xml" qualifiers="" type="layout"/><file name="workflow_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/workflow_item_layout.xml" qualifiers="" type="layout"/><file name="fragment_workflow_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_about.xml" qualifiers="" type="layout"/><file name="fragment_workflow_licence" path="/roo
 t/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_workflow_licence.xml" qualifiers="" type="layout"/><file name="fragment_dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/fragment_dashboard_main.xml" qualifiers="" type="layout"/><file name="favorite_item_layout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout/favorite_item_layout.xml" qualifiers="" type="layout"/><file name="fragment_login" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout-xlarge/fragment_login.xml" qualifiers="xlarge-v4" type="layout"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-w820dp/dimens.xml" qualifiers="w820dp-v13"><dimen name="activity_horizontal_margin">64dp</dimen></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-w820dp/strings.xml" qualifiers="w820dp-v13"><string name="completebrand">Powered By Apache Taverna</string></file><file name="activity_
 dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/layout-land/activity_dashboard_main.xml" qualifiers="land" type="layout"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xxhdpi/ic_drawer.png" qualifiers="xxhdpi-v4" type="drawable"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_markworkflow_selected.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_workflows.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_usage.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/roo
 t/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_viewworkflow.png" qualifiers="hdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/icuserprofiles.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_poweredby.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_logout.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_launcher.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_user.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_quit.png" quali
 fiers="hdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_about.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_markworkflow_unselected.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-hdpi/ic_openwk.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_markworkflow_selected.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_workflows.png" qualifiers="xxhdpi
 -v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_usage.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_viewworkflow.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/icuserprofiles.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_poweredby.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_logout.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_user" path="/r
 oot/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_user.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_quit.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_about.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_markworkflow_unselected.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxhdpi/ic_openwk.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="sliding_header" path="/root/Desktop/AndroidLab/TavernaMo
 bile2/app/src/main/res/drawable/sliding_header.png" qualifiers="" type="drawable"/><file name="gear_icon" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/gear_icon.png" qualifiers="" type="drawable"/><file name="downloadwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/downloadwk.png" qualifiers="" type="drawable"/><file name="round_shape" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/round_shape.xml" qualifiers="" type="drawable"/><file name="download" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/download.jpg" qualifiers="" type="drawable"/><file name="tavernalogo" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/tavernalogo.png" qualifiers="" type="drawable"/><file name="ic_userprofile" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable/ic_userprofile.png" qualifiers="" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/And
 roidLab/TavernaMobile2/app/src/main/res/drawable-hdpi/drawer_shadow.9.png" qualifiers="hdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-hdpi/ic_drawer.png" qualifiers="hdpi-v4" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-xhdpi/ic_drawer.png" qualifiers="xhdpi-v4" type="drawable"/><file name="menu_workflow_detail" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/menu_workflow_detail.xml" qualifiers="" type="menu"/><file name="global" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/global.xml" qualifiers="" type="menu"/><file name="dashboard_main" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/dashboard_main.xml" qualifiers=""
  type="menu"/><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-large/refs.xml" qualifiers="large-v4"><item name="fragment_item" type="layout">@layout/fragment_item_grid</item></file><file path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/values-large/strings.xml" qualifiers="large-v4"><string name="completebrand">Powered By Apache Taverna</string><string name="play_workflow">Run</string></file><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_markworkflow_selected.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_workflows.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_usage.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile
 2/app/src/main/res/mipmap-xhdpi/ic_viewworkflow.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/icuserprofiles.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_poweredby.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_logout.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_launcher.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_user.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_quit.png" qualifiers="xhdpi-v4" type
 ="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_about.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_markworkflow_unselected.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xhdpi/ic_openwk.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_markworkflow_selected.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_viewworkflow.png" qualifiers="mdpi-v4" typ
 e="drawable"/><file name="ic_downloadworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_downloadworkflow.png" qualifiers="mdpi-v4" type="drawable"/><file name="drawer_shadow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/drawer_shadow.9.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_drawer" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_drawer.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/drawable-mdpi/ic_markworkflow_unselected.png" qualifiers="mdpi-v4" type="drawable"/><file name="ic_markworkflow_selected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_markworkflow_selected.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_workflows" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_workflows.png" 
 qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_usage" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_usage.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_viewworkflow" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_viewworkflow.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="icuserprofiles" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/icuserprofiles.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_poweredby" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_poweredby.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_logout" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_logout.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" qualifiers="xxxhdpi-v4" type="mipmap"
 /><file name="ic_user" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_user.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_quit" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_quit.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_about" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_about.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_dashboard_home" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_markworkflow_unselected" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_markworkflow_unselected.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_openwk" path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/mipmap-xxxhdpi/ic_openwk.png" qualifiers="xxxhdpi-v4" type="mipmap"/></source><source path="/r
 oot/Desktop/AndroidLab/TavernaMobile2/app/build/generated/res/rs/debug"/><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/generated/res/generated/debug"/></dataSet><dataSet config="debug"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/debug/res"/></dataSet><mergedItems><configuration qualifiers=""><declare-styleable name="SwitchCompatTextAppearance"><attr name="android:textSize"/><attr name="android:textColor"/><attr name="textAllCaps"/></declare-styleable><declare-styleable name="Spinner"><attr format="reference" name="prompt"/><attr format="enum" name="spinnerMode"><enum name="dialog" value="0"/><enum name="dropdown" value="1"/></attr><attr name="android:dropDownSelector"/><attr name="android:popupBackground"/><attr name="android:dropDownVerticalOffset"/><attr name="android:dropDownHorizontalOffset"/><attr name="android:dropDownWidth"/><attr format="reference" name="popupPromptView"/><attr name="android:gravity"/><attr format="boolean" name="disableCh
 ildrenWhenDisabled"/><attr name="android:background"/></declare-styleable><declare-styleable name="PopupWindow"><attr format="boolean" name="overlapAnchor"/><attr name="android:popupBackground"/></declare-styleable><declare-styleable name="DrawerArrowToggle"><attr format="color" name="color"/><attr format="boolean" name="spinBars"/><attr format="dimension" name="drawableSize"/><attr format="dimension" name="gapBetweenBars"/><attr format="dimension" name="topBottomBarArrowSize"/><attr format="dimension" name="middleBarArrowSize"/><attr format="dimension" name="barSize"/><attr format="dimension" name="thickness"/></declare-styleable><declare-styleable name="ActionBarLayout"><attr name="android:layout_gravity"/></declare-styleable><declare-styleable name="ActivityChooserView"><attr format="string" name="initialActivityCount"/><attr format="reference" name="expandActivityOverflowButtonDrawable"/></declare-styleable><declare-styleable name="ViewStubCompat"><attr name="android:layout"/><a
 ttr name="android:inflatedId"/><attr name="android:id"/></declare-styleable><declare-styleable name="ListPopupWindow"><attr name="android:dropDownVerticalOffset"/><attr name="android:dropDownHorizontalOffset"/></declare-styleable><declare-styleable name="CompatTextView"><attr format="reference|boolean" name="textAllCaps"/></declare-styleable><declare-styleable name="MenuView"><attr name="android:itemTextAppearance"/><attr name="android:horizontalDivider"/><attr name="android:verticalDivider"/><attr name="android:headerBackground"/><attr name="android:itemBackground"/><attr name="android:windowAnimationStyle"/><attr name="android:itemIconDisabledAlpha"/><attr format="boolean" name="preserveIconSpacing"/></declare-styleable><declare-styleable name="ActionBar"><attr name="navigationMode"><enum name="normal" value="0"/><enum name="listMode" value="1"/><enum name="tabMode" value="2"/></attr><attr name="displayOptions"><flag name="none" value="0"/><flag name="useLogo" value="0x1"/><flag n
 ame="showHome" value="0x2"/><flag name="homeAsUp" value="0x4"/><flag name="showTitle" value="0x8"/><flag name="showCustom" value="0x10"/><flag name="disableHome" value="0x20"/></attr><attr name="title"/><attr format="string" name="subtitle"/><attr format="reference" name="titleTextStyle"/><attr format="reference" name="subtitleTextStyle"/><attr format="reference" name="icon"/><attr format="reference" name="logo"/><attr format="reference" name="divider"/><attr format="reference" name="background"/><attr format="reference|color" name="backgroundStacked"/><attr format="reference|color" name="backgroundSplit"/><attr format="reference" name="customNavigationLayout"/><attr name="height"/><attr format="reference" name="homeLayout"/><attr format="reference" name="progressBarStyle"/><attr format="reference" name="indeterminateProgressStyle"/><attr format="dimension" name="progressBarPadding"/><attr name="homeAsUpIndicator"/><attr format="dimension" name="itemPadding"/><attr format="boolean" 
 name="hideOnContentScroll"/><attr format="dimension" name="contentInsetStart"/><attr format="dimension" name="contentInsetEnd"/><attr format="dimension" name="contentInsetLeft"/><attr format="dimension" name="contentInsetRight"/><attr format="dimension" name="elevation"/><attr format="reference" name="popupTheme"/></declare-styleable><declare-styleable name="ActionMenuItemView"><attr name="android:minWidth"/></declare-styleable><declare-styleable name="MenuGroup"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:checkableBehavior"/><attr name="android:visible"/><attr name="android:enabled"/></declare-styleable><declare-styleable name="Toolbar"><attr format="reference" name="titleTextAppearance"/><attr format="reference" name="subtitleTextAppearance"/><attr name="title"/><attr name="subtitle"/><attr name="android:gravity"/><attr format="dimension" name="titleMargins"/><attr format="dimension" name="titleMarginStart"/
 ><attr format="dimension" name="titleMarginEnd"/><attr format="dimension" name="titleMarginTop"/><attr format="dimension" name="titleMarginBottom"/><attr name="contentInsetStart"/><attr name="contentInsetEnd"/><attr name="contentInsetLeft"/><attr name="contentInsetRight"/><attr format="dimension" name="maxButtonHeight"/><attr format="reference" name="theme"/><attr format="reference" name="collapseIcon"/><attr format="string" name="collapseContentDescription"/><attr name="popupTheme"/><attr format="reference" name="navigationIcon"/><attr format="string" name="navigationContentDescription"/><attr name="android:minHeight"/></declare-styleable><declare-styleable name="LinearLayoutCompat_Layout"><attr name="android:layout_width"/><attr name="android:layout_height"/><attr name="android:layout_weight"/><attr name="android:layout_gravity"/></declare-styleable><declare-styleable name="CardView"><attr format="color" name="cardBackgroundColor"/><attr format="dimension" name="cardCornerRadius"/
 ><attr format="dimension" name="cardElevation"/><attr format="dimension" name="cardMaxElevation"/><attr format="boolean" name="cardUseCompatPadding"/><attr format="boolean" name="cardPreventCornerOverlap"/><attr format="dimension" name="contentPadding"/><attr format="dimension" name="contentPaddingLeft"/><attr format="dimension" name="contentPaddingRight"/><attr format="dimension" name="contentPaddingTop"/><attr format="dimension" name="contentPaddingBottom"/></declare-styleable><declare-styleable name="MenuItem"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:title"/><attr name="android:titleCondensed"/><attr name="android:icon"/><attr name="android:alphabeticShortcut"/><attr name="android:numericShortcut"/><attr name="android:checkable"/><attr name="android:checked"/><attr name="android:visible"/><attr name="android:enabled"/><attr name="android:onClick"/><attr name="showAsAction"><flag name="never" value="0"/><
 flag name="ifRoom" value="1"/><flag name="always" value="2"/><flag name="withText" value="4"/><flag name="collapseActionView" value="8"/></attr><attr format="reference" name="actionLayout"/><attr format="string" name="actionViewClass"/><attr format="string" name="actionProviderClass"/></declare-styleable><declare-styleable name="View"><attr format="dimension" name="paddingStart"/><attr format="dimension" name="paddingEnd"/><attr name="android:focusable"/></declare-styleable><declare-styleable name="PopupWindowBackgroundState"><attr format="boolean" name="state_above_anchor"/></declare-styleable><declare-styleable name="LinearLayoutCompat"><attr name="android:orientation"/><attr name="android:gravity"/><attr name="android:baselineAligned"/><attr name="android:baselineAlignedChildIndex"/><attr name="android:weightSum"/><attr format="boolean" name="measureWithLargestChild"/><attr name="divider"/><attr name="showDividers"><flag name="none" value="0"/><flag name="beginning" value="1"/><f
 lag name="middle" value="2"/><flag name="end" value="4"/></attr><attr format="dimension" name="dividerPadding"/></declare-styleable><declare-styleable name="SearchView"><attr format="reference" name="layout"/><attr format="boolean" name="iconifiedByDefault"/><attr name="android:maxWidth"/><attr format="string" name="queryHint"/><attr name="android:imeOptions"/><attr name="android:inputType"/><attr format="reference" name="closeIcon"/><attr format="reference" name="goIcon"/><attr format="reference" name="searchIcon"/><attr format="reference" name="voiceIcon"/><attr format="reference" name="commitIcon"/><attr format="reference" name="suggestionRowLayout"/><attr format="reference" name="queryBackground"/><attr format="reference" name="submitBackground"/><attr name="android:focusable"/></declare-styleable><declare-styleable name="ActionMode"><attr name="titleTextStyle"/><attr name="subtitleTextStyle"/><attr name="background"/><attr name="backgroundSplit"/><attr name="height"/><attr form
 at="reference" name="closeItemLayout"/></declare-styleable><declare-styleable name="Theme"><attr format="boolean" name="windowActionBar"/><attr format="boolean" name="windowActionBarOverlay"/><attr format="boolean" name="windowActionModeOverlay"/><attr format="dimension|fraction" name="windowFixedWidthMajor"/><attr format="dimension|fraction" name="windowFixedHeightMinor"/><attr format="dimension|fraction" name="windowFixedWidthMinor"/><attr format="dimension|fraction" name="windowFixedHeightMajor"/><attr name="android:windowIsFloating"/><attr name="android:windowAnimationStyle"/><attr format="reference" name="actionBarTabStyle"/><attr format="reference" name="actionBarTabBarStyle"/><attr format="reference" name="actionBarTabTextStyle"/><attr format="reference" name="actionOverflowButtonStyle"/><attr format="reference" name="actionOverflowMenuStyle"/><attr format="reference" name="actionBarPopupTheme"/><attr format="reference" name="actionBarStyle"/><attr format="reference" name="ac
 tionBarSplitStyle"/><attr format="reference" name="actionBarTheme"/><attr format="reference" name="actionBarWidgetTheme"/><attr format="dimension" name="actionBarSize"><enum name="wrap_content" value="0"/></attr><attr format="reference" name="actionBarDivider"/><attr format="reference" name="actionBarItemBackground"/><attr format="reference" name="actionMenuTextAppearance"/><attr format="color|reference" name="actionMenuTextColor"/><attr format="reference" name="actionModeStyle"/><attr format="reference" name="actionModeCloseButtonStyle"/><attr format="reference" name="actionModeBackground"/><attr format="reference" name="actionModeSplitBackground"/><attr format="reference" name="actionModeCloseDrawable"/><attr format="reference" name="actionModeCutDrawable"/><attr format="reference" name="actionModeCopyDrawable"/><attr format="reference" name="actionModePasteDrawable"/><attr format="reference" name="actionModeSelectAllDrawable"/><attr format="reference" name="actionModeShareDrawabl
 e"/><attr format="reference" name="actionModeFindDrawable"/><attr format="reference" name="actionModeWebSearchDrawable"/><attr format="reference" name="actionModePopupWindowStyle"/><attr format="reference" name="textAppearanceLargePopupMenu"/><attr format="reference" name="textAppearanceSmallPopupMenu"/><attr format="reference" name="actionDropDownStyle"/><attr format="dimension" name="dropdownListPreferredItemHeight"/><attr format="reference" name="spinnerStyle"/><attr format="reference" name="spinnerDropDownItemStyle"/><attr format="reference" name="homeAsUpIndicator"/><attr format="reference" name="actionButtonStyle"/><attr format="reference" name="buttonBarStyle"/><attr format="reference" name="buttonBarButtonStyle"/><attr format="reference" name="selectableItemBackground"/><attr format="reference" name="selectableItemBackgroundBorderless"/><attr format="reference" name="dividerVertical"/><attr format="reference" name="dividerHorizontal"/><attr format="reference" name="activityC
 hooserViewStyle"/><attr format="reference" name="toolbarStyle"/><attr format="reference" name="toolbarNavigationButtonStyle"/><attr format="reference" name="popupMenuStyle"/><attr format="reference" name="popupWindowStyle"/><attr format="reference|color" name="editTextColor"/><attr format="reference" name="editTextBackground"/><attr format="reference" name="switchStyle"/><attr format="reference" name="textAppearanceSearchResultTitle"/><attr format="reference" name="textAppearanceSearchResultSubtitle"/><attr format="reference|color" name="textColorSearchUrl"/><attr format="reference" name="searchViewStyle"/><attr format="dimension" name="listPreferredItemHeight"/><attr format="dimension" name="listPreferredItemHeightSmall"/><attr format="dimension" name="listPreferredItemHeightLarge"/><attr format="dimension" name="listPreferredItemPaddingLeft"/><attr format="dimension" name="listPreferredItemPaddingRight"/><attr format="reference" name="dropDownListViewStyle"/><attr format="referenc
 e" name="listPopupWindowStyle"/><attr format="reference" name="textAppearanceListItem"/><attr format="reference" name="textAppearanceListItemSmall"/><attr format="reference" name="panelBackground"/><attr format="dimension" name="panelMenuListWidth"/><attr format="reference" name="panelMenuListTheme"/><attr format="reference" name="listChoiceBackgroundIndicator"/><attr format="color" name="colorPrimary"/><attr format="color" name="colorPrimaryDark"/><attr format="color" name="colorAccent"/><attr format="color" name="colorControlNormal"/><attr format="color" name="colorControlActivated"/><attr format="color" name="colorControlHighlight"/><attr format="color" name="colorButtonNormal"/><attr format="color" name="colorSwitchThumbNormal"/></declare-styleable><declare-styleable name="ActionMenuView"/><declare-styleable name="SwitchCompat"><attr name="android:thumb"/><attr format="reference" name="track"/><attr name="android:textOn"/><attr name="android:textOff"/><attr format="dimension" na
 me="thumbTextPadding"/><attr format="reference" name="switchTextAppearance"/><attr format="dimension" name="switchMinWidth"/><attr format="dimension" name="switchPadding"/><attr format="boolean" name="splitTrack"/><attr format="boolean" name="showText"/></declare-styleable></configuration></mergedItems></merger>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/manifests/full/debug/AndroidManifest.xml b/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
index 1da1025..2601dac 100644
--- a/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
+++ b/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
@@ -50,7 +50,8 @@ limitations under the License.
         </activity>
         <activity
             android:name="org.apache.taverna.mobile.activities.DashboardMainActivity"
-            android:label="@string/title_activity_dashboard_main" >
+            android:label="@string/title_activity_dashboard_main"
+            android:launchMode="singleTop" >
             <intent-filter>
                 <action android:name="android.intent.action.SEARCH" />
             </intent-filter>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar b/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar
index d054a0d..1e6a6bf 100644
Binary files a/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar and b/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar b/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar
index 210279a..af95136 100644
Binary files a/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar and b/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar b/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar
index 2ef82df..6daa687 100644
Binary files a/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar and b/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar b/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar
index 208d734..e771291 100644
Binary files a/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar and b/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar b/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar
index d50d08d..a2176de 100644
Binary files a/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar and b/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/simple-xml-2.7.1-0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/simple-xml-2.7.1-0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar b/app/build/intermediates/pre-dexed/debug/simple-xml-2.7.1-0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar
new file mode 100644
index 0000000..303399b
Binary files /dev/null and b/app/build/intermediates/pre-dexed/debug/simple-xml-2.7.1-0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/sjxp-2.2-0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/sjxp-2.2-0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar b/app/build/intermediates/pre-dexed/debug/sjxp-2.2-0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar
new file mode 100644
index 0000000..46f44d7
Binary files /dev/null and b/app/build/intermediates/pre-dexed/debug/sjxp-2.2-0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar
----------------------------------------------------------------------
diff --git a/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar b/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar
index ecd9e14..93179a3 100644
Binary files a/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar and b/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/res/debug/layout/fragment_workflow_about.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/res/debug/layout/fragment_workflow_about.xml b/app/build/intermediates/res/debug/layout/fragment_workflow_about.xml
index 5bb9d63..0b69b3a 100644
--- a/app/build/intermediates/res/debug/layout/fragment_workflow_about.xml
+++ b/app/build/intermediates/res/debug/layout/fragment_workflow_about.xml
@@ -22,13 +22,11 @@ limitations under the License.
     android:layout_height="match_parent"
     tools:context="org.apache.taverna.mobile.fragments.workflowdetails.WorkflowAboutFragment">
 
-    <!-- TODO: Update blank fragment layout -->
     <TextView android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:text="@string/hello_blank_fragment"
         android:elevation="5sp"
         android:layout_margin="2dp"
-        android:background="@color/accent_material_dark"
         android:backgroundTintMode="screen"
         android:ellipsize="start"
         android:id="@+id/aboutworkflowTextView"

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/res/debug/layout/fragment_workflow_licence.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/res/debug/layout/fragment_workflow_licence.xml b/app/build/intermediates/res/debug/layout/fragment_workflow_licence.xml
index 0ba6382..e6a44ee 100644
--- a/app/build/intermediates/res/debug/layout/fragment_workflow_licence.xml
+++ b/app/build/intermediates/res/debug/layout/fragment_workflow_licence.xml
@@ -28,7 +28,6 @@ limitations under the License.
         android:text="@string/hello_blank_fragment"
         android:elevation="5sp"
         android:layout_margin="2dp"
-        android:background="@color/accent_material_dark"
         android:scrollbars="vertical"
         android:fadeScrollbars="true"
         android:id="@+id/workflowpolicyTextView"

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/res/debug/menu/dashboard_main.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/res/debug/menu/dashboard_main.xml b/app/build/intermediates/res/debug/menu/dashboard_main.xml
index 99e0d60..44948b2 100644
--- a/app/build/intermediates/res/debug/menu/dashboard_main.xml
+++ b/app/build/intermediates/res/debug/menu/dashboard_main.xml
@@ -25,7 +25,7 @@ limitations under the License.
     <item android:id="@+id/action_search"
         android:title="@string/menu_search"
         android:icon="@android:drawable/ic_menu_search"
-        app:showAsAction="always|withText"
+        app:showAsAction="collapseActionView|always"
         app:actionViewClass="android.support.v7.widget.SearchView"/>
 </menu>
 <!-- From: file:/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/res/menu/dashboard_main.xml -->
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/resources/resources-debug-androidTest.ap_
----------------------------------------------------------------------
diff --git a/app/build/intermediates/resources/resources-debug-androidTest.ap_ b/app/build/intermediates/resources/resources-debug-androidTest.ap_
index 04c5c29..8eac76b 100644
Binary files a/app/build/intermediates/resources/resources-debug-androidTest.ap_ and b/app/build/intermediates/resources/resources-debug-androidTest.ap_ differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/resources/resources-debug.ap_
----------------------------------------------------------------------
diff --git a/app/build/intermediates/resources/resources-debug.ap_ b/app/build/intermediates/resources/resources-debug.ap_
index 48ebfa5..a2880db 100644
Binary files a/app/build/intermediates/resources/resources-debug.ap_ and b/app/build/intermediates/resources/resources-debug.ap_ differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/outputs/apk/app-debug-unaligned.apk
----------------------------------------------------------------------
diff --git a/app/build/outputs/apk/app-debug-unaligned.apk b/app/build/outputs/apk/app-debug-unaligned.apk
index d0ae36e..48913f8 100644
Binary files a/app/build/outputs/apk/app-debug-unaligned.apk and b/app/build/outputs/apk/app-debug-unaligned.apk differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/outputs/apk/app-debug.apk
----------------------------------------------------------------------
diff --git a/app/build/outputs/apk/app-debug.apk b/app/build/outputs/apk/app-debug.apk
index 5d1bb5d..4696095 100644
Binary files a/app/build/outputs/apk/app-debug.apk and b/app/build/outputs/apk/app-debug.apk differ


[2/6] incubator-taverna-mobile git commit: integrated myexperiment API for reading workflows

Posted by ia...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/outputs/logs/manifest-merger-debug-report.txt
----------------------------------------------------------------------
diff --git a/app/build/outputs/logs/manifest-merger-debug-report.txt b/app/build/outputs/logs/manifest-merger-debug-report.txt
index 714baf8..7f33f8a 100644
--- a/app/build/outputs/logs/manifest-merger-debug-report.txt
+++ b/app/build/outputs/logs/manifest-merger-debug-report.txt
@@ -63,56 +63,58 @@ activity#org.apache.taverna.mobile.activities.DashboardMainActivity
 ADDED from AndroidManifest.xml:45:9
 	android:label
 		ADDED from AndroidManifest.xml:47:13
+	android:launchMode
+		ADDED from AndroidManifest.xml:48:13
 	android:name
 		ADDED from AndroidManifest.xml:46:13
 intent-filter#android.intent.action.SEARCH
-ADDED from AndroidManifest.xml:48:13
+ADDED from AndroidManifest.xml:49:13
 action#android.intent.action.SEARCH
-ADDED from AndroidManifest.xml:49:17
+ADDED from AndroidManifest.xml:50:17
 	android:name
-		ADDED from AndroidManifest.xml:49:25
+		ADDED from AndroidManifest.xml:50:25
 meta-data#android.app.searchable
-ADDED from AndroidManifest.xml:52:13
+ADDED from AndroidManifest.xml:53:13
 	android:resource
-		ADDED from AndroidManifest.xml:54:17
+		ADDED from AndroidManifest.xml:55:17
 	android:name
-		ADDED from AndroidManifest.xml:53:17
+		ADDED from AndroidManifest.xml:54:17
 activity#org.apache.taverna.mobile.activities.WorkflowDetailActivity
-ADDED from AndroidManifest.xml:56:9
+ADDED from AndroidManifest.xml:57:9
 	android:label
-		ADDED from AndroidManifest.xml:58:13
-	android:parentActivityName
 		ADDED from AndroidManifest.xml:59:13
+	android:parentActivityName
+		ADDED from AndroidManifest.xml:60:13
 	android:name
-		ADDED from AndroidManifest.xml:57:13
+		ADDED from AndroidManifest.xml:58:13
 meta-data#android.support.PARENT_ACTIVITY
-ADDED from AndroidManifest.xml:60:13
+ADDED from AndroidManifest.xml:61:13
 	android:value
-		ADDED from AndroidManifest.xml:62:17
+		ADDED from AndroidManifest.xml:63:17
 	android:name
-		ADDED from AndroidManifest.xml:61:17
+		ADDED from AndroidManifest.xml:62:17
 receiver#org.apache.taverna.mobile.broadcastreceivers.WorkflowDownloadReceiver
-ADDED from AndroidManifest.xml:65:9
+ADDED from AndroidManifest.xml:66:9
 	android:enabled
-		ADDED from AndroidManifest.xml:67:13
-	android:exported
 		ADDED from AndroidManifest.xml:68:13
+	android:exported
+		ADDED from AndroidManifest.xml:69:13
 	android:name
-		ADDED from AndroidManifest.xml:66:13
+		ADDED from AndroidManifest.xml:67:13
 intent-filter#android.intent.action.DOWNLOAD_COMPLETE
-ADDED from AndroidManifest.xml:69:13
+ADDED from AndroidManifest.xml:70:13
 action#android.intent.action.DOWNLOAD_COMPLETE
-ADDED from AndroidManifest.xml:70:17
+ADDED from AndroidManifest.xml:71:17
 	android:name
-		ADDED from AndroidManifest.xml:70:25
+		ADDED from AndroidManifest.xml:71:25
 activity#org.apache.taverna.mobile.activities.SettingsActivity
-ADDED from AndroidManifest.xml:74:9
+ADDED from AndroidManifest.xml:75:9
 	android:label
-		ADDED from AndroidManifest.xml:76:13
-	android:parentActivityName
 		ADDED from AndroidManifest.xml:77:13
+	android:parentActivityName
+		ADDED from AndroidManifest.xml:78:13
 	android:name
-		ADDED from AndroidManifest.xml:75:13
+		ADDED from AndroidManifest.xml:76:13
 uses-sdk
 INJECTED from AndroidManifest.xml:0:0 reason: use-sdk injection requested
 MERGED from com.android.support:appcompat-v7:22.0.0:20:5

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/libs/simple-xml-2.7.1.jar
----------------------------------------------------------------------
diff --git a/app/libs/simple-xml-2.7.1.jar b/app/libs/simple-xml-2.7.1.jar
new file mode 100644
index 0000000..913725d
Binary files /dev/null and b/app/libs/simple-xml-2.7.1.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/libs/sjxp-2.2.jar
----------------------------------------------------------------------
diff --git a/app/libs/sjxp-2.2.jar b/app/libs/sjxp-2.2.jar
new file mode 100644
index 0000000..67960bc
Binary files /dev/null and b/app/libs/sjxp-2.2.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5d1c634..bd49514 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -44,7 +44,8 @@ limitations under the License.
         </activity>
         <activity
             android:name=".activities.DashboardMainActivity"
-            android:label="@string/title_activity_dashboard_main" >
+            android:label="@string/title_activity_dashboard_main"
+            android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.SEARCH" />
             </intent-filter>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
index 98ece01..fd6ecb2 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/LoginActivity.java
@@ -25,6 +25,7 @@ package org.apache.taverna.mobile.activities;
 * under the License.
 */
 
+import android.app.Activity;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.Intent;
@@ -48,7 +49,9 @@ import android.widget.Toast;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
+import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.HttpUtil;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -134,6 +137,7 @@ public class LoginActivity extends ActionBarActivity {
 
             }
         }
+
         private class LoginTask extends AsyncTask<String, Void, String>{
             private Context context;
             private ProgressDialog pd;
@@ -147,59 +151,62 @@ public class LoginActivity extends ActionBarActivity {
             @Override
             protected void onPreExecute() {
                 super.onPreExecute();
+                pd.setCancelable(false);
                 pd.show();
             }
 
             @Override
             protected String doInBackground(String... strings) {
                 //http://sandbox.myexperiment.org/users
-                try {
-                    //for password protected urls use the user's credentials:new TavernaPlayerAPI(this.context).PLAYER_BASE_URL
-                    Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna", "taverna"));
-
-                    URL workflowurl = new URL(TavernaPlayerAPI.getSERVER_BASE_URL(this.context));
-                    HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-                    String userpass = strings[0] + ":" + strings[1];
-                    String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
-                    //new String(Base64.encode(userpass.getBytes(),Base64.DEFAULT));
-
-                    connection.setRequestProperty ("Authorization", basicAuth);
-                    //       connection.setRequestProperty("Accept", "application/json");
-                    connection.setRequestMethod("GET");
-                    // connection.setDoInput(true);
-                    //  connection.setDoOutput(true);
-                    connection.connect(); //send request
-                    int responseCode = connection.getResponseCode();
-                    Log.i("RESPONSE Code", "" + responseCode);
-                    Log.i("RESPONSE Messsage", ""+connection.getResponseMessage());
-                    Log.i("Authorization ", ""+connection.getRequestProperty("Authorization"));
-
-                    InputStream dis = connection.getInputStream();
-                    BufferedReader br = new BufferedReader(new InputStreamReader(dis));
-                    StringBuffer sb = new StringBuffer();
-                    String jsonData = "";
-                    while((jsonData = br.readLine()) != null){
-                        sb.append(jsonData);
+
+                String whoAmI = "http://www.myexperiment.org/whoami.xml";
+                Object response = null;
+                String responseMessage = null;
+                User loggedUser;
+
+                response = new HttpUtil().doGetRequestResponse(whoAmI, User.class,strings[0], strings[1]);
+                if(response instanceof User){
+                    //user is successfully authenticated
+                    loggedUser = (User) response;
+                    //TODO save login state at this level,
+
+                    //TODO set any cookies necessary
+
+                    //TODO save remember user login at this level
+
+                }else{
+                    if (response instanceof String){
+                        responseMessage = (String) response;
+                        if (responseMessage.equals("Unauthorized request")) {
+                            responseMessage = "Invalid username or password";
+                        }
                     }
-                    dis.close();
-                    br.close();
-                    return ""+responseCode;
-                } catch ( IOException e) {
-                    e.printStackTrace();
                 }
-                return "0";
+                return responseMessage;
             }
 
             @Override
-            protected void onPostExecute(String s) {
-                Log.i("RESULTS", ""+s);
+            protected void onPostExecute(String response) {
+                Log.i("RESULTS", ""+response);
                 pd.dismiss();
-                if(TextUtils.isDigitsOnly(s) && Integer.parseInt(s) == 200) {
+                String responseMessage = response;
+                if(responseMessage != null) {
+                    if (responseMessage.equals("Unauthorized request")) {
+                        responseMessage = "Invalid username or password";
+                        Toast.makeText(this.context, responseMessage, Toast.LENGTH_SHORT).show();
+                    }else{
+                        Toast.makeText(this.context, responseMessage, Toast.LENGTH_SHORT).show();
+                    }
+                }else{
+                    //TODO: save user profile at this stage
+
                     this.context.startActivity(new Intent(this.context, DashboardMainActivity.class));
+                    getActivity().overridePendingTransition(R.anim.abc_slide_in_bottom, R.anim.abc_slide_out_top);
                     getActivity().finish();
-                }else{
-                    Toast.makeText(this.context, "Invalid username or password",Toast.LENGTH_SHORT).show();
                 }
+                this.context.startActivity(new Intent(this.context, DashboardMainActivity.class));
+                getActivity().overridePendingTransition(R.anim.abc_slide_in_bottom, R.anim.abc_slide_out_top);
+                getActivity().finish();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/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 4fa4030..b2c17f4 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
@@ -31,6 +31,7 @@ import android.net.Uri;
 import android.preference.PreferenceManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Html;
+import android.text.util.Linkify;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -57,13 +58,13 @@ import java.util.Date;
 import java.util.List;
 
 /**
- * Created by root on 6/8/15.
+ * Created by Larry Akah on 6/8/15.
  */
-public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHolder> implements View.OnClickListener{
+public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHolder>{
     private Context context;
-    private List<Workflow> workflow;
+    private List<Workflow> workflow; //workflow data to bind to the UI
     private WorkflowAdapter.ViewHolder mViewHolder;
-    public static final String WORKFLOW_FAVORITE_KEY = "WORKFLOW_FAVORITES";
+    public static final String WORKFLOW_FAVORITE_KEY = "WORKFLOW_FAVORITES"; //workflow key used to save workflows when marked as favorites
     public Workflow_DB favDB;
 
     public WorkflowAdapter(Context c, List<Workflow> wk) {
@@ -105,18 +106,19 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         //save current workflow as favorite
             mfav.add(wid); mfav.add(author);mfav.add(title);mfav.add(desc_full); mfav.add(SimpleDateFormat.getDateTimeInstance().format(new Date()).toString());
 
-        if(description.length() > 80) description = description.substring(0, 79);
+//        if(description.length() > 80) description = description.substring(0, 79);
         viewHolder.author_name.setText(author);
         viewHolder.wk_title.setText(title);
         viewHolder.wk_description.setText( description+" ... ");
+        Linkify.addLinks(viewHolder.wk_description, Linkify.WEB_URLS);
         final String wkflow_url = workflow.get(j).getWorkflow_remote_url();
         final Intent it = new Intent();
         it.setClass(context, WorkflowDetailActivity.class);
         it.putExtra("workflowid", workflow.get(i).getId());
-        it.putExtra("author", workflow.get(i).getWorkflow_author());
+        /*it.putExtra("author", workflow.get(i).getWorkflow_author());
         it.putExtra("title",title);
         it.putExtra("description",desc_full);
-        it.putExtra("url", wkflow_url);
+        it.putExtra("url", wkflow_url);*/
         WorkflowdetailFragment.WORKFLO_ID = workflow.get(i).getId();
 
         viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() {
@@ -177,6 +179,9 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         }
     }
 
+    public void setData(List<Workflow> workflowList){
+        this.workflow = workflowList;
+    }
     @Override
     public long getItemId(int i) {
         return workflow.get(i).getId();
@@ -195,13 +200,6 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         workflow.add(wk);
     }
 
-    @Override
-    public void onClick(View view) {
-        int i = view.getId();
-        if (i == R.id.button_mark_workflow) {
-        }
-    }
-
     public static class ViewHolder extends RecyclerView.ViewHolder {
         public final ImageView author_profile;
         public final TextView author_name, wk_title,wk_showmore,wk_description;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
index 5a9cf32..77d8831 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
@@ -25,31 +25,32 @@ package org.apache.taverna.mobile.fragments;
 * under the License.
 */
 
-import android.app.Activity;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.view.ContextMenu;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.adapters.FavoriteWorkflowAdapter;
+import org.apache.taverna.mobile.adapters.WorkflowAdapter;
+import org.apache.taverna.mobile.utils.Workflow_DB;
+import org.json.JSONException;
 
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 /**
  * Created by Larry Akah on 6/6/15.
  */
-public class FavoriteFragment extends Fragment implements AdapterView.OnItemClickListener{
+public class FavoriteFragment extends Fragment implements RecyclerView.OnCreateContextMenuListener, RecyclerView.OnClickListener{
     /**
      * The fragment argument representing the section number for this
      * fragment.
@@ -57,7 +58,8 @@ public class FavoriteFragment extends Fragment implements AdapterView.OnItemClic
     private static final String ARG_SECTION_NUMBER = "SECTION_NUMBER";
     private FavoriteWorkflowAdapter favoriteAdapter;
     private RecyclerView wFavoriteListView;
-    private FavoriteItemSelected favItemListener;
+   // private FavoriteItemSelected favItemListener;
+    public Workflow_DB myWorkflowDb;
 
     /**
      * Returns a new instance of this fragment for the given section
@@ -77,27 +79,17 @@ public class FavoriteFragment extends Fragment implements AdapterView.OnItemClic
     @Override
     public void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
-
-        //TODO : Collect data through  API (ICEBASE)
-        //create a sample list of data. future data come s from an API on local storage
-        List<String[]> sampledata = new ArrayList<String[]>();
-               sampledata.add(new String[]{"Larry", "Prokaryotic symbiosis",
-                       new SimpleDateFormat().format(new Date()),
-                       new SimpleDateFormat().format(new Date()),
-                       new SimpleDateFormat().format(new Date()),
-                       new SimpleDateFormat().format(new Date())});
-        sampledata.add(new String[]{"Meeze Ball", "Fluid Traffic analysis",
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date())});
-        sampledata.add(new String[]{"Halway Law", "Photosynthetic tissue disengagement",
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date()),
-                new SimpleDateFormat().format(new Date())});
-
-        favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), sampledata);
+        myWorkflowDb = new Workflow_DB(getActivity(), WorkflowAdapter.WORKFLOW_FAVORITE_KEY);
+//TODO Add support for loading all the favorites and adding to the required list
+      //  try {
+         //   List<ArrayList<Object>> mydata = myWorkflowDb.get();
+         //   ArrayList<Object> m = mydata.get(0);
+            List<String[]> sampledata = new ArrayList<String[]>();
+            sampledata.add(new String[]{"test fav","test data", "test"});//new String[]{(String) m.get(1), (String) m.get(2)});
+            favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), sampledata);
+   //     } catch (JSONException e) {
+   //         e.printStackTrace();
+       // }
     }
 
     @Override
@@ -112,16 +104,81 @@ public class FavoriteFragment extends Fragment implements AdapterView.OnItemClic
         return rootView;
     }
 
+    /**
+     * Called when a context menu for the {@code view} is about to be shown.
+     * Unlike {@link #onCreateOptionsMenu}, this will be called every
+     * time the context menu is about to be shown and should be populated for
+     * the view (or item inside the view for {@link android.widget.AdapterView} subclasses,
+     * this can be found in the {@code menuInfo})).
+     * <p/>
+     * Use {@link #onContextItemSelected(android.view.MenuItem)} to know when an
+     * item has been selected.
+     * <p/>
+     * The default implementation calls up to
+     * {@link android.app.Activity#onCreateContextMenu Activity.onCreateContextMenu}, though
+     * you can not call this implementation if you don't want that behavior.
+     * <p/>
+     * It is not safe to hold onto the context menu after this method returns.
+     * {@inheritDoc}
+     *
+     * @param menu
+     * @param v
+     * @param menuInfo
+     */
     @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        try {
-            favItemListener = (FavoriteItemSelected) activity;
-            ((DashboardMainActivity) activity).onSectionAttached(
-                    getArguments().getInt(ARG_SECTION_NUMBER));
-        }catch (ClassCastException ex){
-            ex.printStackTrace();
-        }
+    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+        super.onCreateContextMenu(menu, v, menuInfo);
+        menu.add("Select");
+        menu.add("Comment ...");
+        menu.add("Delete");
+        menu.setHeaderIcon(R.mipmap.ic_launcher);
+    }
+
+    /**
+     * This hook is called whenever an item in a context menu is selected. The
+     * default implementation simply returns false to have the normal processing
+     * happen (calling the item's Runnable or sending a message to its Handler
+     * as appropriate). You can use this method for any items for which you
+     * would like to do processing without those other facilities.
+     * <p/>
+     * Use {@link android.view.MenuItem#getMenuInfo()} to get extra information set by the
+     * View that added this menu item.
+     * <p/>
+     * Derived classes should call through to the base class for it to perform
+     * the default menu handling.
+     *
+     * @param item The context menu item that was selected.
+     * @return boolean Return false to allow normal context menu processing to
+     * proceed, true to consume it here.
+     */
+    @Override
+    public boolean onContextItemSelected(MenuItem item) {
+        String title = (String) item.getTitle();
+        if(title.equals("Select")){
+            Toast.makeText(getActivity(),"Selected", Toast.LENGTH_SHORT).show();
+            return true;
+        }else if (title.equals("Comment ...")){
+            Toast.makeText(getActivity(),"Commenting", Toast.LENGTH_SHORT).show();
+            return true;
+        }else if (title.equals("Delete")){
+            Toast.makeText(getActivity(),"Deleted", Toast.LENGTH_SHORT).show();
+            return true;
+        }else
+            return super.onContextItemSelected(item);
+    }
+
+    /**
+     * Called when the fragment is visible to the user and actively running.
+     * This is generally
+     * tied to {@link android.app.Activity#onResume() Activity.onResume} of the containing
+     * Activity's lifecycle.
+     */
+    @Override
+    public void onResume() {
+        super.onResume();
+//        wFavoriteListView.setKeepScreenOn();
+        wFavoriteListView.setOnClickListener(this);
+        registerForContextMenu(wFavoriteListView);
     }
 
     /**
@@ -131,12 +188,6 @@ public class FavoriteFragment extends Fragment implements AdapterView.OnItemClic
     @Override
     public void onDetach() {
         super.onDetach();
-        favItemListener = null;
-    }
-
-    @Override
-    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-        favItemListener.onFavoriteItemSelected(i);
     }
 
     /**
@@ -149,8 +200,8 @@ public class FavoriteFragment extends Fragment implements AdapterView.OnItemClic
         }
     }
 
-    public interface FavoriteItemSelected{
-        //implemented by activity when sending click events to this fragments views
-        public void onFavoriteItemSelected(int position);
+    @Override
+    public void onClick(View view) {
+        Toast.makeText(getActivity(),"Clicked", Toast.LENGTH_SHORT).show();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/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 a54565b..4457366 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
@@ -35,6 +35,8 @@ import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.SearchView;
+import android.util.Log;
+import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -50,6 +52,7 @@ import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.adapters.WorkflowAdapter;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.WorkflowDataCallback;
 import org.apache.taverna.mobile.utils.WorkflowLoader;
 
 import java.util.ArrayList;
@@ -62,23 +65,23 @@ import java.util.List;
  * with a GridView.
  * <p/>
  */
-public class WorkflowItemFragment extends Fragment implements android.app.LoaderManager.LoaderCallbacks<List<Workflow>>, SwipeRefreshLayout.OnRefreshListener {
+public class WorkflowItemFragment extends Fragment implements android.app.LoaderManager.LoaderCallbacks<List<Workflow>>,
+        SwipeRefreshLayout.OnRefreshListener, SearchView.OnQueryTextListener {
 
-    // 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 ProgressDialog mProgressDialog; //progressbar used to indicate the state of the workflow loaders
 
-    // TODO: Rename and change types of parameters
     private String mParam1;
     private String mParam2;
 
     /**
      * The fragment's ListView/GridView.
      */
-    private RecyclerView mListView;
+    private static RecyclerView mListView;
     private SwipeRefreshLayout swipeRefreshLayout;
 
     /**
@@ -86,9 +89,10 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
      * Views.
      */
     private WorkflowAdapter workflowAdapter;
+    private static WorkflowAdapter searchAdpater;
+    private View rootView;
+    public static Context cx;
 
-
-    // TODO: Rename and change types of parameters
     public static WorkflowItemFragment newInstance(String param1, String param2) {
         WorkflowItemFragment fragment = new WorkflowItemFragment();
         Bundle args = new Bundle();
@@ -109,36 +113,30 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
-
+        cx = getActivity();
         if (getArguments() != null) {
             mParam1 = getArguments().getString(ARG_PARAM1);
             mParam2 = getArguments().getString(ARG_PARAM2);
         }
         in = AnimationUtils.loadAnimation(getActivity(),android.R.anim.slide_in_left);
        List<Workflow> mlist = new ArrayList<Workflow>();
-    /*    mlist.add(new Workflow(getActivity(),"Testing title","Larry","Ok testing",0,"http://127.0.0.1"));
-        mlist.add(new Workflow(getActivity(),"Testing title","Larry","Ok testing",0,"http://127.0.0.1"));
+   //    mlist.add(new Workflow(getActivity(),"Testing title","Larry","Ok testing",0,"http://127.0.0.1"));
+   /*     mlist.add(new Workflow(getActivity(),"Testing title","Larry","Ok testing",0,"http://127.0.0.1"));
 */
         workflowAdapter = new WorkflowAdapter(getActivity(), mlist );
     }
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
-        View view = inflater.inflate(R.layout.fragment_item, container, false);
-        swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh);
+        rootView = inflater.inflate(R.layout.fragment_item, container, false);
+        swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.refresh);
         swipeRefreshLayout.setOnRefreshListener(this);
         // Set the adapter
-        mListView = (RecyclerView) view.findViewById(android.R.id.list);
+        mListView = (RecyclerView) rootView.findViewById(android.R.id.list);
         mListView.setHasFixedSize(true);
         mListView.setLayoutManager(new LinearLayoutManager(getActivity()));
-         if(workflowAdapter.getItemCount() == 0){
-            setEmptyText("No Workflows available");
-            mListView.swapAdapter(workflowAdapter, true);
-        }else {
-            mListView.swapAdapter(workflowAdapter,true);
-             mListView.setAnimation(in);
-        }
-        return view;
+        mListView.setAnimation(in);
+        return rootView;
     }
 
     @Override
@@ -154,6 +152,21 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
     }
 
     /**
+     * Called when the view previously created by {@link #onCreateView} has
+     * been detached from the fragment.  The next time the fragment needs
+     * to be displayed, a new view will be created.  This is called
+     * after {@link #onStop()} and before {@link #onDestroy()}.  It is called
+     * <em>regardless</em> of whether {@link #onCreateView} returned a
+     * non-null view.  Internally it is called after the view's state has
+     * been saved but before it has been removed from its parent.
+     */
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        rootView = null;
+    }
+
+    /**
      * Called when the fragment is visible to the user and actively running.
      * This is generally
      * tied to {@link android.app.Activity#onResume() Activity.onResume} of the containing
@@ -162,15 +175,16 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
     @Override
     public void onResume() {
         super.onResume();
-        //Handle search actions from a system sent intent
+      /*  //Handle search actions from a system sent intent
         Intent searchIntent = getActivity().getIntent();
         if(searchIntent != null && Intent.ACTION_SEARCH.equals(searchIntent.getAction())){
             //retrieve and process query then display results
             String query = searchIntent.getStringExtra(SearchManager.QUERY);
             //Toast.makeText(getActivity(), "Query = " + query, Toast.LENGTH_SHORT).show();
             performSearch(workflowAdapter,query);
-        }else
-            getActivity().getLoaderManager().initLoader(0,null,this);
+        }else*/
+        new WorkflowLoader(getActivity(),mListView,swipeRefreshLayout).execute();
+        //    getActivity().getLoaderManager().initLoader(0,null,this).forceLoad();
     }
 
     /**
@@ -197,6 +211,8 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
             //assuming this activity is the searchable activity
             searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
             searchView.setSubmitButtonEnabled(true);
+            searchView.setOnQueryTextListener(this);
+//            searchView.setOnSearchClickListener(this);
 //            searchView.setIconifiedByDefault(false);
             MenuItem mit = menu.add("Refresh");
             mit.setIcon(android.R.drawable.stat_notify_sync);
@@ -223,8 +239,8 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if(item.getTitle().equals("Refresh")){
-
-            getActivity().getLoaderManager().restartLoader(0, null, this);
+            new WorkflowLoader(getActivity(), mListView, swipeRefreshLayout).execute();
+//            getActivity().getLoaderManager().restartLoader(0, null, this).forceLoad();
             return true;
         }
         return super.onOptionsItemSelected(item);
@@ -248,48 +264,70 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         }
     }
 
-    private void performSearch(WorkflowAdapter adapter, String search){
+    private void performSearch(String search){
         WorkflowAdapter ladapter = new WorkflowAdapter(getActivity());
+        WorkflowAdapter wk = WorkflowItemFragment.searchAdpater;//workflowAdapter;
 
-        for(int i=0; i<adapter.getItemCount(); i++) {
-            Workflow workflow = adapter.getItem(i);
-            if(search.contains(workflow.getWorkflow_author()) || search.contains(workflow.getWorkflow_title())){
+        Log.i("Count", ""+wk.getItemCount());
+        for(int i=0; i< wk.getItemCount(); i++) {
+            Workflow workflow = wk.getItem(i);
+            if(search.toLowerCase().contains(workflow.getWorkflow_author().toLowerCase())
+                    || search.contains(workflow.getWorkflow_title().toLowerCase())){
                 ladapter.addWorkflow(workflow);
             }
         }
         mListView.swapAdapter(ladapter, true);
+       /// Toast.makeText(getActivity(), "Query = " + search, Toast.LENGTH_SHORT).show();
     }
 
-    /**
-     * Instantiate and return a new Loader for the given ID.
-     *
-     * @param id   The ID whose loader is to be created.
-     * @param args Any arguments supplied by the caller.
-     * @return Return a new Loader instance that is ready to start loading.
-     */
     @Override
     public android.content.Loader<List<Workflow>> onCreateLoader(int id, Bundle args) {
         swipeRefreshLayout.setRefreshing(true);
-        return new WorkflowLoader(getActivity());
+        return null;
+        //return new WorkflowLoader(getActivity());
     }
 
     @Override
     public void onLoadFinished(android.content.Loader<List<Workflow>> loader, List<Workflow> workflows) {
         swipeRefreshLayout.setRefreshing(false);
-        workflowAdapter = new WorkflowAdapter(getActivity(), workflows);
-        mListView.swapAdapter(workflowAdapter, true);
-
+        Toast.makeText(getActivity(), "loader finished", Toast.LENGTH_SHORT).show();
+        workflowAdapter= new WorkflowAdapter(getActivity(), workflows);
+        WorkflowItemFragment.searchAdpater = workflowAdapter;
+        //mListView.swapAdapter(workflowAdapter, true);
     }
 
     @Override
     public void onLoaderReset(android.content.Loader<List<Workflow>> listLoader) {
-        //listLoader.reset();
+        listLoader.reset();
 //        mListView.swapAdapter(null, true);
     }
 
     @Override
     public void onRefresh() {
-        getActivity().getLoaderManager().restartLoader(0, null, this);
+
+        new WorkflowLoader(getActivity(), mListView, swipeRefreshLayout).execute();
+        //getActivity().getLoaderManager().restartLoader(0, null, this).forceLoad();
+    }
+
+    @Override
+    public boolean onQueryTextSubmit(String query) {
+        performSearch(query);
+        return true;
+    }
+
+    @Override
+    public boolean onQueryTextChange(String s) {
+        return false;
     }
 
+    public static void updateWorkflowUI(final List<Workflow> data) {
+
+        ((Activity)cx).runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                WorkflowItemFragment.mListView.setAdapter(new WorkflowAdapter(cx, data));
+            }
+        });
+
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/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 3068791..f90354f 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
@@ -170,7 +170,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     @Override
     public void onResume() {
         super.onResume();
-        getActivity().getLoaderManager().initLoader(0, null, this);
+        getActivity().getLoaderManager().initLoader(1, null, this);
 
     }
 
@@ -208,8 +208,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     }
 
     //create and return a new TextView
-    public TextView createTextView(Context mcontetx, String placeholder){
-        TextView tv = new TextView(mcontetx);
+    public TextView createTextView(Context mcontext, String placeholder){
+        TextView tv = new TextView(mcontext);
         tv.setText(placeholder);
         tv.setMinLines(2);
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java
index 388dc2d..63d3b06 100644
--- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java
@@ -1,12 +1,35 @@
 package org.apache.taverna.mobile.tavernamobile;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 import android.content.Context;
 import android.preference.PreferenceManager;
 
 import java.net.PasswordAuthentication;
 
 /**
- * Created by root on 6/13/15.
+ * Created by Larry Akah on 6/13/15.
  */
 public class TavernaPlayerAPI {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java
new file mode 100644
index 0000000..fa61075
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java
@@ -0,0 +1,129 @@
+package org.apache.taverna.mobile.tavernamobile;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
+
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import android.graphics.Bitmap;
+import org.simpleframework.xml.Element;
+
+import java.util.List;
+
+/**
+ * Created by root on 6/18/15.
+ */
+public class User {
+
+    public User() {
+        super();
+    }
+    private static final long serialVersionUID = 3467195671046297377L;
+    @Element(required = false)
+    protected String id;
+    @Element(name = "created-at", required = false)
+    protected String created_at;
+    @Element(required = false)
+    protected String name;
+    @Element(required = false)
+    protected String description;
+    @Element(required = false)
+    protected String email;
+    @Element(required = false)
+    protected Bitmap avatar;
+    @Element(required = false)
+    protected String city;
+    @Element(required = false)
+    protected String country;
+    @Element(required = false)
+    protected String website;
+
+    protected List<Workflow> user_workflows; //a list of workflows owned by this user
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(String created_at) {
+        this.created_at = created_at;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public Bitmap getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(Bitmap avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCountry() {
+        return country;
+    }
+
+    public void setCountry(String country) {
+        this.country = country;
+    }
+
+    public String getWebsite() {
+        return website;
+    }
+
+    public void setWebsite(String website) {
+        this.website = website;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
index 1d2d6e0..6beada5 100644
--- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
@@ -44,17 +44,39 @@ public class Workflow {
     private String workflow_datecreated, workflow_datemodified;
     private Bitmap workflow_author_bitmap;
     private WorkflowComponent workflowComponent;
-    private String workflow_remote_url;
+    private String workflow_remote_url; //provides a link to download the workflow. Equivalent to content-uri in the xml form
+    private String workflow_web_url; //a string containing the workflow resource that can be loaded in  browser
     private List<Runs> workflow_runs;
     private int workflow_input;
     private long id;
+    private String workflow_uploader;//indicate the user who uploaded the workflow
+    private String workflow_Type; //describes whether it is a type 1 or 2 workflow
+    private String workflow_preview; //a url to a preview image of the workflow
+    private String workflow_thumb_big; //a url to a full scale image of the workflow. I Will usually an SVG because the it is available for most of the workflows
+    private String workflow_licence_type; //describes a type of licensing for the workflow
+    private String workflow_content_type;//specifies a content type for the workflow;
+    private List<String> workflow_tags;//provides a list of string tags that could be used to index the workflow for searches
+    private String workflow_versions;//a list of version for the workflow uploaded over time
+    private List<String> workflow_credits;//key contributors to the workflow
 
     public static enum workflow_input_type{ TYPE_INT, TYPE_STRING, TYPE_OBJECT};
 
+    public Workflow() {
+    }
+
     public Workflow(Context context) {
         this.context = context;
         this.workflow_runs = new ArrayList<Runs>();
     }
+    public Workflow(String author, String description, long id, String url){
+        this.workflow_author = author;
+        this.workflow_author_bitmap = null;//BitmapFactory.decodeResource(getResources(), R.drawable.ic_userprofile);
+        this.workflow_description =description;
+        this.workflow_input=1;
+        this.id = id;
+        this.workflow_remote_url = url;
+        this.workflow_runs = new ArrayList<Runs>();
+    }
 
     public Workflow(Context ctx, String title, String author, String description, long id, String url){
         this.context = ctx;
@@ -69,7 +91,7 @@ public class Workflow {
     }
 
     public long getId() {
-        return id;
+        return this.id;
     }
 
     public void setId(long id) {
@@ -89,7 +111,7 @@ public class Workflow {
     }
 
     public String getPolicy() {
-        return policy;
+        return this.policy;
     }
 
     public void setPolicy(String policy) {
@@ -97,7 +119,7 @@ public class Workflow {
     }
 
     public String getAbout() {
-        return about;
+        return this.about;
     }
 
     public void setAbout(String about) {
@@ -179,6 +201,86 @@ public class Workflow {
     public void setWorkflowComponent(WorkflowComponent workflowComponent) {
         this.workflowComponent = workflowComponent;
     }
+
+    public String getWorkflow_web_url() {
+        return workflow_web_url;
+    }
+
+    public void setWorkflow_web_url(String workflow_web_url) {
+        this.workflow_web_url = workflow_web_url;
+    }
+
+    public String getWorkflow_uploader() {
+        return workflow_uploader;
+    }
+
+    public void setWorkflow_uploader(String workflow_uploader) {
+        this.workflow_uploader = workflow_uploader;
+    }
+
+    public String getWorkflow_Type() {
+        return workflow_Type;
+    }
+
+    public void setWorkflow_Type(String workflow_Type) {
+        this.workflow_Type = workflow_Type;
+    }
+
+    public String getWorkflow_preview() {
+        return workflow_preview;
+    }
+
+    public void setWorkflow_preview(String workflow_preview) {
+        this.workflow_preview = workflow_preview;
+    }
+
+    public String getWorkflow_thumb_big() {
+        return workflow_thumb_big;
+    }
+
+    public void setWorkflow_thumb_big(String workflow_thumb_big) {
+        this.workflow_thumb_big = workflow_thumb_big;
+    }
+
+    public String getWorkflow_licence_type() {
+        return workflow_licence_type;
+    }
+
+    public void setWorkflow_licence_type(String workflow_licence_type) {
+        this.workflow_licence_type = workflow_licence_type;
+    }
+
+    public String getWorkflow_content_type() {
+        return workflow_content_type;
+    }
+
+    public void setWorkflow_content_type(String workflow_content_type) {
+        this.workflow_content_type = workflow_content_type;
+    }
+
+    public List<String> getWorkflow_tags() {
+        return workflow_tags;
+    }
+
+    public void setWorkflow_tags(List<String> workflow_tags) {
+        this.workflow_tags = workflow_tags;
+    }
+
+    public String getWorkflow_versions() {
+        return workflow_versions;
+    }
+
+    public void setWorkflow_versions(String workflow_versions) {
+        this.workflow_versions = workflow_versions;
+    }
+
+    public List<String> getWorkflow_credits() {
+        return workflow_credits;
+    }
+
+    public void setWorkflow_credits(List<String> workflow_credits) {
+        this.workflow_credits = workflow_credits;
+    }
 }
 /* Use the sample code if it becomes necessary to pass this objects amongst activities
 / simple class that just has one member property as an example

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.java
index 71f30ae..dab4775 100644
--- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.java
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.java
@@ -24,7 +24,8 @@ package org.apache.taverna.mobile.tavernamobile;
  * under the License.
  */
 /**
- * Created by root on 6/8/15.
+ * Created by Larry Akah on 6/8/15.
+ * the component elements that make up a workflow's dataflow (e.g. Taverna has sources, sinks, processors, links and coordinations)
  */
 public class WorkflowComponent {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java b/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
index 2ed6b19..86b3666 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
@@ -1,5 +1,28 @@
 package org.apache.taverna.mobile.utils;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 import java.util.ArrayList;
 import java.util.Arrays;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/HttpUtil.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/HttpUtil.java b/app/src/main/java/org/apache/taverna/mobile/utils/HttpUtil.java
new file mode 100644
index 0000000..141b1a5
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/HttpUtil.java
@@ -0,0 +1,103 @@
+package org.apache.taverna.mobile.utils;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.AbstractHttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.util.EntityUtils;
+import org.apache.taverna.mobile.tavernamobile.User;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.net.CookieStore;
+import java.net.HttpURLConnection;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
+
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * Created by Larry Akah on 6/18/15.
+ */
+public class HttpUtil {
+
+    public <T> Object doPostAuthenticate(){
+        User muser = new User();
+
+        return muser;
+    }
+
+    public <T> Object doGetRequestResponse(String uri, Class<T> classType, String username, String password){
+        Object dataObject = null;
+
+        HttpClient httpClient = new DefaultHttpClient();
+        HttpGet httpGet = new HttpGet(uri);
+        HttpResponse httpResponse = null;
+        try {
+            ((AbstractHttpClient) httpClient).setCookieStore((org.apache.http.client.CookieStore) CookieStore.class.newInstance());
+            httpGet.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials(username,password), "UTF-8", false));
+            httpResponse = httpClient.execute(httpGet);
+
+            if(isSuccess(httpResponse, HttpURLConnection.HTTP_OK)){
+                HttpEntity entity = httpResponse.getEntity();
+                if(entity != null){
+                    String responseString = EntityUtils.toString(entity);
+                    dataObject = this.deSerialize(classType, responseString);
+                }
+            }
+        } catch (InstantiationException e) {
+            e.printStackTrace();
+            return e.getMessage();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            return e.getMessage();
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+            return e.getMessage();
+        } catch (IOException e) {
+            e.printStackTrace();
+            return e.getMessage();
+        }
+
+        return dataObject;
+
+    }
+
+    //de-serializes xml data to target class
+    private <T> Object deSerialize(Class<T> classType, String responseString) {
+        //TODO deserialize data and return the appropriate object
+       // ObjectInputStream ori = new ObjectInputStream(new DataInputStream(responseString)) ;
+
+        return null;
+    }
+
+    private boolean isSuccess(HttpResponse httpResponse, int httpOk) {
+
+        return httpResponse.getStatusLine().getStatusCode() == httpOk;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
new file mode 100644
index 0000000..26893f7
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
@@ -0,0 +1,168 @@
+package org.apache.taverna.mobile.utils;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
+
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import android.text.util.Linkify;
+
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.rule.DefaultRule;
+
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Larry Akah on 6/23/15.
+ */
+public class MyExperimentXmlParser {
+
+    //parse a single workflow from myexperiment
+    public static final class WorkflowItemRule extends DefaultRule{
+
+        /**
+         * Create a new rule with the given values.
+         *
+         * @param type           The type of the rule.
+         * @param locationPath   The location path of the element to target in the XML.
+         * @param attributeNames An optional list of attribute names to parse values for if the
+         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
+         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
+         *                                            <code>locationPath</code> is <code>null</code> or empty, if
+         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
+         *                                            <code>attributeNames</code> is <code>null</code> or empty or
+         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
+         *                                            <code>attributeNames</code> <strong>is not</strong>
+         *                                            <code>null</code> or empty.
+         */
+        public WorkflowItemRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(Type.CHARACTER, "http://www.myexperiment.org/workflows.xml", "workflow");
+        }
+
+        /**
+         * Default no-op implementation. Please override with your own logic.
+         *
+         * @param parser
+         * @param index
+         * @param value
+         * @param userObject
+         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedAttribute(com.thebuzzmedia.sjxp.XMLParser, int, String, Object)
+         */
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+            switch(index){
+                case 0:
+                    break;
+                case 1:
+                    break;
+                case 2:
+                    break;
+                case 3:
+                    break;
+
+            }
+        }
+    }
+
+    /**
+     * parse workflows from myExperiment
+     */
+    public final static class WorkflowRule extends DefaultRule{
+        Workflow workflow;
+        List<Workflow>  wlist;
+        static String uri,version,desc;
+        static String url=uri=version=desc="";
+        static long id = 0;
+        /**
+         * Create a new rule with the given values.
+         *
+         * @param type           The type of the rule.
+         * @param locationPath   The location path of the element to target in the XML.
+         * @param attributeNames An optional list of attribute names to parse values for if the
+         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
+         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
+         *                                            <code>locationPath</code> is <code>null</code> or empty, if
+         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
+         *                                            <code>attributeNames</code> is <code>null</code> or empty or
+         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
+         *                                            <code>attributeNames</code> <strong>is not</strong>
+         *                                            <code>null</code> or empty.
+         */
+        public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(type, locationPath, attributeNames);
+            this.workflow = new Workflow();
+            wlist = new ArrayList<>();
+        }
+        //instantiated to parse xml data for a given workflow
+        public WorkflowRule(Type type, String path, int id, String attributenames){
+            super(type,path,attributenames);
+        }
+
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+
+            switch(index){
+                case 0:
+                    System.out.println("Workflow Resource: "+value); url = value;
+                    desc = "To view workflow on the web, click "+value;
+//                    this.workflow.setWorkflow_web_url(value);
+//                    this.workflow.setWorkflow_description("To view workflow on the web, click "+value);
+                    break;
+                case 1:
+                    System.out.println("Workflow uri: "+value); //uri for detailed workflow
+                    uri = value;
+//                    this.workflow.setWorkflow_remote_url(value);
+                    break;
+                case 2:
+                    System.out.println("Workflow id: "+value);
+                    id = Integer.parseInt(value);
+//                    this.workflow.setId(Integer.parseInt(value));
+                    break;
+                case 3:
+                    System.out.println("Workflow version: "+value);
+                    version = value;
+               //     this.workflow.setWorkflow_versions(value);
+                    break;
+            }
+
+        }
+
+        @Override
+        public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
+            //add the title to the workflow and add it to the workflow list
+            this.workflow = new Workflow("", desc, id, url);
+            this.workflow.setWorkflow_title(text);
+            this.workflow.setWorkflow_author("");
+            wlist.add(this.workflow);
+            WorkflowLoader.loadedWorkflows.add(this.workflow);
+            System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
+            ((List<Workflow>)workflowListObject).add(this.workflow);
+            this.workflow = null;
+
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDataCallback.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDataCallback.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDataCallback.java
new file mode 100644
index 0000000..a8fbbe5
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDataCallback.java
@@ -0,0 +1,14 @@
+package org.apache.taverna.mobile.utils;
+
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+
+import java.util.List;
+
+/**
+ * Callback for when data is ready to be put into the workflow adapter
+ * Created by root on 6/24/15.
+ */
+public interface WorkflowDataCallback {
+
+    public void onWorkflowDataReady(List<Workflow> data);
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
index 569ed29..3071f88 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
@@ -24,12 +24,18 @@ package org.apache.taverna.mobile.utils;
  * under the License.
  */
 import android.app.Activity;
-import android.content.AsyncTaskLoader;
 import android.content.Context;
+import android.os.AsyncTask;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.RecyclerView;
 import android.util.Base64;
 import android.util.Log;
 
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.rule.DefaultRule;
+import com.thebuzzmedia.sjxp.rule.IRule;
+
+import org.apache.taverna.mobile.adapters.WorkflowAdapter;
 import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
 import org.json.JSONArray;
@@ -40,9 +46,9 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.Authenticator;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
+import java.net.ProtocolException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -50,28 +56,46 @@ import java.util.List;
 /**
  * Created by Larry Akah on 6/13/15.
  */
-public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> {
+public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //WorkflowLoaderMain {
 
     private Context ctx;
     private List<Workflow> userWorkflows;
+    public static List<Workflow> loadedWorkflows;
+    private RecyclerView recyclerView;
+    private SwipeRefreshLayout refreshLayout;
 
-    public WorkflowLoader(Context context) {
+  /*  public WorkflowLoader(Context context) {
         super(context);
         ctx = context;
+        loadedWorkflows = new ArrayList<Workflow>();
+        userWorkflows = new ArrayList<Workflow>();
+    }*/
+
+    public WorkflowLoader(Context context, RecyclerView rc, SwipeRefreshLayout sw) {
+        this.ctx = context;
+        this.recyclerView = rc;
+        this.refreshLayout = sw;
+        this.userWorkflows = new ArrayList<Workflow>();
+        loadedWorkflows = new ArrayList<Workflow>();
+    }
+
+    @Override
+    protected void onPreExecute() {
+        super.onPreExecute();
+        refreshLayout.setRefreshing(true);
     }
 
     @Override
-    public List<Workflow> loadInBackground() {
-         userWorkflows = new ArrayList<Workflow>();
+    public List<Workflow> doInBackground(Object[] objects) {
         //start a network request to fetch user's workflows
-        try {
+        /*try {
             //for password protected urls use the user's credentials
-            Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna","taverna"));
+            //Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna","taverna"));
 
             URL workflowurl = new URL(new TavernaPlayerAPI(ctx).PLAYER_WORKFLOW_URL);
             HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
             String userpass = "icep603@gmail.com" + ":" + "creationfox";
-            String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(),Base64.DEFAULT);
+            String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
             //new String(Base64.encode(userpass.getBytes(),Base64.DEFAULT));
 
             connection.setRequestProperty ("Authorization", basicAuth);
@@ -104,14 +128,40 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> {
                 long id = js.getLong("id");
                 userWorkflows.add(new Workflow(ctx,title,">"+authorJson.getString("name"),description,id,url));
             }
-
+            return userWorkflows;
         } catch (JSONException | IOException e) {
             e.printStackTrace();
-        }
+        }*/
+        IRule wkflowRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.ATTRIBUTE, "/workflows/workflow", "resource", "uri","id", "version");
+        IRule workflowNameRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.CHARACTER, "/workflows/workflow");
+        WorkflowParser xmlParser = new WorkflowParser(new IRule[]{wkflowRule, workflowNameRule}, recyclerView, this.ctx);
+        try {
+            URL workflowurl = new URL("http://www.myexperiment.org/workflows.xml");
+            HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
+            connection.setRequestMethod("GET");
+            connection.connect(); //send request
 
-        return userWorkflows;
+            Log.i("RESPONSE Code", ""+connection.getResponseCode());
+            Log.i("RESPONSE Messsage", ""+connection.getResponseMessage());
+
+            InputStream dis = connection.getInputStream();
+            xmlParser.parse(dis, this.userWorkflows);
+            Thread.sleep(4000);//4sec delay so that parsing completes
+
+        }catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (ProtocolException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+       // return WorkflowLoader.loadedWorkflows;
+        return this.userWorkflows;
     }
 
+/*
     @Override
     public void onCanceled(List<Workflow> data) {
         super.onCanceled(data);
@@ -125,7 +175,6 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> {
     @Override
     protected void onStartLoading() {
         //if there is data available, deliver it at once
-        ((Activity)ctx).setProgressBarIndeterminateVisibility(true);
         if(userWorkflows != null)
             deliverResult(userWorkflows);
         else{
@@ -137,6 +186,7 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> {
     public void deliverResult(List<Workflow> data) {
         if(isStarted()){
             super.deliverResult(data);
+
         }
     }
 
@@ -144,5 +194,89 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> {
     protected void onStopLoading() {
         cancelLoad();
     }
+*/
+
+    @Override
+    protected void onPostExecute(Object o) {
+        refreshLayout.setRefreshing(false);
+        System.out.println("Workflow Count: "+this.userWorkflows.size());
+      //  recyclerView.setAdapter(new WorkflowAdapter(this.ctx, (List<Workflow>) o));
+    }
+
+    class WorkflowRule extends DefaultRule {
+        Workflow workflow;
 
+        /**
+         * Create a new rule with the given values.
+         *
+         * @param type           The type of the rule.
+         * @param locationPath   The location path of the element to target in the XML.
+         * @param attributeNames An optional list of attribute names to parse values for if the
+         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
+         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
+         *                                            <code>locationPath</code> is <code>null</code> or empty, if
+         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
+         *                                            <code>attributeNames</code> is <code>null</code> or empty or
+         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
+         *                                            <code>attributeNames</code> <strong>is not</strong>
+         *                                            <code>null</code> or empty.
+         */
+        public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(type, locationPath, attributeNames);
+            workflow = new Workflow();
+        }
+        //instantiated to parse xml data for a given workflow
+        public WorkflowRule(Type type, String path, int id, String attributenames){
+            super(type,path,attributenames);
+        }
+
+        /**
+         * Default no-op implementation. Please override with your own logic.
+         *
+         * @param parser
+         * @param index
+         * @param value
+         * @param userObject
+         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedAttribute(com.thebuzzmedia.sjxp.XMLParser, int, String, Object)
+         */
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+            switch(index){
+                case 0:
+                    System.out.println("Workflow Resource: "+value);
+                    workflow.setWorkflow_web_url(value);
+                    workflow.setWorkflow_description("To view workflow on the web, click "+value);
+                    break;
+                case 1:
+                    System.out.println("Workflow uri: "+value); //uri for detailed workflow
+                    workflow.setWorkflow_remote_url(value);
+                    break;
+                case 2:
+                    System.out.println("Workflow id: "+value);
+                    workflow.setId(Integer.parseInt(value));
+                    break;
+                case 3:
+                    System.out.println("Workflow version: "+value);
+                    workflow.setWorkflow_versions(value);
+                    break;
+            }
+        }
+
+        /**
+         * Default no-op implementation. Please override with your own logic.
+         *
+         * @param parser
+         * @param text
+         * @param workflowListObject
+         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedCharacters(com.thebuzzmedia.sjxp.XMLParser, String, Object)
+         */
+        @Override
+        public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
+            //add the title to the workflow and add it to the workflow list
+            workflow.setWorkflow_title(text);
+            workflow.setWorkflow_author("");
+            workflow = new Workflow();
+            ((List<Workflow>)workflowListObject).add(workflow);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoaderMain.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoaderMain.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoaderMain.java
new file mode 100644
index 0000000..41c650d
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoaderMain.java
@@ -0,0 +1,44 @@
+package org.apache.taverna.mobile.utils;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
+
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import android.content.AsyncTaskLoader;
+import android.content.Context;
+
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+
+import java.util.List;
+
+/**
+ * Created by root on 6/23/15.
+ */
+public abstract class WorkflowLoaderMain extends AsyncTaskLoader<List<Workflow>> {
+
+    public WorkflowLoaderMain(Context context) {
+        super(context);
+    }
+
+    public abstract List<Workflow> loadInBackground();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
new file mode 100644
index 0000000..cc74955
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
@@ -0,0 +1,50 @@
+package org.apache.taverna.mobile.utils;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.XMLParserException;
+import com.thebuzzmedia.sjxp.rule.IRule;
+
+import org.apache.taverna.mobile.adapters.WorkflowAdapter;
+import org.apache.taverna.mobile.fragments.WorkflowItemFragment;
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+
+import java.util.List;
+
+/**
+ * Workflow end document class for detecting when the complete list of workflows have been read out
+ * Created by Larry Akah on 6/24/15.
+ */
+public class WorkflowParser extends XMLParser implements WorkflowDataCallback{
+
+    private RecyclerView recyclerView;
+    private Context mcontext;
+
+    public WorkflowParser(IRule[] rules) throws IllegalArgumentException, XMLParserException {
+        super(rules);
+    }
+
+    public WorkflowParser(IRule[] rules, RecyclerView recyclerv, Context c){
+        super(rules);
+        this.recyclerView = recyclerv;
+        this.mcontext = c;
+    }
+
+    @Override
+    protected void doEndDocument(Object userObject) {
+  //      super.doEndDocument(userObject);
+    //bind workflows to the adapter;
+//        onWorkflowDataReady((List<Workflow>) userObject);
+        WorkflowItemFragment.updateWorkflowUI((List<Workflow>) userObject);
+    }
+
+    @Override
+    public void onWorkflowDataReady(List<Workflow> data) {
+     //   this.recyclerView.setAdapter(new WorkflowAdapter(mcontext, data));
+        for(Workflow w:data){
+            System.out.println(w.getId());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/res/layout/fragment_workflow_about.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_workflow_about.xml b/app/src/main/res/layout/fragment_workflow_about.xml
index 1f7b676..865241f 100644
--- a/app/src/main/res/layout/fragment_workflow_about.xml
+++ b/app/src/main/res/layout/fragment_workflow_about.xml
@@ -27,7 +27,6 @@ limitations under the License.
         android:text="@string/hello_blank_fragment"
         android:elevation="5sp"
         android:layout_margin="2dp"
-        android:background="@color/accent_material_dark"
         android:backgroundTintMode="screen"
         android:ellipsize="start"
         android:id="@+id/aboutworkflowTextView"

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/src/main/res/layout/fragment_workflow_licence.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_workflow_licence.xml b/app/src/main/res/layout/fragment_workflow_licence.xml
index f239737..05f408b 100644
--- a/app/src/main/res/layout/fragment_workflow_licence.xml
+++ b/app/src/main/res/layout/fragment_workflow_licence.xml
@@ -28,7 +28,6 @@ limitations under the License.
         android:text="@string/hello_blank_fragment"
         android:elevation="5sp"
         android:layout_margin="2dp"
-        android:background="@color/accent_material_dark"
         android:scrollbars="vertical"
         android:fadeScrollbars="true"
         android:id="@+id/workflowpolicyTextView"

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/build/intermediates/dex-cache/cache.xml
----------------------------------------------------------------------
diff --git a/build/intermediates/dex-cache/cache.xml b/build/intermediates/dex-cache/cache.xml
index 9dea02b..ab3a83d 100644
--- a/build/intermediates/dex-cache/cache.xml
+++ b/build/intermediates/dex-cache/cache.xml
@@ -2,18 +2,25 @@
 <items version="2" >
 
     <item
-        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/classes.jar"
+        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/libs/internal_impl-22.0.0.jar"
         jumboMode="false"
         revision="21.1.2"
-        sha1="4e86306289ace4aa0cfec44a05ed2b410d36989d">
-        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar" />
+        sha1="b5b92f469d515a13d778900f6d50c03d12f35504">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar" />
     </item>
     <item
-        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/22.0.0/classes.jar"
+        jar="/root/Desktop/android-studio/sdk/extras/android/m2repository/com/android/support/support-annotations/22.0.0/support-annotations-22.0.0.jar"
         jumboMode="false"
         revision="21.1.2"
-        sha1="11842de6a309c447b3a3d60d73ad637a87c58994">
-        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar" />
+        sha1="685d0b2c590447e85284ed84712cb363ba04eff8">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar" />
+    </item>
+    <item
+        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/classes.jar"
+        jumboMode="false"
+        revision="21.1.2"
+        sha1="4e86306289ace4aa0cfec44a05ed2b410d36989d">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar" />
     </item>
     <item
         jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.0.0/classes.jar"
@@ -23,18 +30,18 @@
         <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-ebdf15783ac01747301cff830c2f3174571cec96.jar" />
     </item>
     <item
-        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/libs/internal_impl-22.0.0.jar"
+        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/libs/sjxp-2.2.jar"
         jumboMode="false"
         revision="21.1.2"
-        sha1="b5b92f469d515a13d778900f6d50c03d12f35504">
-        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/internal_impl-22.0.0-ab39a2263976cb0fd278360818acc6d173a8d8e0.jar" />
+        sha1="d7072ec248612a8f861f895a950eb7cc480de9c0">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/sjxp-2.2-0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar" />
     </item>
     <item
-        jar="/root/Desktop/android-studio/sdk/extras/android/m2repository/com/android/support/support-annotations/22.0.0/support-annotations-22.0.0.jar"
+        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/libs/simple-xml-2.7.1.jar"
         jumboMode="false"
         revision="21.1.2"
-        sha1="685d0b2c590447e85284ed84712cb363ba04eff8">
-        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/support-annotations-22.0.0-2f3cb2807dead79ef0327bdd9269035b879fdd27.jar" />
+        sha1="083623424bcfa03bd598e709765bad0816c2375d">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/simple-xml-2.7.1-0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar" />
     </item>
     <item
         jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.0.0/classes.jar"
@@ -43,5 +50,12 @@
         sha1="d84409890828e07d344a3b9b1da545dba9897b51">
         <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-cb13d360204b697dbd760e7e80b4357b182d723b.jar" />
     </item>
+    <item
+        jar="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/22.0.0/classes.jar"
+        jumboMode="false"
+        revision="21.1.2"
+        sha1="11842de6a309c447b3a3d60d73ad637a87c58994">
+        <dex dex="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/pre-dexed/debug/classes-2dbcae8b037134953fc4e3eb3645a66e2931661a.jar" />
+    </item>
 
 </items>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/build/intermediates/model_data.bin
----------------------------------------------------------------------
diff --git a/build/intermediates/model_data.bin b/build/intermediates/model_data.bin
index e4d3f90..31c35f8 100644
Binary files a/build/intermediates/model_data.bin and b/build/intermediates/model_data.bin differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
index e7b4def..c37e6ca 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app'
+include ':app', ':simple-xml-2.7.1'



[5/6] incubator-taverna-mobile git commit: Optimise search and fixed crash bug during search

Posted by ia...@apache.org.
Optimise search and fixed crash bug during search


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

Branch: refs/heads/master
Commit: 1b07fee59d296826b6547a324a23509edb937903
Parents: 045fab5
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jun 24 19:10:46 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jun 24 19:10:46 2015 +0100

----------------------------------------------------------------------
 .../mobile/adapters/WorkflowAdapter.java        |  16 +-
 .../mobile/fragments/WorkflowItemFragment.java  |  89 +---------
 .../mobile/utils/MyExperimentXmlParser.java     | 168 -------------------
 .../taverna/mobile/utils/WorkflowLoader.java    | 101 +----------
 .../taverna/mobile/utils/WorkflowParser.java    |  50 ------
 .../utils/xmlparsers/MyExperimentXmlParser.java | 146 ++++++++++++++++
 .../mobile/utils/xmlparsers/WorkflowParser.java |  35 ++++
 .../main/res/layout/workflow_item_layout.xml    |   9 +-
 8 files changed, 207 insertions(+), 407 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/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 b2c17f4..ce4e4c9 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
@@ -76,6 +76,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
     public WorkflowAdapter(Context c){
         context = c;
         workflow = new ArrayList<Workflow>();
+        favDB = new Workflow_DB(context, WORKFLOW_FAVORITE_KEY);
     }
 
     @Override
@@ -115,10 +116,6 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         final Intent it = new Intent();
         it.setClass(context, WorkflowDetailActivity.class);
         it.putExtra("workflowid", workflow.get(i).getId());
-        /*it.putExtra("author", workflow.get(i).getWorkflow_author());
-        it.putExtra("title",title);
-        it.putExtra("description",desc_full);
-        it.putExtra("url", wkflow_url);*/
         WorkflowdetailFragment.WORKFLO_ID = workflow.get(i).getId();
 
         viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() {
@@ -131,7 +128,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
                 ((Activity) context).overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.fade_out);
             }
         });
-        viewHolder.btn_download_workflow.setOnClickListener(new View.OnClickListener() {
+        /*viewHolder.btn_download_workflow.setOnClickListener(new View.OnClickListener() {
 
             @Override
             public void onClick(View view) {
@@ -151,14 +148,15 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
                     e.printStackTrace();
                 }
             }
-        });
+        });*/
         viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 boolean saved =  favDB.save();
-                if(saved)
-                    Toast.makeText(context,"Workflow marked as favorite",Toast.LENGTH_SHORT).show();
-                else
+                if(saved) {
+                    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);
+                }else
                     Toast.makeText(context,"Error!, please try again",Toast.LENGTH_SHORT).show();
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/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 4457366..e48a6ba 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
@@ -28,7 +28,6 @@ import android.app.Activity;
 import android.app.ProgressDialog;
 import android.app.SearchManager;
 import android.content.Context;
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.widget.SwipeRefreshLayout;
@@ -36,7 +35,6 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.SearchView;
 import android.util.Log;
-import android.view.ContextMenu;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -46,13 +44,11 @@ import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.adapters.WorkflowAdapter;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.apache.taverna.mobile.utils.WorkflowDataCallback;
 import org.apache.taverna.mobile.utils.WorkflowLoader;
 
 import java.util.ArrayList;
@@ -65,8 +61,7 @@ import java.util.List;
  * with a GridView.
  * <p/>
  */
-public class WorkflowItemFragment extends Fragment implements android.app.LoaderManager.LoaderCallbacks<List<Workflow>>,
-        SwipeRefreshLayout.OnRefreshListener, SearchView.OnQueryTextListener {
+public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener, SearchView.OnQueryTextListener {
 
     // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
     private static final String ARG_PARAM1 = "param1";
@@ -166,12 +161,6 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         rootView = null;
     }
 
-    /**
-     * Called when the fragment is visible to the user and actively running.
-     * This is generally
-     * tied to {@link android.app.Activity#onResume() Activity.onResume} of the containing
-     * Activity's lifecycle.
-     */
     @Override
     public void onResume() {
         super.onResume();
@@ -183,23 +172,10 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
             //Toast.makeText(getActivity(), "Query = " + query, Toast.LENGTH_SHORT).show();
             performSearch(workflowAdapter,query);
         }else*/
-        new WorkflowLoader(getActivity(),mListView,swipeRefreshLayout).execute();
+        new WorkflowLoader(getActivity(), swipeRefreshLayout).execute();
         //    getActivity().getLoaderManager().initLoader(0,null,this).forceLoad();
     }
 
-    /**
-     * Initialize the contents of the Activity's standard options menu.  You
-     * should place your menu items in to <var>menu</var>.  For this method
-     * to be called, you must have first called {@link #setHasOptionsMenu}.  See
-     * {@link android.app.Activity#onCreateOptionsMenu(android.view.Menu) Activity.onCreateOptionsMenu}
-     * for more information.
-     *
-     * @param menu     The options menu in which you place your items.
-     * @param inflater
-     * @see #setHasOptionsMenu
-     * @see #onPrepareOptionsMenu
-     * @see #onOptionsItemSelected
-     */
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
@@ -220,27 +196,10 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         }
     }
 
-    /**
-     * This hook is called whenever an item in your options menu is selected.
-     * The default implementation simply returns false to have the normal
-     * processing happen (calling the item's Runnable or sending a message to
-     * its Handler as appropriate).  You can use this method for any items
-     * for which you would like to do processing without those other
-     * facilities.
-     * <p/>
-     * <p>Derived classes should call through to the base class for it to
-     * perform the default menu handling.
-     *
-     * @param item The menu item that was selected.
-     * @return boolean Return false to allow normal menu processing to
-     * proceed, true to consume it here.
-     * @see #onCreateOptionsMenu
-     */
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if(item.getTitle().equals("Refresh")){
-            new WorkflowLoader(getActivity(), mListView, swipeRefreshLayout).execute();
-//            getActivity().getLoaderManager().restartLoader(0, null, this).forceLoad();
+            new WorkflowLoader(getActivity(),swipeRefreshLayout).execute();
             return true;
         }
         return super.onOptionsItemSelected(item);
@@ -251,11 +210,6 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         super.onDetach();
     }
 
-    /**
-     * The default content for this Fragment has a TextView that is shown when
-     * the list is empty. If you would like to change the text, call this method
-     * to supply the text it should use.
-     */
     public void setEmptyText(CharSequence emptyText) {
         View emptyView = mListView.getChildAt(2);
 
@@ -271,42 +225,17 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         Log.i("Count", ""+wk.getItemCount());
         for(int i=0; i< wk.getItemCount(); i++) {
             Workflow workflow = wk.getItem(i);
-            if(search.toLowerCase().contains(workflow.getWorkflow_author().toLowerCase())
-                    || search.contains(workflow.getWorkflow_title().toLowerCase())){
+            if( search.contains(workflow.getWorkflow_title().toLowerCase())){
                 ladapter.addWorkflow(workflow);
             }
         }
-        mListView.swapAdapter(ladapter, true);
-       /// Toast.makeText(getActivity(), "Query = " + search, Toast.LENGTH_SHORT).show();
-    }
-
-    @Override
-    public android.content.Loader<List<Workflow>> onCreateLoader(int id, Bundle args) {
-        swipeRefreshLayout.setRefreshing(true);
-        return null;
-        //return new WorkflowLoader(getActivity());
-    }
-
-    @Override
-    public void onLoadFinished(android.content.Loader<List<Workflow>> loader, List<Workflow> workflows) {
-        swipeRefreshLayout.setRefreshing(false);
-        Toast.makeText(getActivity(), "loader finished", Toast.LENGTH_SHORT).show();
-        workflowAdapter= new WorkflowAdapter(getActivity(), workflows);
-        WorkflowItemFragment.searchAdpater = workflowAdapter;
-        //mListView.swapAdapter(workflowAdapter, true);
-    }
-
-    @Override
-    public void onLoaderReset(android.content.Loader<List<Workflow>> listLoader) {
-        listLoader.reset();
-//        mListView.swapAdapter(null, true);
+        mListView.setAdapter(ladapter);
+//        mListView.swapAdapter(ladapter, true);
     }
 
     @Override
     public void onRefresh() {
-
-        new WorkflowLoader(getActivity(), mListView, swipeRefreshLayout).execute();
-        //getActivity().getLoaderManager().restartLoader(0, null, this).forceLoad();
+        new WorkflowLoader(getActivity(),swipeRefreshLayout).execute();
     }
 
     @Override
@@ -325,9 +254,9 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader
         ((Activity)cx).runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                WorkflowItemFragment.mListView.setAdapter(new WorkflowAdapter(cx, data));
+                WorkflowItemFragment.searchAdpater = new WorkflowAdapter(cx,data);
+                WorkflowItemFragment.mListView.setAdapter(WorkflowItemFragment.searchAdpater);
             }
         });
-
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
deleted file mode 100644
index 26893f7..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/utils/MyExperimentXmlParser.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package org.apache.taverna.mobile.utils;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
-
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
-
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import android.text.util.Linkify;
-
-import com.thebuzzmedia.sjxp.XMLParser;
-import com.thebuzzmedia.sjxp.rule.DefaultRule;
-
-import org.apache.taverna.mobile.tavernamobile.Workflow;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by Larry Akah on 6/23/15.
- */
-public class MyExperimentXmlParser {
-
-    //parse a single workflow from myexperiment
-    public static final class WorkflowItemRule extends DefaultRule{
-
-        /**
-         * Create a new rule with the given values.
-         *
-         * @param type           The type of the rule.
-         * @param locationPath   The location path of the element to target in the XML.
-         * @param attributeNames An optional list of attribute names to parse values for if the
-         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
-         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
-         *                                            <code>locationPath</code> is <code>null</code> or empty, if
-         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
-         *                                            <code>attributeNames</code> is <code>null</code> or empty or
-         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
-         *                                            <code>attributeNames</code> <strong>is not</strong>
-         *                                            <code>null</code> or empty.
-         */
-        public WorkflowItemRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
-            super(Type.CHARACTER, "http://www.myexperiment.org/workflows.xml", "workflow");
-        }
-
-        /**
-         * Default no-op implementation. Please override with your own logic.
-         *
-         * @param parser
-         * @param index
-         * @param value
-         * @param userObject
-         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedAttribute(com.thebuzzmedia.sjxp.XMLParser, int, String, Object)
-         */
-        @Override
-        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
-            switch(index){
-                case 0:
-                    break;
-                case 1:
-                    break;
-                case 2:
-                    break;
-                case 3:
-                    break;
-
-            }
-        }
-    }
-
-    /**
-     * parse workflows from myExperiment
-     */
-    public final static class WorkflowRule extends DefaultRule{
-        Workflow workflow;
-        List<Workflow>  wlist;
-        static String uri,version,desc;
-        static String url=uri=version=desc="";
-        static long id = 0;
-        /**
-         * Create a new rule with the given values.
-         *
-         * @param type           The type of the rule.
-         * @param locationPath   The location path of the element to target in the XML.
-         * @param attributeNames An optional list of attribute names to parse values for if the
-         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
-         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
-         *                                            <code>locationPath</code> is <code>null</code> or empty, if
-         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
-         *                                            <code>attributeNames</code> is <code>null</code> or empty or
-         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
-         *                                            <code>attributeNames</code> <strong>is not</strong>
-         *                                            <code>null</code> or empty.
-         */
-        public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
-            super(type, locationPath, attributeNames);
-            this.workflow = new Workflow();
-            wlist = new ArrayList<>();
-        }
-        //instantiated to parse xml data for a given workflow
-        public WorkflowRule(Type type, String path, int id, String attributenames){
-            super(type,path,attributenames);
-        }
-
-        @Override
-        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
-
-            switch(index){
-                case 0:
-                    System.out.println("Workflow Resource: "+value); url = value;
-                    desc = "To view workflow on the web, click "+value;
-//                    this.workflow.setWorkflow_web_url(value);
-//                    this.workflow.setWorkflow_description("To view workflow on the web, click "+value);
-                    break;
-                case 1:
-                    System.out.println("Workflow uri: "+value); //uri for detailed workflow
-                    uri = value;
-//                    this.workflow.setWorkflow_remote_url(value);
-                    break;
-                case 2:
-                    System.out.println("Workflow id: "+value);
-                    id = Integer.parseInt(value);
-//                    this.workflow.setId(Integer.parseInt(value));
-                    break;
-                case 3:
-                    System.out.println("Workflow version: "+value);
-                    version = value;
-               //     this.workflow.setWorkflow_versions(value);
-                    break;
-            }
-
-        }
-
-        @Override
-        public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
-            //add the title to the workflow and add it to the workflow list
-            this.workflow = new Workflow("", desc, id, url);
-            this.workflow.setWorkflow_title(text);
-            this.workflow.setWorkflow_author("");
-            wlist.add(this.workflow);
-            WorkflowLoader.loadedWorkflows.add(this.workflow);
-            System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
-            ((List<Workflow>)workflowListObject).add(this.workflow);
-            this.workflow = null;
-
-        }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
index 3071f88..3eb272f 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
@@ -23,29 +23,20 @@ package org.apache.taverna.mobile.utils;
  * specific language governing permissions and limitations
  * under the License.
  */
-import android.app.Activity;
 import android.content.Context;
 import android.os.AsyncTask;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.RecyclerView;
-import android.util.Base64;
 import android.util.Log;
 
-import com.thebuzzmedia.sjxp.XMLParser;
-import com.thebuzzmedia.sjxp.rule.DefaultRule;
 import com.thebuzzmedia.sjxp.rule.IRule;
 
-import org.apache.taverna.mobile.adapters.WorkflowAdapter;
-import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParser;
+import org.apache.taverna.mobile.utils.xmlparsers.WorkflowParser;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.ProtocolException;
@@ -61,7 +52,6 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
     private Context ctx;
     private List<Workflow> userWorkflows;
     public static List<Workflow> loadedWorkflows;
-    private RecyclerView recyclerView;
     private SwipeRefreshLayout refreshLayout;
 
   /*  public WorkflowLoader(Context context) {
@@ -71,9 +61,8 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
         userWorkflows = new ArrayList<Workflow>();
     }*/
 
-    public WorkflowLoader(Context context, RecyclerView rc, SwipeRefreshLayout sw) {
+    public WorkflowLoader(Context context, SwipeRefreshLayout sw) {
         this.ctx = context;
-        this.recyclerView = rc;
         this.refreshLayout = sw;
         this.userWorkflows = new ArrayList<Workflow>();
         loadedWorkflows = new ArrayList<Workflow>();
@@ -134,7 +123,7 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
         }*/
         IRule wkflowRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.ATTRIBUTE, "/workflows/workflow", "resource", "uri","id", "version");
         IRule workflowNameRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.CHARACTER, "/workflows/workflow");
-        WorkflowParser xmlParser = new WorkflowParser(new IRule[]{wkflowRule, workflowNameRule}, recyclerView, this.ctx);
+        WorkflowParser xmlParser = new WorkflowParser(new IRule[]{wkflowRule, workflowNameRule});
         try {
             URL workflowurl = new URL("http://www.myexperiment.org/workflows.xml");
             HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
@@ -146,7 +135,6 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
 
             InputStream dis = connection.getInputStream();
             xmlParser.parse(dis, this.userWorkflows);
-            Thread.sleep(4000);//4sec delay so that parsing completes
 
         }catch (MalformedURLException e) {
             e.printStackTrace();
@@ -154,10 +142,7 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
-        } catch (InterruptedException e) {
-            e.printStackTrace();
         }
-       // return WorkflowLoader.loadedWorkflows;
         return this.userWorkflows;
     }
 
@@ -200,83 +185,5 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
     protected void onPostExecute(Object o) {
         refreshLayout.setRefreshing(false);
         System.out.println("Workflow Count: "+this.userWorkflows.size());
-      //  recyclerView.setAdapter(new WorkflowAdapter(this.ctx, (List<Workflow>) o));
-    }
-
-    class WorkflowRule extends DefaultRule {
-        Workflow workflow;
-
-        /**
-         * Create a new rule with the given values.
-         *
-         * @param type           The type of the rule.
-         * @param locationPath   The location path of the element to target in the XML.
-         * @param attributeNames An optional list of attribute names to parse values for if the
-         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
-         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
-         *                                            <code>locationPath</code> is <code>null</code> or empty, if
-         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
-         *                                            <code>attributeNames</code> is <code>null</code> or empty or
-         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
-         *                                            <code>attributeNames</code> <strong>is not</strong>
-         *                                            <code>null</code> or empty.
-         */
-        public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
-            super(type, locationPath, attributeNames);
-            workflow = new Workflow();
-        }
-        //instantiated to parse xml data for a given workflow
-        public WorkflowRule(Type type, String path, int id, String attributenames){
-            super(type,path,attributenames);
-        }
-
-        /**
-         * Default no-op implementation. Please override with your own logic.
-         *
-         * @param parser
-         * @param index
-         * @param value
-         * @param userObject
-         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedAttribute(com.thebuzzmedia.sjxp.XMLParser, int, String, Object)
-         */
-        @Override
-        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
-            switch(index){
-                case 0:
-                    System.out.println("Workflow Resource: "+value);
-                    workflow.setWorkflow_web_url(value);
-                    workflow.setWorkflow_description("To view workflow on the web, click "+value);
-                    break;
-                case 1:
-                    System.out.println("Workflow uri: "+value); //uri for detailed workflow
-                    workflow.setWorkflow_remote_url(value);
-                    break;
-                case 2:
-                    System.out.println("Workflow id: "+value);
-                    workflow.setId(Integer.parseInt(value));
-                    break;
-                case 3:
-                    System.out.println("Workflow version: "+value);
-                    workflow.setWorkflow_versions(value);
-                    break;
-            }
-        }
-
-        /**
-         * Default no-op implementation. Please override with your own logic.
-         *
-         * @param parser
-         * @param text
-         * @param workflowListObject
-         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedCharacters(com.thebuzzmedia.sjxp.XMLParser, String, Object)
-         */
-        @Override
-        public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
-            //add the title to the workflow and add it to the workflow list
-            workflow.setWorkflow_title(text);
-            workflow.setWorkflow_author("");
-            workflow = new Workflow();
-            ((List<Workflow>)workflowListObject).add(workflow);
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
deleted file mode 100644
index cc74955..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowParser.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.taverna.mobile.utils;
-
-import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-
-import com.thebuzzmedia.sjxp.XMLParser;
-import com.thebuzzmedia.sjxp.XMLParserException;
-import com.thebuzzmedia.sjxp.rule.IRule;
-
-import org.apache.taverna.mobile.adapters.WorkflowAdapter;
-import org.apache.taverna.mobile.fragments.WorkflowItemFragment;
-import org.apache.taverna.mobile.tavernamobile.Workflow;
-
-import java.util.List;
-
-/**
- * Workflow end document class for detecting when the complete list of workflows have been read out
- * Created by Larry Akah on 6/24/15.
- */
-public class WorkflowParser extends XMLParser implements WorkflowDataCallback{
-
-    private RecyclerView recyclerView;
-    private Context mcontext;
-
-    public WorkflowParser(IRule[] rules) throws IllegalArgumentException, XMLParserException {
-        super(rules);
-    }
-
-    public WorkflowParser(IRule[] rules, RecyclerView recyclerv, Context c){
-        super(rules);
-        this.recyclerView = recyclerv;
-        this.mcontext = c;
-    }
-
-    @Override
-    protected void doEndDocument(Object userObject) {
-  //      super.doEndDocument(userObject);
-    //bind workflows to the adapter;
-//        onWorkflowDataReady((List<Workflow>) userObject);
-        WorkflowItemFragment.updateWorkflowUI((List<Workflow>) userObject);
-    }
-
-    @Override
-    public void onWorkflowDataReady(List<Workflow> data) {
-     //   this.recyclerView.setAdapter(new WorkflowAdapter(mcontext, data));
-        for(Workflow w:data){
-            System.out.println(w.getId());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
new file mode 100644
index 0000000..69791d5
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
@@ -0,0 +1,146 @@
+package org.apache.taverna.mobile.utils.xmlparsers;
+/**
+ * Apache Taverna Mobile
+ * Copyright 2015 The Apache Software Foundation
+
+ * This product includes software developed at
+ * The Apache Software Foundation (http://www.apache.org/).
+
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.rule.DefaultRule;
+
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.WorkflowLoader;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Larry Akah on 6/23/15.
+ */
+public class MyExperimentXmlParser {
+
+    //parse a single workflow from myexperiment
+    public static final class WorkflowItemRule extends DefaultRule{
+
+        /**
+         * Create a new rule with the given values.
+         *
+         * @param type           The type of the rule.
+         * @param locationPath   The location path of the element to target in the XML.
+         * @param attributeNames An optional list of attribute names to parse values for if the
+         *                       type of this rule is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE}.
+         * @throws IllegalArgumentException if <code>type</code> is <code>null</code>, if
+         *                                            <code>locationPath</code> is <code>null</code> or empty, if
+         *                                            <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#ATTRIBUTE} and
+         *                                            <code>attributeNames</code> is <code>null</code> or empty or
+         *                                            if <code>type</code> is {@link com.thebuzzmedia.sjxp.rule.IRule.Type#CHARACTER} and
+         *                                            <code>attributeNames</code> <strong>is not</strong>
+         *                                            <code>null</code> or empty.
+         */
+        public WorkflowItemRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(Type.CHARACTER, "http://www.myexperiment.org/workflows.xml", "workflow");
+        }
+
+        /**
+         * Default no-op implementation. Please override with your own logic.
+         *
+         * @param parser
+         * @param index
+         * @param value
+         * @param userObject
+         * @see com.thebuzzmedia.sjxp.rule.IRule#handleParsedAttribute(com.thebuzzmedia.sjxp.XMLParser, int, String, Object)
+         */
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+            switch(index){
+                case 0:
+                    break;
+                case 1:
+                    break;
+                case 2:
+                    break;
+                case 3:
+                    break;
+
+            }
+        }
+    }
+
+    /**
+     * parse workflows from myExperiment
+     */
+    public final static class WorkflowRule extends DefaultRule{
+        Workflow workflow;
+        List<Workflow>  wlist;
+        static String uri,version,desc;
+        static String url=uri=version=desc="";
+        static long id = 0;
+
+        public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(type, locationPath, attributeNames);
+            this.workflow = new Workflow();
+            wlist = new ArrayList<>();
+        }
+        //instantiated to parse xml data for a given workflow
+        public WorkflowRule(Type type, String path, int id, String attributenames){
+            super(type,path,attributenames);
+        }
+
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+
+            switch(index){
+                case 0:
+                    System.out.println("Workflow Resource: "+value); url = value;
+                    desc = "To view workflow on the web, click "+value;
+                    break;
+                case 1:
+                    System.out.println("Workflow uri: "+value);
+                    uri = value;
+                    break;
+                case 2:
+                    System.out.println("Workflow id: "+value);
+                    id = Integer.parseInt(value);
+                    break;
+                case 3:
+                    System.out.println("Workflow version: "+value);
+                    version = value;
+                    break;
+            }
+        }
+
+        @Override
+        public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
+            //add the  workflow to the workflow list
+            this.workflow = new Workflow("", desc, id, url);
+            this.workflow.setWorkflow_title(text);
+            this.workflow.setWorkflow_author("");
+            wlist.add(this.workflow);
+            WorkflowLoader.loadedWorkflows.add(this.workflow);
+            System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
+            ((List<Workflow>)workflowListObject).add(this.workflow);
+            this.workflow = null;
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowParser.java
new file mode 100644
index 0000000..f349805
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowParser.java
@@ -0,0 +1,35 @@
+package org.apache.taverna.mobile.utils.xmlparsers;
+
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.XMLParserException;
+import com.thebuzzmedia.sjxp.rule.IRule;
+
+import org.apache.taverna.mobile.fragments.WorkflowItemFragment;
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.WorkflowDataCallback;
+
+import java.util.List;
+
+/**
+ * Workflow end document class for detecting when the complete list of workflows have been read out
+ * Created by Larry Akah on 6/24/15.
+ */
+
+public class WorkflowParser extends XMLParser implements WorkflowDataCallback {
+
+    public WorkflowParser(IRule[] rules) throws IllegalArgumentException, XMLParserException {
+        super(rules);
+    }
+
+    @Override
+    protected void doEndDocument(Object userObject) {
+        WorkflowItemFragment.updateWorkflowUI((List<Workflow>) userObject);
+    }
+
+    @Override
+    public void onWorkflowDataReady(List<Workflow> data) {
+        for(Workflow w:data){
+            System.out.println(w.getId());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1b07fee5/app/src/main/res/layout/workflow_item_layout.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/workflow_item_layout.xml b/app/src/main/res/layout/workflow_item_layout.xml
index 4324bcf..da42247 100644
--- a/app/src/main/res/layout/workflow_item_layout.xml
+++ b/app/src/main/res/layout/workflow_item_layout.xml
@@ -135,7 +135,8 @@ limitations under the License.
                 style="android:buttonBarButtonStyle"
                 android:text="@string/workflow_read"
                 android:background="#33b5e5"
-                android:drawableLeft="@android:drawable/ic_menu_view" />
+                android:drawableLeft="@android:drawable/ic_menu_view"
+                android:layout_marginLeft="3dp" />
             <Button
                 android:id="@+id/button_download_workflow"
                 android:layout_width="wrap_content"
@@ -147,7 +148,8 @@ limitations under the License.
                 android:text="@string/workflow_download"
                 android:drawableLeft="@drawable/download"
                 android:layout_marginLeft="2dp"
-                android:layout_marginRight="2dp" />
+                android:layout_marginRight="2dp"
+                android:visibility="gone" />
             <Button
                 android:id="@+id/button_mark_workflow"
                 android:layout_width="wrap_content"
@@ -157,7 +159,8 @@ limitations under the License.
                 android:background="#33b5e5"
                 android:text="@string/workflow_mark"
                 android:drawableLeft="@android:drawable/btn_star_big_off"
-                style="android:buttonBarButtonStyle"/>
+                style="android:buttonBarButtonStyle"
+                android:layout_marginLeft="3dp" />
             </LinearLayout>
     </LinearLayout>
 



[4/6] incubator-taverna-mobile git commit: integrated myexperiment API for reading workflows

Posted by ia...@apache.org.
integrated myexperiment API for reading workflows


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

Branch: refs/heads/master
Commit: 045fab50bee96cde76b505f3316f4099e405781d
Parents: a08bc1d
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jun 24 17:17:41 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jun 24 17:17:41 2015 +0100

----------------------------------------------------------------------
 app/app.iml                                     |   2 +
 .../DashboardMainActivity$MyAdapter.class       | Bin 1983 -> 1983 bytes
 .../activities/DashboardMainActivity.class      | Bin 8789 -> 8502 bytes
 .../LoginActivity$LoginFragment$LoginTask.class | Bin 5533 -> 4132 bytes
 .../LoginActivity$LoginFragment.class           | Bin 3446 -> 3446 bytes
 .../mobile/activities/LoginActivity.class       | Bin 1806 -> 1806 bytes
 .../adapters/FavoriteWorkflowAdapter.class      | Bin 2937 -> 2827 bytes
 .../mobile/adapters/WorkflowAdapter$1.class     | Bin 1461 -> 1461 bytes
 .../mobile/adapters/WorkflowAdapter$2.class     | Bin 2670 -> 2514 bytes
 .../mobile/adapters/WorkflowAdapter$3.class     | Bin 1418 -> 1581 bytes
 .../mobile/adapters/WorkflowAdapter$4.class     | Bin 0 -> 1418 bytes
 .../adapters/WorkflowAdapter$ViewHolder.class   | Bin 1506 -> 1506 bytes
 .../mobile/adapters/WorkflowAdapter.class       | Bin 6594 -> 7597 bytes
 .../mobile/fragments/FavoriteFragment.class     | Bin 5106 -> 5346 bytes
 .../fragments/WorkflowItemFragment$1.class      | Bin 0 -> 1109 bytes
 .../mobile/fragments/WorkflowItemFragment.class | Bin 9930 -> 11046 bytes
 .../WorkflowdetailFragment.class                | Bin 8969 -> 8969 bytes
 .../TavernaPlayerAPI$Authenticator.class        | Bin 926 -> 926 bytes
 .../mobile/tavernamobile/TavernaPlayerAPI.class | Bin 2240 -> 2240 bytes
 .../taverna/mobile/tavernamobile/User.class     | Bin 0 -> 2557 bytes
 .../Workflow$workflow_input_type.class          | Bin 1386 -> 1386 bytes
 .../taverna/mobile/tavernamobile/Workflow.class | Bin 5312 -> 8023 bytes
 .../tavernamobile/WorkflowComponent.class       | Bin 360 -> 360 bytes
 .../taverna/mobile/utils/DB_Utility.class       | Bin 1363 -> 1363 bytes
 .../apache/taverna/mobile/utils/HttpUtil.class  | Bin 0 -> 3921 bytes
 ...MyExperimentXmlParser$WorkflowItemRule.class | Bin 0 -> 1410 bytes
 .../MyExperimentXmlParser$WorkflowRule.class    | Bin 0 -> 3460 bytes
 .../mobile/utils/MyExperimentXmlParser.class    | Bin 0 -> 577 bytes
 .../mobile/utils/WorkflowDataCallback.class     | Bin 0 -> 299 bytes
 .../utils/WorkflowLoader$WorkflowRule.class     | Bin 0 -> 3198 bytes
 .../taverna/mobile/utils/WorkflowLoader.class   | Bin 5583 -> 4653 bytes
 .../mobile/utils/WorkflowLoaderMain.class       | Bin 0 -> 785 bytes
 .../taverna/mobile/utils/WorkflowParser.class   | Bin 0 -> 2072 bytes
 app/build/intermediates/dex/debug/classes.dex   | Bin 2162936 -> 2013576 bytes
 .../incremental/mergeAssets/debug/merger.xml    |   2 +-
 .../incremental/mergeResources/debug/merger.xml |   4 +-
 .../manifests/full/debug/AndroidManifest.xml    |   3 +-
 ...2dbcae8b037134953fc4e3eb3645a66e2931661a.jar | Bin 9649 -> 9649 bytes
 ...be9904e841d6b70d2ec429ffa7d3732bb544b8ab.jar | Bin 315406 -> 315406 bytes
 ...cb13d360204b697dbd760e7e80b4357b182d723b.jar | Bin 211882 -> 211882 bytes
 ...ebdf15783ac01747301cff830c2f3174571cec96.jar | Bin 97652 -> 97652 bytes
 ...ab39a2263976cb0fd278360818acc6d173a8d8e0.jar | Bin 76229 -> 76229 bytes
 ...0337a02c2c7a819ce7d4f1cb9e7af39ace3fc996.jar | Bin 0 -> 130265 bytes
 ...0d4fc236477cdd67ed93ea2414c2be9703cf2dce.jar | Bin 0 -> 8614 bytes
 ...2f3cb2807dead79ef0327bdd9269035b879fdd27.jar | Bin 1560 -> 1560 bytes
 .../debug/layout/fragment_workflow_about.xml    |   2 -
 .../debug/layout/fragment_workflow_licence.xml  |   1 -
 .../res/debug/menu/dashboard_main.xml           |   2 +-
 .../resources/resources-debug-androidTest.ap_   | Bin 776 -> 776 bytes
 .../intermediates/resources/resources-debug.ap_ | Bin 729303 -> 729244 bytes
 app/build/outputs/apk/app-debug-unaligned.apk   | Bin 1462942 -> 1597250 bytes
 app/build/outputs/apk/app-debug.apk             | Bin 1463342 -> 1597653 bytes
 .../logs/manifest-merger-debug-report.txt       |  50 +++---
 app/libs/simple-xml-2.7.1.jar                   | Bin 0 -> 427590 bytes
 app/libs/sjxp-2.2.jar                           | Bin 0 -> 24390 bytes
 app/src/main/AndroidManifest.xml                |   3 +-
 .../mobile/activities/LoginActivity.java        |  83 ++++-----
 .../mobile/adapters/WorkflowAdapter.java        |  26 ++-
 .../mobile/fragments/FavoriteFragment.java      | 143 +++++++++++-----
 .../mobile/fragments/WorkflowItemFragment.java  | 122 +++++++++-----
 .../workflowdetails/WorkflowdetailFragment.java |   6 +-
 .../mobile/tavernamobile/TavernaPlayerAPI.java  |  25 ++-
 .../taverna/mobile/tavernamobile/User.java      | 129 ++++++++++++++
 .../taverna/mobile/tavernamobile/Workflow.java  | 110 +++++++++++-
 .../mobile/tavernamobile/WorkflowComponent.java |   3 +-
 .../apache/taverna/mobile/utils/DB_Utility.java |  23 +++
 .../apache/taverna/mobile/utils/HttpUtil.java   | 103 ++++++++++++
 .../mobile/utils/MyExperimentXmlParser.java     | 168 +++++++++++++++++++
 .../mobile/utils/WorkflowDataCallback.java      |  14 ++
 .../taverna/mobile/utils/WorkflowLoader.java    | 160 ++++++++++++++++--
 .../mobile/utils/WorkflowLoaderMain.java        |  44 +++++
 .../taverna/mobile/utils/WorkflowParser.java    |  50 ++++++
 .../main/res/layout/fragment_workflow_about.xml |   1 -
 .../res/layout/fragment_workflow_licence.xml    |   1 -
 build/intermediates/dex-cache/cache.xml         |  38 +++--
 build/intermediates/model_data.bin              | Bin 106687 -> 116572 bytes
 settings.gradle                                 |   2 +-
 simple-xml-2.7.1/simple-xml-2.7.1.iml           |  16 ++
 simple-xml-2.7.1/simple-xml-2.7.1.jar           | Bin 0 -> 427590 bytes
 79 files changed, 1126 insertions(+), 210 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/app.iml
----------------------------------------------------------------------
diff --git a/app/app.iml b/app/app.iml
index fc346c8..2b7daeb 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -88,8 +88,10 @@
     <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" exported="" name="appcompat-v7-22.0.0" level="project" />
+    <orderEntry type="library" exported="" name="sjxp-2.2" level="project" />
     <orderEntry type="library" exported="" name="recyclerview-v7-22.0.0" level="project" />
     <orderEntry type="library" exported="" name="support-v4-22.0.0" level="project" />
+    <orderEntry type="library" exported="" name="simple-xml-2.7.1" level="project" />
     <orderEntry type="library" exported="" name="cardview-v7-22.0.0" level="project" />
     <orderEntry type="library" exported="" name="support-annotations-22.0.0" level="project" />
   </component>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity$MyAdapter.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity$MyAdapter.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity$MyAdapter.class
index 5babf29..24490eb 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity$MyAdapter.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity$MyAdapter.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class
index b7b268c..54e646b 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/DashboardMainActivity.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment$LoginTask.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment$LoginTask.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment$LoginTask.class
index cbb8586..cc8e4de 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment$LoginTask.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment$LoginTask.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment.class
index 8d7b8f0..e3085f8 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity$LoginFragment.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity.class
index 857b359..3d2cd7f 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/activities/LoginActivity.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.class
index c3cfafc..2e72935 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$1.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$1.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$1.class
index a3d8c66..dbe2ed6 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$1.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$1.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$2.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$2.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$2.class
index c1999aa..11f4bb3 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$2.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$2.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$3.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$3.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$3.class
index 9e52c3c..34db0ed 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$3.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$3.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$4.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$4.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$4.class
new file mode 100644
index 0000000..dd017fd
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$4.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$ViewHolder.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$ViewHolder.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$ViewHolder.class
index 6a44441..902712e 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$ViewHolder.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter$ViewHolder.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter.class
index eee226f..8d19fbc 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/adapters/WorkflowAdapter.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/FavoriteFragment.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/FavoriteFragment.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/FavoriteFragment.class
index f849ed3..f99ce51 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/FavoriteFragment.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/FavoriteFragment.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment$1.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment$1.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment$1.class
new file mode 100644
index 0000000..72cfcca
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment$1.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class
index 9a764bc..11f130b 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/WorkflowItemFragment.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.class
index 1395f30..43e6eb0 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class
index b18aecc..f7cf067 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI$Authenticator.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class
index 8daef05..8463be3 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/User.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/User.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/User.class
new file mode 100644
index 0000000..8da2007
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/User.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow$workflow_input_type.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow$workflow_input_type.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow$workflow_input_type.class
index 79f7135..b121e9b 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow$workflow_input_type.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow$workflow_input_type.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow.class
index ebc26c6..539a616 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/Workflow.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.class
index dcf8bd1..517b543 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/tavernamobile/WorkflowComponent.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/DB_Utility.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/DB_Utility.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/DB_Utility.class
index 7f3ea8a..c17d7d4 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/DB_Utility.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/DB_Utility.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/HttpUtil.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/HttpUtil.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/HttpUtil.class
new file mode 100644
index 0000000..2e58df4
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/HttpUtil.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowItemRule.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowItemRule.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowItemRule.class
new file mode 100644
index 0000000..162dd47
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowItemRule.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowRule.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowRule.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowRule.class
new file mode 100644
index 0000000..4300cfa
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser$WorkflowRule.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser.class
new file mode 100644
index 0000000..ac1d608
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/MyExperimentXmlParser.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowDataCallback.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowDataCallback.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowDataCallback.class
new file mode 100644
index 0000000..4d751ec
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowDataCallback.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader$WorkflowRule.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader$WorkflowRule.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader$WorkflowRule.class
new file mode 100644
index 0000000..4e1ef5d
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader$WorkflowRule.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class
index 456d03a..a7b3310 100644
Binary files a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoader.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoaderMain.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoaderMain.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoaderMain.class
new file mode 100644
index 0000000..28b4d4d
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowLoaderMain.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowParser.class
----------------------------------------------------------------------
diff --git a/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowParser.class b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowParser.class
new file mode 100644
index 0000000..0593012
Binary files /dev/null and b/app/build/intermediates/classes/debug/org/apache/taverna/mobile/utils/WorkflowParser.class differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/dex/debug/classes.dex
----------------------------------------------------------------------
diff --git a/app/build/intermediates/dex/debug/classes.dex b/app/build/intermediates/dex/debug/classes.dex
index 22c92d1..8daf152 100644
Binary files a/app/build/intermediates/dex/debug/classes.dex and b/app/build/intermediates/dex/debug/classes.dex differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/045fab50/app/build/intermediates/incremental/mergeAssets/debug/merger.xml
----------------------------------------------------------------------
diff --git a/app/build/intermediates/incremental/mergeAssets/debug/merger.xml b/app/build/intermediates/incremental/mergeAssets/debug/merger.xml
index 04b375c..df7e9d0 100644
--- a/app/build/intermediates/incremental/mergeAssets/debug/merger.xml
+++ b/app/build/intermediates/incremental/mergeAssets/debug/merger.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8"?>
-<merger version="3"><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/assets"/></dataSet><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.0.0/assets"/></dataSet><dataSet config="main"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/assets"/></dataSet><dataSet config="debug"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/debug/assets"/></dataSet></merger>
\ No newline at end of file
+<merger version="3"><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/support-v4/22.0.0/assets"/></dataSet><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.0.0/assets"/></dataSet><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/cardview-v7/22.0.0/assets"/></dataSet><dataSet config="22.0.0"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.0.0/assets"/></dataSet><dataSet config="main"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/main/assets"/></dataSet><dataSet config="debug"><source path="/root/Desktop/AndroidLab/TavernaMobile2/app/src/debug/assets"/></dataSet></merger>
\ No newline at end of file