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/15 12:43:05 UTC

[10/15] incubator-taverna-mobile git commit: Fixed download storage location for devices with multiple external storage

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 = "icep603@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