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 2017/01/11 15:19:59 UTC
[1/7] incubator-taverna-mobile git commit: Use taverna server to
start workflow run
Repository: incubator-taverna-mobile
Updated Branches:
refs/heads/ian_taverna_server [created] 825c79b11
Use taverna server to start workflow run
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/eab06c31
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/eab06c31
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/eab06c31
Branch: refs/heads/ian_taverna_server
Commit: eab06c317e3ab149c8e593bb811dee3a3a74f58e
Parents: 3798002
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Fri Dec 9 16:35:05 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Fri Dec 9 16:35:05 2016 +0000
----------------------------------------------------------------------
.../data/remote/TavernaPlayerService.java | 10 +-
.../ui/playerlogin/PlayerLoginFragment.java | 31 +++--
.../ui/playerlogin/PlayerLoginMvpView.java | 3 +-
.../ui/playerlogin/PlayerLoginPresenter.java | 127 ++++++++++++++++---
.../ui/workflowrun/WorkflowRunActivity.java | 3 +-
.../ui/workflowrun/WorkflowRunPresenter.java | 10 +-
.../main/res/layout/activity_workflow_run.xml | 4 +-
.../res/layout/fragment_player_login_layout.xml | 4 +-
app/src/main/res/values/strings.xml | 2 +
9 files changed, 147 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
index e71ea38..0a3c688 100644
--- a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
+++ b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
@@ -34,11 +34,13 @@ import rx.Observable;
public interface TavernaPlayerService {
- @POST("/workflows.json")
+ @POST("rest/runs")
@Headers({
- APIEndPoint.JSON_CONTENT_HEADER,
- APIEndPoint.JSON_ACCEPT_HEADER,
- APIEndPoint.UTF_CONTENT_ENCODING_HEADER})
+ "Content-type: application/vnd.taverna.t2flow+xml"
+ // APIEndPoint.JSON_CONTENT_HEADER,
+ // APIEndPoint.JSON_ACCEPT_HEADER,
+ // APIEndPoint.UTF_CONTENT_ENCODING_HEADER
+ })
Observable<PlayerWorkflow> uploadWorkflow(@Body RequestBody body, @Header("Authorization")
String authorization);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
index 7123e6e..ebb57d7 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
@@ -38,10 +38,12 @@ import org.apache.taverna.mobile.R;
import org.apache.taverna.mobile.data.DataManager;
import org.apache.taverna.mobile.data.local.PreferencesHelper;
import org.apache.taverna.mobile.utils.ConnectionInfo;
+import org.apache.taverna.mobile.utils.Constants;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
+import rx.Subscription;
public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, View
@@ -64,6 +66,7 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
OnSuccessful mCallback;
private DataManager dataManager;
private PlayerLoginPresenter mPlayerLoginPresenter;
+ private Subscription mSubscriptions;
public static PlayerLoginFragment newInstance() {
@@ -119,17 +122,22 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
@OnClick(R.id.bLogin)
public void login(View v) {
if (ConnectionInfo.isConnectingToInternet(getContext())) {
- if (!mEditTextEmail.getText().toString().trim().isEmpty() && !mEditTextPassword
- .getText().toString().trim().isEmpty()) {
-
- mPlayerLoginPresenter.playerLogin(mEditTextEmail.getText().toString().trim(),
+ String workflowURL = getActivity().getIntent().getStringExtra(Constants.WORKFLOW_URL);
+ mPlayerLoginPresenter.playerLogin(workflowURL, mEditTextEmail.getText().toString().trim(),
mEditTextPassword.getText().toString().trim(), mCheckBoxRemember
.isChecked());
- } else {
-
- showError(R.string.error_vaild_credential);
- }
+// if (!mEditTextEmail.getText().toString().trim().isEmpty() && !mEditTextPassword
+// .getText().toString().trim().isEmpty()) {
+//
+// mPlayerLoginPresenter.playerLogin(mEditTextEmail.getText().toString().trim(),
+// mEditTextPassword.getText().toString().trim(), mCheckBoxRemember
+// .isChecked());
+//
+// } else {
+//
+// showError(R.string.error_vaild_credential);
+// }
} else {
showError(R.string.no_internet_connection);
@@ -158,11 +166,10 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
}
@Override
- public void validCredential() {
- mCallback.onSuccessfulLogin();
+ public void validCredential(String runID) {
+ mCallback.onSuccessfulLogin(runID);
}
-
private void validateEmail() {
if (mEditTextEmail.getText().toString().trim().isEmpty()) {
@@ -221,7 +228,7 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
public interface OnSuccessful {
- void onSuccessfulLogin();
+ void onSuccessfulLogin(String runID);
}
private class CustomTextWatcher implements TextWatcher {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
index 4b4d84d..e34ba47 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
@@ -27,5 +27,6 @@ public interface PlayerLoginMvpView extends MvpView {
void showCredentialError();
- void validCredential();
+ void validCredential(String runID);
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
index 8113cbd..66bcb93 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
@@ -23,13 +23,24 @@ import android.util.Log;
import org.apache.taverna.mobile.R;
import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.data.model.PlayerWorkflow;
+import org.apache.taverna.mobile.data.model.PlayerWorkflowDetail;
import org.apache.taverna.mobile.ui.base.BasePresenter;
+import org.apache.taverna.mobile.utils.Constants;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.adapter.rxjava.HttpException;
+import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Func1;
import rx.schedulers.Schedulers;
@@ -56,43 +67,117 @@ public class PlayerLoginPresenter extends BasePresenter<PlayerLoginMvpView> {
if (mSubscriptions != null) mSubscriptions.unsubscribe();
}
- public void playerLogin(final String username, final String password, final boolean loginFlag) {
+ public void playerLogin(final String workflowURL, final String username, final String password, final boolean loginFlag) {
+ if (mSubscriptions != null) mSubscriptions.unsubscribe();
+
if (mSubscriptions != null) mSubscriptions.unsubscribe();
- mSubscriptions = mDataManager.authPlayerUserLoginDetail(getEncodedCredential(username,
- password), loginFlag)
+ mSubscriptions = mDataManager.downloadWorkflowContent(workflowURL)
+ .concatMap(new Func1<ResponseBody, Observable<PlayerWorkflow>>() {
+ @Override
+ public Observable<PlayerWorkflow> call(ResponseBody responseBody) {
+
+ StringBuffer sb = new StringBuffer();
+ String post = "";
+
+ String basicAuth = getEncodedCredential(username, password);
+ // mDataManager.getPreferencesHelper()
+ // .getUserPlayerCredential();
+ 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) {
+ Log.e(TAG, "call: ", e);
+ }
+ if (flag) {
+ RequestBody body =
+ RequestBody.create(MediaType.parse("application/vnd.taverna.t2flow+xml"), sb.toString());
+
+ return mDataManager.uploadWorkflowContent(body, basicAuth.trim());
+ } else {
+ return Observable.empty();
+ }
+
+
+ }
+ })
+ .concatMap(new Func1<PlayerWorkflow, Observable<PlayerWorkflowDetail>>() {
+ @Override
+ public Observable<PlayerWorkflowDetail> call(PlayerWorkflow playerWorkflow) {
+
+ return mDataManager.getWorkflowDetail(playerWorkflow.getId());
+ }
+ })
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
- .subscribe(new Observer<ResponseBody>() {
+ .subscribe(new Observer<PlayerWorkflowDetail>() {
@Override
public void onCompleted() {
-
}
@Override
public void onError(Throwable e) {
- Log.e(TAG, "onError: ", e);
- if (e instanceof HttpException) {
- if (((HttpException) e).code() == 401) {
- getMvpView().showCredentialError();
- } else if (((HttpException) e).code() == 406) {
- getMvpView().validCredential();
- mDataManager.getPreferencesHelper()
- .setUserPlayerLoggedInFlagAndCredential(loginFlag,
- getEncodedCredential(username, password));
-
- } else {
- getMvpView().showError(R.string.servererr);
- }
- }
+
+ getMvpView().showError(R.string.general_run_err);
}
@Override
- public void onNext(ResponseBody responseBody) {
- Log.d(TAG, "onCompleted: " + responseBody.byteStream());
+ public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
+ getMvpView().validCredential(playerWorkflowDetail.getRun().getName());
}
});
+// mSubscriptions = mDataManager.authPlayerUserLoginDetail(getEncodedCredential(username,
+// password), loginFlag)
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribeOn(Schedulers.io())
+// .subscribe(new Observer<ResponseBody>() {
+// @Override
+// public void onCompleted() {
+//
+// }
+//
+// @Override
+// public void onError(Throwable e) {
+// Log.e(TAG, "onError: ", e);
+// if (e instanceof HttpException) {
+// if (((HttpException) e).code() == 401) {
+// getMvpView().showCredentialError();
+// } else if (((HttpException) e).code() == 406) {
+// getMvpView().validCredential();
+// mDataManager.getPreferencesHelper()
+// .setUserPlayerLoggedInFlagAndCredential(loginFlag,
+// getEncodedCredential(username, password));
+//
+// } else {
+// getMvpView().showError(R.string.servererr);
+// }
+// }
+// }
+//
+// @Override
+// public void onNext(ResponseBody responseBody) {
+// Log.d(TAG, "onCompleted: " + responseBody.byteStream());
+// }
+// });
+
}
private String getEncodedCredential(String username, String password) {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
index 50febae..42bb06b 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
@@ -112,11 +112,12 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
@Override
- public void onSuccessfulLogin() {
+ public void onSuccessfulLogin(String runID) {
position = 1;
mPager.setCurrentItem(position);
mStepsView.setCompletedPosition(position % labels.length).drawView();
mWorkflowRunPresenter.runWorkflow(getIntent().getStringExtra(Constants.WORKFLOW_URL));
+ mWorkflowRunPresenter.runWorkflow(runID);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
index afb8761..105966e 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
@@ -94,18 +94,18 @@ public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
bufferedReader.close();
- String data = "{\"document\":\"data:application/octet-stream;base64," +
- Base64.encodeToString(sb.toString().getBytes("UTF-8"), Base64
- .URL_SAFE | Base64.NO_WRAP).replace('-', '+') + "\"}";
+ //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 + "}";
+ /// post = "{\"workflow\":" + data + "}";
flag = true;
} catch (IOException e) {
Log.e(TAG, "call: ", e);
}
if (flag) {
RequestBody body =
- RequestBody.create(MediaType.parse("application/json"), post);
+ RequestBody.create(MediaType.parse("application/vnd.taverna.t2flow+xml"), sb.toString());
return mDataManager.uploadWorkflowContent(body, basicAuth.trim());
} else {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/res/layout/activity_workflow_run.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/activity_workflow_run.xml b/app/src/main/res/layout/activity_workflow_run.xml
index cf4fea9..38d9fb0 100644
--- a/app/src/main/res/layout/activity_workflow_run.xml
+++ b/app/src/main/res/layout/activity_workflow_run.xml
@@ -27,7 +27,9 @@ limitations under the License.
android:id="@+id/stepsView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- />
+ >
+
+ </com.anton46.stepsview.StepsView>
<org.apache.taverna.mobile.utils.NonSwipeableViewPager
android:id="@+id/viewpager"
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/app/src/main/res/layout/fragment_player_login_layout.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_player_login_layout.xml b/app/src/main/res/layout/fragment_player_login_layout.xml
index 594fb6f..5d27b38 100644
--- a/app/src/main/res/layout/fragment_player_login_layout.xml
+++ b/app/src/main/res/layout/fragment_player_login_layout.xml
@@ -31,7 +31,7 @@ limitations under the License.
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="24sp"
- android:text="@string/headline_taverna_player_portal_login"/>
+ android:text="@string/headline_taverna_server_login"/>
<android.support.design.widget.TextInputLayout
android:layout_below="@id/header"
@@ -79,7 +79,7 @@ limitations under the License.
android:id="@+id/bLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/button_text_login"
+ android:text="@string/play_workflow"
android:layout_marginTop="20dp"
android:layout_below="@id/cbRemember"/>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eab06c31/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 d063b3f..9b21a05 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -113,6 +113,7 @@ limitations under the License.
<string name="playeruser">Username/email</string>
<string name="playerpass">Password</string>
<string name="servererr">Server error. Please try again later</string>
+ <string name="general_run_err">There was an error while creating the run. Please try again.</string>
<string name="auth_err">Invalid login credentials</string>
<string name="myexperimenttitle">Configure MyExperiment Account</string>
<string name="myexperimentsummary">Username used to login to MyExperiment</string>
@@ -180,6 +181,7 @@ limitations under the License.
<string name="uploading_workflow_lable">Uploading Workflow</string>
<string name="please_wait">Please Wait ...</string>
<string name="headline_taverna_player_portal_login">Taverna Player Portal Login</string>
+ <string name="headline_taverna_server_login">Taverna Server Login</string>
<string name="button_text_login">Login</string>
[5/7] incubator-taverna-mobile git commit: Listen to the inputs
fragment in the workflow activity
Posted by ia...@apache.org.
Listen to the inputs fragment in the workflow 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/063a26a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/063a26a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/063a26a3
Branch: refs/heads/ian_taverna_server
Commit: 063a26a3cd62acb3f45cf98b95e49a30c94cd6f5
Parents: 25447d0
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Tue Dec 20 16:09:13 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Tue Dec 20 16:09:13 2016 +0000
----------------------------------------------------------------------
.../taverna/mobile/ui/workflowrun/WorkflowRunActivity.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/063a26a3/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
index 2b8dc32..f8b4972 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
@@ -19,6 +19,7 @@
package org.apache.taverna.mobile.ui.workflowrun;
+import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
@@ -48,7 +49,7 @@ import butterknife.ButterKnife;
import static com.raizlabs.android.dbflow.config.FlowManager.getContext;
public class WorkflowRunActivity extends FragmentActivity implements WorkflowRunMvpView,
- TavernaServerCreateRunFragment.OnSuccessful {
+ TavernaServerCreateRunFragment.OnSuccessful, TavernaServerInputsFragment.OnFragmentInteractionListener {
@@ -166,6 +167,11 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
finish();
}
+ @Override
+ public void onFragmentInteraction(Uri uri) {
+ //TODO something when the inputs are set
+ }
+
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
[7/7] incubator-taverna-mobile git commit: Change wording on create
run page
Posted by ia...@apache.org.
Change wording on create run page
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/825c79b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/825c79b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/825c79b1
Branch: refs/heads/ian_taverna_server
Commit: 825c79b11ee3895c4f03fe2fc071c59c9de26f6c
Parents: 60b45e1
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Wed Jan 11 15:19:34 2017 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Wed Jan 11 15:19:34 2017 +0000
----------------------------------------------------------------------
.../inputs/TavernaServerInputsFragment.java | 105 +++++++++++++++++++
.../inputs/TavernaServerInputsMvpView.java | 10 ++
.../inputs/TavernaServerInputsPresenter.java | 10 ++
.../layout/fragment_taverna_server_inputs.xml | 15 +++
app/src/main/res/values/strings.xml | 2 +-
5 files changed, 141 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/825c79b1/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsFragment.java
new file mode 100644
index 0000000..cba2a90
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsFragment.java
@@ -0,0 +1,105 @@
+package org.apache.taverna.mobile.ui.tavernaserver.inputs;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import org.apache.taverna.mobile.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Activities that contain this fragment must implement the
+ * {@link TavernaServerInputsFragment.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+ * Use the {@link TavernaServerInputsFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class TavernaServerInputsFragment extends Fragment {
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ private OnFragmentInteractionListener mListener;
+
+ public TavernaServerInputsFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @return A new instance of fragment TavernaServerInputsFragment.
+ */
+ public static TavernaServerInputsFragment newInstance() {
+ Bundle args = new Bundle();
+
+ TavernaServerInputsFragment fragment = new TavernaServerInputsFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_taverna_server_inputs, container, false);
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ public void onButtonPressed(Uri uri) {
+ if (mListener != null) {
+ mListener.onFragmentInteraction(uri);
+ }
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ if (context instanceof OnFragmentInteractionListener) {
+ mListener = (OnFragmentInteractionListener) context;
+ } else {
+ throw new RuntimeException(context.toString()
+ + " must implement OnFragmentInteractionListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ mListener = null;
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ * <p>
+ * See the Android Training lesson <a href=
+ * "http://developer.android.com/training/basics/fragments/communicating.html"
+ * >Communicating with Other Fragments</a> for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/825c79b1/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsMvpView.java
new file mode 100644
index 0000000..0a9074c
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsMvpView.java
@@ -0,0 +1,10 @@
+package org.apache.taverna.mobile.ui.tavernaserver.inputs;
+
+import org.apache.taverna.mobile.ui.base.MvpView;
+
+/**
+ * Created by ian on 16/12/16.
+ */
+
+public interface TavernaServerInputsMvpView extends MvpView {
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/825c79b1/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsPresenter.java
new file mode 100644
index 0000000..626b376
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/inputs/TavernaServerInputsPresenter.java
@@ -0,0 +1,10 @@
+package org.apache.taverna.mobile.ui.tavernaserver.inputs;
+
+import org.apache.taverna.mobile.ui.base.BasePresenter;
+
+/**
+ * Created by ian on 16/12/16.
+ */
+
+public class TavernaServerInputsPresenter extends BasePresenter<TavernaServerInputsMvpView> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/825c79b1/app/src/main/res/layout/fragment_taverna_server_inputs.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_taverna_server_inputs.xml b/app/src/main/res/layout/fragment_taverna_server_inputs.xml
new file mode 100644
index 0000000..4781819
--- /dev/null
+++ b/app/src/main/res/layout/fragment_taverna_server_inputs.xml
@@ -0,0 +1,15 @@
+<FrameLayout 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"
+ tools:context="org.apache.taverna.mobile.ui.tavernaserver.inputs.TavernaServerInputsFragment">
+
+ <!-- <TextView
+ android:id="@+id/taverna_server_inputs_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:textSize="24sp"
+ android:text="@string/header_taverna_server_inputs"/>
+-->
+</FrameLayout>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/825c79b1/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 c82f729..20f7c43 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -170,7 +170,7 @@ limitations under the License.
<string-array name="player_run_slider_view_labels">
- <item>Player \nLogin</item>
+ <item>Create \nRun</item>
<item>Download</item>
<item>Upload</item>
<item>Inputs &\nRun</item>
[2/7] incubator-taverna-mobile git commit: Use ResponseBody to get
the run location from the server. Then ask for the inputs
Posted by ia...@apache.org.
Use ResponseBody to get the run location from the server. Then ask for the inputs
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/8c5ca23e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/8c5ca23e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/8c5ca23e
Branch: refs/heads/ian_taverna_server
Commit: 8c5ca23efb303e26d2646c921f957cdd18847209
Parents: eab06c3
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Thu Dec 15 16:57:38 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Thu Dec 15 16:57:38 2016 +0000
----------------------------------------------------------------------
.../apache/taverna/mobile/data/DataManager.java | 9 +++-
.../data/remote/TavernaPlayerService.java | 18 ++++++--
.../mobile/data/remote/TavernaService.java | 2 +
.../ui/playerlogin/PlayerLoginFragment.java | 6 +--
.../ui/playerlogin/PlayerLoginMvpView.java | 2 +-
.../ui/playerlogin/PlayerLoginPresenter.java | 43 +++++++++++-------
.../ui/workflowrun/WorkflowRunActivity.java | 22 ++++++---
.../ui/workflowrun/WorkflowRunMvpView.java | 10 +++--
.../ui/workflowrun/WorkflowRunPresenter.java | 47 ++++++++++++++------
9 files changed, 113 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java
index 56dc3d2..f95f17b 100644
--- a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java
+++ b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java
@@ -35,7 +35,9 @@ import java.util.Map;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
+import retrofit2.Response;
import rx.Observable;
+import rx.Subscription;
import rx.functions.Func1;
@@ -183,7 +185,7 @@ public class DataManager {
* @param baseAuth is base64 encoded credential
* @return Workflow's ID
*/
- public Observable<PlayerWorkflow> uploadWorkflowContent(RequestBody body, String baseAuth) {
+ public Observable<Response<ResponseBody>> uploadWorkflowContent(RequestBody body, String baseAuth) {
return mBaseApiManager.getTavernaPlayerApi().uploadWorkflow(body, baseAuth);
}
@@ -206,4 +208,9 @@ public class DataManager {
public Observable<User> getMyWorkflows(String userID, Map<String, String> options) {
return mBaseApiManager.getTavernaApi().getUserDetail(userID , options);
}
+
+ public Observable<Response<ResponseBody>> getWorkflowInputs(String auth, String runLocationID) {
+ return mBaseApiManager.getTavernaPlayerApi().getInputs(auth, runLocationID);
+
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
index 0a3c688..d2558c8 100644
--- a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
+++ b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaPlayerService.java
@@ -24,26 +24,35 @@ import org.apache.taverna.mobile.data.model.PlayerWorkflowDetail;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
+import retrofit2.Response;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;
+import rx.Subscription;
public interface TavernaPlayerService {
@POST("rest/runs")
@Headers({
"Content-type: application/vnd.taverna.t2flow+xml"
- // APIEndPoint.JSON_CONTENT_HEADER,
- // APIEndPoint.JSON_ACCEPT_HEADER,
- // APIEndPoint.UTF_CONTENT_ENCODING_HEADER
})
- Observable<PlayerWorkflow> uploadWorkflow(@Body RequestBody body, @Header("Authorization")
+ Observable<Response<ResponseBody>> uploadWorkflow(@Body RequestBody body, @Header("Authorization")
String authorization);
+ @PUT("rest/runs/{uuid}")
+ Observable<Response<ResponseBody>> startWorkflowRun(@Body RequestBody body, @Header("Authorization")
+ String authorization);
+
+ @GET("rest/runs/{uuid}/input/baclava")
+ Observable<Response<ResponseBody>> getInputs(@Header("Authorization")
+ String authorization, @Path("uuid") String runLocationID);
+
@POST("/users/sign_in")
@Headers({APIEndPoint.XML_ACCEPT_HEADER})
Observable<ResponseBody> playerlogin(@Header("Authorization") String
@@ -55,4 +64,5 @@ public interface TavernaPlayerService {
APIEndPoint.JSON_CONTENT_HEADER,
APIEndPoint.JSON_ACCEPT_HEADER})
Observable<PlayerWorkflowDetail> getWorkflowDetail(@Query("workflow_id") int id);
+
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaService.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaService.java b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaService.java
index c1aed26..5285572 100644
--- a/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaService.java
+++ b/app/src/main/java/org/apache/taverna/mobile/data/remote/TavernaService.java
@@ -35,6 +35,7 @@ import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;
import rx.Observable;
+import rx.Subscription;
public interface TavernaService {
@@ -73,4 +74,5 @@ public interface TavernaService {
Observable<Workflows> getMyWorkflows(@Query("id") String id,
@QueryMap Map<String, String> options);
+ Subscription getWorkflowInputs(String runLocationID);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
index ebb57d7..1dcf279 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
@@ -166,8 +166,8 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
}
@Override
- public void validCredential(String runID) {
- mCallback.onSuccessfulLogin(runID);
+ public void runLocation(String runID) {
+ mCallback.onRunStart(runID);
}
private void validateEmail() {
@@ -228,7 +228,7 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView,
public interface OnSuccessful {
- void onSuccessfulLogin(String runID);
+ void onRunStart(String runID);
}
private class CustomTextWatcher implements TextWatcher {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
index e34ba47..8ad3cb3 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
@@ -27,6 +27,6 @@ public interface PlayerLoginMvpView extends MvpView {
void showCredentialError();
- void validCredential(String runID);
+ void runLocation(String runID);
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
index 66bcb93..7d6c174 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
@@ -32,9 +32,11 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import okhttp3.Headers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
+import retrofit2.Response;
import retrofit2.adapter.rxjava.HttpException;
import rx.Observable;
import rx.Observer;
@@ -73,9 +75,9 @@ public class PlayerLoginPresenter extends BasePresenter<PlayerLoginMvpView> {
if (mSubscriptions != null) mSubscriptions.unsubscribe();
mSubscriptions = mDataManager.downloadWorkflowContent(workflowURL)
- .concatMap(new Func1<ResponseBody, Observable<PlayerWorkflow>>() {
+ .concatMap(new Func1<ResponseBody, Observable<Response<ResponseBody>>>() {
@Override
- public Observable<PlayerWorkflow> call(ResponseBody responseBody) {
+ public Observable<Response<ResponseBody>> call(ResponseBody responseBody) {
StringBuffer sb = new StringBuffer();
String post = "";
@@ -117,32 +119,43 @@ public class PlayerLoginPresenter extends BasePresenter<PlayerLoginMvpView> {
}
- })
- .concatMap(new Func1<PlayerWorkflow, Observable<PlayerWorkflowDetail>>() {
- @Override
- public Observable<PlayerWorkflowDetail> call(PlayerWorkflow playerWorkflow) {
+ }).observeOn(AndroidSchedulers.mainThread())
+ .subscribeOn(Schedulers.io())
+ .subscribe(new Observer<Response<ResponseBody>>() {
- return mDataManager.getWorkflowDetail(playerWorkflow.getId());
- }
- })
- .observeOn(AndroidSchedulers.mainThread())
- .subscribeOn(Schedulers.io())
- .subscribe(new Observer<PlayerWorkflowDetail>() {
@Override
public void onCompleted() {
+
}
@Override
public void onError(Throwable e) {
- getMvpView().showError(R.string.general_run_err);
}
@Override
- public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
- getMvpView().validCredential(playerWorkflowDetail.getRun().getName());
+ public void onNext(Response response) {
+ getMvpView().runLocation(response.headers().get("Location"));
}
});
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribeOn(Schedulers.io())
+// .subscribe(new Observer<PlayerWorkflowDetail>() {
+// @Override
+// public void onCompleted() {
+// }
+//
+// @Override
+// public void onError(Throwable e) {
+//
+// getMvpView().showError(R.string.general_run_err);
+// }
+//
+// @Override
+// public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
+// getMvpView().validCredential(playerWorkflowDetail.getRun().getName());
+// }
+// });
// mSubscriptions = mDataManager.authPlayerUserLoginDetail(getEncodedCredential(username,
// password), loginFlag)
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
index 42bb06b..ad44e37 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
@@ -39,6 +39,8 @@ import org.apache.taverna.mobile.utils.Constants;
import org.apache.taverna.mobile.utils.NonSwipeableViewPager;
import org.apache.taverna.mobile.utils.WebViewGenerator;
+import java.util.List;
+
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -110,14 +112,18 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
mWorkflowRunPresenter.detachView();
}
-
+ /**
+ * Get the URL location of the run and start monitoring it
+ * @param runLocation The URL on the server of the run
+ */
@Override
- public void onSuccessfulLogin(String runID) {
+ public void onRunStart(String runLocation) {
position = 1;
mPager.setCurrentItem(position);
mStepsView.setCompletedPosition(position % labels.length).drawView();
- mWorkflowRunPresenter.runWorkflow(getIntent().getStringExtra(Constants.WORKFLOW_URL));
- mWorkflowRunPresenter.runWorkflow(runID);
+ mWorkflowRunPresenter.showWorkflowInputs(runLocation);
+ //mWorkflowRunPresenter.runWorkflow(getIntent().getStringExtra(Constants.WORKFLOW_URL));
+ //mWorkflowRunPresenter.runWorkflow(runID);
}
@Override
@@ -128,7 +134,7 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
}
@Override
- public void movetoInputs() {
+ public void moveToInputs() {
position = 3;
mStepsView.setCompletedPosition(position % labels.length).drawView();
mPager.setCurrentItem(position);
@@ -136,6 +142,11 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
}
@Override
+ public void setInputs(List<String> inputs) {
+ //Update the view or something?
+ }
+
+ @Override
public void setInputsAttribute(int id) {
String playerURL = dataManager.getPreferencesHelper().getPlayerURL();
@@ -154,7 +165,6 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
finish();
}
-
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunMvpView.java
index c5dcff5..dbaa282 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunMvpView.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunMvpView.java
@@ -21,13 +21,17 @@ package org.apache.taverna.mobile.ui.workflowrun;
import org.apache.taverna.mobile.ui.base.MvpView;
+import java.util.List;
+
public interface WorkflowRunMvpView extends MvpView {
void movetoUploadWorkflow();
- void movetoInputs();
-
void setInputsAttribute(int id);
void showError();
-}
+
+ void moveToInputs();
+
+ void setInputs(List<String> inputs);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/8c5ca23e/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
index 105966e..395b4cd 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
@@ -30,10 +30,12 @@ import org.apache.taverna.mobile.ui.base.BasePresenter;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.util.List;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
+import retrofit2.Response;
import rx.Observable;
import rx.Observer;
import rx.Subscription;
@@ -43,6 +45,7 @@ import rx.schedulers.Schedulers;
public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
+ private List<String> inputs;
private static final String TAG = WorkflowRunPresenter.class.getSimpleName();
private final DataManager mDataManager;
private Subscription mSubscriptions;
@@ -71,9 +74,9 @@ public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
if (mSubscriptions != null) mSubscriptions.unsubscribe();
mSubscriptions = mDataManager.downloadWorkflowContent(contentURL)
- .concatMap(new Func1<ResponseBody, Observable<PlayerWorkflow>>() {
+ .concatMap(new Func1<ResponseBody, Observable<Response<ResponseBody>>>() {
@Override
- public Observable<PlayerWorkflow> call(ResponseBody responseBody) {
+ public Observable<Response<ResponseBody>> call(ResponseBody responseBody) {
StringBuffer sb = new StringBuffer();
String post = "";
@@ -115,19 +118,39 @@ public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
}
})
- .concatMap(new Func1<PlayerWorkflow, Observable<PlayerWorkflowDetail>>() {
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribeOn(Schedulers.io())
+ .subscribe(new Observer<Response<ResponseBody>>() {
@Override
- public Observable<PlayerWorkflowDetail> call(PlayerWorkflow playerWorkflow) {
+ public void onCompleted() {
+ getMvpView().moveToInputs();
+ }
- return mDataManager.getWorkflowDetail(playerWorkflow.getId());
+ @Override
+ public void onError(Throwable e) {
+
+ getMvpView().showError();
}
- })
+
+ @Override
+ public void onNext(Response playerWorkflowDetail) {
+ // getMvpView().setInputsAttribute(playerWorkflowDetail.getRun()
+ // .getWorkflowId());
+ }
+ });
+ }
+
+ public void showWorkflowInputs(String runLocation) {
+ if (mSubscriptions != null) mSubscriptions.unsubscribe();
+ String basicAuth = mDataManager.getPreferencesHelper()
+ .getUserPlayerCredential();
+ mSubscriptions = mDataManager.getWorkflowInputs(basicAuth.trim(), runLocation)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
- .subscribe(new Observer<PlayerWorkflowDetail>() {
+ .subscribe(new Observer<Response<ResponseBody>>() {
@Override
public void onCompleted() {
- getMvpView().movetoInputs();
+ getMvpView().setInputs(inputs);
}
@Override
@@ -137,12 +160,10 @@ public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
}
@Override
- public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
- getMvpView().setInputsAttribute(playerWorkflowDetail.getRun()
- .getWorkflowId());
+ public void onNext(Response inputsResponse) {
+ //Set the inputs
}
});
}
-
-}
+ }
[6/7] incubator-taverna-mobile git commit: a reminder to add some
code to get the UUID for the workflow run inputs
Posted by ia...@apache.org.
a reminder to add some code to get the UUID for the workflow run inputs
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/60b45e1e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/60b45e1e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/60b45e1e
Branch: refs/heads/ian_taverna_server
Commit: 60b45e1e25d0b8aaf69ebcda9f862f39e365155d
Parents: 063a26a
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Tue Dec 20 16:10:02 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Tue Dec 20 16:10:02 2016 +0000
----------------------------------------------------------------------
.../apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/60b45e1e/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
index 395b4cd..4e7d191 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunPresenter.java
@@ -144,6 +144,7 @@ public class WorkflowRunPresenter extends BasePresenter<WorkflowRunMvpView> {
if (mSubscriptions != null) mSubscriptions.unsubscribe();
String basicAuth = mDataManager.getPreferencesHelper()
.getUserPlayerCredential();
+ //TODO trim the runLocation to get the UUID for the run
mSubscriptions = mDataManager.getWorkflowInputs(basicAuth.trim(), runLocation)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
[3/7] incubator-taverna-mobile git commit: Add some strings and
change instance names
Posted by ia...@apache.org.
Add some strings and change instance names
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/af6dbf77
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/af6dbf77
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/af6dbf77
Branch: refs/heads/ian_taverna_server
Commit: af6dbf77f27fceb7bb5940f5a0e3446d86b08b3f
Parents: 8c5ca23
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Tue Dec 20 15:35:28 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Tue Dec 20 15:35:28 2016 +0000
----------------------------------------------------------------------
.../ui/playerlogin/PlayerLoginFragment.java | 261 -------------------
.../ui/playerlogin/PlayerLoginMvpView.java | 32 ---
.../ui/playerlogin/PlayerLoginPresenter.java | 201 --------------
.../TavernaServerCreateRunFragment.java | 258 ++++++++++++++++++
.../TavernaServerCreateRunMvpView.java | 32 +++
.../TavernaServerCreateRunPresenter.java | 195 ++++++++++++++
.../ui/workflowrun/WorkflowRunActivity.java | 10 +-
7 files changed, 490 insertions(+), 499 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
deleted file mode 100644
index 1dcf279..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * 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.
- */
-package org.apache.taverna.mobile.ui.playerlogin;
-
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.Snackbar;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.app.Fragment;
-import android.text.Editable;
-import android.text.TextWatcher;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.CheckBox;
-import android.widget.EditText;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.data.DataManager;
-import org.apache.taverna.mobile.data.local.PreferencesHelper;
-import org.apache.taverna.mobile.utils.ConnectionInfo;
-import org.apache.taverna.mobile.utils.Constants;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import butterknife.OnClick;
-import rx.Subscription;
-
-
-public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, View
- .OnFocusChangeListener {
-
- @BindView(R.id.etEmail)
- EditText mEditTextEmail;
-
- @BindView(R.id.etPassword)
- EditText mEditTextPassword;
-
- @BindView(R.id.input_layout_email)
- TextInputLayout mTextInputEmail;
-
- @BindView(R.id.input_layout_password)
- TextInputLayout mTextInputPassword;
-
- @BindView(R.id.cbRemember)
- CheckBox mCheckBoxRemember;
- OnSuccessful mCallback;
- private DataManager dataManager;
- private PlayerLoginPresenter mPlayerLoginPresenter;
- private Subscription mSubscriptions;
-
- public static PlayerLoginFragment newInstance() {
-
- Bundle args = new Bundle();
-
- PlayerLoginFragment fragment = new PlayerLoginFragment();
- fragment.setArguments(args);
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- dataManager = new DataManager(new PreferencesHelper(getContext()));
- mPlayerLoginPresenter = new PlayerLoginPresenter(dataManager);
-
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
- savedInstanceState) {
-
- View rootView = inflater.inflate(R.layout.fragment_player_login_layout, container, false);
- ButterKnife.bind(this, rootView);
- mPlayerLoginPresenter.attachView(this);
- String email = dataManager.getPreferencesHelper().getPlayerUserEmail();
- String pw = dataManager.getPreferencesHelper().getPlayerUserPassword();
- mEditTextEmail.setText(email);
- mEditTextPassword.setText(pw);
- return rootView;
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
- mEditTextEmail.addTextChangedListener(new CustomTextWatcher(mEditTextEmail));
- mEditTextEmail.setOnFocusChangeListener(this);
-
- mEditTextPassword.addTextChangedListener(new CustomTextWatcher(mEditTextPassword));
- mEditTextPassword.setOnFocusChangeListener(this);
- }
-
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- mPlayerLoginPresenter.detachView();
- }
-
-
- @OnClick(R.id.bLogin)
- public void login(View v) {
- if (ConnectionInfo.isConnectingToInternet(getContext())) {
- String workflowURL = getActivity().getIntent().getStringExtra(Constants.WORKFLOW_URL);
- mPlayerLoginPresenter.playerLogin(workflowURL, mEditTextEmail.getText().toString().trim(),
- mEditTextPassword.getText().toString().trim(), mCheckBoxRemember
- .isChecked());
-
-// if (!mEditTextEmail.getText().toString().trim().isEmpty() && !mEditTextPassword
-// .getText().toString().trim().isEmpty()) {
-//
-// mPlayerLoginPresenter.playerLogin(mEditTextEmail.getText().toString().trim(),
-// mEditTextPassword.getText().toString().trim(), mCheckBoxRemember
-// .isChecked());
-//
-// } else {
-//
-// showError(R.string.error_vaild_credential);
-// }
- } else {
-
- showError(R.string.no_internet_connection);
- }
- }
-
- @Override
- public void showError(int stringID) {
- final Snackbar snackbar = Snackbar.make(mEditTextPassword, getString(stringID), Snackbar
- .LENGTH_LONG);
- snackbar.setAction("OK", new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- snackbar.dismiss();
- }
- });
-
- snackbar.show();
- }
-
- @Override
- public void showCredentialError() {
- mTextInputEmail.setError(getString(R.string.err_login_email));
- mTextInputPassword.setError(getString(R.string.err_login_password));
- requestFocus(mEditTextPassword);
- }
-
- @Override
- public void runLocation(String runID) {
- mCallback.onRunStart(runID);
- }
-
- private void validateEmail() {
-
- if (mEditTextEmail.getText().toString().trim().isEmpty()) {
- mTextInputEmail.setError(getString(R.string.err_login_email));
- } else {
- mTextInputEmail.setError(null);
- }
-
-
- }
-
- private void requestFocus(View view) {
- if (view.requestFocus()) {
- getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams
- .SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- }
- }
-
- private void validatePassword() {
- if (mEditTextPassword.getText().toString().trim().isEmpty()) {
- mTextInputPassword.setError(getString(R.string.err_login_password));
- } else {
- mTextInputPassword.setError(null);
- }
-
-
- }
-
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- switch (v.getId()) {
- case R.id.etEmail:
- if (!v.hasFocus()) {
- validateEmail();
- }
- break;
- case R.id.etPassword:
- if (!v.hasFocus()) {
- validatePassword();
- }
- break;
- }
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
-
- try {
- mCallback = (OnSuccessful) getActivity();
- } catch (ClassCastException e) {
- throw new ClassCastException(getActivity().toString()
- + " must implement OnSuccessful");
- }
- }
-
-
- public interface OnSuccessful {
- void onRunStart(String runID);
- }
-
- private class CustomTextWatcher implements TextWatcher {
-
- private View view;
-
- private CustomTextWatcher(View view) {
- this.view = view;
- }
-
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
-
- }
-
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
-
- }
-
- public void afterTextChanged(Editable editable) {
- switch (view.getId()) {
- case R.id.etEmail:
- validateEmail();
- break;
- case R.id.etPassword:
- validatePassword();
- break;
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
deleted file mode 100644
index 8ad3cb3..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginMvpView.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.
- */
-package org.apache.taverna.mobile.ui.playerlogin;
-
-import org.apache.taverna.mobile.ui.base.MvpView;
-
-
-public interface PlayerLoginMvpView extends MvpView {
-
- void showError(int stringID);
-
- void showCredentialError();
-
- void runLocation(String runID);
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
deleted file mode 100644
index 7d6c174..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * 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.
- */
-package org.apache.taverna.mobile.ui.playerlogin;
-
-import android.util.Base64;
-import android.util.Log;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.data.DataManager;
-import org.apache.taverna.mobile.data.model.PlayerWorkflow;
-import org.apache.taverna.mobile.data.model.PlayerWorkflowDetail;
-import org.apache.taverna.mobile.ui.base.BasePresenter;
-import org.apache.taverna.mobile.utils.Constants;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import okhttp3.Headers;
-import okhttp3.MediaType;
-import okhttp3.RequestBody;
-import okhttp3.ResponseBody;
-import retrofit2.Response;
-import retrofit2.adapter.rxjava.HttpException;
-import rx.Observable;
-import rx.Observer;
-import rx.Subscription;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Func1;
-import rx.schedulers.Schedulers;
-
-
-public class PlayerLoginPresenter extends BasePresenter<PlayerLoginMvpView> {
-
- private static final String TAG = PlayerLoginPresenter.class.getSimpleName();
-
- private DataManager mDataManager;
-
- private Subscription mSubscriptions;
-
- public PlayerLoginPresenter(DataManager dataManager) {
- mDataManager = dataManager;
- }
-
- @Override
- public void attachView(PlayerLoginMvpView mvpView) {
- super.attachView(mvpView);
- }
-
- @Override
- public void detachView() {
- super.detachView();
- if (mSubscriptions != null) mSubscriptions.unsubscribe();
- }
-
- public void playerLogin(final String workflowURL, final String username, final String password, final boolean loginFlag) {
- if (mSubscriptions != null) mSubscriptions.unsubscribe();
-
- if (mSubscriptions != null) mSubscriptions.unsubscribe();
-
- mSubscriptions = mDataManager.downloadWorkflowContent(workflowURL)
- .concatMap(new Func1<ResponseBody, Observable<Response<ResponseBody>>>() {
- @Override
- public Observable<Response<ResponseBody>> call(ResponseBody responseBody) {
-
- StringBuffer sb = new StringBuffer();
- String post = "";
-
- String basicAuth = getEncodedCredential(username, password);
- // mDataManager.getPreferencesHelper()
- // .getUserPlayerCredential();
- 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) {
- Log.e(TAG, "call: ", e);
- }
- if (flag) {
- RequestBody body =
- RequestBody.create(MediaType.parse("application/vnd.taverna.t2flow+xml"), sb.toString());
-
- return mDataManager.uploadWorkflowContent(body, basicAuth.trim());
- } else {
- return Observable.empty();
- }
-
-
- }
- }).observeOn(AndroidSchedulers.mainThread())
- .subscribeOn(Schedulers.io())
- .subscribe(new Observer<Response<ResponseBody>>() {
-
- @Override
- public void onCompleted() {
-
- }
-
- @Override
- public void onError(Throwable e) {
-
- }
-
- @Override
- public void onNext(Response response) {
- getMvpView().runLocation(response.headers().get("Location"));
- }
- });
-// .observeOn(AndroidSchedulers.mainThread())
-// .subscribeOn(Schedulers.io())
-// .subscribe(new Observer<PlayerWorkflowDetail>() {
-// @Override
-// public void onCompleted() {
-// }
-//
-// @Override
-// public void onError(Throwable e) {
-//
-// getMvpView().showError(R.string.general_run_err);
-// }
-//
-// @Override
-// public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
-// getMvpView().validCredential(playerWorkflowDetail.getRun().getName());
-// }
-// });
-
-// mSubscriptions = mDataManager.authPlayerUserLoginDetail(getEncodedCredential(username,
-// password), loginFlag)
-// .observeOn(AndroidSchedulers.mainThread())
-// .subscribeOn(Schedulers.io())
-// .subscribe(new Observer<ResponseBody>() {
-// @Override
-// public void onCompleted() {
-//
-// }
-//
-// @Override
-// public void onError(Throwable e) {
-// Log.e(TAG, "onError: ", e);
-// if (e instanceof HttpException) {
-// if (((HttpException) e).code() == 401) {
-// getMvpView().showCredentialError();
-// } else if (((HttpException) e).code() == 406) {
-// getMvpView().validCredential();
-// mDataManager.getPreferencesHelper()
-// .setUserPlayerLoggedInFlagAndCredential(loginFlag,
-// getEncodedCredential(username, password));
-//
-// } else {
-// getMvpView().showError(R.string.servererr);
-// }
-// }
-// }
-//
-// @Override
-// public void onNext(ResponseBody responseBody) {
-// Log.d(TAG, "onCompleted: " + responseBody.byteStream());
-// }
-// });
-
- }
-
- private String getEncodedCredential(String username, String password) {
-
- return "Basic " + Base64.encodeToString((username + ":" + password).getBytes(), Base64
- .NO_WRAP);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunFragment.java
new file mode 100644
index 0000000..2c1f2ab
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunFragment.java
@@ -0,0 +1,258 @@
+/*
+ * 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.
+ */
+package org.apache.taverna.mobile.ui.tavernaserver.createrun;
+
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.design.widget.Snackbar;
+import android.support.design.widget.TextInputLayout;
+import android.support.v4.app.Fragment;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.CheckBox;
+import android.widget.EditText;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.data.local.PreferencesHelper;
+import org.apache.taverna.mobile.utils.ConnectionInfo;
+import org.apache.taverna.mobile.utils.Constants;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import rx.Subscription;
+
+
+public class TavernaServerCreateRunFragment extends Fragment implements TavernaServerCreateRunMvpView, View
+ .OnFocusChangeListener {
+
+ @BindView(R.id.etEmail)
+ EditText mEditTextEmail;
+
+ @BindView(R.id.etPassword)
+ EditText mEditTextPassword;
+
+ @BindView(R.id.input_layout_email)
+ TextInputLayout mTextInputEmail;
+
+ @BindView(R.id.input_layout_password)
+ TextInputLayout mTextInputPassword;
+
+ @BindView(R.id.cbRemember)
+ CheckBox mCheckBoxRemember;
+ OnSuccessful mCallback;
+ private DataManager dataManager;
+ private TavernaServerCreateRunPresenter tavernaPlayerCreateRunPresenter;
+ private Subscription mSubscriptions;
+
+ public static TavernaServerCreateRunFragment newInstance() {
+
+ Bundle args = new Bundle();
+
+ TavernaServerCreateRunFragment fragment = new TavernaServerCreateRunFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ dataManager = new DataManager(new PreferencesHelper(getContext()));
+ tavernaPlayerCreateRunPresenter = new TavernaServerCreateRunPresenter(dataManager);
+
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
+ savedInstanceState) {
+
+ View rootView = inflater.inflate(R.layout.fragment_player_login_layout, container, false);
+ ButterKnife.bind(this, rootView);
+ tavernaPlayerCreateRunPresenter.attachView(this);
+ String email = dataManager.getPreferencesHelper().getPlayerUserEmail();
+ String pw = dataManager.getPreferencesHelper().getPlayerUserPassword();
+ mEditTextEmail.setText(email);
+ mEditTextPassword.setText(pw);
+ return rootView;
+ }
+
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ mEditTextEmail.addTextChangedListener(new CustomTextWatcher(mEditTextEmail));
+ mEditTextEmail.setOnFocusChangeListener(this);
+
+ mEditTextPassword.addTextChangedListener(new CustomTextWatcher(mEditTextPassword));
+ mEditTextPassword.setOnFocusChangeListener(this);
+ }
+
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ tavernaPlayerCreateRunPresenter.detachView();
+ }
+
+
+ @OnClick(R.id.bLogin)
+ public void login(View v) {
+ if (ConnectionInfo.isConnectingToInternet(getContext())) {
+ String workflowURL = getActivity().getIntent().getStringExtra(Constants.WORKFLOW_URL);
+
+ if (!mEditTextEmail.getText().toString().trim().isEmpty() && !mEditTextPassword
+ .getText().toString().trim().isEmpty()) {
+
+ tavernaPlayerCreateRunPresenter.playerLogin(workflowURL, mEditTextEmail.getText().toString().trim(),
+ mEditTextPassword.getText().toString().trim(), mCheckBoxRemember
+ .isChecked());
+
+ } else {
+
+ showError(R.string.error_vaild_credential);
+ }
+ } else {
+
+ showError(R.string.no_internet_connection);
+ }
+ }
+
+ @Override
+ public void showError(int stringID) {
+ final Snackbar snackbar = Snackbar.make(mEditTextPassword, getString(stringID), Snackbar
+ .LENGTH_LONG);
+ snackbar.setAction("OK", new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ snackbar.dismiss();
+ }
+ });
+
+ snackbar.show();
+ }
+
+ @Override
+ public void showCredentialError() {
+ mTextInputEmail.setError(getString(R.string.err_login_email));
+ mTextInputPassword.setError(getString(R.string.err_login_password));
+ requestFocus(mEditTextPassword);
+ }
+
+ @Override
+ public void runLocation(String runID) {
+ mCallback.onRunStart(runID);
+ }
+
+ private void validateEmail() {
+
+ if (mEditTextEmail.getText().toString().trim().isEmpty()) {
+ mTextInputEmail.setError(getString(R.string.err_login_email));
+ } else {
+ mTextInputEmail.setError(null);
+ }
+
+
+ }
+
+ private void requestFocus(View view) {
+ if (view.requestFocus()) {
+ getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams
+ .SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+ }
+ }
+
+ private void validatePassword() {
+ if (mEditTextPassword.getText().toString().trim().isEmpty()) {
+ mTextInputPassword.setError(getString(R.string.err_login_password));
+ } else {
+ mTextInputPassword.setError(null);
+ }
+
+
+ }
+
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ switch (v.getId()) {
+ case R.id.etEmail:
+ if (!v.hasFocus()) {
+ validateEmail();
+ }
+ break;
+ case R.id.etPassword:
+ if (!v.hasFocus()) {
+ validatePassword();
+ }
+ break;
+ }
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+
+ try {
+ mCallback = (OnSuccessful) getActivity();
+ } catch (ClassCastException e) {
+ throw new ClassCastException(getActivity().toString()
+ + " must implement OnSuccessful");
+ }
+ }
+
+
+ public interface OnSuccessful {
+ void onRunStart(String runID);
+ }
+
+ private class CustomTextWatcher implements TextWatcher {
+
+ private View view;
+
+ private CustomTextWatcher(View view) {
+ this.view = view;
+ }
+
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ public void afterTextChanged(Editable editable) {
+ switch (view.getId()) {
+ case R.id.etEmail:
+ validateEmail();
+ break;
+ case R.id.etPassword:
+ validatePassword();
+ break;
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunMvpView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunMvpView.java
new file mode 100644
index 0000000..662f194
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunMvpView.java
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+package org.apache.taverna.mobile.ui.tavernaserver.createrun;
+
+import org.apache.taverna.mobile.ui.base.MvpView;
+
+
+public interface TavernaServerCreateRunMvpView extends MvpView {
+
+ void showError(int stringID);
+
+ void showCredentialError();
+
+ void runLocation(String runID);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunPresenter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunPresenter.java
new file mode 100644
index 0000000..f250e33
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/tavernaserver/createrun/TavernaServerCreateRunPresenter.java
@@ -0,0 +1,195 @@
+/*
+ * 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.
+ */
+package org.apache.taverna.mobile.ui.tavernaserver.createrun;
+
+import android.util.Base64;
+import android.util.Log;
+
+import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.ui.base.BasePresenter;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Func1;
+import rx.schedulers.Schedulers;
+
+
+public class TavernaServerCreateRunPresenter extends BasePresenter<TavernaServerCreateRunMvpView> {
+
+ private static final String TAG = TavernaServerCreateRunPresenter.class.getSimpleName();
+
+ private DataManager mDataManager;
+
+ private Subscription mSubscriptions;
+
+ public TavernaServerCreateRunPresenter(DataManager dataManager) {
+ mDataManager = dataManager;
+ }
+
+ @Override
+ public void attachView(TavernaServerCreateRunMvpView mvpView) {
+ super.attachView(mvpView);
+ }
+
+ @Override
+ public void detachView() {
+ super.detachView();
+ if (mSubscriptions != null) mSubscriptions.unsubscribe();
+ }
+
+ public void playerLogin(final String workflowURL, final String username, final String password, final boolean loginFlag) {
+ if (mSubscriptions != null) mSubscriptions.unsubscribe();
+
+ if (mSubscriptions != null) mSubscriptions.unsubscribe();
+
+ mSubscriptions = mDataManager.downloadWorkflowContent(workflowURL)
+ .concatMap(new Func1<ResponseBody, Observable<Response<ResponseBody>>>() {
+ @Override
+ public Observable<Response<ResponseBody>> call(ResponseBody responseBody) {
+
+ StringBuffer sb = new StringBuffer();
+ String post = "";
+
+ String basicAuth = getEncodedCredential(username, password);
+ // mDataManager.getPreferencesHelper()
+ // .getUserPlayerCredential();
+ 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) {
+ Log.e(TAG, "call: ", e);
+ }
+ if (flag) {
+ RequestBody body =
+ RequestBody.create(MediaType.parse("application/vnd.taverna.t2flow+xml"), sb.toString());
+
+ return mDataManager.uploadWorkflowContent(body, basicAuth.trim());
+ } else {
+ return Observable.empty();
+ }
+
+
+ }
+ }).observeOn(AndroidSchedulers.mainThread())
+ .subscribeOn(Schedulers.io())
+ .subscribe(new Observer<Response<ResponseBody>>() {
+
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+
+ }
+
+ @Override
+ public void onNext(Response response) {
+ getMvpView().runLocation(response.headers().get("Location"));
+ }
+ });
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribeOn(Schedulers.io())
+// .subscribe(new Observer<PlayerWorkflowDetail>() {
+// @Override
+// public void onCompleted() {
+// }
+//
+// @Override
+// public void onError(Throwable e) {
+//
+// getMvpView().showError(R.string.general_run_err);
+// }
+//
+// @Override
+// public void onNext(PlayerWorkflowDetail playerWorkflowDetail) {
+// getMvpView().validCredential(playerWorkflowDetail.getRun().getName());
+// }
+// });
+
+// mSubscriptions = mDataManager.authPlayerUserLoginDetail(getEncodedCredential(username,
+// password), loginFlag)
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribeOn(Schedulers.io())
+// .subscribe(new Observer<ResponseBody>() {
+// @Override
+// public void onCompleted() {
+//
+// }
+//
+// @Override
+// public void onError(Throwable e) {
+// Log.e(TAG, "onError: ", e);
+// if (e instanceof HttpException) {
+// if (((HttpException) e).code() == 401) {
+// getMvpView().showCredentialError();
+// } else if (((HttpException) e).code() == 406) {
+// getMvpView().validCredential();
+// mDataManager.getPreferencesHelper()
+// .setUserPlayerLoggedInFlagAndCredential(loginFlag,
+// getEncodedCredential(username, password));
+//
+// } else {
+// getMvpView().showError(R.string.servererr);
+// }
+// }
+// }
+//
+// @Override
+// public void onNext(ResponseBody responseBody) {
+// Log.d(TAG, "onCompleted: " + responseBody.byteStream());
+// }
+// });
+
+ }
+
+ private String getEncodedCredential(String username, String password) {
+
+ return "Basic " + Base64.encodeToString((username + ":" + password).getBytes(), Base64
+ .NO_WRAP);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/af6dbf77/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
index ad44e37..2b8dc32 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowrun/WorkflowRunActivity.java
@@ -34,7 +34,8 @@ import org.apache.taverna.mobile.R;
import org.apache.taverna.mobile.data.DataManager;
import org.apache.taverna.mobile.data.local.PreferencesHelper;
import org.apache.taverna.mobile.ui.DownloadingFragment;
-import org.apache.taverna.mobile.ui.playerlogin.PlayerLoginFragment;
+import org.apache.taverna.mobile.ui.tavernaserver.createrun.TavernaServerCreateRunFragment;
+import org.apache.taverna.mobile.ui.tavernaserver.inputs.TavernaServerInputsFragment;
import org.apache.taverna.mobile.utils.Constants;
import org.apache.taverna.mobile.utils.NonSwipeableViewPager;
import org.apache.taverna.mobile.utils.WebViewGenerator;
@@ -47,7 +48,7 @@ import butterknife.ButterKnife;
import static com.raizlabs.android.dbflow.config.FlowManager.getContext;
public class WorkflowRunActivity extends FragmentActivity implements WorkflowRunMvpView,
- PlayerLoginFragment.OnSuccessful {
+ TavernaServerCreateRunFragment.OnSuccessful {
@@ -174,10 +175,9 @@ public class WorkflowRunActivity extends FragmentActivity implements WorkflowRun
public Fragment getItem(int position) {
switch (position) {
case 0:
- return PlayerLoginFragment.newInstance();
+ return TavernaServerCreateRunFragment.newInstance();
case 1:
- return DownloadingFragment.newInstance(getString(R.string
- .downloading_workflow_lable));
+ return TavernaServerInputsFragment.newInstance();
case 2:
return DownloadingFragment.newInstance(getString(R.string
.uploading_workflow_lable));
[4/7] incubator-taverna-mobile git commit: Typo in strings
Posted by ia...@apache.org.
Typo in strings
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/25447d06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/25447d06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/25447d06
Branch: refs/heads/ian_taverna_server
Commit: 25447d067db06ca4eb2c805f5f47fbbab8c22b42
Parents: af6dbf7
Author: Ian Dunlop <ia...@manchester.ac.uk>
Authored: Tue Dec 20 16:08:01 2016 +0000
Committer: Ian Dunlop <ia...@manchester.ac.uk>
Committed: Tue Dec 20 16:08:01 2016 +0000
----------------------------------------------------------------------
app/src/main/res/values/strings.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/25447d06/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 9b21a05..c82f729 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -105,8 +105,7 @@ limitations under the License.
The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
</string>
<string name="about2">View, run and download workflows on your Android mobile device.</string>
- <string name="about3">Originally developed during Google Summer of Code 2015 for the<a
- href="http://taverna.incubator.apache.org">Apache Taverna project</a>.
+ <string name="about3">Originally developed during Google Summer of Code 2015 for the <a href="http://taverna.incubator.apache.org">Apache Taverna project</a>.
</string>
<string name="playerconfig">Configure Player Account</string>
<string name="playerconfig_summary">Username used to login to Taverna player portal</string>
@@ -181,7 +180,7 @@ limitations under the License.
<string name="uploading_workflow_lable">Uploading Workflow</string>
<string name="please_wait">Please Wait ...</string>
<string name="headline_taverna_player_portal_login">Taverna Player Portal Login</string>
- <string name="headline_taverna_server_login">Taverna Server Login</string>
+ <string name="headline_taverna_server_login">Create Workflow Run</string>
<string name="button_text_login">Login</string>
@@ -214,5 +213,6 @@ limitations under the License.
<string name="title_nav_about">About</string>
<string name="title_nav_my_workflows">My Workflows</string>
<string name="title_nav_os_licences">Licence info</string>
+ <string name="header_taverna_server_inputs">Workflow Inputs</string>
<!-- Strings related to Settings -->
</resources>