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/07/13 14:54:19 UTC

[01/34] incubator-taverna-mobile git commit: Delete LoginActivity.java

Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master d7c08b472 -> f760fb161


Delete LoginActivity.java

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

Branch: refs/heads/master
Commit: 4a7cbb6e5f82e5599bf1a26c94bf689a32bf19f8
Parents: f542e6d
Author: Larry Akah <la...@gmail.com>
Authored: Mon Jun 29 15:06:45 2015 +0000
Committer: Larry Akah <la...@gmail.com>
Committed: Mon Jun 29 15:06:45 2015 +0000

----------------------------------------------------------------------
 .../apache/com/tavernamobile/LoginActivity.java | 66 --------------------
 1 file changed, 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4a7cbb6e/app/src/main/java/mobile/taverna/apache/com/tavernamobile/LoginActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/mobile/taverna/apache/com/tavernamobile/LoginActivity.java b/app/src/main/java/mobile/taverna/apache/com/tavernamobile/LoginActivity.java
deleted file mode 100644
index 2c96a0d..0000000
--- a/app/src/main/java/mobile/taverna/apache/com/tavernamobile/LoginActivity.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package mobile.taverna.apache.com.tavernamobile;
-
-import android.support.v7.app.ActionBarActivity;
-import android.support.v7.app.ActionBar;
-import android.support.v4.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.os.Build;
-
-
-public class LoginActivity extends ActionBarActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_login);
-        if (savedInstanceState == null) {
-            getSupportFragmentManager().beginTransaction()
-                    .add(R.id.container, new PlaceholderFragment())
-                    .commit();
-        }
-    }
-
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        // Inflate the menu; this adds items to the action bar if it is present.
-        getMenuInflater().inflate(R.menu.menu_login, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        // Handle action bar item clicks here. The action bar will
-        // automatically handle clicks on the Home/Up button, so long
-        // as you specify a parent activity in AndroidManifest.xml.
-        int id = item.getItemId();
-
-        //noinspection SimplifiableIfStatement
-        if (id == R.id.action_settings) {
-            return true;
-        }
-
-        return super.onOptionsItemSelected(item);
-    }
-
-    /**
-     * A placeholder fragment containing a simple view.
-     */
-    public static class PlaceholderFragment extends Fragment {
-
-        public PlaceholderFragment() {
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                                 Bundle savedInstanceState) {
-            View rootView = inflater.inflate(R.layout.fragment_login, container, false);
-            return rootView;
-        }
-    }
-}


[16/34] incubator-taverna-mobile git commit: implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved

Posted by ia...@apache.org.
implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved


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

Branch: refs/heads/master
Commit: c8bc8158441e1a3ea66b0edfb02604a8e5b2e576
Parents: 714c08c
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jul 8 19:50:45 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jul 8 19:50:45 2015 +0100

----------------------------------------------------------------------
 .../mobile/fragments/WorkflowItemFragment.java  | 22 ++++++++++----------
 1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c8bc8158/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 2927d76..d04501e 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
