http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 f096eff..16599f0 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 @@ -28,6 +28,7 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.widget.RecyclerView; import android.text.Html; @@ -78,14 +79,27 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo public void onBindViewHolder(final ViewHolder viewHolder, int i) { final int j = i; //position of workflow item that has workflow data final Context c = this.context; + String description = workflow.get(i).getWorkflow_description(); + if(description.length() > 80) description = description.substring(0, 79); viewHolder.author_name.setText(workflow.get(i).getWorkflow_author()); viewHolder.wk_title.setText(workflow.get(i).getWorkflow_title()); - viewHolder.wk_modified.append(workflow.get(i).getWorkflow_datemodified()); - viewHolder.wk_created.append(workflow.get(i).getWorkflow_datecreated()); - viewHolder.wk_description.setText( workflow.get(i).getWorkflow_description()); + // viewHolder.wk_modified.append(workflow.get(i).getWorkflow_datemodified()); + // viewHolder.wk_created.append(workflow.get(i).getWorkflow_datecreated()); + viewHolder.wk_description.setText( description+" ... "); //viewHolder.author_profile.setImageBitmap(workflow[i].getWorkflow_author_bitmap()); - Intent it = new Intent(); - viewHolder.btn_view_workflow.setOnClickListener(this); + final Intent it = new Intent(); + it.setClass(context, WorkflowDetailActivity.class); + it.putExtra("workflowid", workflow.get(i).getId()); + viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +// Intent detailsIntent = new Intent(context, WorkflowDetailActivity.class); + + //detailsIntent.putExtras(null); + context.startActivity(it); + ((Activity) context).overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.fade_out); + } + }); viewHolder.btn_download_workflow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -136,20 +150,14 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo @Override public void onClick(View view) { - switch(view.getId()){ - case R.id.button_view_workflow: - context.startActivity(new Intent(context, WorkflowDetailActivity.class)); - ((Activity) context).overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.fade_out); - break; - case R.id.button_mark_workflow: - break; - + 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_created,wk_modified,wk_description; + public final TextView author_name, wk_title,wk_showmore,wk_description; public final Button btn_view_workflow; public final Button btn_download_workflow; public final Button btn_mark_workflow; @@ -163,8 +171,8 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo author_name = (TextView) v.findViewById(R.id.workflow_author); wk_title = (TextView) v.findViewById(R.id.workflow_title); wk_showmore = (TextView) v.findViewById(R.id.show_more); - wk_created = (TextView) v.findViewById(R.id.workflow_datecreated); - wk_modified = (TextView) v.findViewById(R.id.workflow_dateupdated); + // wk_created = (TextView) v.findViewById(R.id.workflow_datecreated); + // wk_modified = (TextView) v.findViewById(R.id.workflow_dateupdated); wk_description = (TextView) v.findViewById(R.id.workflow_brief_description); //cache buttons
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 d31774c..ddb2d49 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 @@ -41,6 +41,7 @@ import android.view.Window; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.AdapterView; +import android.widget.ProgressBar; import android.widget.TextView; import org.apache.taverna.mobile.R; @@ -68,6 +69,7 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private Animation in; + private ProgressBar wpb; //progressbar used to indicate the state of the workflow loaders // TODO: Rename and change types of parameters private String mParam1; @@ -120,17 +122,17 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader mlist.add(new Workflow(getActivity(), null)); mlist.add(new Workflow(getActivity(), null)); */ workflowAdapter = new WorkflowAdapter(getActivity(), mlist ); - getActivity().setProgressBarIndeterminateVisibility(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_item, container, false); - + wpb = (ProgressBar) view.findViewById(R.id.workflow_pb); // Set the adapter mListView = (RecyclerView) view.findViewById(android.R.id.list); mListView.setHasFixedSize(true); mListView.setLayoutManager(new LinearLayoutManager(getActivity())); + getActivity().getLoaderManager().initLoader(0,null,this); if(workflowAdapter.getItemCount() == 0){ setEmptyText("No Workflows available"); mListView.swapAdapter(workflowAdapter, false); @@ -147,7 +149,6 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader try { mListener = (OnWorkflowSelectedListener) activity; ((DashboardMainActivity) activity).onSectionAttached(1); - getActivity().getLoaderManager().initLoader(0,null,this); } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); @@ -197,7 +198,7 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getTitle().equals("Refresh")){ - getActivity().setProgressBarIndeterminateVisibility(true); + getActivity().getLoaderManager().restartLoader(0, null, this); return true; } @@ -232,19 +233,22 @@ public class WorkflowItemFragment extends Fragment implements android.app.Loader */ @Override public android.content.Loader<List<Workflow>> onCreateLoader(int id, Bundle args) { - //getActivity().setProgressBarIndeterminateVisibility(true); + // if (null != wpb) + wpb.setVisibility(View.VISIBLE); return new WorkflowLoader(getActivity()); } @Override public void onLoadFinished(android.content.Loader<List<Workflow>> loader, List<Workflow> workflows) { // getActivity().setProgressBarIndeterminateVisibility(false); + // if (null != wpb) + wpb.setVisibility(View.GONE); loader.stopLoading(); workflowAdapter = new WorkflowAdapter(getActivity(), workflows); if(workflows.size() > 0) mListView.swapAdapter(workflowAdapter, true); else { -// mListView.setVisibility(View.GONE); + mListView.setVisibility(View.GONE); // setEmptyText("No views available"); } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 4179988..5c6f7fb 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 @@ -36,6 +36,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.Toast; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.activities.DashboardMainActivity; @@ -94,7 +95,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList try { dmgr.downloadWorkflow(new File(PreferenceManager.getDefaultSharedPreferences(getActivity()).getString( DashboardMainActivity.APP_DIRECTORY_NAME, "/")), - "http://www.iceteck.com/volley.jar"); + ""); } catch (Exception e) { e.printStackTrace(); } @@ -105,4 +106,19 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList break; } } + + /** + * 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(); + if (getActivity().getIntent() != null) { + long id = getActivity().getIntent().getLongExtra("workflowid", 0); + Toast.makeText(getActivity(), "Workflow id ="+id, Toast.LENGTH_LONG).show(); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 e4d73aa..1329566 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 @@ -7,8 +7,10 @@ import java.net.PasswordAuthentication; * Created by root on 6/13/15. */ public class TavernaPlayerAPI { - public static final String PLAYER_URL = "http://heater.cs.man.ac.uk:3000/"; - public static final String SERVER_URL = "http://heater.cs.man.ac.uk:8090/taverna-2.5.4/"; + public static final String PLAYER_BASE_URL = "http://heater.cs.man.ac.uk:3000/"; + public static final String SERVER_BASE_URL = "http://heater.cs.man.ac.uk:8090/taverna-2.5.4/"; + public static final String PLAYER_WORKFLOW_URL = PLAYER_BASE_URL+"workflows/"; + public static final String PLAYER_RUN_URL = PLAYER_BASE_URL+"runs/"; public TavernaPlayerAPI() { } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 f6758ff..fb791c1 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 @@ -135,3 +135,46 @@ public class Workflow { this.workflowComponent = workflowComponent; } } +/* 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 +public class Workflow implements Parcelable { + private int mData; + + */ +/* everything below here is for implementing Parcelable *//* + + + // 99.9% of the time you can just ignore this + public int describeContents() { + return 0; + } + + // write your object's data to the passed-in Parcel + public void writeToParcel(Parcel out, int flags) { + out.writeInt(mData); + } + +// this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods +public static final Parcelable.Creator<Workflow> CREATOR = new Parcelable.Creator<Workflow>() { + public Workflow createFromParcel(Parcel in) { + return new Workflow(in); + } + + public Workflow[] newArray(int size) { + return new Workflow[size]; + } +}; + + // example constructor that takes a Parcel and gives you an object populated with it's values + private Workflow(Parcel in) { + mData = in.readInt(); + } +} + +//application in intents. Sending object to another activity + Intent it = new Intent(); + it.putExtra("parsedWorkflow", myWorkflow); +//retrieve object + Workflow mWorkflow = (Workflow) getIntent().getParcelableExtra("parsedWorkflow"); + + */ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDownloadManager.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDownloadManager.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDownloadManager.java index 1f244fb..694e0e8 100644 --- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDownloadManager.java +++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowDownloadManager.java @@ -65,7 +65,7 @@ public class WorkflowDownloadManager { DownloadManager.Query query = new DownloadManager.Query(); query.setFilterByStatus(DownloadManager.STATUS_PAUSED| DownloadManager.STATUS_PENDING| - DownloadManager.STATUS_RUNNING| + DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_FAILED| DownloadManager.STATUS_SUCCESSFUL); Cursor cur = this.downloadManager.query(query); int col = cur.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME); @@ -73,7 +73,7 @@ public class WorkflowDownloadManager { for(cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) { this.isDownloading = this.isDownloading || (destination.getName() == cur.getString(col)); } - cur.close(); + // cur.close(); if (!this.isDownloading) { Uri source = Uri.parse(sourceurl); //extract the file name from the source url and append it to the workflow storage directory to be used to download the file into. @@ -88,14 +88,22 @@ public class WorkflowDownloadManager { request.allowScanningByMediaScanner(); long id = downloadManager.enqueue(request); - if(id == DownloadManager.STATUS_RUNNING ){ - //send notification to user about running download - sendNotification(this.context.getResources().getString(R.string.downloadprogress)); - }else{ - sendNotification(this.context.getResources().getString(R.string.downloaderror)); + int status = cur.getInt(cur.getColumnIndex(DownloadManager.COLUMN_STATUS)); + switch (status) { + case DownloadManager.STATUS_SUCCESSFUL: + sendNotification(this.context.getResources().getString(R.string.downloadcomplete)); + break; + case DownloadManager.STATUS_FAILED: + sendNotification(this.context.getResources().getString(R.string.downloaderror)); + break; + case DownloadManager.STATUS_RUNNING: + sendNotification(this.context.getResources().getString(R.string.downloadprogress)); + break; + case DownloadManager.ERROR_FILE_ALREADY_EXISTS: + sendNotification(this.context.getResources().getString(R.string.downloadduplicate)); + break; } - }else{ - sendNotification(this.context.getResources().getString(R.string.downloadduplicate)); + cur.close(); } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 e1ec692..e48b337 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 @@ -26,6 +26,7 @@ package org.apache.taverna.mobile.utils; import android.app.Activity; import android.content.AsyncTaskLoader; import android.content.Context; +import android.support.v7.widget.RecyclerView; import android.util.Base64; import android.util.Log; @@ -67,7 +68,7 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> { //for password protected urls use the user's credentials Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna","taverna")); - URL workflowurl = new URL(TavernaPlayerAPI.PLAYER_URL+"workflows"); + URL workflowurl = new URL(TavernaPlayerAPI.PLAYER_WORKFLOW_URL); HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); String userpass = "icep...@gmail.com" + ":" + "creationfox"; String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(),Base64.DEFAULT); @@ -101,7 +102,7 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> { String description = js.getString("description"); String url = js.getString("url"); long id = js.getLong("id"); - userWorkflows.add(new Workflow(ctx,title,"Larry",description,id,url)); + userWorkflows.add(new Workflow(ctx,title," ",description,id,url)); } } catch (MalformedURLException e) { @@ -147,4 +148,5 @@ public class WorkflowLoader extends AsyncTaskLoader<List<Workflow>> { protected void onStopLoading() { cancelLoad(); } + } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/res/layout/activity_flash_screen.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/activity_flash_screen.xml b/app/src/main/res/layout/activity_flash_screen.xml index e1dd5e4..8acce99 100644 --- a/app/src/main/res/layout/activity_flash_screen.xml +++ b/app/src/main/res/layout/activity_flash_screen.xml @@ -66,4 +66,15 @@ limitations under the License. android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="35dp" /> + + <ProgressBar + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/progressBar" + android:layout_above="@+id/imageView" + android:layout_centerHorizontal="true" + android:indeterminate="true" + android:indeterminateBehavior="repeat" + android:indeterminateOnly="true" + android:indeterminateTintMode="src_over" /> </RelativeLayout> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/res/layout/fragment_item_grid.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_item_grid.xml b/app/src/main/res/layout/fragment_item_grid.xml index 4266856..82d8c0d 100644 --- a/app/src/main/res/layout/fragment_item_grid.xml +++ b/app/src/main/res/layout/fragment_item_grid.xml @@ -14,7 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" android:layout_height="match_parent" tools:context="org.apache.taverna.mobile.fragments.WorkflowItemFragment"> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/res/layout/fragment_item_list.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_item_list.xml b/app/src/main/res/layout/fragment_item_list.xml index 8bc7719..522164c 100644 --- a/app/src/main/res/layout/fragment_item_list.xml +++ b/app/src/main/res/layout/fragment_item_list.xml @@ -14,9 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" android:layout_height="match_parent" tools:context="org.apache.taverna.mobile.fragments.WorkflowItemFragment"> + <ProgressBar + android:id="@+id/workflow_pb" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:visibility="gone"/> <!--<ListView android:id="@android:id/list" android:layout_width="match_parent"--> <!--android:layout_height="match_parent" />--> @@ -25,7 +32,7 @@ limitations under the License. android:id="@android:id/list" android:theme="@style/Theme.AppCompat.Light" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:background="@color/button_material_light" > @@ -34,7 +41,7 @@ limitations under the License. <TextView android:id="@android:id/empty" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:gravity="center" android:visibility="gone" android:text="@string/workflow_empty"/> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/res/layout/fragment_workflow_detail.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_workflow_detail.xml b/app/src/main/res/layout/fragment_workflow_detail.xml index 250e964..3f9c56b 100644 --- a/app/src/main/res/layout/fragment_workflow_detail.xml +++ b/app/src/main/res/layout/fragment_workflow_detail.xml @@ -57,7 +57,7 @@ limitations under the License. android:background="#ddd" style="android:buttonBarButtonStyle" android:text="@string/play_workflow" - android:drawableLeft="@android:drawable/ic_media_play" + android:drawableLeft="@android:drawable/ic_menu_edit" android:id="@+id/run_wk" /> <Button android:layout_width="wrap_content" http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/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 aca2422..1bbdec6 100644 --- a/app/src/main/res/layout/workflow_item_layout.xml +++ b/app/src/main/res/layout/workflow_item_layout.xml @@ -89,7 +89,7 @@ limitations under the License. android:showDividers="middle|beginning" android:dividerPadding="1dp"> - <TextView + <!-- <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" @@ -104,7 +104,7 @@ limitations under the License. android:text="@string/modified" android:id="@+id/workflow_dateupdated" android:layout_gravity="center_vertical" - android:gravity="center" /> + android:gravity="center" />--> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/app/src/main/res/values/strings.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3cf57d4..e7bc714 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,7 @@ limitations under the License. <string name="detail_title_section2">Run History</string> <string name="detail_title_section3">Licence | Policy</string> <string name="detail_title_section4"> About </string> - <string name="play_workflow">Run</string> + <string name="play_workflow">Create Run</string> <string name="downloadfailed">Download Failed. Please try again</string> <string name="downloadprogress">Workflow download in progress</string> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/32ba0173/build/intermediates/model_data.bin ---------------------------------------------------------------------- diff --git a/build/intermediates/model_data.bin b/build/intermediates/model_data.bin index fcd55ef..e4d3f90 100644 Binary files a/build/intermediates/model_data.bin and b/build/intermediates/model_data.bin differ