workflow add to player done

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

Branch: refs/heads/master
Commit: fcd4dff549d41093a7688f4519ebb39b16dc7683
Parents: 3fd55f3
Author: Sagar <[email protected]>
Authored: Wed Aug 31 00:57:13 2016 +0530
Committer: Sagar <[email protected]>
Committed: Wed Aug 31 00:57:13 2016 +0530

----------------------------------------------------------------------
 .../workflowdetail/WorkflowDetailPresenter.java | 94 ++++++++++++++++++++
 1 file changed, 94 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/fcd4dff5/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
index 0850e96..4d413b8 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
@@ -18,17 +18,28 @@
  */
 package org.apache.taverna.mobile.ui.workflowdetail;
 
+import android.util.Base64;
+import android.util.Log;
+
 import org.apache.taverna.mobile.data.DataManager;
 import org.apache.taverna.mobile.data.model.License;
 import org.apache.taverna.mobile.data.model.User;
 import org.apache.taverna.mobile.data.model.Workflow;
 import org.apache.taverna.mobile.ui.base.BasePresenter;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.util.HashMap;
 import java.util.Map;
 
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import rx.Observable;
 import rx.Observer;
 import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Func1;
 import rx.schedulers.Schedulers;
 import rx.subscriptions.CompositeSubscription;
 
@@ -192,6 +203,89 @@ public class WorkflowDetailPresenter extends 
BasePresenter<WorkflowDetailMvpView
                 }));
     }
 
+    public void runWorkflow(String contentURL) {
+
+        
mCompositeSubscription.add(mDataManager.downloadWorkflowContent("http://www.myexperiment";
 +
+                
".org/workflows/828/download/Pipelined_list_iteration-v.t2flow")
+                .concatMap(new Func1<ResponseBody, Observable<ResponseBody>>() 
{
+                    @Override
+                    public Observable<ResponseBody> call(ResponseBody 
responseBody) {
+
+                        StringBuffer sb = new StringBuffer();
+                        String post = "";
+                        String user = "email" + ":" + "password";
+                        String basicAuth = "Basic " + 
Base64.encodeToString(user.getBytes(),
+                                Base64.DEFAULT);
+                        boolean flag = false;
+                        try {
+
+                            BufferedReader bufferedReader = new BufferedReader(
+                                    new 
InputStreamReader(responseBody.byteStream()));
+
+                            String str = "";
+
+                            while ((str = bufferedReader.readLine()) != null)
+                                sb.append(str);
+
+                            bufferedReader.close();
+
+                            String data = 
"{\"document\":\"data:application/octet-stream;base64," +
+                                    
Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64
+                                            .URL_SAFE | 
Base64.NO_WRAP).replace('-', '+') + "\"}";
+
+                            post = "{\"workflow\":" + data + "}";
+                            flag = true;
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                        if (flag) {
+                            RequestBody body =
+                                    
RequestBody.create(MediaType.parse("application/json"), post);
+
+                            return mDataManager.uploadWorkflowContent(body, 
basicAuth.trim());
+                        } else {
+                            return Observable.empty();
+                        }
+
+
+                    }
+                })
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribeOn(Schedulers.io())
+                .subscribe(new Observer<ResponseBody>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        Log.e(LOG_TAG, "onError: ", e);
+                    }
+
+                    @Override
+                    public void onNext(ResponseBody responseBody) {
+                        StringBuffer sb = new StringBuffer();
+                        try {
+
+                            BufferedReader bufferedReader = new BufferedReader(
+                                    new 
InputStreamReader(responseBody.byteStream()));
+
+                            String str = "";
+
+                            while ((str = bufferedReader.readLine()) != null)
+                                sb.append(str);
+
+
+                            bufferedReader.close();
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+                        Log.e("TAG", "onNext: " + sb.toString());
+                    }
+                }));
+    }
+
     private Map<String, String> getDetailQueryOptions() {
 
         Map<String, String> option = new HashMap<>();

Reply via email to