@@ -188,18 +188,18 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
     @Override
     public void onResume() {
         super.onResume();
-        if(!STATE_ON)
-        new WorkflowLoader(getActivity(), swipeRefreshLayout).execute();
-
-        if(mListView.getAdapter().getItemCount() == 0){
-            mListView.setVisibility(View.GONE);
-            noDataText.setVisibility(View.VISIBLE);
-            Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
-        }else{
-            mListView.setVisibility(View.VISIBLE);
-            noDataText.setVisibility(View.GONE);
+        if(!STATE_ON) {
+            new WorkflowLoader(getActivity(), swipeRefreshLayout).execute();
+
+            if (mListView.getAdapter().getItemCount() == 0) {
+                mListView.setVisibility(View.GONE);
+                noDataText.setVisibility(View.VISIBLE);
+                Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
+            } else {
+                mListView.setVisibility(View.VISIBLE);
+                noDataText.setVisibility(View.GONE);
+            }
         }
-
     }
 
     @Override


[22/34] incubator-taverna-mobile git commit: Fixing workflow image zoom

Posted by ia...@apache.org.
Fixing workflow image zoom


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

Branch: refs/heads/master
Commit: 54c66d8041179c7ac889cfeefafe80b8189b39c2
Parents: 5699f7c
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 10 22:19:11 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 10 22:19:11 2015 +0100

----------------------------------------------------------------------
 .../mobile/fragments/workflowdetails/RunFragment.java | 14 ++++++--------
 app/src/main/res/anim/zoomin                          | 13 +++++++------
 2 files changed, 13 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/54c66d80/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
index 3dbde9e..a55eed6 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
@@ -170,14 +170,15 @@ public class RunFragment extends Fragment implements View.OnClickListener{
                 try {
                     runStartTime.setHint(runInfo.getString("start_time"));
                     runEndTime.setHint(runInfo.getString("finish_time"));
+                    runStateTextView.setText(runInfo.getString("status_message"));
 
-                if(runInfo.getString("state").contains("Pending"))
+                if(runInfo.getString("status_message").contains("Pending"))
                     status.setImageResource(android.R.drawable.presence_busy);
-                else if (runInfo.getString("state").contains("Running"))
+                else if (runInfo.getString("status_message").contains("Running"))
                     status.setImageResource(android.R.drawable.presence_away);
-                else if (runInfo.getString("state").contains("Finished"))
+                else if (runInfo.getString("status_message").contains("Finished"))
                     status.setImageResource(android.R.drawable.presence_online);
-                else if (runInfo.getString("state").contains("Failed"))
+                else if (runInfo.getString("status_message").contains("Failed"))
                     status.setImageResource(android.R.drawable.presence_offline);
                 else
                     status.setImageResource(android.R.drawable.presence_invisible);
@@ -206,12 +207,8 @@ public class RunFragment extends Fragment implements View.OnClickListener{
 
                 URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL+this.runid);
                 HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-                String userpass = "icep603@gmail.com" + ":" + "creationfox";
-                String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
 
-      //          connection.setRequestProperty("Authorization", basicAuth);
                 connection.setRequestProperty("Accept", "application/json");
-    //            connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("GET");
                 connection.connect(); //send request
 
@@ -228,6 +225,7 @@ public class RunFragment extends Fragment implements View.OnClickListener{
                 connection.disconnect();
 
                 JSONObject runInfo = new JSONObject(sb.toString());
+             //   System.out.println(runInfo.toString(2));
                 updateRun(runInfo);
 
             }catch (IOException ex){

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/54c66d80/app/src/main/res/anim/zoomin
----------------------------------------------------------------------
diff --git a/app/src/main/res/anim/zoomin b/app/src/main/res/anim/zoomin
index 691c50e..e36b773 100644
--- a/app/src/main/res/anim/zoomin
+++ b/app/src/main/res/anim/zoomin
@@ -1,15 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:fillAfter="true" >
+    android:interpolator="@android:anim/linear_interpolator">
     <scale
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:duration="20000"
-        android:fromXScale="1"
+        android:duration="1500"
+        android:fromXScale="1.0"
         android:fromYScale="1"
         android:pivotX="50%"
         android:pivotY="50%"
-        android:toXScale="3"
-        android:toYScale="3" >
+        android:toXScale="3.0"
+        android:toYScale="3.0"
+        android:repeatCount="1"
+        android:repeatMode="reverse">
     </scale>
 
 </set>
\ No newline at end of file


[24/34] incubator-taverna-mobile git commit: Implementing workflow run from external storage

Posted by ia...@apache.org.
Implementing workflow run from external storage


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

Branch: refs/heads/master
Commit: ca95c34a1e51c1a2a401d4618e3258f6b2c091c4
Parents: 9c895c8
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 11 17:36:40 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 11 17:36:40 2015 +0100

----------------------------------------------------------------------
 .../activities/DashboardMainActivity.java       |   2 +
 .../fragments/workflowdetails/RunFragment.java  |  12 +-
 .../workflowdetails/WorkflowdetailFragment.java |  83 +-----
 .../apache/taverna/mobile/utils/RunTask.java    |  93 ++++++
 .../taverna/mobile/utils/WorkflowOpen.java      | 289 +++++++++++++++++++
 5 files changed, 403 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ca95c34a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
index e5f245b..8a90059 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
@@ -54,6 +54,7 @@ import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.fragments.FavoriteFragment;
 import org.apache.taverna.mobile.fragments.NavigationDrawerFragment;
 import org.apache.taverna.mobile.fragments.WorkflowItemFragment;
+import org.apache.taverna.mobile.utils.WorkflowOpen;
 
 import java.io.File;
 
@@ -168,6 +169,7 @@ public class DashboardMainActivity extends ActionBarActivity
             if(requestCode == SELECT_WORKFLOW){
                 String workflowPath = data.getData().getPath();
                 Toast.makeText(getBaseContext(), "Path: "+workflowPath, Toast.LENGTH_LONG).show();
+                new WorkflowOpen(this).execute(workflowPath);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ca95c34a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
index a55eed6..3b232c3 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
@@ -96,6 +96,12 @@ public class RunFragment extends Fragment implements View.OnClickListener{
     }
 
     @Override
+    public void onPause() {
+        super.onPause();
+        getActivity().finish();
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         String runresult = getActivity().getIntent().getStringExtra("runresult");
@@ -147,12 +153,14 @@ public class RunFragment extends Fragment implements View.OnClickListener{
             reloadRunResult();
             return true;
         }
+        if(id == android.R.id.home){
+           getActivity().finish();
+        }
 
         return super.onOptionsItemSelected(item);
     }
 
     private void reloadRunResult(){
-        //TODO reload the run results when refreshed
         Timer t = new Timer();
         t.scheduleAtFixedRate(new RunTimerTask(getActivity(), run_id), 0, 5000);
     }
@@ -163,7 +171,7 @@ public class RunFragment extends Fragment implements View.OnClickListener{
     }
 
     public void updateRun(final JSONObject runInfo){
-
+        if(null != runInfo)
         getActivity().runOnUiThread(new Runnable() {
             @Override
             public void run() {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ca95c34a/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 54325f4..5a5ee09 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
@@ -62,6 +62,7 @@ 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.DetailsLoader;
+import org.apache.taverna.mobile.utils.RunTask;
 import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -99,6 +100,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     static Animation zoomin;
     static Animation zoomout;
     public boolean isZoomIn;
+    public static String workflow_uri ;
 
     /**
      * Returns a new instance of this fragment for the given section
@@ -201,8 +203,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     @Override
     public void onResume() {
         super.onResume();
-     //   if(!LOAD_STATE)
-            getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
+        if(!LOAD_STATE)
+        workflow_uri = getActivity().getIntent().getStringExtra("uri");
+
+        getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
     }
 
     @Override
@@ -216,7 +220,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         progressDialog.show();
         return new DetailsLoader(getActivity(),
                 DetailsLoader.LOAD_TYPE.TYPE_WORKFLOW_DETAIL,
-                getActivity().getIntent().getStringExtra("uri"));
+                workflow_uri);
     }
 
     @Override
@@ -454,6 +458,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                             new RunTask(ctx).execute(json.toString());
                         } catch (JSONException e) {
                             e.printStackTrace();
+                        }catch (Exception ex){
+                            ex.printStackTrace();
                         }
 
                     }
@@ -583,76 +589,5 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
         }
     }
-    /**
-     * creates a new workflow run from the workflow on the player
-     */
-    private class RunTask extends AsyncTask<String, Void, String>{
-
-        private Context context;
-
-        private RunTask(Context ctx) {
-            this.context = ctx;
-        }
-
-        @Override
-        protected void onPreExecute() {
-            super.onPreExecute();
-            progressDialog.setMessage("Creating new run for the workflow");
-            progressDialog.show();
-        }
-
-        @Override
-        protected String doInBackground(String... params) {
-            StringBuffer sb = new StringBuffer();
-            try {
-
-                URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL);
-                HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-                String userpass = "icep603@gmail.com" + ":" + "creationfox";
-                String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
-
-                connection.setRequestProperty("Authorization", basicAuth);
-                connection.setRequestProperty("Accept", "application/json");
-                connection.setRequestProperty("Content-Type", "application/json");
-                connection.setRequestMethod("POST");
-                connection.connect(); //send request
 
-                DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
-                dos.writeBytes(params[0]);//write post data which is a formatted json data representing inputs to a run
-
-                dos.flush();
-                dos.close();
-
-                InputStream dis = connection.getInputStream();
-                BufferedReader br = new BufferedReader(new InputStreamReader(dis));
-
-                String jsonData = "";
-                while ((jsonData = br.readLine()) != null) {
-                    sb.append(jsonData);
-                    //
-                }
-                dis.close();
-                br.close();
-                Log.i("Run RESPONSE Code", "" + connection.getResponseCode());
-                Log.i("Run RESPONSE Messsage", "" + connection.getResponseMessage());
-
-                return sb.toString();
-
-            }catch (IOException ex){
-                ex.printStackTrace();
-            }
-            return sb.toString();
-        }
-
-        @Override
-        protected void onPostExecute(String s) {
-            Log.i("RUN OutPut", s);
-            progressDialog.dismiss();
-            //TODO startup the runActivity to display the run results
-            Intent runIntent = new Intent();
-            runIntent.setClass(this.context, RunResult.class);
-            runIntent.putExtra("runresult", s);
-            startActivity(runIntent);
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ca95c34a/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java b/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
new file mode 100644
index 0000000..14e0939
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
@@ -0,0 +1,93 @@
+package org.apache.taverna.mobile.utils;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.util.Base64;
+import android.util.Log;
+
+import org.apache.taverna.mobile.activities.RunResult;
+import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * Created by root on 7/11/15.
+ */
+public class RunTask extends AsyncTask<String, Void, String> {
+
+    private Context context;
+    private ProgressDialog progressDialog;
+
+    public RunTask(Context ctx) {
+        this.context = ctx;
+        progressDialog = new ProgressDialog(this.context);
+    }
+
+    @Override
+    protected void onPreExecute() {
+        super.onPreExecute();
+            progressDialog.setMessage("Creating new run for the workflow");
+            progressDialog.show();
+    }
+
+    @Override
+    protected String doInBackground(String... params) {
+        StringBuffer sb = new StringBuffer();
+        try {
+
+            URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL);
+            HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
+            String userpass = "icep603@gmail.com" + ":" + "creationfox";
+            String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
+
+            connection.setRequestProperty("Authorization", basicAuth);
+            connection.setRequestProperty("Accept", "application/json");
+            connection.setRequestProperty("Content-Type", "application/json");
+            connection.setRequestMethod("POST");
+            // connection.setDoInput(true);
+            //  connection.setDoOutput(true);
+            connection.connect(); //send request
+
+            DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+            dos.writeBytes(params[0]);//write post data which is a formatted json data representing inputs to a run
+
+            dos.flush();
+            dos.close();
+
+            InputStream dis = connection.getInputStream();
+            BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+
+            String jsonData = "";
+            while ((jsonData = br.readLine()) != null) {
+                sb.append(jsonData);
+                //
+            }
+            dis.close();
+            br.close();
+
+            return sb.toString();
+
+        }catch (IOException ex){
+            ex.printStackTrace();
+        }
+        return sb.toString();
+    }
+
+    @Override
+    protected void onPostExecute(String s) {
+        Log.i("RUN OutPut", s);
+//            progressDialog.dismiss();
+        Intent runIntent = new Intent();
+        runIntent.setClass(this.context, RunResult.class);
+        runIntent.putExtra("runresult", s);
+        this.context.startActivity(runIntent);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ca95c34a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
new file mode 100644
index 0000000..aaa13ff
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
@@ -0,0 +1,289 @@
+package org.apache.taverna.mobile.utils;
+
+/**
+ * Created by Larry Akah on 7/11/15.
+ */
+
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.AsyncTask;
+import android.util.Base64;
+import android.util.Log;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ *Read the selected xml file from storage and upload to player to generate workflowRun
+ */
+public class WorkflowOpen extends AsyncTask<String, Void, String> {
+
+    private Context context;
+    private ProgressDialog progressDialog;
+
+    public WorkflowOpen(Context context) {
+        this.context = context;
+        progressDialog = new ProgressDialog(this.context);
+    }
+        @Override
+        protected void onPreExecute() {
+
+            progressDialog.setMessage("Uploading Workflow ... ");
+            progressDialog.show();
+        }
+
+    /**
+     *
+     * @param params path to workflow file to upload to player
+     * @return run framework used to create a new workflow run
+     */
+    @Override
+    protected String doInBackground(String... params) {
+        StringBuffer sb = new StringBuffer();
+        String str = "";
+        try {
+             //prepare connection requests
+            File objectFile = new File(params[0]); //the resource xml file representing the workflow to be uploaded to the player
+            String playerurl = new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json";
+            URL posturl = new URL(playerurl);
+            HttpURLConnection connection = (HttpURLConnection) posturl.openConnection();
+
+            String user = "icep603@gmail.com" + ":" + "creationfox";
+            String basicAuth = "Basic " + Base64.encodeToString(user.getBytes(), Base64.DEFAULT);
+            //read the file from remote resource and encode the stream with a base64 algorithm
+
+            try {
+                BufferedReader br = new BufferedReader(new FileReader(objectFile));
+
+                while ((str = br.readLine()) != null) {
+                    sb.append(str);
+                    sb.append('\n');
+                }
+                br.close();
+            }
+            catch (IOException e) {
+                e.printStackTrace();
+            }
+
+            String data = "{\"document\":\"data:application/octet-stream;base64," +
+                    Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.URL_SAFE|Base64.NO_WRAP).replace('-','+')+"\"}";
+            String post = "{\"workflow\":"+data+"}";
+            //clear sb so that we can use it again to fetch results from this post request
+            sb.delete(0,sb.length()-1);
+            System.out.println("BODY=>"+post);
+            connection.setRequestMethod("POST");
+            connection.setRequestProperty("Authorization", basicAuth);
+            connection.setRequestProperty("Accept", "*/*");
+            connection.setRequestProperty("Content-Type", "application/json");
+            connection.setRequestProperty("Content-Encoding", "UTF-8");
+            connection.setUseCaches (false);
+            connection.setDoOutput(true);
+            connection.connect(); //send request
+
+            DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+
+            dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
+
+            dos.flush();
+            dos.close();
+
+            InputStream dis = connection.getInputStream();
+            BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+            while ((str = br.readLine())!= null)
+                sb.append(str);
+            System.out.println("Post Response Code: "+connection.getResponseCode());
+            System.out.println("Post response message: "+connection.getResponseMessage());
+            connection.disconnect();
+        }catch (IOException e){
+            e.printStackTrace();
+            sb.append("Error reading remote workflow. Please try again later");
+        }
+
+        return sb.toString();
+    }
+
+    /**
+     * Receives a result from the player as a json describing the workflow that has just been uploaded along with key components that
+     * can be used to generate a run from thw workflow. A run is started that would fetch and build a sample UI for a workflow run to be executed
+     * @param s the json result that describes the uploaded workflow
+     */
+    @Override
+    protected void onPostExecute(String s) {
+            progressDialog.dismiss();
+        System.out.println(s);
+        s = s.substring(1, s.length());
+        try {
+            JSONObject workflowJson = new JSONObject(s);
+            new WorkflowRunTask(this.context).execute(workflowJson.getString("id"));
+
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    //create and return a new TextView
+    public TextView createTextView(Context mcontext, String placeholder){
+        TextView tv = new TextView(mcontext);
+        tv.setText(placeholder);
+        tv.setMinLines(2);
+
+        return tv;
+    }
+
+    //create and return a new EdiText view
+    public EditText createEditText(Context ctx, int i){
+        EditText edt;
+        edt = new EditText(ctx);
+        edt.setHint("Enter Value");
+        edt.setMinLines(1);
+        edt.setId(i);
+        return edt;
+    }
+
+    private class WorkflowRunTask extends AsyncTask<String, Void, String>{
+
+        private Context context;
+        private AlertDialog.Builder alertDialogBuilder;
+        private AlertDialog runDialog;
+
+        private WorkflowRunTask(Context context) {
+            this.context = context;
+        }
+
+        @Override
+        protected void onPreExecute() {
+            super.onPreExecute();
+            progressDialog.setMessage(this.context.getResources().getString(R.string.fetchrun));
+            progressDialog.show();
+        }
+
+        @Override
+        protected String doInBackground(String... params) {
+            StringBuffer sb = new StringBuffer();
+            try {
+
+                URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_FRAMEWORK_URL+params[0]);
+                HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
+                String userpass = "icep603@gmail.com" + ":" + "creationfox";
+                String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
+
+                connection.setRequestProperty("Authorization", basicAuth);
+                connection.setRequestProperty("Accept", "application/json");
+                connection.setRequestMethod("GET");
+                connection.connect(); //send request
+                Log.i("RESPONSE Code", "" + connection.getResponseCode());
+                Log.i("RESPONSE Messsage", "" + connection.getResponseMessage());
+                Log.i("Authorization ", "" + connection.getRequestProperty("Authorization"));
+
+                InputStream dis = connection.getInputStream();
+                BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+
+                String jsonData = "";
+                while ((jsonData = br.readLine()) != null) {
+                    sb.append(jsonData);
+                }
+                dis.close();
+                br.close();
+                return sb.toString();
+
+            }catch (IOException ex){
+                ex.printStackTrace();
+            }
+            return sb.toString();
+        }
+
+        @Override
+        protected void onPostExecute(String result) {
+            //show the skeleton to the user in a dialog box
+            final Context ctx = this.context;
+            final LinearLayout ll = new LinearLayout(ctx);
+            ScrollView sv = new ScrollView(ctx);
+            ll.setOrientation(LinearLayout.VERTICAL);
+            sv.addView(ll);
+
+            try {
+                final JSONObject json = new JSONObject(result); //main server response json
+                JSONObject mjson = json.getJSONObject("run"); //main framework response json
+                String name = mjson.getString("name"); //a name that can be configured or edited for the new run to be created
+                ll.addView(createTextView(ctx, name));
+                final JSONArray attr_array = mjson.getJSONArray("inputs_attributes");
+                for(int i=0; i<attr_array.length(); i++){
+                    JSONObject obj = attr_array.getJSONObject(i);
+                    ll.addView(createTextView(ctx, obj.getString("name")));
+                    ll.addView(createEditText(ctx, i));
+                }
+
+                alertDialogBuilder = new AlertDialog.Builder(ctx);
+                alertDialogBuilder.setView(sv);
+                //               alertDialogBuilder.setMessage(result);
+                alertDialogBuilder.setIcon(ctx.getResources().getDrawable(R.mipmap.ic_launcher));
+                alertDialogBuilder.setTitle("New Workflow Run");
+                alertDialogBuilder.setPositiveButton("Execute", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+                        int n = attr_array.length();
+                        for(int j=0; j<n; j++){
+                            try {
+                                EditText inputText = (EditText) ll.findViewById(j);
+                                String value = inputText.getText().toString();//get input entry entered by the user
+                                JSONObject jojb = attr_array.getJSONObject(j); //get the input attributes provided by the skeleton
+                                jojb.put("value", value); //replace value field in object with the entry provided by the user
+                                attr_array.put(j, jojb); //replace the input entry with the new name/input json object
+
+                            } catch (JSONException e) {
+                                e.printStackTrace();
+                            }
+
+                        }
+                        try {
+                            json.put("inputs_attributes", attr_array);
+                            Log.i("RUN FRAMEWORK", json.toString(2));
+                            //start a run task to execute the run.
+                            new RunTask(ctx).execute(json.toString());
+                        } catch (JSONException e) {
+                            e.printStackTrace();
+                        }
+
+                    }
+                });
+                alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
+
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+                        dialogInterface.dismiss();
+                    }
+                });
+
+                runDialog = alertDialogBuilder.create();
+
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+            progressDialog.dismiss();
+            runDialog.show();
+        }
+    }
+}
+
+
+


[05/34] incubator-taverna-mobile git commit: Implementing workflow run creation over Taverna Player

Posted by ia...@apache.org.
Implementing workflow run creation over Taverna Player


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

Branch: refs/heads/master
Commit: 0a32ce94b3084379064f09016350f1a3b44a0671
Parents: 8d1bf18
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 2 01:06:37 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 2 01:06:37 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/xml/pref_general.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/0a32ce94/app/src/main/res/xml/pref_general.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index 03a0b11..aebc297 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -36,7 +36,7 @@
             android:key="pref_user"
             android:title="@string/playeruser"
             android:summary="@string/pref_server_des"
-            android:defaultValue="@string/pref_server_default"
+            android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textEmailAddress|textPersonName"
             android:singleLine="true"
@@ -45,7 +45,7 @@
             android:key="pref_password"
             android:title="@string/playerpass"
             android:summary="@string/pref_server_des"
-            android:defaultValue="@string/pref_server_default"
+            android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textPassword"
             android:singleLine="true"
@@ -59,7 +59,7 @@
             android:key="myexperimentuser"
             android:title="@string/playeruser"
             android:summary="@string/pref_server_des"
-            android:defaultValue="@string/pref_server_default"
+            android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textEmailAddress|textPersonName"
             android:singleLine="true"
@@ -68,7 +68,7 @@
             android:key="myexperimentpass"
             android:title="@string/playerpass"
             android:summary="@string/pref_server_des"
-            android:defaultValue="@string/pref_server_default"
+            android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textPassword"
             android:singleLine="true"


[33/34] incubator-taverna-mobile git commit: formatting UI

Posted by ia...@apache.org.
formatting UI


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

Branch: refs/heads/master
Commit: d540f9e7c87c4a59cff77b6b48582b4271805342
Parents: 72363e4
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 12 13:20:16 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 12 13:20:16 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/layout/fragment_workflow_detail.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d540f9e7/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 94d3e94..295054d 100644
--- a/app/src/main/res/layout/fragment_workflow_detail.xml
+++ b/app/src/main/res/layout/fragment_workflow_detail.xml
@@ -97,8 +97,8 @@ limitations under the License.
                 android:orientation="horizontal"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:gravity="right">
+                android:layout_gravity="bottom|center"
+                android:gravity="bottom|right">
 
                 <ImageButton
                     android:layout_width="wrap_content"


[06/34] incubator-taverna-mobile git commit: update brand reference

Posted by ia...@apache.org.
update brand reference


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

Branch: refs/heads/master
Commit: 40c00964a8585d48e550fd20cfbcb1c1a2fd5c56
Parents: 0a32ce9
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 2 02:07:28 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 2 02:07:28 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/layout/fragment_login.xml             |  8 ++------
 app/src/main/res/layout/fragment_navigation_drawer.xml |  2 +-
 app/src/main/res/values/strings.xml                    |  6 +++---
 app/src/main/res/xml/pref_general.xml                  | 13 ++++++++-----
 4 files changed, 14 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/40c00964/app/src/main/res/layout/fragment_login.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml
index ad52491..38e1e5f 100644
--- a/app/src/main/res/layout/fragment_login.xml
+++ b/app/src/main/res/layout/fragment_login.xml
@@ -139,13 +139,9 @@ limitations under the License.
                 android:text="@string/brand"
                 android:id="@+id/textView7"
                 android:paddingTop="20dp"
-                android:textSize="20dp" />
+                android:textSize="20dp"
+                android:gravity="center|center_horizontal" />
 
-            <ImageView
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:id="@+id/imageView3"
-                android:src="@mipmap/ic_poweredby" />
         </LinearLayout>
 
     </LinearLayout>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/40c00964/app/src/main/res/layout/fragment_navigation_drawer.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_navigation_drawer.xml b/app/src/main/res/layout/fragment_navigation_drawer.xml
index 2a01c28..90ddd3a 100644
--- a/app/src/main/res/layout/fragment_navigation_drawer.xml
+++ b/app/src/main/res/layout/fragment_navigation_drawer.xml
@@ -58,7 +58,7 @@ limitations under the License.
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:text="@string/completebrand"
         android:id="@+id/textView8"
-        android:hint="@string/completebrand"
+        android:hint="@string/brand"
         android:layout_gravity="center_horizontal"
         android:layout_marginTop="30dp" />
 </LinearLayout>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/40c00964/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 3bf6202..cd8c074 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -17,7 +17,7 @@ limitations under the License.
     <string name="hello_world"> Empty </string>
     <string name="action_settings">Settings</string>
     <string name="title_activity_flash_screen">Taverna Mobile</string>
-    <string name="brand">Powered By</string>
+    <string name="brand">Powered By MyExperiment</string>
     <string-array name="menus">
         <item >Usage</item>
         <item>Quit</item>
@@ -89,10 +89,10 @@ limitations under the License.
                          View, run and download workflows at a convenience on your android mobile<br/>
                         device. \n\n <br/><b>Developed at Apache Taverna and Powered by MyExperiment</b><br/></string>
     <string name="playerconfig">Configure Player Account</string>
-    <string name="playerconfig_summary">Set username/password used to login to Taverna player portal</string>
+    <string name="playerconfig_summary">Username used to login to Taverna player portal</string>
     <string name="playeruser">Username/email</string>
     <string name="playerpass">Password</string>
     <string name="myexperimenttitle">Configure MyExperiment Account</string>
-    <string name="myexperimentsummary">Set username/password used to login to MyExperiment</string>
+    <string name="myexperimentsummary">Username used to login to MyExperiment</string>
 
 </resources>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/40c00964/app/src/main/res/xml/pref_general.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index aebc297..ab27a47 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -30,12 +30,12 @@
         android:maxLines="1" />
     <PreferenceCategory
         android:icon="@drawable/gear_icon"
-        android:summary="@string/playerconfig_summary"
         android:title="@string/playerconfig">
         <EditTextPreference
             android:key="pref_user"
             android:title="@string/playeruser"
-            android:summary="@string/pref_server_des"
+            android:icon="@mipmap/icuserprofiles"
+            android:summary="@string/playerconfig_summary"
             android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textEmailAddress|textPersonName"
@@ -44,7 +44,8 @@
         <EditTextPreference
             android:key="pref_password"
             android:title="@string/playerpass"
-            android:summary="@string/pref_server_des"
+            android:icon="@android:drawable/ic_secure"
+            android:summary="Taverna Player Password"
             android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textPassword"
@@ -58,7 +59,8 @@
         <EditTextPreference
             android:key="myexperimentuser"
             android:title="@string/playeruser"
-            android:summary="@string/pref_server_des"
+            android:icon="@mipmap/icuserprofiles"
+            android:summary="@string/myexperimentsummary"
             android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textEmailAddress|textPersonName"
@@ -67,7 +69,8 @@
         <EditTextPreference
             android:key="myexperimentpass"
             android:title="@string/playerpass"
-            android:summary="@string/pref_server_des"
+            android:icon="@android:drawable/ic_secure"
+            android:summary="Myexperiment password"
             android:defaultValue="default"
             android:selectAllOnFocus="true"
             android:inputType="textPassword"


[30/34] incubator-taverna-mobile git commit: implementing upload workflow to dropbox

Posted by ia...@apache.org.
implementing upload workflow to dropbox


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

Branch: refs/heads/master
Commit: 8e04540252d337c54be8c2c806d7c3aec1d71591
Parents: 354b4f4
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 12 13:01:48 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 12 13:01:48 2015 +0100

----------------------------------------------------------------------
 .../workflowdetails/WorkflowdetailFragment.java | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8e045402/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 786f572..bfcce62 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
@@ -106,7 +106,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     public static long WORKFLO_ID;
     public static Context cont;
     private static boolean LOAD_STATE = false;
-    private ZoomControls zoomControls;
+    private static boolean DROPUPLOAD = false;
     static Animation zoomin;
     static Animation zoomout;
     public boolean isZoomIn;
@@ -205,8 +205,13 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 //TODO mark a workflow as important and launch task to store the entry into the local database
                 break;
             case R.id.saveToDropboxButton:
-                mDBApi.getSession().startOAuth2Authentication(getActivity());
-
+                String authToken = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("dropboxauth", "");
+                if (authToken.isEmpty())
+                    mDBApi.getSession().startOAuth2Authentication(getActivity());
+                else {
+                    mDBApi.getSession().setOAuth2AccessToken(authToken);
+                    new WorkflowDriveUpload().execute(download_url);
+                }
                 break;
             case R.id.saveToGoogleDriveButton:
                 break;
@@ -227,11 +232,12 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
         getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
 
-        if (mDBApi.getSession().authenticationSuccessful()) {
+        if (mDBApi.getSession().authenticationSuccessful() && !DROPUPLOAD) {
             try {
                 // Required to complete auth, sets the access token on the session
                 mDBApi.getSession().finishAuthentication();
                 String accessToken = mDBApi.getSession().getOAuth2AccessToken();
+                PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().putString("dropboxauth", accessToken).commit();
                 new WorkflowDriveUpload().execute(download_url);
             } catch (IllegalStateException e) {
                 Log.i("DbAuthLog", "Error authenticating", e);
@@ -655,7 +661,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                          });
 
                 Log.i("DbExampleLog", "The uploaded file's rev is: " + response.rev);
-                metaDataEntry = mDBApi.metadata("/"+Uri.parse(files[0]).getLastPathSegment(), 1, null, false, null);
+              //  metaDataEntry = mDBApi.metadata("/"+Uri.parse(files[0]).getLastPathSegment(), 1, null, false, null);
             } catch (FileNotFoundException e) {
                 e.printStackTrace();
             } catch (DropboxException e) {
@@ -671,8 +677,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
         @Override
         protected void onPostExecute(String s) {
-            if(null != s)
-                Toast.makeText(getActivity(), "File Saved to dropbox: "+s, Toast.LENGTH_LONG).show();
+            if(null != s) {
+                Toast.makeText(getActivity(), "File Saved to dropbox. Reference: " + s, Toast.LENGTH_LONG).show();
+                DROPUPLOAD = true;
+            }
             else{
                 Toast.makeText(getActivity(), "Failed to save to dropbox "+s, Toast.LENGTH_LONG).show();
             }


[17/34] incubator-taverna-mobile git commit: implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved

Posted by ia...@apache.org.
implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved


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

Branch: refs/heads/master
Commit: 6d7108e0b16e1347b1b02ead5c10c95e19e6d657
Parents: c8bc815
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jul 8 22:15:49 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jul 8 22:15:49 2015 +0100

----------------------------------------------------------------------
 .../apache/taverna/mobile/fragments/WorkflowItemFragment.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6d7108e0/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 d04501e..fd53c44 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
@@ -194,7 +194,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             if (mListView.getAdapter().getItemCount() == 0) {
                 mListView.setVisibility(View.GONE);
                 noDataText.setVisibility(View.VISIBLE);
-                Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
+
             } else {
                 mListView.setVisibility(View.VISIBLE);
                 noDataText.setVisibility(View.GONE);
@@ -303,7 +303,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
                 if(WorkflowItemFragment.searchAdpater.getItemCount() == 0){
                     mListView.setVisibility(View.GONE);
                     noDataText.setVisibility(View.VISIBLE);
-                    Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
+                  //  Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
                 }else{
                     mListView.setVisibility(View.VISIBLE);
                     noDataText.setVisibility(View.GONE);


[19/34] incubator-taverna-mobile git commit: implemented workflow run Results. Results now show up in a new screen

Posted by ia...@apache.org.
implemented workflow run Results. Results now show up in a new screen


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

Branch: refs/heads/master
Commit: 70c90185f42dc73e13431e2c32c4965dbb5a9b96
Parents: ee887f3
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 9 17:41:24 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 9 17:41:24 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/values/strings.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/70c90185/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 d785370..eda8079 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -56,7 +56,7 @@ limitations under the License.
     <string name="workflow_authorhint">Workflow Author  </string>
     <string name="workflow_component">Workflow component</string>
     <string name="favorite_empty"> No Favorites Added Yet</string>
-    <string name="workflow_empty"> No <b>Workflows</b> Available. Check your Connection to the Internet</string>
+    <string name="workflow_empty"> No <b>Workflows</b> Available. Check your Connection to the Internet or Pull down to refresh</string>
     <string name="wktitle">TITLE</string>
     <string name="marked">Marked On</string>
     <string name="created">Created :</string>


[20/34] incubator-taverna-mobile git commit: implemented workflow run Results. Results now show up in a new screen

Posted by ia...@apache.org.
implemented workflow run Results. Results now show up in a new screen


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

Branch: refs/heads/master
Commit: 45b4e376e3b7e473f0c70ab2ba0594d3f6703eb9
Parents: 70c9018
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 9 23:52:05 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 9 23:52:05 2015 +0100

----------------------------------------------------------------------
 .../taverna/mobile/fragments/workflowdetails/RunFragment.java      | 2 ++
 app/src/main/res/layout/fragment_run_result.xml                    | 1 +
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/45b4e376/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
index c1d8cdf..3622944 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
@@ -3,6 +3,7 @@ package org.apache.taverna.mobile.fragments.workflowdetails;
 
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
+import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -110,6 +111,7 @@ public class RunFragment extends Fragment implements View.OnClickListener{
                 runStartTime.setHint(runStarted);
                 runEndTime.setHint(runEnded);
                 runInputsText.setText(runInputs);
+                runInputsText.setMovementMethod(new ScrollingMovementMethod());
 
                 downloadOutput.setOnClickListener(this);
                 downloadLogs.setOnClickListener(this);

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/45b4e376/app/src/main/res/layout/fragment_run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_run_result.xml b/app/src/main/res/layout/fragment_run_result.xml
index ee8cc46..bcb77e2 100644
--- a/app/src/main/res/layout/fragment_run_result.xml
+++ b/app/src/main/res/layout/fragment_run_result.xml
@@ -93,6 +93,7 @@
         android:text="inputs from run"
         android:id="@+id/runinputsTextView"
         android:minLines="5"
+        android:scrollbars="vertical"
         android:layout_marginTop="10dp"
         android:layout_weight="1.5"
         android:layout_marginBottom="10dp" />


[02/34] incubator-taverna-mobile git commit: Added author avatar loading and name on the dashboard. Still unstable though

Posted by ia...@apache.org.
Added author avatar loading and name on the dashboard. Still unstable though


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

Branch: refs/heads/master
Commit: f964b0d10842fb38a6bb7fd727feb8b6b44e830d
Parents: f542e6d
Author: larrytech7 <la...@gmail.com>
Authored: Mon Jun 29 18:56:49 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Mon Jun 29 18:56:49 2015 +0100

----------------------------------------------------------------------
 .../mobile/adapters/WorkflowAdapter.java        | 71 +++++++++++-----
 .../customviews/WorkflowPreviewImageView.java   |  7 ++
 .../mobile/fragments/WorkflowItemFragment.java  | 89 +++++++++++++++++---
 .../workflowdetails/WorkflowdetailFragment.java | 84 ++++++++++++++++--
 .../taverna/mobile/tavernamobile/User.java      | 21 ++++-
 .../taverna/mobile/utils/AvatarLoader.java      | 69 +++++++++++++++
 .../utils/xmlparsers/AvatarXMLParser.java       | 46 ++++++++++
 .../xmlparsers/MyExperimentXmlParserRules.java  | 41 ++++++++-
 .../utils/xmlparsers/WorkflowDetailParser.java  |  7 +-
 app/src/main/res/anim/zoomin                    | 15 ++++
 app/src/main/res/anim/zoomout                   | 15 ++++
 .../res/layout/fragment_workflow_detail.xml     | 14 +++
 12 files changed, 431 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/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 c2c55eb..c8dae51 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.AsyncTask;
 import android.preference.PreferenceManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Html;
@@ -42,16 +43,27 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.thebuzzmedia.sjxp.rule.IRule;
+
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.activities.WorkflowDetailActivity;
 import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowdetailFragment;
+import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
 import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
 import org.apache.taverna.mobile.utils.Workflow_DB;
+import org.apache.taverna.mobile.utils.xmlparsers.AvatarXMLParser;
+import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
+import org.apache.taverna.mobile.utils.xmlparsers.WorkflowDetailParser;
 import org.json.JSONException;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -123,34 +135,11 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         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) {
-                try {
-
-                    //String workflow_name = Uri.parse(wkflow_url).getLastPathSegment();
-                    WorkflowDownloadManager dm = new WorkflowDownloadManager(c);
-                    File destinationFile = new File(PreferenceManager.getDefaultSharedPreferences(c)
-                            .getString(DashboardMainActivity.APP_DIRECTORY_NAME, "/"));
-                    Log.i("Workflow Name ", destinationFile.getAbsolutePath());
-                    dm.downloadWorkflow(destinationFile, wkflow_url);
-                } catch(NullPointerException np){
-                    np.printStackTrace();
-                }catch (IllegalArgumentException ill){
-                    ill.printStackTrace();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        });*/
         viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -177,6 +166,9 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         } catch (JSONException e) {
             e.printStackTrace();
         }
+        synchronized (this){
+            new DetailLinkLoader().execute(uri);
+        }
     }
 
     public void setData(List<Workflow> workflowList){
@@ -226,4 +218,37 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
             btn_view_workflow = (Button) v.findViewById(R.id.button_view_workflow);
         }
     }
+
+    /**
+     * Loads partially details of a given workflow to retrieve author information
+     */
+    private class DetailLinkLoader extends AsyncTask<String, Void, Void>{
+
+        @Override
+        protected Void doInBackground(String ... strings) {
+            URL url = null;
+            HttpURLConnection connection = null;
+            try {
+                url = new URL(strings[0]); //fetch workflow detail
+                connection = (HttpURLConnection) url.openConnection();
+                connection.setDoInput(true);
+                connection.connect();
+                InputStream input = connection.getInputStream();
+                IRule avatarRule = new MyExperimentXmlParserRules.UploaderRule(IRule.Type.ATTRIBUTE,"/workflow/uploader", "resource","uri","id");
+                WorkflowDetailParser detailMinParser = new WorkflowDetailParser(new IRule[]{avatarRule});
+                detailMinParser.parse(input, new User());
+
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(Void aVoid) {
+            super.cancel(true);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java b/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
new file mode 100644
index 0000000..c34c680
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
@@ -0,0 +1,7 @@
+package org.apache.taverna.mobile.customviews;
+
+/**
+ * Created by root on 6/29/15.
+ */
+public class WorkflowPreviewImageView {
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/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 10a1f8b..b206f01 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,6 +28,9 @@ import android.app.Activity;
 import android.app.ProgressDialog;
 import android.app.SearchManager;
 import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.widget.SwipeRefreshLayout;
@@ -44,15 +47,22 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
 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.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.AvatarLoader;
 import org.apache.taverna.mobile.utils.WorkflowLoader;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -87,8 +97,9 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
      */
     private WorkflowAdapter workflowAdapter;
     private static WorkflowAdapter searchAdpater;
-    private View rootView;
+    private static View rootView;
     public static Context cx;
+    private static boolean STATE_ON = false;
 
     public static WorkflowItemFragment newInstance(String param1, String param2) {
         WorkflowItemFragment fragment = new WorkflowItemFragment();
@@ -166,16 +177,15 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
     @Override
     public void onResume() {
         super.onResume();
-      /*  //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*/
+        if(!STATE_ON)
         new WorkflowLoader(getActivity(), swipeRefreshLayout).execute();
-        //    getActivity().getLoaderManager().initLoader(0,null,this).forceLoad();
+
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        STATE_ON = true;
     }
 
     @Override
@@ -277,4 +287,63 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             }
         });
     }
+    public static void startLoadingAvatar(final User author) {
+
+        ((Activity)cx).runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                synchronized (this) {
+                    new AvatarLoader().execute(author.getDetails_uri());
+                    System.out.println(author.getDetails_uri());
+                }
+            }
+        });
+    }
+
+    public static void updateAvatar(final User author) {
+
+        ((Activity)cx).runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                synchronized (this) {
+                    ((TextView)rootView.findViewById(R.id.workflow_author)).setText(author.getName());
+                    new LoadAuthorAvatar((ImageView) rootView.findViewById(R.id.author_profile_image)).execute(author.getAvatar_url());
+                }
+            }
+        });
+    }
+    /**
+     * Load the Author Avatar from a background Task
+     */
+    private static class LoadAuthorAvatar extends AsyncTask<String, Void, Bitmap> {
+        ImageView img;
+
+        public LoadAuthorAvatar(ImageView imageView) {
+            img = imageView;
+        }
+
+        @Override
+        protected Bitmap doInBackground(String... strings) {
+            Bitmap myBitmap = null;
+            try {
+                URL url = new URL(strings[0]);
+                HttpURLConnection connection = null;
+                connection = (HttpURLConnection) url.openConnection();
+                connection.setDoInput(true);
+                connection.connect();
+                InputStream input = connection.getInputStream();
+                myBitmap = BitmapFactory.decodeStream(input);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            return myBitmap;
+        }
+
+        @Override
+        protected void onPostExecute(Bitmap bitmap) {
+            img.setImageBitmap(bitmap);
+///            img.setBackground();
+            notify();
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/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 31ab593..8d96e13 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
@@ -46,15 +46,20 @@ import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.util.Base64;
 import android.util.Log;
+import android.view.DragEvent;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
+import android.widget.ZoomControls;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
@@ -95,6 +100,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     private static String download_url;
     public static long WORKFLO_ID;
     public static Context cont;
+    private static boolean LOAD_STATE = false;
+    private ZoomControls zoomControls;
+    static Animation zoomin;
+    static Animation zoomout;
 
     /**
      * Returns a new instance of this fragment for the given section
@@ -120,6 +129,11 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         progressDialog.setMessage(getActivity().getResources().getString(R.string.loading));
         progressDialog.setCancelable(false);
         WORKFLO_ID = workflowid;
+        zoomin = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomin);
+        zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout);
+        zoomControls = (ZoomControls) rootView.findViewById(R.id.zoomControls);
+        zoomControls.setOnZoomInClickListener(this);
+        zoomControls.setOnZoomOutClickListener(this);
 
         Button createRun = (Button) rootView.findViewById(R.id.run_wk);
         createRun.setOnClickListener(this);
@@ -163,6 +177,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             case R.id.mark_wk:
                 //TODO mark a workflow as important and launch task to store the entry into the local database
                 break;
+            case R.id.zoomControls:
+                zoomin.startNow();
+                Toast.makeText(getActivity(), "Zooming", Toast.LENGTH_SHORT).show();
+                break;
         }
     }
 
@@ -175,8 +193,14 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     @Override
     public void onResume() {
         super.onResume();
-        getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
+        if(!LOAD_STATE)
+            getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
+    }
 
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        LOAD_STATE = true;
     }
 
     @Override
@@ -212,26 +236,71 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     }
 
     public static void setWorkflowDetails(final Workflow wk){
+
         ((Activity)cont).runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                //update UI with code here
+                //load necessary widgets
                 TextView author = (TextView) rootView.findViewById(R.id.wkf_author);
+                TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
+                TextView type = (TextView) rootView.findViewById(R.id.wtype);
+                TextView title = (TextView) rootView.findViewById(R.id.wtitle);
+                TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
+                TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
+                final ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
+
+                //set widget data
                 User uploader = wk.getUploader();
                 author.setText("Uploader ->" + uploader != null?uploader.getName():"Unknown");
-                TextView title = (TextView) rootView.findViewById(R.id.wtitle);
                 title.setText(wk.getWorkflow_title());
-                TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
                 desc.setText(wk.getWorkflow_description());
-                TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
                 createdat.setText("Created : " + wk.getWorkflow_datecreated());
-                TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
                 updated.setText("Workflow Description");
-                    ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
+                type.setText("Type-> "+wk.getWorkflow_Type());
+
                   //preview.setImageURI(Uri.parse(wk.getWorkflow_preview()));
                 new LoadImageThread(preview, wk.getWorkflow_preview()).execute();
                 download_url =wk.getWorkflow_remote_url();
+                zoomin.setAnimationListener(new Animation.AnimationListener() {
+
+                    @Override
+                    public void onAnimationStart(Animation arg0) {
+                        // TODO Auto-generated method stub
+                        preview.startAnimation(zoomout);
+                    }
+
+                    @Override
+                    public void onAnimationRepeat(Animation arg0) {
+                        // TODO Auto-generated method stub
 
+                    }
+
+                    @Override
+                    public void onAnimationEnd(Animation arg0) {
+                        preview.startAnimation(zoomout);
+
+                    }
+                });
+                zoomout.setAnimationListener(new Animation.AnimationListener() {
+
+                    @Override
+                    public void onAnimationStart(Animation arg0) {
+                        // TODO Auto-generated method stub
+                        preview.startAnimation(zoomin);
+                    }
+
+                    @Override
+                    public void onAnimationRepeat(Animation arg0) {
+                        // TODO Auto-generated method stub
+
+                    }
+
+                    @Override
+                    public void onAnimationEnd(Animation arg0) {
+                        preview.startAnimation(zoomin);
+
+                    }
+                });
                 progressDialog.dismiss();
             }
         });
@@ -267,6 +336,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             imageView.setImageBitmap(bitmap);
         }
     }
+
     //create and return a new TextView
     public TextView createTextView(Context mcontext, String placeholder){
         TextView tv = new TextView(mcontext);

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/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
index e352913..efd578c 100644
--- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/User.java
@@ -34,9 +34,6 @@ import java.util.List;
  */
 public class User {
 
-    public User() {
-        super();
-    }
     private static final long serialVersionUID = 3467195671046297377L;
     @Element(required = false)
     protected String id;
@@ -57,7 +54,12 @@ public class User {
     @Element(required = false)
     protected String website;
     protected String details_uri;
+    private String avatar_url;
 
+    public User(){
+        super();
+//        this.setAvatar_url("http://www.myexperiment.org/users/6/pictures/614");
+    }
     protected List<Workflow> user_workflows; //a list of workflows owned by this user
 
     public void setId(String id) {
@@ -80,6 +82,14 @@ public class User {
         this.details_uri = details_uri;
     }
 
+    public String getAvatar_url() {
+        return this.avatar_url;
+    }
+
+    public void setAvatar_url(String avatar_url) {
+        this.avatar_url = avatar_url;
+    }
+
     public String getName() {
         return name;
     }
@@ -135,4 +145,9 @@ public class User {
     public void setWebsite(String website) {
         this.website = website;
     }
+
+    @Override
+    public String toString(){
+        return "This is the user object";
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/java/org/apache/taverna/mobile/utils/AvatarLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/AvatarLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/AvatarLoader.java
new file mode 100644
index 0000000..b7f5ee4
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/AvatarLoader.java
@@ -0,0 +1,69 @@
+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.os.AsyncTask;
+
+import com.thebuzzmedia.sjxp.rule.IRule;
+
+import org.apache.taverna.mobile.tavernamobile.User;
+import org.apache.taverna.mobile.utils.xmlparsers.AvatarXMLParser;
+import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Created by Larry AKah on 6/29/15.
+ */
+public class AvatarLoader extends AsyncTask<String, Void, Void> {
+    @Override
+    protected Void doInBackground(String... strings) {
+        URL url = null;
+        HttpURLConnection connection = null;
+        try {
+
+            url = new URL(strings[0]);
+            connection = (HttpURLConnection) url.openConnection();
+            connection.setDoInput(true);
+            connection.connect();
+            InputStream input = connection.getInputStream();
+            IRule avatarRule = new MyExperimentXmlParserRules.AuthorRule(IRule.Type.ATTRIBUTE,"/user/avatar", "resource","uri","id");
+            IRule avatarName = new MyExperimentXmlParserRules.AuthorRule(IRule.Type.CHARACTER,"/user/name");
+            AvatarXMLParser avatarXMLParser = new AvatarXMLParser(new IRule[]{avatarRule, avatarName});
+
+            avatarXMLParser.parse(input, new User());
+
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/AvatarXMLParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/AvatarXMLParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/AvatarXMLParser.java
new file mode 100644
index 0000000..9b74aa1
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/AvatarXMLParser.java
@@ -0,0 +1,46 @@
+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.XMLParserException;
+import com.thebuzzmedia.sjxp.rule.IRule;
+
+import org.apache.taverna.mobile.fragments.WorkflowItemFragment;
+import org.apache.taverna.mobile.tavernamobile.User;
+
+/**
+ * Created by Larry Akah on 6/29/15.
+ */
+public class AvatarXMLParser extends XMLParser {
+
+    public AvatarXMLParser(IRule[] rules) throws IllegalArgumentException, XMLParserException {
+        super(rules);
+    }
+
+    @Override
+    protected void doEndDocument(Object userObject) {
+        WorkflowItemFragment.updateAvatar((User) userObject);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
index 9bb47ed..9be18b3 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
@@ -24,8 +24,6 @@ package org.apache.taverna.mobile.utils.xmlparsers;
  * under the License.
  */
 
-import android.annotation.TargetApi;
-import android.os.Build;
 import android.text.Html;
 
 import com.thebuzzmedia.sjxp.XMLParser;
@@ -34,7 +32,6 @@ import com.thebuzzmedia.sjxp.rule.DefaultRule;
 import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
 import org.apache.taverna.mobile.utils.WorkflowLoader;
-import org.simpleframework.xml.Default;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -149,14 +146,23 @@ public class MyExperimentXmlParserRules {
             switch(index){
                 case 0:
                     muser.setWebsite(value);
+                    if( (userObject instanceof User)){
+                        ((User)userObject).setWebsite(value);
+                    }
                     break;
                 case 1:
                     muser.setDetails_uri(value);
+                    if( (userObject instanceof User)){
+                        ((User)userObject).setDetails_uri(value);
+                    }
                     break;
                 case 2:
                     muser.setId(value);
                     break;
             }
+            if( (userObject instanceof User)){
+                System.out.println("USER Details => "+muser.getDetails_uri());
+            }
         }
 
         @Override
@@ -166,6 +172,35 @@ public class MyExperimentXmlParserRules {
             ((Workflow)userObject).setUploader(muser);
         }
     }
+//rule used to parse author from main page
+    public static class AuthorRule extends DefaultRule{
+
+        public AuthorRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+            super(type, locationPath, attributeNames);
+
+        }
+
+        @Override
+        public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+            switch(index){
+                case 0:
+                    ((User) userObject).setAvatar_url(value);
+                    break;
+                case 1:
+                    ((User) userObject).setDetails_uri(value);
+                    break;
+                case 2:
+                    ((User) userObject).setId(value);
+                    break;
+            }
+        }
+
+        @Override
+        public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+            ((User) userObject).setName(text);
+            //((Workflow)userObject).setUploader(muser);
+        }
+    }
 //rule for the date the workflow was created/uploaded
     public static class DateRule extends DefaultRule{
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
index a49d836..906b99e 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
@@ -4,7 +4,9 @@ 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.fragments.workflowdetails.WorkflowdetailFragment;
+import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
 
 /**
@@ -45,8 +47,9 @@ public class WorkflowDetailParser extends XMLParser {
     //deliver results when parsing has completed and all the information required has been retrieved
     @Override
     protected void doEndDocument(Object userObject) {
+        if(userObject instanceof User){
+          WorkflowItemFragment.startLoadingAvatar((User) userObject);
+        }else
         WorkflowdetailFragment.setWorkflowDetails((Workflow) userObject);
-       // WorkflowdetailFragment.setWorkflowDetails(MyExperimentXmlParserRules.mWorkflow);
-        System.out.println("Finished Parsing document. Results"+(Workflow) userObject);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/res/anim/zoomin
----------------------------------------------------------------------
diff --git a/app/src/main/res/anim/zoomin b/app/src/main/res/anim/zoomin
new file mode 100644
index 0000000..691c50e
--- /dev/null
+++ b/app/src/main/res/anim/zoomin
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fillAfter="true" >
+    <scale
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:duration="20000"
+        android:fromXScale="1"
+        android:fromYScale="1"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:toXScale="3"
+        android:toYScale="3" >
+    </scale>
+
+</set>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/app/src/main/res/anim/zoomout
----------------------------------------------------------------------
diff --git a/app/src/main/res/anim/zoomout b/app/src/main/res/anim/zoomout
new file mode 100644
index 0000000..af391cb
--- /dev/null
+++ b/app/src/main/res/anim/zoomout
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fillAfter="true" >
+    <scale
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:duration="20000"
+        android:fromXScale="1.0"
+        android:fromYScale="1.0"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:toXScale="0.5"
+        android:toYScale="0.5" >
+    </scale>
+
+</set>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/f964b0d1/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 228a391..8a9b7fc 100644
--- a/app/src/main/res/layout/fragment_workflow_detail.xml
+++ b/app/src/main/res/layout/fragment_workflow_detail.xml
@@ -68,6 +68,13 @@ limitations under the License.
                 android:id="@+id/wupdatedat"
                 android:layout_marginTop="5dp"
                 android:text="@string/modified" />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:id="@+id/wtype"
+                android:layout_marginTop="5dp"
+                android:text="Type" />
 
             <TextView
                 android:layout_width="match_parent"
@@ -86,6 +93,13 @@ limitations under the License.
                 android:backgroundTint="@color/accent_material_light"
                 android:backgroundTintMode="src_atop" />
 
+            <ZoomControls
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/zoomControls"
+                android:layout_gravity="center_horizontal"
+                android:orientation="horizontal" />
+
         </LinearLayout>
     </ScrollView>
 


[34/34] incubator-taverna-mobile git commit: This closes #7

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


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

Branch: refs/heads/master
Commit: f760fb16122093bf299464fa151c8b50177737aa
Parents: d7c08b4 d540f9e
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Mon Jul 13 13:52:54 2015 +0100
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Mon Jul 13 13:52:54 2015 +0100

----------------------------------------------------------------------
 app/libs/dropbox-android-sdk-1.6.3.jar          | Bin 0 -> 168350 bytes
 app/libs/json_simple-1.1.jar                    | Bin 0 -> 16046 bytes
 app/src/main/AndroidManifest.xml                |  24 +-
 .../apache/com/tavernamobile/LoginActivity.java |  66 ----
 .../activities/DashboardMainActivity.java       |   9 +-
 .../taverna/mobile/activities/RunResult.java    |  36 ++
 .../activities/WorkflowDetailActivity.java      |   3 -
 .../adapters/FavoriteWorkflowAdapter.java       |  22 +-
 .../mobile/adapters/WorkflowAdapter.java        |  96 +++--
 .../customviews/WorkflowPreviewImageView.java   |   7 +
 .../mobile/fragments/FavoriteFragment.java      |  15 +-
 .../mobile/fragments/WorkflowItemFragment.java  | 162 ++++++++-
 .../fragments/workflowdetails/RunFragment.java  | 246 +++++++++++++
 .../workflowdetails/WorkflowdetailFragment.java | 357 +++++++++++++++----
 .../mobile/tavernamobile/TavernaPlayerAPI.java  |  26 +-
 .../taverna/mobile/tavernamobile/User.java      |  21 +-
 .../taverna/mobile/utils/AvatarLoader.java      |  69 ++++
 .../apache/taverna/mobile/utils/DB_Utility.java |   5 +-
 .../taverna/mobile/utils/DetailsLoader.java     |   5 +-
 .../apache/taverna/mobile/utils/RunTask.java    |  93 +++++
 .../taverna/mobile/utils/WorkflowOpen.java      | 291 +++++++++++++++
 .../utils/xmlparsers/AvatarXMLParser.java       |  46 +++
 .../xmlparsers/MyExperimentXmlParserRules.java  |  48 ++-
 .../utils/xmlparsers/WorkflowDetailParser.java  |   7 +-
 .../mobile/utils/xmlparsers/WorkflowParser.java |   1 -
 app/src/main/res/anim/zoomin                    |  16 +
 app/src/main/res/anim/zoomout                   |  15 +
 app/src/main/res/drawable/dropbox_icon.png      | Bin 0 -> 1543 bytes
 app/src/main/res/drawable/google_drive_icon.png | Bin 0 -> 2014 bytes
 app/src/main/res/drawable/ic_download_web.jpg   | Bin 0 -> 2230 bytes
 .../main/res/layout-xlarge/fragment_login.xml   |   9 +-
 .../main/res/layout/activity_flash_screen.xml   |  29 +-
 app/src/main/res/layout/activity_run_result.xml |   4 +
 .../main/res/layout/favorite_item_layout.xml    |  54 +--
 app/src/main/res/layout/fragment_item_grid.xml  |   8 +-
 app/src/main/res/layout/fragment_item_list.xml  |  12 +-
 app/src/main/res/layout/fragment_login.xml      |   8 +-
 .../res/layout/fragment_navigation_drawer.xml   |   2 +-
 app/src/main/res/layout/fragment_run_result.xml | 126 +++++++
 .../res/layout/fragment_workflow_detail.xml     |  37 +-
 .../main/res/layout/workflow_item_layout.xml    |  27 +-
 app/src/main/res/menu/run_result.xml            |  10 +
 app/src/main/res/values/strings.xml             |  13 +-
 app/src/main/res/xml/pref_general.xml           |  50 ++-
 simple-xml-2.7.1/simple-xml-2.7.1.iml           |  16 -
 simple-xml-2.7.1/simple-xml-2.7.1.jar           | Bin 427590 -> 0 bytes
 46 files changed, 1725 insertions(+), 366 deletions(-)
----------------------------------------------------------------------



[27/34] incubator-taverna-mobile git commit: added dropbox activity

Posted by ia...@apache.org.
added dropbox activity


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

Branch: refs/heads/master
Commit: 8b8d5b979ad9a07499cbe87376560adf1a452613
Parents: 1619a17
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 11 23:20:42 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 11 23:20:42 2015 +0100

----------------------------------------------------------------------
 app/src/main/AndroidManifest.xml | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8b8d5b97/app/src/main/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bd49514..930847e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -45,7 +45,7 @@ limitations under the License.
         <activity
             android:name=".activities.DashboardMainActivity"
             android:label="@string/title_activity_dashboard_main"
-            android:launchMode="singleTop">
+            android:launchMode="singleTop" >
             <intent-filter>
                 <action android:name="android.intent.action.SEARCH" />
             </intent-filter>
@@ -75,11 +75,31 @@ limitations under the License.
         <activity
             android:name=".activities.SettingsActivity"
             android:label="@string/title_activity_settings"
-            android:parentActivityName="org.apache.taverna.mobile.activities.DashboardMainActivity" >
+            android:parentActivityName=".activities.DashboardMainActivity" >
             <meta-data
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="org.apache.taverna.mobile.activities.DashboardMainActivity" />
         </activity>
+        <activity
+            android:name=".activities.RunResult"
+            android:label="@string/title_activity_run_result"
+            android:parentActivityName=".activities.WorkflowDetailActivity" >
+            <meta-data
+                android:name="android.support.PARENT_ACTIVITY"
+                android:value="org.apache.taverna.mobile.activities.WorkflowDetailActivity" />
+        </activity>
+        <activity
+            android:name="com.dropbox.client2.android.AuthActivity"
+            android:launchMode="singleTask"
+            android:configChanges="orientation|keyboard">
+            <intent-filter>
+                <!-- Change this to be db- followed by your app key -->
+                <data android:scheme="db-doicbvkfyzligh2" />
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.BROWSABLE"/>
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
     </application>
 
 </manifest>


[08/34] incubator-taverna-mobile git commit: parsing workflow favorites

Posted by ia...@apache.org.
parsing workflow favorites


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

Branch: refs/heads/master
Commit: 8720f7aeaf83b27936a99bbff4b0aa039a0e2758
Parents: d8239c7
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 3 14:03:33 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 3 14:03:33 2015 +0100

----------------------------------------------------------------------
 .../workflowdetails/WorkflowdetailFragment.java        | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8720f7ae/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 4ef1b0c..5bb6587 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
@@ -519,12 +519,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     sb.append(str); //in this string builder we have read the .t2flow or xml workflow from remote resource. Now we need to post that to the player.
                 bufferedReader.close();
 
-                //prepare post json data
-                JSONObject postJson = new JSONObject();
-                JSONObject datajson = new JSONObject();
-                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
-                datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
-                String post = "{\"workflow:\""+data+"}";
+//                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
+                String data = "{document:data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"}";
+              //  datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
+                String post = "{workflow:"+data+"}";
   //              postJson.put("workflow",datajson.toString());
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
@@ -551,9 +549,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             }catch (IOException e){
                 e.printStackTrace();
                 sb.append("Error reading remote workflow. Please try again later");
-            } catch (JSONException e) {
-                e.printStackTrace();
-                sb.append("Invalid data format: JSON DATA");
             }
             return sb.toString();
         }


[25/34] incubator-taverna-mobile git commit: fixing run workflow from local storage

Posted by ia...@apache.org.
fixing run workflow from local storage


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

Branch: refs/heads/master
Commit: 53d7bc87b3b41085a3ddb81a9b564b2dcf361711
Parents: ca95c34
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 11 23:01:49 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 11 23:01:49 2015 +0100

----------------------------------------------------------------------
 .../activities/DashboardMainActivity.java       |  7 -------
 .../workflowdetails/WorkflowdetailFragment.java |  3 ++-
 .../mobile/tavernamobile/TavernaPlayerAPI.java  | 22 ++++++++++----------
 .../apache/taverna/mobile/utils/RunTask.java    |  6 +++---
 .../taverna/mobile/utils/WorkflowOpen.java      |  8 ++++---
 5 files changed, 21 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/53d7bc87/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
index 8a90059..2afab50 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
@@ -99,13 +99,6 @@ public class DashboardMainActivity extends ActionBarActivity
         mPager = (ViewPager)findViewById(R.id.pager);
         mPager.setAdapter(mAdapter);
 
-      /*  //Handle search actions from a system sent intent
-        Intent searchIntent = 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(this,"Query = "+query, Toast.LENGTH_SHORT).show();
-        }*/
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/53d7bc87/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 5a5ee09..c2c5277 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
@@ -359,6 +359,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     private class WorkflowRunTask extends AsyncTask<String, Void, String>{
 
         private Context context;
+        TavernaPlayerAPI tavernaPlayerAPI = new TavernaPlayerAPI();
 
         private WorkflowRunTask(Context context) {
             this.context = context;
@@ -378,7 +379,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
                 URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_FRAMEWORK_URL+params[0]);
                 HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-                String userpass = "icep603@gmail.com" + ":" + "creationfox";
+                String userpass = tavernaPlayerAPI.getPlayerUserName(this.context) + ":" + tavernaPlayerAPI.getPlayerUserPassword(this.context);
                 String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
 
                 connection.setRequestProperty("Authorization", basicAuth);

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/53d7bc87/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 0b16de1..638094b 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
@@ -39,10 +39,11 @@ public class TavernaPlayerAPI {
     public static String PLAYER_RUN_URL = PLAYER_BASE_URL+"runs/";
     public static String PLAYER_RUN_FRAMEWORK_URL = PLAYER_RUN_URL+"new?workflow_id="; //returns a json 'framework' used for creating runs for the given workflow
 
-
     public TavernaPlayerAPI(Context context) {
         String server = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_server_url","/");
         String player = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_player_url","/");
+        String user = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_player_url","/");
+        String password = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_player_url","/");
         PLAYER_BASE_URL = player;
         SERVER_BASE_URL = server;
         PLAYER_WORKFLOW_URL = PLAYER_BASE_URL+"workflows/";
@@ -50,36 +51,35 @@ public class TavernaPlayerAPI {
         PLAYER_RUN_FRAMEWORK_URL = PLAYER_RUN_URL+"new?workflow_id=";
     }
 
-    public static String getPLAYER_BASE_URL(Context context) {
-        new TavernaPlayerAPI(context);
+    public TavernaPlayerAPI(){
+
+    }
+
+    public static String getPLAYER_BASE_URL() {
         return PLAYER_BASE_URL;
     }
 
-    public static String getSERVER_BASE_URL(Context ctx) {
-        new TavernaPlayerAPI(ctx);
+    public static String getSERVER_BASE_URL() {
         return SERVER_BASE_URL;
     }
 
-    public static String getPLAYER_WORKFLOW_URL(Context ctx) {
-        new TavernaPlayerAPI(ctx);
+    public static String getPLAYER_WORKFLOW_URL() {
         return PLAYER_WORKFLOW_URL;
     }
 
     public static String getPLAYER_RUN_URL(Context ctx) {
-        new TavernaPlayerAPI(ctx);
         return PLAYER_RUN_URL;
     }
 
     public static String getPLAYER_RUN_FRAMEWORK_URL(Context ctx) {
-        new TavernaPlayerAPI(ctx);
         return PLAYER_RUN_FRAMEWORK_URL;
     }
 
-    public static String getPlayerUserName(Context c){
+    public String getPlayerUserName(Context c){
         return PreferenceManager.getDefaultSharedPreferences(c).getString("pref_user","default");
     }
 
-    public static String getPlayerUserPassword(Context c){
+    public String getPlayerUserPassword(Context c){
         return PreferenceManager.getDefaultSharedPreferences(c).getString("pref_password","default");
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/53d7bc87/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java b/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
index 14e0939..d0710a5 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/RunTask.java
@@ -42,10 +42,10 @@ public class RunTask extends AsyncTask<String, Void, String> {
     protected String doInBackground(String... params) {
         StringBuffer sb = new StringBuffer();
         try {
-
+            TavernaPlayerAPI tavernaPlayerAPI = new TavernaPlayerAPI();
             URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL);
             HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-            String userpass = "icep603@gmail.com" + ":" + "creationfox";
+            String userpass = tavernaPlayerAPI.getPlayerUserName(this.context) + ":" + tavernaPlayerAPI.getPlayerUserPassword(this.context);
             String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
 
             connection.setRequestProperty("Authorization", basicAuth);
@@ -84,7 +84,7 @@ public class RunTask extends AsyncTask<String, Void, String> {
     @Override
     protected void onPostExecute(String s) {
         Log.i("RUN OutPut", s);
-//            progressDialog.dismiss();
+            progressDialog.dismiss();
         Intent runIntent = new Intent();
         runIntent.setClass(this.context, RunResult.class);
         runIntent.putExtra("runresult", s);

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/53d7bc87/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
index aaa13ff..eae8479 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowOpen.java
@@ -39,6 +39,7 @@ public class WorkflowOpen extends AsyncTask<String, Void, String> {
 
     private Context context;
     private ProgressDialog progressDialog;
+    TavernaPlayerAPI tavernaPlayerAPI = new TavernaPlayerAPI();
 
     public WorkflowOpen(Context context) {
         this.context = context;
@@ -61,13 +62,14 @@ public class WorkflowOpen extends AsyncTask<String, Void, String> {
         StringBuffer sb = new StringBuffer();
         String str = "";
         try {
+
              //prepare connection requests
             File objectFile = new File(params[0]); //the resource xml file representing the workflow to be uploaded to the player
             String playerurl = new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json";
             URL posturl = new URL(playerurl);
             HttpURLConnection connection = (HttpURLConnection) posturl.openConnection();
 
-            String user = "icep603@gmail.com" + ":" + "creationfox";
+            String user = tavernaPlayerAPI.getPlayerUserName(this.context) + ":" + tavernaPlayerAPI.getPlayerUserPassword(this.context);
             String basicAuth = "Basic " + Base64.encodeToString(user.getBytes(), Base64.DEFAULT);
             //read the file from remote resource and encode the stream with a base64 algorithm
 
@@ -184,7 +186,7 @@ public class WorkflowOpen extends AsyncTask<String, Void, String> {
 
                 URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_FRAMEWORK_URL+params[0]);
                 HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
-                String userpass = "icep603@gmail.com" + ":" + "creationfox";
+                String userpass = tavernaPlayerAPI.getPlayerUserName(this.context) + ":" + tavernaPlayerAPI.getPlayerUserPassword(this.context);
                 String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
 
                 connection.setRequestProperty("Authorization", basicAuth);
@@ -192,7 +194,7 @@ public class WorkflowOpen extends AsyncTask<String, Void, String> {
                 connection.setRequestMethod("GET");
                 connection.connect(); //send request
                 Log.i("RESPONSE Code", "" + connection.getResponseCode());
-                Log.i("RESPONSE Messsage", "" + connection.getResponseMessage());
+                Log.i("RESPONSE Message", "" + connection.getResponseMessage());
                 Log.i("Authorization ", "" + connection.getRequestProperty("Authorization"));
 
                 InputStream dis = connection.getInputStream();


[31/34] incubator-taverna-mobile git commit: formatting UI

Posted by ia...@apache.org.
formatting UI


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

Branch: refs/heads/master
Commit: cd80fd80a0e810f63dd0a184c1a94513500c41dc
Parents: 8e04540
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 12 13:10:17 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 12 13:10:17 2015 +0100

----------------------------------------------------------------------
 .../main/res/layout-xlarge/fragment_login.xml   |  9 +++-----
 .../main/res/layout/activity_flash_screen.xml   | 24 +++++---------------
 2 files changed, 9 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/cd80fd80/app/src/main/res/layout-xlarge/fragment_login.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout-xlarge/fragment_login.xml b/app/src/main/res/layout-xlarge/fragment_login.xml
index d037f1d..fb2d564 100644
--- a/app/src/main/res/layout-xlarge/fragment_login.xml
+++ b/app/src/main/res/layout-xlarge/fragment_login.xml
@@ -132,13 +132,10 @@ limitations under the License.
                 android:text="@string/brand"
                 android:id="@+id/textView7"
                 android:paddingTop="20dp"
-                android:textSize="20sp" />
+                android:textSize="20sp"
+                android:layout_gravity="center_horizontal"
+                android:gravity="center|center_horizontal" />
 
-            <ImageView
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:id="@+id/imageView3"
-                android:src="@mipmap/ic_poweredby" />
         </LinearLayout>
 
     </LinearLayout>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/cd80fd80/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 8acce99..bb7ae25 100644
--- a/app/src/main/res/layout/activity_flash_screen.xml
+++ b/app/src/main/res/layout/activity_flash_screen.xml
@@ -20,19 +20,6 @@ limitations under the License.
     android:paddingBottom="@dimen/activity_vertical_margin"
     tools:context="org.apache.taverna.mobile.activities.FlashScreenActivity">
 
-    <ImageView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:id="@+id/imageView"
-        android:src="@mipmap/ic_poweredby"
-        android:layout_alignParentBottom="true"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentEnd="true"
-        android:scaleType="fitCenter"
-        android:contentDescription="@string/brand"
-        android:layout_alignLeft="@+id/imageView2"
-        android:layout_alignStart="@+id/imageView2" />
-
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -53,8 +40,8 @@ limitations under the License.
         android:layout_alignEnd="@+id/textView"
         android:layout_alignLeft="@+id/textView"
         android:layout_alignStart="@+id/textView"
-        android:layout_above="@+id/imageView"
-        android:scaleType="fitStart" />
+        android:scaleType="fitStart"
+        android:layout_above="@+id/textView2" />
 
     <TextView
         android:layout_width="wrap_content"
@@ -62,16 +49,17 @@ limitations under the License.
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:text="@string/brand"
         android:id="@+id/textView2"
-        android:layout_alignParentBottom="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentStart="true"
-        android:layout_marginBottom="35dp" />
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        android:gravity="center" />
 
     <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"


[10/34] incubator-taverna-mobile git commit: implementing workflow run creation functionality

Posted by ia...@apache.org.
implementing workflow run creation functionality


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

Branch: refs/heads/master
Commit: e664260809804e9365ff7330727873a5c006ee2c
Parents: 1d88f27
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 3 17:32:29 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 3 17:32:29 2015 +0100

----------------------------------------------------------------------
 .../taverna/mobile/adapters/WorkflowAdapter.java   |  2 +-
 .../workflowdetails/WorkflowdetailFragment.java    | 17 +++++++----------
 .../mobile/utils/xmlparsers/WorkflowParser.java    |  1 -
 3 files changed, 8 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e6642608/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 d938230..2b40cc9 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
@@ -121,7 +121,7 @@ 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());
             mfav.add(uri);
-//        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+" ... ");

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e6642608/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 caa3bac..a1b42ab 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
@@ -507,7 +507,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     wconn.setRequestMethod("GET");
                     wconn.setDoOutput(true);
                     wconn.setRequestProperty("Accept", "application/xml");
-                    //wconn.setConnectTimeout(60000);
                     wconn.connect();
 
                 String user = "icep603@gmail.com" + ":" + "creationfox";
@@ -516,29 +515,26 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(wconn.getInputStream()));
                 String str = "";
                 while ((str = bufferedReader.readLine()) != null)
-                    sb.append(str); //in this string builder we have read the .t2flow or xml workflow from remote resource. Now we need to post that to the player.
+                    sb.append(str); //in this string builder we have read the workflow( as .t2flow or .xml) workflow from remote resource. Now we need to post that to the player.
                 bufferedReader.close();
+                wconn.disconnect();
 
                 String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
-//                String data = "{document:data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"}";
-              //  datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
                 String post = "{\"workflow\":"+data+"}";
-  //              postJson.put("workflow",datajson.toString());
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
                 System.out.println("BODY=>"+post);
-//                System.out.println(postJson.toString(2));
                 connection.setRequestProperty("Authorization", basicAuth);
-                connection.setRequestProperty("Accept", "application/json");
+                connection.setRequestProperty("Accept", "*/*");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("POST");
                 connection.connect(); //send request
 
-                DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+             /*   DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
                 dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
-                //dos.writeUTF("");
+
                 dos.flush();
-                dos.close();
+                dos.close();*/
 /*
                 InputStream dis = connection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(dis));
@@ -546,6 +542,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     sb.append(str);*/
                 System.out.println("Post Response Code: "+connection.getResponseCode());
                 System.out.println("Post response message: "+connection.getResponseMessage());
+                connection.disconnect();
             }catch (IOException e){
                 e.printStackTrace();
                 sb.append("Error reading remote workflow. Please try again later");

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e6642608/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
index a50bc41..f92837c 100644
--- 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
@@ -6,7 +6,6 @@ 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;
 


[18/34] incubator-taverna-mobile git commit: implemented workflow run Results. Results now show up in a new screen

Posted by ia...@apache.org.
implemented workflow run Results. Results now show up in a new screen


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

Branch: refs/heads/master
Commit: ee887f37a5de9351cf18f248387e20d5a56c4f62
Parents: 6d7108e
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 9 17:33:32 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 9 17:33:32 2015 +0100

----------------------------------------------------------------------
 .../taverna/mobile/activities/RunResult.java    |  39 +----
 .../mobile/fragments/WorkflowItemFragment.java  |   4 +-
 .../fragments/workflowdetails/RunFragment.java  | 144 +++++++++++++++++++
 .../workflowdetails/WorkflowdetailFragment.java |   9 +-
 app/src/main/res/layout/fragment_run_result.xml | 123 +++++++++++++++-
 app/src/main/res/menu/run_result.xml            |   9 +-
 app/src/main/res/values/strings.xml             |   3 +
 7 files changed, 283 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java b/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
index 2ae1a53..23d4c27 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
@@ -1,17 +1,12 @@
 package org.apache.taverna.mobile.activities;
 
-import android.support.v7.app.ActionBarActivity;
-import android.support.v7.app.ActionBar;
-import android.support.v4.app.Fragment;
 import android.os.Bundle;
-import android.view.LayoutInflater;
+import android.support.v7.app.ActionBarActivity;
 import android.view.Menu;
 import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.os.Build;
 
 import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.fragments.workflowdetails.RunFragment;
 
 public class RunResult extends ActionBarActivity {
 
@@ -21,47 +16,21 @@ public class RunResult extends ActionBarActivity {
         setContentView(R.layout.activity_run_result);
         if (savedInstanceState == null) {
             getSupportFragmentManager().beginTransaction()
-                    .add(R.id.container, new PlaceholderFragment())
+                    .add(R.id.container, RunFragment.newInstance())
                     .commit();
         }
     }
 
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // Inflate the menu; this adds items to the action bar if it is present.
-        getMenuInflater().inflate(R.menu.run_result, menu);
-        return true;
+        return false;
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        // Handle action bar item clicks here. The action bar will
-        // automatically handle clicks on the Home/Up button, so long
-        // as you specify a parent activity in AndroidManifest.xml.
-        int id = item.getItemId();
-
-        //noinspection SimplifiableIfStatement
-        if (id == R.id.action_settings) {
-            return true;
-        }
 
         return super.onOptionsItemSelected(item);
     }
 
-    /**
-     * A placeholder fragment containing a simple view.
-     */
-    public static class PlaceholderFragment extends Fragment {
-
-        public PlaceholderFragment() {
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                                 Bundle savedInstanceState) {
-            View rootView = inflater.inflate(R.layout.fragment_run_result, container, false);
-            return rootView;
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/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 fd53c44..a2e2a4d 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
@@ -262,9 +262,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
                         ladapter.addWorkflow(workflow);
                     }
                 }
-            else {
-                Toast.makeText(getActivity(), "No workflows available", Toast.LENGTH_SHORT).show();
-            }
+
             mListView.swapAdapter(ladapter, true);
             if (ladapter.getItemCount() == 0)
                 Toast.makeText(getActivity(), "No workflows found matching criteria", Toast.LENGTH_SHORT).show();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
new file mode 100644
index 0000000..c1d8cdf
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
@@ -0,0 +1,144 @@
+package org.apache.taverna.mobile.fragments.workflowdetails;
+
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+import org.apache.taverna.mobile.R;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.w3c.dom.Text;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link RunFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class RunFragment extends Fragment implements View.OnClickListener{
+
+    private View rootView;
+    private static int RUNID;
+    private TextView runIdTextView,runNameTextView;
+    private ImageButton status;
+    private  TextView runStateTextView, runStartTime,runEndTime, runInputsText;
+    private  Button downloadOutput,downloadLogs;
+
+    /**
+     * Use this factory method to create a new instance of
+     * this fragment using the provided parameters.
+     *
+     * @return A new instance of fragment RunFragment.
+     */
+    public static RunFragment newInstance() {
+        RunFragment fragment = new RunFragment();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        RUNID = 0 ;
+        return fragment;
+    }
+
+    public RunFragment() {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setHasOptionsMenu(true);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        rootView = inflater.inflate(R.layout.fragment_run_result, container, false);
+         runIdTextView = (TextView) rootView.findViewById(R.id.textview_runid);
+         runNameTextView = (TextView) rootView.findViewById(R.id.textView_runName);
+         status = (ImageButton) rootView.findViewById(R.id.statusButton);
+         runStateTextView = (TextView) rootView.findViewById(R.id.statusTextView);
+         runStartTime = (TextView) rootView.findViewById(R.id.start_time);
+         runEndTime = (TextView) rootView.findViewById(R.id.runfinish);
+         runInputsText = (TextView) rootView.findViewById(R.id.runinputsTextView);
+         downloadOutput = (Button) rootView.findViewById(R.id.buttonWorkflowDownloadOutput);
+         downloadLogs = (Button) rootView.findViewById(R.id.downloadRunLogs);
+
+        return rootView;
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu,MenuInflater menuInflater) {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        menuInflater.inflate(R.menu.run_result, menu);
+        return;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        String runresult = getActivity().getIntent().getStringExtra("runresult");
+        try{
+            JSONObject resultObject = new JSONObject(runresult);
+            String runName = resultObject.getString("name");
+            String runId = ""+resultObject.get("id");
+            String runState = resultObject.getString("state");
+            String runStarted = resultObject.getString("start_time");
+            String runEnded = resultObject.getString("finish_time");
+            String runInputs = resultObject.getString("inputs");
+
+                runIdTextView.setText(runId);
+                runNameTextView.setText(runName);
+
+                if(runState.contains("Pending"))
+                    status.setImageResource(android.R.drawable.presence_busy);
+            else if (runState.contains("Running"))
+                    status.setImageResource(android.R.drawable.presence_away);
+            else if (runState.contains("Finished"))
+                    status.setImageResource(android.R.drawable.presence_online);
+            else if (runState.contains("Failed"))
+                    status.setImageResource(android.R.drawable.presence_offline);
+            else
+                status.setImageResource(android.R.drawable.presence_invisible);
+
+                runStateTextView.setText(runState);
+                runStartTime.setHint(runStarted);
+                runEndTime.setHint(runEnded);
+                runInputsText.setText(runInputs);
+
+                downloadOutput.setOnClickListener(this);
+                downloadLogs.setOnClickListener(this);
+
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+        if (id == R.id.action_refresh) {
+            //TODO start task to retrieve current status of workflow and further details
+            return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void reloadRunResult(){
+        //TODO reload the run results when refreshed
+    }
+
+    @Override
+    public void onClick(View view) {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/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 e0aa350..bbc0fc6 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
@@ -31,6 +31,7 @@ import android.app.LoaderManager;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.Loader;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -56,6 +57,7 @@ import android.widget.ZoomControls;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
+import org.apache.taverna.mobile.activities.RunResult;
 import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
 import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
@@ -194,7 +196,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     @Override
     public void onResume() {
         super.onResume();
-        if(!LOAD_STATE)
+     //   if(!LOAD_STATE)
             getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
     }
 
@@ -204,7 +206,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         LOAD_STATE = true;
     }
 
-
     @Override
     public Loader<Workflow> onCreateLoader(int i, Bundle bundle) {
         progressDialog.show();
@@ -645,6 +646,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             Log.i("RUN OutPut", s);
             progressDialog.dismiss();
             //TODO startup the runActivity to display the run results
+            Intent runIntent = new Intent();
+            runIntent.setClass(this.context, RunResult.class);
+            runIntent.putExtra("runresult", s);
+            startActivity(runIntent);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/app/src/main/res/layout/fragment_run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_run_result.xml b/app/src/main/res/layout/fragment_run_result.xml
index ccb985c..ee8cc46 100644
--- a/app/src/main/res/layout/fragment_run_result.xml
+++ b/app/src/main/res/layout/fragment_run_result.xml
@@ -1,12 +1,125 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
     android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     android:paddingBottom="@dimen/activity_vertical_margin"
-    tools:context="org.apache.taverna.mobile.activities.RunResult$PlaceholderFragment">
+    tools:context="org.apache.taverna.mobile.activities.RunResult$PlaceholderFragment"
+    android:orientation="vertical"
+    >
 
-    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
-        android:layout_height="wrap_content" />
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp">
 
-</RelativeLayout>
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceLarge"
+            android:id="@+id/textView_runName"
+            android:layout_weight="2" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@drawable/abc_btn_radio_to_on_mtrl_000"
+            android:id="@+id/textview_runid"
+            android:layout_gravity="left"
+            android:layout_weight="1"
+            android:text="1"
+            android:gravity="center" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp">
+
+        <ImageButton
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/statusButton"
+            android:src="@android:drawable/presence_online"
+            android:background="#eee" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="Medium Text"
+            android:id="@+id/statusTextView" />
+    </LinearLayout>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="@string/runstarted"
+        android:id="@+id/textView11"
+        android:gravity="center"
+        android:layout_gravity="center_horizontal"
+        android:textSize="25dp" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:id="@+id/start_time"
+        android:hint="started" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:text="@string/run_finishtime"
+        android:id="@+id/textView12"
+        android:textSize="25dp"
+        android:layout_gravity="center_horizontal" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:id="@+id/runfinish"
+        android:hint="finish" />
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:text="inputs from run"
+        android:id="@+id/runinputsTextView"
+        android:minLines="5"
+        android:layout_marginTop="10dp"
+        android:layout_weight="1.5"
+        android:layout_marginBottom="10dp" />
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <Button
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="download output"
+            android:id="@+id/buttonWorkflowDownloadOutput"
+            android:layout_weight="1"
+            android:background="#1F9FEA"
+            android:layout_marginRight="5dp" />
+
+        <Button
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="Download Logs"
+            android:id="@+id/downloadRunLogs"
+            android:layout_gravity="center_horizontal"
+            android:layout_weight="1"
+            android:background="#1F9FEA"
+            android:layout_marginLeft="5dp" />
+    </LinearLayout>
+
+</LinearLayout>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/app/src/main/res/menu/run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/menu/run_result.xml b/app/src/main/res/menu/run_result.xml
index 35d088f..e10c15a 100644
--- a/app/src/main/res/menu/run_result.xml
+++ b/app/src/main/res/menu/run_result.xml
@@ -1,7 +1,10 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
-    tools:context="org.apache.taverna.mobile.activities.RunResult">
-    <item android:id="@+id/action_settings" android:title="@string/action_settings"
-        android:orderInCategory="100" app:showAsAction="never" />
+    tools:context="org.apache.taverna.mobile.fragments.workflowdetails.RunFragment">
+
+    <item android:id="@+id/action_refresh"
+        android:title="Refresh"
+        app:showAsAction="always|withText"
+        android:icon="@android:drawable/stat_notify_sync"/>
 </menu>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/ee887f37/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 cd8c074..d785370 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -94,5 +94,8 @@ limitations under the License.
     <string name="playerpass">Password</string>
     <string name="myexperimenttitle">Configure MyExperiment Account</string>
     <string name="myexperimentsummary">Username used to login to MyExperiment</string>
+    <string name="title_activity_run_result">Workflow Run Result</string>
+    <string name="runstarted">Run Started</string>
+    <string name="run_finishtime">Run finish Time</string>
 
 </resources>


[21/34] incubator-taverna-mobile git commit: implemented workflow run Results. Results now show up in a new screen

Posted by ia...@apache.org.
implemented workflow run Results. Results now show up in a new screen


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

Branch: refs/heads/master
Commit: 5699f7c7e6161132fe7347ed04970d8260b17051
Parents: 45b4e37
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 10 01:35:11 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 10 01:35:11 2015 +0100

----------------------------------------------------------------------
 .../fragments/workflowdetails/RunFragment.java  | 98 +++++++++++++++++++-
 1 file changed, 96 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/5699f7c7/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
index 3622944..3dbde9e 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/RunFragment.java
@@ -1,9 +1,12 @@
 package org.apache.taverna.mobile.fragments.workflowdetails;
 
 
+import android.content.Context;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.text.method.ScrollingMovementMethod;
+import android.util.Base64;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -15,10 +18,21 @@ import android.widget.ImageButton;
 import android.widget.TextView;
 
 import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.w3c.dom.Text;
 
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Timer;
+import java.util.TimerTask;
+
 /**
  * A simple {@link Fragment} subclass.
  * Use the {@link RunFragment#newInstance} factory method to
@@ -32,6 +46,7 @@ public class RunFragment extends Fragment implements View.OnClickListener{
     private ImageButton status;
     private  TextView runStateTextView, runStartTime,runEndTime, runInputsText;
     private  Button downloadOutput,downloadLogs;
+    private int run_id;
 
     /**
      * Use this factory method to create a new instance of
@@ -87,7 +102,8 @@ public class RunFragment extends Fragment implements View.OnClickListener{
         try{
             JSONObject resultObject = new JSONObject(runresult);
             String runName = resultObject.getString("name");
-            String runId = ""+resultObject.get("id");
+            run_id = (int) resultObject.get("id");
+            String runId = ""+run_id;
             String runState = resultObject.getString("state");
             String runStarted = resultObject.getString("start_time");
             String runEnded = resultObject.getString("finish_time");
@@ -128,7 +144,7 @@ public class RunFragment extends Fragment implements View.OnClickListener{
         // as you specify a parent activity in AndroidManifest.xml.
         int id = item.getItemId();
         if (id == R.id.action_refresh) {
-            //TODO start task to retrieve current status of workflow and further details
+            reloadRunResult();
             return true;
         }
 
@@ -137,10 +153,88 @@ public class RunFragment extends Fragment implements View.OnClickListener{
 
     private void reloadRunResult(){
         //TODO reload the run results when refreshed
+        Timer t = new Timer();
+        t.scheduleAtFixedRate(new RunTimerTask(getActivity(), run_id), 0, 5000);
     }
 
     @Override
     public void onClick(View view) {
 
     }
+
+    public void updateRun(final JSONObject runInfo){
+
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    runStartTime.setHint(runInfo.getString("start_time"));
+                    runEndTime.setHint(runInfo.getString("finish_time"));
+
+                if(runInfo.getString("state").contains("Pending"))
+                    status.setImageResource(android.R.drawable.presence_busy);
+                else if (runInfo.getString("state").contains("Running"))
+                    status.setImageResource(android.R.drawable.presence_away);
+                else if (runInfo.getString("state").contains("Finished"))
+                    status.setImageResource(android.R.drawable.presence_online);
+                else if (runInfo.getString("state").contains("Failed"))
+                    status.setImageResource(android.R.drawable.presence_offline);
+                else
+                    status.setImageResource(android.R.drawable.presence_invisible);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+    }
+
+    private class RunTimerTask extends TimerTask {
+
+        private Context context;
+        private int runid;
+
+        public RunTimerTask(Context context, int runID) {
+            this.context = context;
+            this.runid = runID;
+        }
+
+        @Override
+        public void run() {
+            //QUERY player for the continuous status of the workflow run and update the ui with the results
+            StringBuffer sb = new StringBuffer();
+            try {
+
+                URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL+this.runid);
+                HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection();
+                String userpass = "icep603@gmail.com" + ":" + "creationfox";
+                String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT);
+
+      //          connection.setRequestProperty("Authorization", basicAuth);
+                connection.setRequestProperty("Accept", "application/json");
+    //            connection.setRequestProperty("Content-Type", "application/json");
+                connection.setRequestMethod("GET");
+                connection.connect(); //send request
+
+                InputStream dis = connection.getInputStream();
+                BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+
+                String jsonData = "";
+                while ((jsonData = br.readLine()) != null) {
+                //json results of the full workflow details
+                    sb.append(jsonData);
+                }
+                dis.close();
+                br.close();
+                connection.disconnect();
+
+                JSONObject runInfo = new JSONObject(sb.toString());
+                updateRun(runInfo);
+
+            }catch (IOException ex){
+                ex.printStackTrace();
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
 }


[09/34] incubator-taverna-mobile git commit: parsing workflow favorites

Posted by ia...@apache.org.
parsing workflow favorites


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

Branch: refs/heads/master
Commit: 1d88f27162b81c30a6201ed8185f19a8da496b46
Parents: 8720f7a
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 3 14:37:16 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 3 14:37:16 2015 +0100

----------------------------------------------------------------------
 .../fragments/workflowdetails/WorkflowdetailFragment.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1d88f271/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 5bb6587..caa3bac 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
@@ -519,17 +519,17 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     sb.append(str); //in this string builder we have read the .t2flow or xml workflow from remote resource. Now we need to post that to the player.
                 bufferedReader.close();
 
-//                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
-                String data = "{document:data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"}";
+                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
+//                String data = "{document:data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"}";
               //  datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
-                String post = "{workflow:"+data+"}";
+                String post = "{\"workflow\":"+data+"}";
   //              postJson.put("workflow",datajson.toString());
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
                 System.out.println("BODY=>"+post);
 //                System.out.println(postJson.toString(2));
                 connection.setRequestProperty("Authorization", basicAuth);
-        //        connection.setRequestProperty("Accept", "application/json");
+                connection.setRequestProperty("Accept", "application/json");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("POST");
                 connection.connect(); //send request


[26/34] incubator-taverna-mobile git commit: fixing run workflow from local storage

Posted by ia...@apache.org.
fixing run workflow from local storage


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

Branch: refs/heads/master
Commit: 1619a17271dabd086e248f7f29c2b83ebf07798f
Parents: 53d7bc8
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 11 23:13:14 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 11 23:13:14 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/drawable/ic_download_web.jpg       | Bin 0 -> 2230 bytes
 .../main/res/layout/fragment_workflow_detail.xml    |   5 +++--
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1619a172/app/src/main/res/drawable/ic_download_web.jpg
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_download_web.jpg b/app/src/main/res/drawable/ic_download_web.jpg
new file mode 100755
index 0000000..27b0373
Binary files /dev/null and b/app/src/main/res/drawable/ic_download_web.jpg differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1619a172/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 8a9b7fc..9bab19c 100644
--- a/app/src/main/res/layout/fragment_workflow_detail.xml
+++ b/app/src/main/res/layout/fragment_workflow_detail.xml
@@ -127,11 +127,12 @@ limitations under the License.
             android:background="#33b5e5"
             style="android:buttonBarButtonStyle"
             android:text="@string/workflow_download"
-            android:drawableLeft="@drawable/download"
             android:layout_marginLeft="2dp"
             android:layout_marginRight="2dp"
             android:id="@+id/download_wk"
-            android:paddingLeft="5dp" />
+            android:paddingLeft="5dp"
+            android:elegantTextHeight="true"
+            android:drawableLeft="@drawable/ic_download_web" />
         <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"


[04/34] incubator-taverna-mobile git commit: Implementing workflow run creation over Taverna Player

Posted by ia...@apache.org.
Implementing workflow run creation over Taverna Player


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

Branch: refs/heads/master
Commit: 8d1bf189a51f8fc14b99fe9faf389e6ba0b2ab64
Parents: d743850
Author: larrytech7 <la...@gmail.com>
Authored: Thu Jul 2 01:02:15 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Thu Jul 2 01:02:15 2015 +0100

----------------------------------------------------------------------
 .../activities/WorkflowDetailActivity.java      |   3 -
 .../mobile/fragments/WorkflowItemFragment.java  |  44 +++++++-
 .../workflowdetails/WorkflowdetailFragment.java | 103 ++++++++++++++++++-
 .../mobile/tavernamobile/TavernaPlayerAPI.java  |   8 ++
 app/src/main/res/values/strings.xml             |   6 ++
 app/src/main/res/xml/pref_general.xml           |  47 ++++++++-
 6 files changed, 203 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
index 7c43b73..b0ccb12 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
@@ -31,10 +31,8 @@ import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.ActionBarActivity;
-import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
-import android.view.Window;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowAboutFragment;
@@ -141,7 +139,6 @@ public class WorkflowDetailActivity extends ActionBarActivity {
             return "";
         }
 
-
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/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 b206f01..bd0742d 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
@@ -30,6 +30,13 @@ import android.app.SearchManager;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
@@ -59,6 +66,7 @@ import org.apache.taverna.mobile.tavernamobile.Workflow;
 import org.apache.taverna.mobile.utils.AvatarLoader;
 import org.apache.taverna.mobile.utils.WorkflowLoader;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
@@ -333,6 +341,8 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
                 connection.connect();
                 InputStream input = connection.getInputStream();
                 myBitmap = BitmapFactory.decodeStream(input);
+                input.close();
+
             } catch (IOException e) {
                 e.printStackTrace();
             }
@@ -343,7 +353,39 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
         protected void onPostExecute(Bitmap bitmap) {
             img.setImageBitmap(bitmap);
 ///            img.setBackground();
-            notify();
+//            notify();
+        }
+        private Bitmap ProcessingBitmap(Bitmap bmp){
+            Bitmap bm1 = null;
+            Bitmap newBitmap = null;
+
+                bm1 = bmp;
+                int w = bm1.getWidth();
+                int h = bm1.getHeight();
+
+                Bitmap.Config config = bm1.getConfig();
+                if(config == null){
+                    config = Bitmap.Config.ARGB_8888;
+                }
+
+                newBitmap = Bitmap.createBitmap(w, h, config);
+                Canvas newCanvas = new Canvas(newBitmap);
+                newCanvas.drawColor(Color.WHITE);
+
+                Paint paint = new Paint();
+                paint.setColor(Color.TRANSPARENT);
+                Rect frame = new Rect(
+                        (int)(w*0.05),
+                        (int)(w*0.05),
+                        (int)(w*0.95),
+                        (int)(h*0.95));
+                RectF frameF = new RectF(frame);
+                newCanvas.drawRoundRect(frameF, (float)(w*0.5), (float)(h*0.05), paint);
+
+                paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SCREEN));
+                newCanvas.drawBitmap(bm1, 0, 0, paint);
+
+            return newBitmap;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/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 8d96e13..c052870 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
@@ -76,6 +76,7 @@ import org.w3c.dom.Text;
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -160,7 +161,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         switch(view.getId()){
             case R.id.run_wk:
                 //TODO implement functionality to issue a run request to the Taverna PLAYER to run the current workflow
-                new WorkflowRunTask(getActivity()).execute(""+WORKFLO_ID);
+                //new WorkflowRunTask(getActivity()).execute(""+WORKFLO_ID);
+                new WorkflowProcessTask(getActivity()).execute(download_url);
                 break;
             case R.id.download_wk:
                 // start the android Download manager to start downloading a remote workflow file
@@ -305,6 +307,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             }
         });
     }
+
     private static class LoadImageThread extends AsyncTask<String, Void, Bitmap>{
           ImageView imageView;
           String src ;
@@ -355,7 +358,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         edt.setId(i);
         return edt;
     }
-//fetch and compute the framework on which the run inputs are to be built and entered
+    //fetch and compute the framework on which the run inputs are to be built and entered
     private class WorkflowRunTask extends AsyncTask<String, Void, String>{
 
         private Context context;
@@ -477,7 +480,100 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             runDialog.show();
         }
     }
-    //Send request for the execution of a run on the server through the player
+
+    /**
+     *    Send request for the execution of a run on a Taverna server through the Taverna player using the Player API
+     *    This process passes through several steps,\n
+     *    1- Downloading and caching a local version of the workflow whose run we need \n
+     *    2- uploading the workflow through the portal to register it so a run can be generated from it. The request requires some authentication
+     *    3- Retrieving the results and extracting data required to create a run (the workflow_id) as provided by the results
+     *    4- Posting a run request to the player so that a new run can be created and started
+     *    5- retrieving a run framework so that users can know what types of input is expected for a successful run
+     *    6- retrieving and displaying run results
+     */
+    private class WorkflowProcessTask extends AsyncTask<String, Void, String>{
+
+        private Context context;
+
+        private WorkflowProcessTask(Context context) {
+            this.context = context;
+        }
+
+        @Override
+        protected void onPreExecute() {
+            progressDialog.setMessage("Uploading Workflow ... ");
+            progressDialog.show();
+        }
+
+        @Override
+        protected String doInBackground(String... params) {
+            StringBuffer sb = new StringBuffer();
+            try {
+                //prepare connection requests
+                URL workflowurl = new URL(params[0]); //the resource xml file representing the workflow to be uploaded to the player
+                URL posturl = new URL(new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json");
+                HttpURLConnection connection = (HttpURLConnection) posturl.openConnection();
+                HttpURLConnection wconn = (HttpURLConnection) workflowurl.openConnection();
+                    wconn.setRequestMethod("GET");
+                    wconn.setDoOutput(true);
+                    wconn.setRequestProperty("Accept", "application/xml");
+                    //wconn.setConnectTimeout(60000);
+                wconn.connect();
+
+                String user = "icep603@gmail.com" + ":" + "creationfox";
+                String basicAuth = "Basic " + Base64.encodeToString(user.getBytes(), Base64.DEFAULT);
+                //read the file from remote resource and encode the stream with a base64 algorithm
+                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(wconn.getInputStream()));
+                String str = "";
+                while ((str = bufferedReader.readLine()) != null)
+                    sb.append(str); //in this string builder we have read the .t2flow or xml workflow from remote resource. Now we need to post that to the player.
+                bufferedReader.close();
+
+                //prepare post json data
+                JSONObject postJson = new JSONObject();
+                JSONObject datajson = new JSONObject();
+                datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
+                postJson.put("workflow",datajson.toString());
+                //clear sb so that we can use it again to fetch results from this post request
+                sb.delete(0,sb.length()-1);
+                System.out.println(postJson.toString(2));
+                connection.setRequestProperty("Authorization", basicAuth);
+           //     connection.setRequestProperty("Accept", "application/json");
+                connection.setRequestProperty("Content-Type", "application/json");
+                connection.setRequestMethod("POST");
+                connection.connect(); //send request
+
+                DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+                dos.writeBytes(postJson.toString());//write post data which is a formatted json data representing body of workflow
+                //dos.writeUTF("");
+                dos.flush();
+                dos.close();
+
+                InputStream dis = connection.getInputStream();
+                BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+                while ((str = br.readLine())!= null)
+                    sb.append(str);
+                System.out.println("Post Response Code: "+connection.getResponseCode());
+                System.out.println("Post response message: "+connection.getResponseMessage());
+            }catch (IOException e){
+                e.printStackTrace();
+                sb.append("Error reading remote workflow. Please try again later");
+            } catch (JSONException e) {
+                e.printStackTrace();
+                sb.append("Invalid data format: JSON DATA");
+            }
+            return sb.toString();
+        }
+
+        @Override
+        protected void onPostExecute(String s) {
+            System.out.println(s);
+            progressDialog.dismiss();
+        }
+    }
+    /**
+     * creates a new workflow run from the
+     */
     private class RunTask extends AsyncTask<String, Void, String>{
 
         private Context context;
@@ -542,6 +638,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         protected void onPostExecute(String s) {
             Log.i("RUN OutPut", s);
             progressDialog.dismiss();
+            //TODO startup the runActivity to display the run results
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/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 63d3b06..0b16de1 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
@@ -75,6 +75,14 @@ public class TavernaPlayerAPI {
         return PLAYER_RUN_FRAMEWORK_URL;
     }
 
+    public static String getPlayerUserName(Context c){
+        return PreferenceManager.getDefaultSharedPreferences(c).getString("pref_user","default");
+    }
+
+    public static String getPlayerUserPassword(Context c){
+        return PreferenceManager.getDefaultSharedPreferences(c).getString("pref_password","default");
+    }
+
     public static class Authenticator extends java.net.Authenticator{
         private String username, password;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/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 dc320b3..3bf6202 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -88,5 +88,11 @@ limitations under the License.
     <string name="about">Mobile Application for managing Taverna workflows on the fly.<br/>
                          View, run and download workflows at a convenience on your android mobile<br/>
                         device. \n\n <br/><b>Developed at Apache Taverna and Powered by MyExperiment</b><br/></string>
+    <string name="playerconfig">Configure Player Account</string>
+    <string name="playerconfig_summary">Set username/password used to login to Taverna player portal</string>
+    <string name="playeruser">Username/email</string>
+    <string name="playerpass">Password</string>
+    <string name="myexperimenttitle">Configure MyExperiment Account</string>
+    <string name="myexperimentsummary">Set username/password used to login to MyExperiment</string>
 
 </resources>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8d1bf189/app/src/main/res/xml/pref_general.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index cfa5985..03a0b11 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -28,6 +28,51 @@
         android:capitalize="words"
         android:singleLine="true"
         android:maxLines="1" />
-
+    <PreferenceCategory
+        android:icon="@drawable/gear_icon"
+        android:summary="@string/playerconfig_summary"
+        android:title="@string/playerconfig">
+        <EditTextPreference
+            android:key="pref_user"
+            android:title="@string/playeruser"
+            android:summary="@string/pref_server_des"
+            android:defaultValue="@string/pref_server_default"
+            android:selectAllOnFocus="true"
+            android:inputType="textEmailAddress|textPersonName"
+            android:singleLine="true"
+            android:maxLines="1" />
+        <EditTextPreference
+            android:key="pref_password"
+            android:title="@string/playerpass"
+            android:summary="@string/pref_server_des"
+            android:defaultValue="@string/pref_server_default"
+            android:selectAllOnFocus="true"
+            android:inputType="textPassword"
+            android:singleLine="true"
+            android:maxLines="1" />
+        </PreferenceCategory>
+    <PreferenceCategory
+        android:icon="@drawable/gear_icon"
+        android:summary="@string/myexperimentsummary"
+        android:title="@string/myexperimenttitle">
+        <EditTextPreference
+            android:key="myexperimentuser"
+            android:title="@string/playeruser"
+            android:summary="@string/pref_server_des"
+            android:defaultValue="@string/pref_server_default"
+            android:selectAllOnFocus="true"
+            android:inputType="textEmailAddress|textPersonName"
+            android:singleLine="true"
+            android:maxLines="1" />
+        <EditTextPreference
+            android:key="myexperimentpass"
+            android:title="@string/playerpass"
+            android:summary="@string/pref_server_des"
+            android:defaultValue="@string/pref_server_default"
+            android:selectAllOnFocus="true"
+            android:inputType="textPassword"
+            android:singleLine="true"
+            android:maxLines="1" />
+    </PreferenceCategory>
 
 </PreferenceScreen>


[12/34] incubator-taverna-mobile git commit: Fixed mark workflow as favorite. Button still disappears though but functions great.

Posted by ia...@apache.org.
Fixed mark workflow as favorite. Button still disappears though but functions great.


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

Branch: refs/heads/master
Commit: e031e8fd06b741fc9fd4eba2863a16573be18c05
Parents: c87abf8
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 5 19:31:23 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 5 19:31:23 2015 +0100

----------------------------------------------------------------------
 .../mobile/adapters/WorkflowAdapter.java        | 21 ++++++++++----------
 .../workflowdetails/WorkflowdetailFragment.java |  6 +++---
 2 files changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e031e8fd/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 c18d60c..4f57766 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
@@ -114,13 +114,9 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         final String author = workflow.get(i).getWorkflow_author();
         final String title = workflow.get(i).getWorkflow_title();
         String description  = workflow.get(i).getWorkflow_description();
-        String uri = workflow.get(i).getWorkflow_details_url();
+        final String uri = workflow.get(i).getWorkflow_details_url();
         final String desc_full = description;
-        final ArrayList<Object> mfav = new ArrayList<Object>();
 
-        //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());
-            mfav.add(uri);
         if(description.length() > 80) description = description.substring(0, 79);
         viewHolder.author_name.setHint(author);
         viewHolder.wk_title.setHint(title);
@@ -144,7 +140,16 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
+                ArrayList<Object> mfav = new ArrayList<Object>();
+                //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());
+                mfav.add(uri);
                 mfav.add(viewHolder.author_name.getText());
+                try {
+                    favDB.put(mfav);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
                 boolean saved =  favDB.save();
                 if(saved) {
                     Toast.makeText(context, "Workflow marked as favorite", Toast.LENGTH_SHORT).show();
@@ -165,11 +170,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
                     viewHolder.infolayout.setVisibility(View.GONE);
             }
         });
-        try {
-            favDB.put(mfav);
-        } catch (JSONException e) {
-            e.printStackTrace();
-        }
+
         synchronized (this){
             new DetailLinkLoader().execute(uri);
         }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e031e8fd/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 5e6594e..68ebf09 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
@@ -518,10 +518,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     sb.append(str); //in this string builder we have read the workflow( as .t2flow or .xml) workflow from remote resource. Now we need to post that to the player.
                 bufferedReader.close();
                 wconn.disconnect();
-
+//PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHM6c2N1ZmwgeG1sbnM6cz0iaHR0cDovL29yZy5lbWJsLmViaS5lc2NpZW5jZS94c2N1ZmwvMC4xYWxwaGEiIHZlcnNpb249IjAuMiIgbG9nPSIwIj4KICA8czp3b3JrZmxvd2Rlc2NyaXB0aW9uIGxzaWQ9InVybjpsc2lkOnd3dy5teWdyaWQub3JnLnVrOm9wZXJhdGlvbjpLNlpDRzZJV05TMCIgYXV0aG9yPSIiIHRpdGxlPSIiIC8+CiAgPHM6cHJvY2Vzc29yIG5hbWU9IlN0cmluZ19Db25zdGFudCIgYm9yaW5nPSJ0cnVlIj4KICAgIDxzOnN0cmluZ2NvbnN0YW50Pmh0dHA6Ly93d3cuY3MubWFuLmFjLnVrL35nb2RlcmlzYS9QaG90by5qcGc8L3M6c3RyaW5nY29uc3RhbnQ+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpwcm9jZXNzb3IgbmFtZT0iR2V0X2ltYWdlX2Zyb21fVVJMIj4KICAgIDxzOmxvY2FsPm9yZy5lbWJsLmViaS5lc2NpZW5jZS5zY3VmbHdvcmtlcnMuamF2YS5XZWJJbWFnZUZldGNoZXI8L3M6bG9jYWw+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpsaW5rIHNvdXJjZT0iU3RyaW5nX0NvbnN0YW50OnZhbHVlIiBzaW5rPSJHZXRfaW1hZ2VfZnJvbV9VUkw6dXJsIiAvPgogIDxzOmxpbmsgc291cmNlPSJHZXRfaW1hZ2VfZnJvbV9VUkw6aW1hZ2UiIHNpbms9InZpeiIgLz4KICA8czpzaW5rIG5hbWU9InZpeiIgLz4KPC9zOnNjdWZsPgoKCg==
                        // Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.DEFAULT)
                 String data = "{\"document\":\"data:application/octet-stream;base64," +
-                        "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHM6c2N1ZmwgeG1sbnM6cz0iaHR0cDovL29yZy5lbWJsLmViaS5lc2NpZW5jZS94c2N1ZmwvMC4xYWxwaGEiIHZlcnNpb249IjAuMiIgbG9nPSIwIj4KICA8czp3b3JrZmxvd2Rlc2NyaXB0aW9uIGxzaWQ9InVybjpsc2lkOnd3dy5teWdyaWQub3JnLnVrOm9wZXJhdGlvbjpLNlpDRzZJV05TMCIgYXV0aG9yPSIiIHRpdGxlPSIiIC8+CiAgPHM6cHJvY2Vzc29yIG5hbWU9IlN0cmluZ19Db25zdGFudCIgYm9yaW5nPSJ0cnVlIj4KICAgIDxzOnN0cmluZ2NvbnN0YW50Pmh0dHA6Ly93d3cuY3MubWFuLmFjLnVrL35nb2RlcmlzYS9QaG90by5qcGc8L3M6c3RyaW5nY29uc3RhbnQ+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpwcm9jZXNzb3IgbmFtZT0iR2V0X2ltYWdlX2Zyb21fVVJMIj4KICAgIDxzOmxvY2FsPm9yZy5lbWJsLmViaS5lc2NpZW5jZS5zY3VmbHdvcmtlcnMuamF2YS5XZWJJbWFnZUZldGNoZXI8L3M6bG9jYWw+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpsaW5rIHNvdXJjZT0iU3RyaW5nX0NvbnN0YW50OnZhbHVlIiBzaW5rPSJHZXRfaW1hZ2VfZnJvbV9VUkw6dXJsIiAvPgogIDxzOmxpbmsgc291cmNlPSJHZXRfaW1hZ2VfZnJvbV9VUkw6aW1hZ2UiIHNpbms9InZpeiIgLz4KICA8czpzaW5rIG5hbWU9InZpeiIgLz4KPC9zOnNjdWZsPgoKCg=="+"\"}";
+                        Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.URL_SAFE|Base64.NO_WRAP)+"\"}";
                 String post = "{\"workflow\":"+data+"}";
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
@@ -531,7 +531,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 connection.setRequestProperty("Accept", "*/*");
                // connection.setRequestProperty("Content-Length", "10165");
                 connection.setRequestProperty("Content-Type", "application/json");
-                connection.setRequestProperty("Content-Language", "en-US");
+                connection.setRequestProperty("Content-Encoding", "UTF-8");
                 connection.setRequestProperty("Accept-Charset", "UTF-8");
                 connection.setUseCaches (false);
                 connection.setDoOutput(true);


[15/34] incubator-taverna-mobile git commit: implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved

Posted by ia...@apache.org.
implemented workflow run on player. Adjusted UI to indicate when no workflows exist or cannot be retrieved


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

Branch: refs/heads/master
Commit: 714c08c8c9cdfcdee35df3fdcf9ddcd8695dedb2
Parents: 6e20255
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jul 8 19:45:50 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jul 8 19:45:50 2015 +0100

----------------------------------------------------------------------
 .../mobile/fragments/WorkflowItemFragment.java  | 21 ++++++++++++---
 .../workflowdetails/WorkflowdetailFragment.java | 28 ++++++--------------
 .../taverna/mobile/utils/DetailsLoader.java     |  5 ++--
 app/src/main/res/layout/fragment_item_grid.xml  |  8 ++++--
 app/src/main/res/layout/fragment_item_list.xml  | 12 +++------
 5 files changed, 37 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/714c08c8/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 cde2ab2..2927d76 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
@@ -108,6 +108,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
     private static View rootView;
     public static Context cx;
     private static boolean STATE_ON = false;
+    private static TextView noDataText;
 
     public static WorkflowItemFragment newInstance(String param1, String param2) {
         WorkflowItemFragment fragment = new WorkflowItemFragment();
@@ -145,6 +146,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
         rootView = inflater.inflate(R.layout.fragment_item, container, false);
+        noDataText = (TextView) rootView.findViewById(android.R.id.empty);
         swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.refresh);
         swipeRefreshLayout.setOnRefreshListener(this);
         // Set the adapter
@@ -152,6 +154,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
         mListView.setHasFixedSize(true);
         mListView.setLayoutManager(new LinearLayoutManager(getActivity()));
         mListView.setAnimation(in);
+        mListView.setAdapter(new WorkflowAdapter(getActivity()));
         return rootView;
     }
 
@@ -188,6 +191,15 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
         if(!STATE_ON)
         new WorkflowLoader(getActivity(), swipeRefreshLayout).execute();
 
+        if(mListView.getAdapter().getItemCount() == 0){
+            mListView.setVisibility(View.GONE);
+            noDataText.setVisibility(View.VISIBLE);
+            Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
+        }else{
+            mListView.setVisibility(View.VISIBLE);
+            noDataText.setVisibility(View.GONE);
+        }
+
     }
 
     @Override
@@ -288,10 +300,14 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             public void run() {
                 WorkflowItemFragment.searchAdpater = new WorkflowAdapter(cx,data);
                 WorkflowItemFragment.mListView.setAdapter(WorkflowItemFragment.searchAdpater);
-                if(data.size() == 0){
+                if(WorkflowItemFragment.searchAdpater.getItemCount() == 0){
+                    mListView.setVisibility(View.GONE);
+                    noDataText.setVisibility(View.VISIBLE);
                     Toast.makeText(cx, cx.getResources().getString(R.string.err_workflow_conn), Toast.LENGTH_LONG).show();
+                }else{
+                    mListView.setVisibility(View.VISIBLE);
+                    noDataText.setVisibility(View.GONE);
                 }
-                System.out.println("workflows: "+data.size());
             }
         });
     }
@@ -302,7 +318,6 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             public void run() {
                 synchronized (this) {
                     new AvatarLoader().execute(author.getDetails_uri());
-                    System.out.println(author.getDetails_uri());
                 }
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/714c08c8/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 8e6419e..e0aa350 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
@@ -204,6 +204,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         LOAD_STATE = true;
     }
 
+
     @Override
     public Loader<Workflow> onCreateLoader(int i, Bundle bundle) {
         progressDialog.show();
@@ -214,21 +215,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
     @Override
     public void onLoadFinished(Loader<Workflow> workflowLoader, Workflow workflow) {
-       /* TextView author = (TextView) rootView.findViewById(R.id.wkf_author);
-            author.append("->" + workflow.getWorkflow_author());
-        TextView title = (TextView) rootView.findViewById(R.id.wtitle);
-            title.setText(workflow.getWorkflow_title());
-        TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
-            desc.setText(workflow.getWorkflow_description());
-        TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
-            createdat.append(workflow.getWorkflow_datecreated());
-        TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
-            updated.append(workflow.getWorkflow_datemodified());
-    //    ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
-          //  preview.setImageURI(Uri.parse(workflow.getWorkflow_remote_url()));
-        download_url =workflow.getWorkflow_remote_url();
-      //  progressDialog.cancel();
-     */ //progressDialog.dismiss();
+
     }
 
     @Override
@@ -354,7 +341,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         EditText edt;
         edt = new EditText(ctx);
         edt.setHint("Enter Value");
-        edt.setMinLines(2);
+        edt.setMinLines(1);
         edt.setId(i);
         return edt;
     }
@@ -458,7 +445,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                             json.put("inputs_attributes", attr_array);
                             Log.i("RUN FRAMEWORK", json.toString(2));
                             //start a run task to execute the run.
-                         //   new RunTask(ctx).execute(json.toString());
+                            new RunTask(ctx).execute(json.toString());
                         } catch (JSONException e) {
                             e.printStackTrace();
                         }
@@ -628,7 +615,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
 
                 DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
                 dos.writeBytes(params[0]);//write post data which is a formatted json data representing inputs to a run
-                //dos.writeUTF("");
+
                 dos.flush();
                 dos.close();
 
@@ -638,11 +625,12 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 String jsonData = "";
                 while ((jsonData = br.readLine()) != null) {
                     sb.append(jsonData);
+                    //
                 }
                 dis.close();
                 br.close();
-                Log.i("RESPONSE Code", "" + connection.getResponseCode());
-                Log.i("RESPONSE Messsage", "" + connection.getResponseMessage());
+                Log.i("Run RESPONSE Code", "" + connection.getResponseCode());
+                Log.i("Run RESPONSE Messsage", "" + connection.getResponseMessage());
 
                 return sb.toString();
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/714c08c8/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
index 4be2542..9b36a7f 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
@@ -31,6 +31,7 @@ import android.util.Log;
 
 import com.thebuzzmedia.sjxp.rule.IRule;
 
+import org.apache.taverna.mobile.tavernamobile.Runs;
 import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
 import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
@@ -156,15 +157,13 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> {
                         String started = jsonObject.getString("start_time");
                         String ended = jsonObject.getString("finish_time");
                         String state = jsonObject.getString("state");
-/*
-                        if(workflow_id == this.wid) {
+                        if(workflow_id == Integer.parseInt(this.uri)) {
                             Runs mrun = new Runs(name,started,ended,state);
                             mrun.setRun_id(id);
                             mrun.setRun_workflow_id(workflow_id);
 
                             workflow.addWorkflowRun(mrun);
                         }
-                        */
                     }
 
                 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/714c08c8/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 ba85aa9..6ba0ef0 100644
--- a/app/src/main/res/layout/fragment_item_grid.xml
+++ b/app/src/main/res/layout/fragment_item_grid.xml
@@ -22,7 +22,8 @@ limitations under the License.
    <!-- <GridView android:id="@+id/gridlist"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:numColumns="2">-->   <android.support.v4.widget.SwipeRefreshLayout
+        android:numColumns="2">-->
+    <android.support.v4.widget.SwipeRefreshLayout
     android:id="@+id/refresh"
     android:layout_height="match_parent"
     android:layout_width="match_parent">
@@ -42,6 +43,9 @@ limitations under the License.
     <TextView android:id="@android:id/empty"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:gravity="center" />
+        android:visibility="gone"
+        android:background="@drawable/ic_viewworkflow"
+        android:gravity="center"
+        android:text="@string/workflow_empty"/>
 
 </FrameLayout>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/714c08c8/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 92e0ff1..0acec8c 100644
--- a/app/src/main/res/layout/fragment_item_list.xml
+++ b/app/src/main/res/layout/fragment_item_list.xml
@@ -18,12 +18,6 @@ limitations under the License.
     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" />-->
@@ -40,17 +34,17 @@ limitations under the License.
         android:background="@color/button_material_light"
         android:scrollbars="vertical"
         android:scrollbarStyle="insideOverlay"
-        android:fadeScrollbars="true"
-        >
+        android:fadeScrollbars="true">
 
     </android.support.v7.widget.RecyclerView>
 </android.support.v4.widget.SwipeRefreshLayout>
     <TextView
         android:id="@android:id/empty"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:gravity="center"
         android:visibility="gone"
+        android:background="@drawable/ic_viewworkflow"
         android:text="@string/workflow_empty"/>
 
 </FrameLayout>


[23/34] incubator-taverna-mobile git commit: Fixing workflow image zoom

Posted by ia...@apache.org.
Fixing workflow image zoom


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

Branch: refs/heads/master
Commit: 9c895c831adcdd7430f19305390bf698de3f07fb
Parents: 54c66d8
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 10 23:21:56 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 10 23:21:56 2015 +0100

----------------------------------------------------------------------
 .../workflowdetails/WorkflowdetailFragment.java      | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/9c895c83/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 bbc0fc6..54325f4 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
@@ -98,6 +98,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     private ZoomControls zoomControls;
     static Animation zoomin;
     static Animation zoomout;
+    public boolean isZoomIn;
 
     /**
      * Returns a new instance of this fragment for the given section
@@ -130,12 +131,19 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout);
         zoomControls = (ZoomControls) rootView.findViewById(R.id.zoomControls);
         zoomControls.setOnClickListener(this);
-       // zoomControls.setOnZoomOutClickListener(this);
+        isZoomIn = false;
 
         Button createRun = (Button) rootView.findViewById(R.id.run_wk);
         createRun.setOnClickListener(this);
         Button download = (Button) rootView.findViewById(R.id.download_wk);
         download.setOnClickListener(this);
+        (rootView.findViewById(R.id.wkf_image)).setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View view) {
+                view.setAnimation(zoomin);
+                return true;
+            }
+        });
         downloadManager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
         return rootView;
     }
@@ -181,9 +189,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 zoomin.startNow();
                 Toast.makeText(getActivity(), "Zooming", Toast.LENGTH_SHORT).show();
                 break;
-            case R.id.wkf_image:
-                view.setAnimation(zoomin);
-                break;
         }
     }
 
@@ -610,8 +615,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 connection.setRequestProperty("Accept", "application/json");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("POST");
-                // connection.setDoInput(true);
-                //  connection.setDoOutput(true);
                 connection.connect(); //send request
 
                 DataOutputStream dos = new DataOutputStream(connection.getOutputStream());


[07/34] incubator-taverna-mobile git commit: parsing workflow favorites

Posted by ia...@apache.org.
parsing workflow favorites


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

Branch: refs/heads/master
Commit: d8239c73d4eef066c9b1ad14046e75fdc52f8f91
Parents: 40c0096
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 3 13:57:39 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 3 13:57:39 2015 +0100

----------------------------------------------------------------------
 .../adapters/FavoriteWorkflowAdapter.java       | 22 ++++----
 .../mobile/adapters/WorkflowAdapter.java        |  8 ++-
 .../mobile/fragments/FavoriteFragment.java      | 15 +++---
 .../mobile/fragments/WorkflowItemFragment.java  |  8 ++-
 .../workflowdetails/WorkflowdetailFragment.java | 31 +++++------
 .../apache/taverna/mobile/utils/DB_Utility.java |  5 +-
 .../xmlparsers/MyExperimentXmlParserRules.java  | 13 +----
 .../main/res/layout/favorite_item_layout.xml    | 54 ++++----------------
 8 files changed, 58 insertions(+), 98 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
index 517248a..92355c6 100644
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
@@ -34,6 +34,7 @@ import android.widget.TextView;
 
 import org.apache.taverna.mobile.R;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -42,9 +43,9 @@ import java.util.List;
 public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkflowAdapter.FViewHolder> {
 
     private Context context;
-    private List<String[]> dataSet;
+    private List<ArrayList<Object>> dataSet;
 
-    public FavoriteWorkflowAdapter(Context c, List<String[]> data) {
+    public FavoriteWorkflowAdapter(Context c, List<ArrayList<Object>> data) {
         context = c;
         dataSet = data;
     }
@@ -58,10 +59,13 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl
 
     @Override
     public void onBindViewHolder(FViewHolder fViewHolder, int i) {
-        String[] mdata = dataSet.get(i);
-        fViewHolder.author.setText(mdata[0]);
-        fViewHolder.title.setText(mdata[1]);
-        //fViewHolder.dateMarked.setText(mdata[2]);
+        //get data 0,1,3 from set;
+        ArrayList<Object> data = dataSet.get(i);
+
+        //String[] mdata = dataSet.get(i);
+        fViewHolder.author.setText((CharSequence) data.get(6));
+        fViewHolder.title.setText((CharSequence) data.get(2));
+        fViewHolder.dateMarked.setText((CharSequence) data.get(4));
         //fViewHolder.dateAdd.setText(mdata[3]);
         //fViewHolder.dateModified.setText(mdata[4]);
     }
@@ -74,15 +78,15 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl
     public class FViewHolder extends RecyclerView.ViewHolder {
 
         public final ImageView favorite_thumb;
-        public final TextView author, title, dateMarked, dateAdd, dateModified;
+        public final TextView author, title, dateMarked;// dateAdd, dateModified;
         public FViewHolder(View itemView) {
             super(itemView);
             favorite_thumb = (ImageView) itemView.findViewById(R.id.author_profile_image);
             author = (TextView) itemView.findViewById(R.id.author);
             title = (TextView) itemView.findViewById(R.id.favorite_title);
             dateMarked = (TextView) itemView.findViewById(R.id.date_set);
-            dateAdd = (TextView) itemView.findViewById(R.id.date_created);
-            dateModified = (TextView) itemView.findViewById(R.id.date_modified);
+           // dateAdd = (TextView) itemView.findViewById(R.id.dte_created);
+          //  dateModified = (TextView) itemView.findViewById(R.id.date_modified);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/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 c8dae51..d938230 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
@@ -48,6 +48,7 @@ import com.thebuzzmedia.sjxp.rule.IRule;
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.activities.WorkflowDetailActivity;
+import org.apache.taverna.mobile.fragments.FavoriteFragment;
 import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowdetailFragment;
 import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
@@ -115,11 +116,11 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         String description  = workflow.get(i).getWorkflow_description();
         String uri = workflow.get(i).getWorkflow_details_url();
         final String desc_full = description;
-        ArrayList<Object> mfav = new ArrayList<Object>();
+        final ArrayList<Object> mfav = new ArrayList<Object>();
 
         //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());
-
+            mfav.add(uri);
 //        if(description.length() > 80) description = description.substring(0, 79);
         viewHolder.author_name.setText(author);
         viewHolder.wk_title.setText(title);
@@ -143,10 +144,13 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
+                mfav.add(viewHolder.author_name.getText());
                 boolean saved =  favDB.save();
                 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);
+                    //refresh fragment since data has changed
+                    FavoriteFragment.newInstance(0);
                 }else
                     Toast.makeText(context,"Error!, please try again",Toast.LENGTH_SHORT).show();
             }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/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 77d8831..1066d60 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
@@ -81,15 +81,14 @@ public class FavoriteFragment extends Fragment implements RecyclerView.OnCreateC
         super.onCreate(savedInstanceState);
         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();
+        try {
+            List<ArrayList<Object>> mfavorites = 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();
-       // }
+        //retrieval order: workflowid, workflowauthor, workflowtitle, workflowmarkeddate
+            favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), mfavorites);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/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 bd0742d..cde2ab2 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
@@ -314,8 +314,12 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             @Override
             public void run() {
                 synchronized (this) {
-                    ((TextView)rootView.findViewById(R.id.workflow_author)).setText(author.getName());
-                    new LoadAuthorAvatar((ImageView) rootView.findViewById(R.id.author_profile_image)).execute(author.getAvatar_url());
+                    try {
+                        ((TextView) rootView.findViewById(R.id.workflow_author)).setText(author.getName());
+                        new LoadAuthorAvatar((ImageView) rootView.findViewById(R.id.author_profile_image)).execute(author.getAvatar_url());
+                    }catch(NullPointerException np){
+
+                    }
                 }
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/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 c052870..4ef1b0c 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
@@ -31,24 +31,16 @@ import android.app.LoaderManager;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
 import android.content.Loader;
-import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.media.Image;
-import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Environment;
 import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.util.Base64;
 import android.util.Log;
-import android.view.DragEvent;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.Animation;
@@ -71,18 +63,15 @@ import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
-import org.w3c.dom.Text;
 
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.prefs.PreferenceChangeEvent;
 
 /**
  * Created by Larry Akah on 6/9/15.
@@ -511,14 +500,15 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             try {
                 //prepare connection requests
                 URL workflowurl = new URL(params[0]); //the resource xml file representing the workflow to be uploaded to the player
-                URL posturl = new URL(new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json");
+                String playerurl = new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json";
+                URL posturl = new URL(playerurl);
                 HttpURLConnection connection = (HttpURLConnection) posturl.openConnection();
                 HttpURLConnection wconn = (HttpURLConnection) workflowurl.openConnection();
                     wconn.setRequestMethod("GET");
                     wconn.setDoOutput(true);
                     wconn.setRequestProperty("Accept", "application/xml");
                     //wconn.setConnectTimeout(60000);
-                wconn.connect();
+                    wconn.connect();
 
                 String user = "icep603@gmail.com" + ":" + "creationfox";
                 String basicAuth = "Basic " + Base64.encodeToString(user.getBytes(), Base64.DEFAULT);
@@ -532,27 +522,30 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 //prepare post json data
                 JSONObject postJson = new JSONObject();
                 JSONObject datajson = new JSONObject();
+                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
                 datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
-                postJson.put("workflow",datajson.toString());
+                String post = "{\"workflow:\""+data+"}";
+  //              postJson.put("workflow",datajson.toString());
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
-                System.out.println(postJson.toString(2));
+                System.out.println("BODY=>"+post);
+//                System.out.println(postJson.toString(2));
                 connection.setRequestProperty("Authorization", basicAuth);
-           //     connection.setRequestProperty("Accept", "application/json");
+        //        connection.setRequestProperty("Accept", "application/json");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("POST");
                 connection.connect(); //send request
 
                 DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
-                dos.writeBytes(postJson.toString());//write post data which is a formatted json data representing body of workflow
+                dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
                 //dos.writeUTF("");
                 dos.flush();
                 dos.close();
-
+/*
                 InputStream dis = connection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(dis));
                 while ((str = br.readLine())!= null)
-                    sb.append(str);
+                    sb.append(str);*/
                 System.out.println("Post Response Code: "+connection.getResponseCode());
                 System.out.println("Post response message: "+connection.getResponseMessage());
             }catch (IOException e){

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/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 86b3666..4ae919c 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
@@ -23,12 +23,11 @@ package org.apache.taverna.mobile.utils;
  * specific language governing permissions and limitations
  * under the License.
  */
-import java.util.ArrayList;
-import java.util.Arrays;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 
+import java.util.ArrayList;
+
 /**
  * This class contains all utility functions used by our database for basic functionality not directly related to the core
  * functionality of it but that aids a core functionality to carryout its function efficiently.

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
index 9be18b3..b9a0429 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
@@ -54,7 +54,6 @@ public class MyExperimentXmlParserRules {
 
         public WorkflowDetailRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
             super(type, locationPath, attributeNames);
-            System.out.println("Parser rules created. Ready to parse");
         }
 
         @Override
@@ -160,9 +159,6 @@ public class MyExperimentXmlParserRules {
                     muser.setId(value);
                     break;
             }
-            if( (userObject instanceof User)){
-                System.out.println("USER Details => "+muser.getDetails_uri());
-            }
         }
 
         @Override
@@ -282,14 +278,13 @@ public class MyExperimentXmlParserRules {
         @Override
         public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
             super.handleParsedAttribute(parser, index, value, userObject);
-            System.out.println("Tag attribute value"+value);
         }
 
         @Override
         public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
             mWorkflow.setWorkflow_tags(new ArrayList<String>(){});
             ((Workflow)userObject).setWorkflow_tags(new ArrayList<String>(){});
-            System.out.println(text);
+
         }
     }
 
@@ -318,19 +313,15 @@ public class MyExperimentXmlParserRules {
 
             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;
             }
@@ -345,11 +336,9 @@ public class MyExperimentXmlParserRules {
             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/d8239c73/app/src/main/res/layout/favorite_item_layout.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/favorite_item_layout.xml b/app/src/main/res/layout/favorite_item_layout.xml
index 25e809a..b3c57ab 100644
--- a/app/src/main/res/layout/favorite_item_layout.xml
+++ b/app/src/main/res/layout/favorite_item_layout.xml
@@ -39,20 +39,14 @@ limitations under the License.
             android:textAppearance="?android:attr/textAppearanceLarge"
             android:id="@+id/author"
             android:hint="@string/workflow_authorhint"
-            android:textSize="25sp" />
+            android:textSize="25sp"
+            android:elevation="5dp" />
 
             <LinearLayout
                 android:id="@+id/linearlayout_workflow_info"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:orientation="horizontal">
-                <ImageView
-                    android:id="@+id/author_profile_image"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:elevation="5dp"
-                    android:background="@drawable/round_shape"
-                    android:contentDescription="@string/workflow_component" />
 
                 <LinearLayout
                     android:orientation="vertical"
@@ -64,7 +58,8 @@ limitations under the License.
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:text="@string/wktitle"
-                        android:id="@+id/textView9" />
+                        android:id="@+id/textView9"
+                        android:layout_marginTop="5dp" />
 
                     <TextView
                         android:layout_width="match_parent"
@@ -93,44 +88,17 @@ limitations under the License.
                         android:layout_gravity="center_horizontal"
                         android:gravity="center_horizontal" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/created"
-                        android:id="@+id/textView11"
-                        android:layout_gravity="center_horizontal" />
-
-                    <TextView
+                    <Button
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:hint="Date workflow was Created"
-                        android:id="@+id/date_created"
-                        android:typeface="serif"
-                        android:textColor="@color/material_deep_teal_200"
-                        android:textSize="15dp"
+                        android:text="@string/workflow_read"
+                        android:id="@+id/buttonOpenFavorite"
                         android:layout_gravity="center_horizontal"
-                        android:gravity="center_horizontal" />
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/modified"
-                        android:id="@+id/textView12"
-                        android:layout_gravity="center_horizontal" />
+                        android:layout_margin="10dp"
+                        android:background="#33b5e5"
+                        android:elevation="5dp" />
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:hint="Date workflow was lastly Modified"
-                        android:id="@+id/date_modified"
-                        android:typeface="serif"
-                        android:textColor="@color/material_deep_teal_200"
-                        android:textSize="15dp"
-                        android:layout_gravity="center_horizontal"
-                        android:gravity="center_horizontal" />
-                    </LinearLayout>
+                </LinearLayout>
 
             </LinearLayout>
 


[32/34] incubator-taverna-mobile git commit: formatting UI

Posted by ia...@apache.org.
formatting UI


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

Branch: refs/heads/master
Commit: 72363e4216eeb4543777414c6adbfefded577644
Parents: cd80fd8
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 12 13:18:12 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 12 13:18:12 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/layout/activity_flash_screen.xml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/72363e42/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 bb7ae25..f3cba00 100644
--- a/app/src/main/res/layout/activity_flash_screen.xml
+++ b/app/src/main/res/layout/activity_flash_screen.xml
@@ -60,9 +60,10 @@ limitations under the License.
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/progressBar"
-        android:layout_centerHorizontal="true"
         android:indeterminate="true"
         android:indeterminateBehavior="repeat"
         android:indeterminateOnly="true"
-        android:indeterminateTintMode="src_over" />
+        android:indeterminateTintMode="src_over"
+        android:layout_alignBottom="@+id/imageView2"
+        android:layout_centerHorizontal="true" />
 </RelativeLayout>


[28/34] incubator-taverna-mobile git commit: uploading dropbox library

Posted by ia...@apache.org.
uploading dropbox library


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

Branch: refs/heads/master
Commit: 5b6c027aaf4e1a0905cbced3e150297313aca2aa
Parents: 8b8d5b9
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 11 23:30:00 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 11 23:30:00 2015 +0100

----------------------------------------------------------------------
 app/libs/dropbox-android-sdk-1.6.3.jar | Bin 0 -> 168350 bytes
 app/libs/json_simple-1.1.jar           | Bin 0 -> 16046 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/5b6c027a/app/libs/dropbox-android-sdk-1.6.3.jar
----------------------------------------------------------------------
diff --git a/app/libs/dropbox-android-sdk-1.6.3.jar b/app/libs/dropbox-android-sdk-1.6.3.jar
new file mode 100644
index 0000000..1a0ee36
Binary files /dev/null and b/app/libs/dropbox-android-sdk-1.6.3.jar differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/5b6c027a/app/libs/json_simple-1.1.jar
----------------------------------------------------------------------
diff --git a/app/libs/json_simple-1.1.jar b/app/libs/json_simple-1.1.jar
new file mode 100644
index 0000000..f395f41
Binary files /dev/null and b/app/libs/json_simple-1.1.jar differ


[14/34] incubator-taverna-mobile git commit: implementing workflow run over the taverna player

Posted by ia...@apache.org.
implementing workflow run over the taverna player


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

Branch: refs/heads/master
Commit: 6e202551a1cf5231fc5d2e0b1e725df69bf01ae8
Parents: 57164b1
Author: larrytech7 <la...@gmail.com>
Authored: Wed Jul 8 15:19:02 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Wed Jul 8 15:19:02 2015 +0100

----------------------------------------------------------------------
 .../taverna/mobile/activities/RunResult.java    |  67 ++++++++++++++++
 .../workflowdetails/WorkflowdetailFragment.java |  79 ++++++++++++-------
 app/src/main/res/layout/activity_run_result.xml |   4 +
 app/src/main/res/layout/fragment_run_result.xml |  12 +++
 app/src/main/res/menu/run_result.xml            |   7 ++
 simple-xml-2.7.1/simple-xml-2.7.1.iml           |  16 ----
 simple-xml-2.7.1/simple-xml-2.7.1.jar           | Bin 427590 -> 0 bytes
 7 files changed, 142 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java b/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
new file mode 100644
index 0000000..2ae1a53
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
@@ -0,0 +1,67 @@
+package org.apache.taverna.mobile.activities;
+
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.ActionBar;
+import android.support.v4.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.os.Build;
+
+import org.apache.taverna.mobile.R;
+
+public class RunResult extends ActionBarActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_run_result);
+        if (savedInstanceState == null) {
+            getSupportFragmentManager().beginTransaction()
+                    .add(R.id.container, new PlaceholderFragment())
+                    .commit();
+        }
+    }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        getMenuInflater().inflate(R.menu.run_result, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+
+        //noinspection SimplifiableIfStatement
+        if (id == R.id.action_settings) {
+            return true;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    /**
+     * A placeholder fragment containing a simple view.
+     */
+    public static class PlaceholderFragment extends Fragment {
+
+        public PlaceholderFragment() {
+        }
+
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                                 Bundle savedInstanceState) {
+            View rootView = inflater.inflate(R.layout.fragment_run_result, container, false);
+            return rootView;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/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 68ebf09..8e6419e 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
@@ -49,6 +49,7 @@ import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.ScrollView;
 import android.widget.TextView;
 import android.widget.Toast;
 import android.widget.ZoomControls;
@@ -72,11 +73,12 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.nio.charset.CharsetEncoder;
 
 /**
  * Created by Larry Akah on 6/9/15.
  */
-public class WorkflowdetailFragment extends Fragment implements View.OnClickListener, LoaderManager.LoaderCallbacks<Workflow>{
+public class WorkflowdetailFragment extends Fragment implements View.OnClickListener,LoaderManager.LoaderCallbacks<Workflow>{
     /**
      * The fragment argument representing the section number for this
      * fragment.
@@ -106,6 +108,9 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         fragment.setArguments(args);
         return fragment;
     }
+    public static WorkflowdetailFragment getInstance(){
+        return WorkflowdetailFragment.getInstance();
+    }
 
     public WorkflowdetailFragment() {
     }
@@ -122,8 +127,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         zoomin = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomin);
         zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout);
         zoomControls = (ZoomControls) rootView.findViewById(R.id.zoomControls);
-        zoomControls.setOnZoomInClickListener(this);
-        zoomControls.setOnZoomOutClickListener(this);
+        zoomControls.setOnClickListener(this);
+       // zoomControls.setOnZoomOutClickListener(this);
 
         Button createRun = (Button) rootView.findViewById(R.id.run_wk);
         createRun.setOnClickListener(this);
@@ -149,9 +154,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     public void onClick(View view) {
         switch(view.getId()){
             case R.id.run_wk:
-                //TODO implement functionality to issue a run request to the Taverna PLAYER to run the current workflow
-                //new WorkflowRunTask(getActivity()).execute(""+WORKFLO_ID);
-                new WorkflowProcessTask(getActivity()).execute(download_url);
+                if (((TextView)rootView.findViewById(R.id.wtype)).getText().toString().contains("Taverna 2"))
+                    new WorkflowProcessTask(getActivity()).execute(download_url);
+                else
+                    Toast.makeText(getActivity(), "Sorry! only Type 2 workflows can be run as of now.", Toast.LENGTH_LONG).show();
                 break;
             case R.id.download_wk:
                 // start the android Download manager to start downloading a remote workflow file
@@ -169,9 +175,13 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 //TODO mark a workflow as important and launch task to store the entry into the local database
                 break;
             case R.id.zoomControls:
+                zoomin.reset();
                 zoomin.startNow();
                 Toast.makeText(getActivity(), "Zooming", Toast.LENGTH_SHORT).show();
                 break;
+            case R.id.wkf_image:
+                view.setAnimation(zoomin);
+                break;
         }
     }
 
@@ -227,18 +237,18 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     }
 
     public static void setWorkflowDetails(final Workflow wk){
+        final TextView author = (TextView) rootView.findViewById(R.id.wkf_author);
+        final TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
+        final TextView type = (TextView) rootView.findViewById(R.id.wtype);
+        final TextView title = (TextView) rootView.findViewById(R.id.wtitle);
+        final TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
+        final TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
+        final ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
 
         ((Activity)cont).runOnUiThread(new Runnable() {
             @Override
             public void run() {
                 //load necessary widgets
-                TextView author = (TextView) rootView.findViewById(R.id.wkf_author);
-                TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
-                TextView type = (TextView) rootView.findViewById(R.id.wtype);
-                TextView title = (TextView) rootView.findViewById(R.id.wtitle);
-                TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
-                TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
-                final ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
 
                 //set widget data
                 User uploader = wk.getUploader();
@@ -295,6 +305,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 progressDialog.dismiss();
             }
         });
+      //  preview.setOnClickListener(WorkflowdetailFragment.getInstance());
     }
 
     private static class LoadImageThread extends AsyncTask<String, Void, Bitmap>{
@@ -405,7 +416,9 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             //show the skeleton to the user in a dialog box
             final Context ctx = this.context;
             final LinearLayout ll = new LinearLayout(ctx);
+            ScrollView sv = new ScrollView(ctx);
             ll.setOrientation(LinearLayout.VERTICAL);
+            sv.addView(ll);
 
             try {
                 final JSONObject json = new JSONObject(result); //main server response json
@@ -420,10 +433,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 }
 
                 alertDialogBuilder = new AlertDialog.Builder(ctx);
-                alertDialogBuilder.setView(ll);
+                alertDialogBuilder.setView(sv);
  //               alertDialogBuilder.setMessage(result);
                 alertDialogBuilder.setIcon(ctx.getResources().getDrawable(R.mipmap.ic_launcher));
-                alertDialogBuilder.setTitle("New Run");
+                alertDialogBuilder.setTitle("New Workflow Run");
                 alertDialogBuilder.setPositiveButton("Execute", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialogInterface, int i) {
@@ -444,7 +457,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                         try {
                             json.put("inputs_attributes", attr_array);
                             Log.i("RUN FRAMEWORK", json.toString(2));
-                            new RunTask(ctx).execute(json.toString());
+                            //start a run task to execute the run.
+                         //   new RunTask(ctx).execute(json.toString());
                         } catch (JSONException e) {
                             e.printStackTrace();
                         }
@@ -518,10 +532,9 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                     sb.append(str); //in this string builder we have read the workflow( as .t2flow or .xml) workflow from remote resource. Now we need to post that to the player.
                 bufferedReader.close();
                 wconn.disconnect();
-//PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHM6c2N1ZmwgeG1sbnM6cz0iaHR0cDovL29yZy5lbWJsLmViaS5lc2NpZW5jZS94c2N1ZmwvMC4xYWxwaGEiIHZlcnNpb249IjAuMiIgbG9nPSIwIj4KICA8czp3b3JrZmxvd2Rlc2NyaXB0aW9uIGxzaWQ9InVybjpsc2lkOnd3dy5teWdyaWQub3JnLnVrOm9wZXJhdGlvbjpLNlpDRzZJV05TMCIgYXV0aG9yPSIiIHRpdGxlPSIiIC8+CiAgPHM6cHJvY2Vzc29yIG5hbWU9IlN0cmluZ19Db25zdGFudCIgYm9yaW5nPSJ0cnVlIj4KICAgIDxzOnN0cmluZ2NvbnN0YW50Pmh0dHA6Ly93d3cuY3MubWFuLmFjLnVrL35nb2RlcmlzYS9QaG90by5qcGc8L3M6c3RyaW5nY29uc3RhbnQ+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpwcm9jZXNzb3IgbmFtZT0iR2V0X2ltYWdlX2Zyb21fVVJMIj4KICAgIDxzOmxvY2FsPm9yZy5lbWJsLmViaS5lc2NpZW5jZS5zY3VmbHdvcmtlcnMuamF2YS5XZWJJbWFnZUZldGNoZXI8L3M6bG9jYWw+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpsaW5rIHNvdXJjZT0iU3RyaW5nX0NvbnN0YW50OnZhbHVlIiBzaW5rPSJHZXRfaW1hZ2VfZnJvbV9VUkw6dXJsIiAvPgogIDxzOmxpbmsgc291cmNlPSJHZXRfaW1hZ2VfZnJvbV9VUkw6aW1hZ2UiIHNpbms9InZpeiIgLz4KICA8czpzaW5rIG5hbWU9InZpeiIgLz4KPC9zOnNjdWZsPgoKCg==
-                       // Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.DEFAULT)
+
                 String data = "{\"document\":\"data:application/octet-stream;base64," +
-                        Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.URL_SAFE|Base64.NO_WRAP)+"\"}";
+                        Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.URL_SAFE|Base64.NO_WRAP).replace('-','+')+"\"}";
                 String post = "{\"workflow\":"+data+"}";
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
@@ -529,25 +542,23 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 connection.setRequestMethod("POST");
                 connection.setRequestProperty("Authorization", basicAuth);
                 connection.setRequestProperty("Accept", "*/*");
-               // connection.setRequestProperty("Content-Length", "10165");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestProperty("Content-Encoding", "UTF-8");
-                connection.setRequestProperty("Accept-Charset", "UTF-8");
                 connection.setUseCaches (false);
                 connection.setDoOutput(true);
-             //   connection.setDoInput(true);
                 connection.connect(); //send request
 
                 DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+
                 dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
 
                 dos.flush();
                 dos.close();
-/*
+
                 InputStream dis = connection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(dis));
                 while ((str = br.readLine())!= null)
-                    sb.append(str);*/
+                    sb.append(str);
                 System.out.println("Post Response Code: "+connection.getResponseCode());
                 System.out.println("Post response message: "+connection.getResponseMessage());
                 connection.disconnect();
@@ -555,17 +566,32 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 e.printStackTrace();
                 sb.append("Error reading remote workflow. Please try again later");
             }
+
             return sb.toString();
         }
 
+        /**
+         * Receives a result from the player as a json describing the workflow that has just been uploaded along with key components that
+         * can be used to generate a run from thw workflow. A run is started that would fetch and build a sample UI for a workflow run to be executed
+         * @param s the json result that describes the uploaded workflow
+         */
         @Override
         protected void onPostExecute(String s) {
-            System.out.println(s);
             progressDialog.dismiss();
+            System.out.println(s);
+            s = s.substring(1, s.length());
+            try {
+                JSONObject workflowJson = new JSONObject(s);
+                new WorkflowRunTask(getActivity()).execute(workflowJson.getString("id"));
+
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+
         }
     }
     /**
-     * creates a new workflow run from the
+     * creates a new workflow run from the workflow on the player
      */
     private class RunTask extends AsyncTask<String, Void, String>{
 
@@ -617,7 +643,6 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 br.close();
                 Log.i("RESPONSE Code", "" + connection.getResponseCode());
                 Log.i("RESPONSE Messsage", "" + connection.getResponseMessage());
-                Log.i("Authorization ", "" + connection.getRequestProperty("Authorization"));
 
                 return sb.toString();
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/app/src/main/res/layout/activity_run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/activity_run_result.xml b/app/src/main/res/layout/activity_run_result.xml
new file mode 100644
index 0000000..027aa67
--- /dev/null
+++ b/app/src/main/res/layout/activity_run_result.xml
@@ -0,0 +1,4 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container"
+    android:layout_width="match_parent" android:layout_height="match_parent"
+    tools:context="org.apache.taverna.mobile.activities.RunResult" tools:ignore="MergeRootFrame" />

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/app/src/main/res/layout/fragment_run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_run_result.xml b/app/src/main/res/layout/fragment_run_result.xml
new file mode 100644
index 0000000..ccb985c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_run_result.xml
@@ -0,0 +1,12 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
+    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
+    android:paddingRight="@dimen/activity_horizontal_margin"
+    android:paddingTop="@dimen/activity_vertical_margin"
+    android:paddingBottom="@dimen/activity_vertical_margin"
+    tools:context="org.apache.taverna.mobile.activities.RunResult$PlaceholderFragment">
+
+    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+</RelativeLayout>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/app/src/main/res/menu/run_result.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/menu/run_result.xml b/app/src/main/res/menu/run_result.xml
new file mode 100644
index 0000000..35d088f
--- /dev/null
+++ b/app/src/main/res/menu/run_result.xml
@@ -0,0 +1,7 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:context="org.apache.taverna.mobile.activities.RunResult">
+    <item android:id="@+id/action_settings" android:title="@string/action_settings"
+        android:orderInCategory="100" app:showAsAction="never" />
+</menu>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6e202551/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
deleted file mode 100644
index 07735a7..0000000
--- a/simple-xml-2.7.1/simple-xml-2.7.1.iml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?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/6e202551/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
deleted file mode 100644
index 913725d..0000000
Binary files a/simple-xml-2.7.1/simple-xml-2.7.1.jar and /dev/null differ


[29/34] incubator-taverna-mobile git commit: implementing upload workflow to dropbox

Posted by ia...@apache.org.
implementing upload workflow to dropbox


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

Branch: refs/heads/master
Commit: 354b4f4f31259a508feb968e002da719ecc4300c
Parents: 5b6c027
Author: larrytech7 <la...@gmail.com>
Authored: Sun Jul 12 02:17:53 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sun Jul 12 02:17:53 2015 +0100

----------------------------------------------------------------------
 .../workflowdetails/WorkflowdetailFragment.java | 104 +++++++++++++++++--
 app/src/main/res/drawable/dropbox_icon.png      | Bin 0 -> 1543 bytes
 app/src/main/res/drawable/google_drive_icon.png | Bin 0 -> 2014 bytes
 .../res/layout/fragment_workflow_detail.xml     |  28 ++++-
 4 files changed, 119 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/354b4f4f/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 c2c5277..786f572 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
@@ -35,6 +35,7 @@ import android.content.Intent;
 import android.content.Loader;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
@@ -55,6 +56,12 @@ import android.widget.TextView;
 import android.widget.Toast;
 import android.widget.ZoomControls;
 
+import com.dropbox.client2.DropboxAPI;
+import com.dropbox.client2.ProgressListener;
+import com.dropbox.client2.android.AndroidAuthSession;
+import com.dropbox.client2.exception.DropboxException;
+import com.dropbox.client2.session.AppKeyPair;
+
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.activities.RunResult;
@@ -71,10 +78,13 @@ import org.json.JSONObject;
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.CharsetEncoder;
 
@@ -101,6 +111,10 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     static Animation zoomout;
     public boolean isZoomIn;
     public static String workflow_uri ;
+    final static private String BOX_APP_KEY = "doicbvkfyzligh2";
+    final static private String BOX_APP_SECRET = "3uuuw36mm7jkflc";
+
+    private DropboxAPI<AndroidAuthSession> mDBApi;
 
     /**
      * Returns a new instance of this fragment for the given section
@@ -121,8 +135,11 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
     }
 
     @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
+
+        AppKeyPair appKeys = new AppKeyPair(BOX_APP_KEY, BOX_APP_SECRET);
+        AndroidAuthSession session = new AndroidAuthSession(appKeys);
+        mDBApi = new DropboxAPI<AndroidAuthSession>(session);
         long workflowid = getActivity().getIntent().getLongExtra("workflowid", 0);
         rootView = inflater.inflate(R.layout.fragment_workflow_detail, container, false);
         progressDialog = new ProgressDialog(getActivity());
@@ -131,14 +148,15 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         WORKFLO_ID = workflowid;
         zoomin = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomin);
         zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout);
-        zoomControls = (ZoomControls) rootView.findViewById(R.id.zoomControls);
-        zoomControls.setOnClickListener(this);
+
         isZoomIn = false;
 
         Button createRun = (Button) rootView.findViewById(R.id.run_wk);
         createRun.setOnClickListener(this);
         Button download = (Button) rootView.findViewById(R.id.download_wk);
         download.setOnClickListener(this);
+        rootView.findViewById(R.id.saveToDropboxButton).setOnClickListener(this);
+        rootView.findViewById(R.id.saveToGoogleDriveButton).setOnClickListener(this);
         (rootView.findViewById(R.id.wkf_image)).setOnLongClickListener(new View.OnLongClickListener() {
             @Override
             public boolean onLongClick(View view) {
@@ -186,10 +204,11 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             case R.id.mark_wk:
                 //TODO mark a workflow as important and launch task to store the entry into the local database
                 break;
-            case R.id.zoomControls:
-                zoomin.reset();
-                zoomin.startNow();
-                Toast.makeText(getActivity(), "Zooming", Toast.LENGTH_SHORT).show();
+            case R.id.saveToDropboxButton:
+                mDBApi.getSession().startOAuth2Authentication(getActivity());
+
+                break;
+            case R.id.saveToGoogleDriveButton:
                 break;
         }
     }
@@ -207,6 +226,17 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         workflow_uri = getActivity().getIntent().getStringExtra("uri");
 
         getActivity().getLoaderManager().initLoader(1, null, this).forceLoad();
+
+        if (mDBApi.getSession().authenticationSuccessful()) {
+            try {
+                // Required to complete auth, sets the access token on the session
+                mDBApi.getSession().finishAuthentication();
+                String accessToken = mDBApi.getSession().getOAuth2AccessToken();
+                new WorkflowDriveUpload().execute(download_url);
+            } catch (IllegalStateException e) {
+                Log.i("DbAuthLog", "Error authenticating", e);
+            }
+        }
     }
 
     @Override
@@ -591,4 +621,62 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
         }
     }
 
+    /**
+     * Upload workflow from myexperiment to DropBox
+     */
+    private class WorkflowDriveUpload extends  AsyncTask<String, Void, String>{
+        @Override
+        protected void onPreExecute() {
+            Toast.makeText(getActivity(), "Saving workflow to dropBox", Toast.LENGTH_LONG).show();
+        }
+
+        @Override
+        protected String doInBackground(String... files) {
+           // File file = new File(files[0]);
+            HttpURLConnection mconn ;
+         //   FileInputStream inputStream = null;
+            DropboxAPI.Entry response = null;
+            DropboxAPI.Entry metaDataEntry = null;
+            try {
+                mconn = (HttpURLConnection) new URL(files[0]).openConnection();
+                mconn.setRequestMethod("GET");
+                mconn.connect();
+
+              //  inputStream = new FileInputStream(file);
+
+                 response = mDBApi.putFile("/"+ Uri.parse(files[0]).getLastPathSegment(), mconn.getInputStream(),
+                        mconn.getContentLength(), null, new ProgressListener() {
+                             @Override
+                             public void onProgress(long l, long l2) {
+                                 if (l==l2){
+                                     Toast.makeText(getActivity(), "Upload complete", Toast.LENGTH_LONG).show();
+                                 }
+                             }
+                         });
+
+                Log.i("DbExampleLog", "The uploaded file's rev is: " + response.rev);
+                metaDataEntry = mDBApi.metadata("/"+Uri.parse(files[0]).getLastPathSegment(), 1, null, false, null);
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            } catch (DropboxException e) {
+                e.printStackTrace();
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+            return response.rev;
+        }
+
+        @Override
+        protected void onPostExecute(String s) {
+            if(null != s)
+                Toast.makeText(getActivity(), "File Saved to dropbox: "+s, Toast.LENGTH_LONG).show();
+            else{
+                Toast.makeText(getActivity(), "Failed to save to dropbox "+s, Toast.LENGTH_LONG).show();
+            }
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/354b4f4f/app/src/main/res/drawable/dropbox_icon.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/dropbox_icon.png b/app/src/main/res/drawable/dropbox_icon.png
new file mode 100644
index 0000000..77c5fc8
Binary files /dev/null and b/app/src/main/res/drawable/dropbox_icon.png differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/354b4f4f/app/src/main/res/drawable/google_drive_icon.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/google_drive_icon.png b/app/src/main/res/drawable/google_drive_icon.png
new file mode 100644
index 0000000..cdd8b0b
Binary files /dev/null and b/app/src/main/res/drawable/google_drive_icon.png differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/354b4f4f/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 9bab19c..94d3e94 100644
--- a/app/src/main/res/layout/fragment_workflow_detail.xml
+++ b/app/src/main/res/layout/fragment_workflow_detail.xml
@@ -93,12 +93,30 @@ limitations under the License.
                 android:backgroundTint="@color/accent_material_light"
                 android:backgroundTintMode="src_atop" />
 
-            <ZoomControls
-                android:layout_width="wrap_content"
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:id="@+id/zoomControls"
-                android:layout_gravity="center_horizontal"
-                android:orientation="horizontal" />
+                android:layout_gravity="center"
+                android:gravity="right">
+
+                <ImageButton
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/saveToDropboxButton"
+                    android:src="@drawable/dropbox_icon"
+                    android:layout_gravity="left"
+                    android:layout_marginRight="20dp"
+                    android:background="@color/button_material_light" />
+
+                <ImageButton
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/saveToGoogleDriveButton"
+                    android:src="@drawable/google_drive_icon"
+                    android:layout_gravity="right"
+                    android:background="@color/button_material_light" />
+            </LinearLayout>
 
         </LinearLayout>
     </ScrollView>


[11/34] incubator-taverna-mobile git commit: implementing workflow run creation functionality

Posted by ia...@apache.org.
implementing workflow run creation functionality


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

Branch: refs/heads/master
Commit: c87abf82fd04562eea64f692d45135ef70250e43
Parents: e664260
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jul 4 02:05:41 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jul 4 02:05:41 2015 +0100

----------------------------------------------------------------------
 .../mobile/adapters/WorkflowAdapter.java        |  4 ++--
 .../workflowdetails/WorkflowdetailFragment.java | 16 ++++++++++----
 .../main/res/layout/workflow_item_layout.xml    | 22 +++++++++++++-------
 3 files changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c87abf82/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 2b40cc9..c18d60c 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
@@ -122,8 +122,8 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
             mfav.add(wid); mfav.add(author);mfav.add(title);mfav.add(desc_full); mfav.add(SimpleDateFormat.getDateTimeInstance().format(new Date()).toString());
             mfav.add(uri);
         if(description.length() > 80) description = description.substring(0, 79);
-        viewHolder.author_name.setText(author);
-        viewHolder.wk_title.setText(title);
+        viewHolder.author_name.setHint(author);
+        viewHolder.wk_title.setHint(title);
         viewHolder.wk_description.setText( description+" ... ");
         Linkify.addLinks(viewHolder.wk_description, Linkify.WEB_URLS);
         final String wkflow_url = workflow.get(j).getWorkflow_remote_url();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c87abf82/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 a1b42ab..5e6594e 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
@@ -519,22 +519,30 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 bufferedReader.close();
                 wconn.disconnect();
 
-                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
+                       // Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64.DEFAULT)
+                String data = "{\"document\":\"data:application/octet-stream;base64," +
+                        "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHM6c2N1ZmwgeG1sbnM6cz0iaHR0cDovL29yZy5lbWJsLmViaS5lc2NpZW5jZS94c2N1ZmwvMC4xYWxwaGEiIHZlcnNpb249IjAuMiIgbG9nPSIwIj4KICA8czp3b3JrZmxvd2Rlc2NyaXB0aW9uIGxzaWQ9InVybjpsc2lkOnd3dy5teWdyaWQub3JnLnVrOm9wZXJhdGlvbjpLNlpDRzZJV05TMCIgYXV0aG9yPSIiIHRpdGxlPSIiIC8+CiAgPHM6cHJvY2Vzc29yIG5hbWU9IlN0cmluZ19Db25zdGFudCIgYm9yaW5nPSJ0cnVlIj4KICAgIDxzOnN0cmluZ2NvbnN0YW50Pmh0dHA6Ly93d3cuY3MubWFuLmFjLnVrL35nb2RlcmlzYS9QaG90by5qcGc8L3M6c3RyaW5nY29uc3RhbnQ+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpwcm9jZXNzb3IgbmFtZT0iR2V0X2ltYWdlX2Zyb21fVVJMIj4KICAgIDxzOmxvY2FsPm9yZy5lbWJsLmViaS5lc2NpZW5jZS5zY3VmbHdvcmtlcnMuamF2YS5XZWJJbWFnZUZldGNoZXI8L3M6bG9jYWw+CiAgPC9zOnByb2Nlc3Nvcj4KICA8czpsaW5rIHNvdXJjZT0iU3RyaW5nX0NvbnN0YW50OnZhbHVlIiBzaW5rPSJHZXRfaW1hZ2VfZnJvbV9VUkw6dXJsIiAvPgogIDxzOmxpbmsgc291cmNlPSJHZXRfaW1hZ2VfZnJvbV9VUkw6aW1hZ2UiIHNpbms9InZpeiIgLz4KICA8czpzaW5rIG5hbWU9InZpeiIgLz4KPC9zOnNjdWZsPgoKCg=="+"\"}";
                 String post = "{\"workflow\":"+data+"}";
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
                 System.out.println("BODY=>"+post);
+                connection.setRequestMethod("POST");
                 connection.setRequestProperty("Authorization", basicAuth);
                 connection.setRequestProperty("Accept", "*/*");
+               // connection.setRequestProperty("Content-Length", "10165");
                 connection.setRequestProperty("Content-Type", "application/json");
-                connection.setRequestMethod("POST");
+                connection.setRequestProperty("Content-Language", "en-US");
+                connection.setRequestProperty("Accept-Charset", "UTF-8");
+                connection.setUseCaches (false);
+                connection.setDoOutput(true);
+             //   connection.setDoInput(true);
                 connection.connect(); //send request
 
-             /*   DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
+                DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
                 dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
 
                 dos.flush();
-                dos.close();*/
+                dos.close();
 /*
                 InputStream dis = connection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(dis));

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c87abf82/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 26b30f6..2a88905 100644
--- a/app/src/main/res/layout/workflow_item_layout.xml
+++ b/app/src/main/res/layout/workflow_item_layout.xml
@@ -39,14 +39,18 @@ limitations under the License.
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal">
+        <FrameLayout android:id="@+id/mframe"
+            android:layout_height="wrap_content"
+            android:layout_width="match_parent">
             <ImageView
                 android:id="@+id/author_profile_image"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
                 android:elevation="5dp"
                 android:src="@mipmap/icuserprofiles"
-                android:background="@drawable/round_shape"
-                android:contentDescription="@string/workflow_authorhint" />
+
+                android:contentDescription="@string/workflow_authorhint"
+                android:scaleType="fitEnd" />
 
         <LinearLayout
                 android:id="@+id/linearlayout_workflow_info"
@@ -56,15 +60,17 @@ limitations under the License.
             android:showDividers="middle|beginning"
             android:divider="@color/background_material_dark"
             android:dividerPadding="2dp"
-            android:layout_marginLeft="2dp">
+            android:layout_marginLeft="2dp"
+            android:layout_marginTop="50dp"
+            android:background="@android:color/transparent">
                 <TextView
                     android:id="@+id/workflow_author"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:text="@string/workflow_authorhint"
                     android:capitalize="characters"
                     android:textColor="#000"
-                    android:textSize="22dp" />
+                    android:textSize="22dp"
+                    android:hint="@string/workflow_authorhint" />
 
             <TextView
                 android:layout_width="wrap_content"
@@ -82,6 +88,8 @@ limitations under the License.
                 android:typeface="serif"
                 android:background="@color/material_deep_teal_200" />
         </LinearLayout>
+        </FrameLayout>
+
     </LinearLayout>
         <LinearLayout
             android:layout_width="match_parent"


[03/34] incubator-taverna-mobile git commit: Merge https://github.com/larrytech7/incubator-taverna-mobile

Posted by ia...@apache.org.
Merge https://github.com/larrytech7/incubator-taverna-mobile


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

Branch: refs/heads/master
Commit: d74385030b46c9b8ac87d7ecf8e6edb88bc64eab
Parents: f964b0d 4a7cbb6
Author: larrytech7 <la...@gmail.com>
Authored: Mon Jun 29 19:07:44 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Mon Jun 29 19:07:44 2015 +0100

----------------------------------------------------------------------
 .../apache/com/tavernamobile/LoginActivity.java | 66 --------------------
 1 file changed, 66 deletions(-)
----------------------------------------------------------------------



[13/34] incubator-taverna-mobile git commit: changed title text colour to app blue theme so it appears well over the author image

Posted by ia...@apache.org.
changed title text colour to app blue theme so it appears well over the author image


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

Branch: refs/heads/master
Commit: 57164b1183f4d1bcb69e5818eba57f55d96c2c8f
Parents: e031e8f
Author: larrytech7 <la...@gmail.com>
Authored: Mon Jul 6 17:08:42 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Mon Jul 6 17:08:42 2015 +0100

----------------------------------------------------------------------
 app/src/main/res/layout/workflow_item_layout.xml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/57164b11/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 2a88905..d6c5724 100644
--- a/app/src/main/res/layout/workflow_item_layout.xml
+++ b/app/src/main/res/layout/workflow_item_layout.xml
@@ -77,7 +77,10 @@ limitations under the License.
                 android:layout_height="wrap_content"
                 android:textAppearance="?android:attr/textAppearanceLarge"
                 android:id="@+id/workflow_title"
-                android:hint="@string/wktitle" />
+                android:hint="@string/wktitle"
+                android:textColor="#33b5e5"
+                android:textColorHighlight="#33b5ee"
+                android:textColorHint="#33b5e5" />
 
             <TextView
                 android:layout_width="match_parent"