Chromium Code Reviews| Index: blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java |
| diff --git a/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java b/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java |
| index b3012d8214e75aef716b94714df0591dd8e0e922..f2234ee3994ad9b7304fb23590d0c566c142d279 100644 |
| --- a/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java |
| +++ b/blimp/client/app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java |
| @@ -6,6 +6,8 @@ package org.chromium.blimp.session; |
| import org.chromium.base.annotations.CalledByNative; |
| import org.chromium.base.annotations.JNINamespace; |
| +import org.chromium.blimp.R; |
| +import org.chromium.blimp.assignment.Result; |
| /** |
| * The Java representation of a native BlimpClientSession. This is primarily used to provide access |
| @@ -14,17 +16,35 @@ import org.chromium.base.annotations.JNINamespace; |
| */ |
| @JNINamespace("blimp::client") |
| public class BlimpClientSession { |
| + /** |
| + * A callback for when the session needs to notify the UI about the state of the Blimp session. |
| + */ |
| + public interface Callback { |
| + /** |
| + * Called when an engine assignment has been successful or failed. |
| + * @param result The result code of the assignment. See |
| + * assignment_source.h for details. Maps to a value in |
| + * org.chromium.blimp.AssignmentSourceResult.java. |
|
nyquist
2016/02/18 01:58:40
Optional nit: Even though it's generated, if peopl
David Trainor- moved to gerrit
2016/02/18 16:01:54
Done.
|
| + * @param suggestedMessageResourceId A suggested resource id for a string to display to the |
| + * user if necessary. |
| + */ |
| + void onAssignmentReceived(int result, int suggestedMessageResourceId); |
| + } |
| + |
| + private final Callback mCallback; |
| private long mNativeBlimpClientSessionAndroidPtr; |
| - public BlimpClientSession() { |
| + public BlimpClientSession(Callback callback) { |
| + mCallback = callback; |
| mNativeBlimpClientSessionAndroidPtr = nativeInit(); |
| } |
| /** |
| * Retrieves an assignment and uses it to connect to the engine. |
| + * @param token A login token for the account requesting access. |
|
nyquist
2016/02/18 01:58:40
s/login/OAuth2 access/
David Trainor- moved to gerrit
2016/02/18 16:01:54
Done.
|
| */ |
| - public void connect() { |
| - nativeConnect(mNativeBlimpClientSessionAndroidPtr); |
| + public void connect(String token) { |
| + nativeConnect(mNativeBlimpClientSessionAndroidPtr, token); |
| } |
| /** |
| @@ -39,12 +59,56 @@ public class BlimpClientSession { |
| // Methods that are called by native via JNI. |
| @CalledByNative |
| + private void onAssignmentReceived(int result) { |
| + if (mCallback != null) { |
|
nyquist
2016/02/18 01:58:40
Nit: if (mCallback == null) return;
David Trainor- moved to gerrit
2016/02/18 16:01:54
Done.
|
| + int resultMessageResourceId = R.string.assignment_failure_unknown; |
| + switch (result) { |
| + case Result.OK: |
| + resultMessageResourceId = R.string.assignment_success; |
| + break; |
| + case Result.BAD_REQUEST: |
| + resultMessageResourceId = R.string.assignment_failure_bad_request; |
| + break; |
| + case Result.BAD_RESPONSE: |
| + resultMessageResourceId = R.string.assignment_failure_bad_response; |
| + break; |
| + case Result.INVALID_PROTOCOL_VERSION: |
| + resultMessageResourceId = R.string.assignment_failure_bad_version; |
| + break; |
| + case Result.EXPIRED_ACCESS_TOKEN: |
| + resultMessageResourceId = R.string.assignment_failure_expired_token; |
| + break; |
| + case Result.USER_INVALID: |
| + resultMessageResourceId = R.string.assignment_failure_user_invalid; |
| + break; |
| + case Result.OUT_OF_VMS: |
| + resultMessageResourceId = R.string.assignment_failure_out_of_vms; |
| + break; |
| + case Result.SERVER_ERROR: |
| + resultMessageResourceId = R.string.assignment_failure_server_error; |
| + break; |
| + case Result.SERVER_INTERRUPTED: |
| + resultMessageResourceId = R.string.assignment_failure_server_interrupted; |
| + break; |
| + case Result.NETWORK_FAILURE: |
| + resultMessageResourceId = R.string.assignment_failure_network; |
| + break; |
| + case Result.UNKNOWN: |
| + default: |
| + resultMessageResourceId = R.string.assignment_failure_unknown; |
| + break; |
| + } |
| + mCallback.onAssignmentReceived(result, resultMessageResourceId); |
| + } |
| + } |
| + |
| + @CalledByNative |
| private long getNativePtr() { |
| assert mNativeBlimpClientSessionAndroidPtr != 0; |
| return mNativeBlimpClientSessionAndroidPtr; |
| } |
| private native long nativeInit(); |
| - private native void nativeConnect(long nativeBlimpClientSessionAndroid); |
| + private native void nativeConnect(long nativeBlimpClientSessionAndroid, String token); |
| private native void nativeDestroy(long nativeBlimpClientSessionAndroid); |
| } |