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<>();
