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 &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