Index: blimp/client/app/android/blimp_client_session_android.cc |
diff --git a/blimp/client/app/android/blimp_client_session_android.cc b/blimp/client/app/android/blimp_client_session_android.cc |
index 97b8372cfbc3010c39fb73258dab747be58153fd..677ea6f4090020c2bcbcd8b04f70d329276f9ead 100644 |
--- a/blimp/client/app/android/blimp_client_session_android.cc |
+++ b/blimp/client/app/android/blimp_client_session_android.cc |
@@ -4,6 +4,7 @@ |
#include "blimp/client/app/android/blimp_client_session_android.h" |
+#include "base/android/jni_string.h" |
#include "base/thread_task_runner_handle.h" |
#include "blimp/client/feature/tab_control_feature.h" |
#include "blimp/client/session/assignment_source.h" |
@@ -16,10 +17,7 @@ const int kDummyTabId = 0; |
} // namespace |
static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) { |
- scoped_ptr<AssignmentSource> assignment_source = make_scoped_ptr( |
- new AssignmentSource(base::ThreadTaskRunnerHandle::Get())); |
- return reinterpret_cast<intptr_t>( |
- new BlimpClientSessionAndroid(env, jobj, std::move(assignment_source))); |
+ return reinterpret_cast<intptr_t>(new BlimpClientSessionAndroid(env, jobj)); |
} |
// static |
@@ -37,9 +35,7 @@ BlimpClientSessionAndroid* BlimpClientSessionAndroid::FromJavaObject( |
BlimpClientSessionAndroid::BlimpClientSessionAndroid( |
JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& jobj, |
- scoped_ptr<AssignmentSource> assignment_source) |
- : BlimpClientSession(std::move(assignment_source)) { |
+ const base::android::JavaParamRef<jobject>& jobj) { |
java_obj_.Reset(env, jobj); |
// Create a single tab's WebContents. |
@@ -49,8 +45,15 @@ BlimpClientSessionAndroid::BlimpClientSessionAndroid( |
void BlimpClientSessionAndroid::Connect( |
JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& jobj) { |
- BlimpClientSession::Connect(); |
+ const base::android::JavaParamRef<jobject>& jobj, |
nyquist
2016/02/18 01:58:39
Nit: Should we include base/android/scoped_java_re
David Trainor- moved to gerrit
2016/02/18 16:01:54
Done.
|
+ const base::android::JavaParamRef<jstring>& jclient_auth_token) { |
+ std::string client_auth_token; |
+ if (jclient_auth_token.obj()) { |
+ client_auth_token = |
+ base::android::ConvertJavaStringToUTF8(env, jclient_auth_token); |
+ } |
+ |
+ BlimpClientSession::Connect(client_auth_token); |
} |
BlimpClientSessionAndroid::~BlimpClientSessionAndroid() {} |
@@ -60,5 +63,15 @@ void BlimpClientSessionAndroid::Destroy(JNIEnv* env, |
delete this; |
} |
+void BlimpClientSessionAndroid::OnAssignmentConnectionAttempted( |
+ AssignmentSource::Result result) { |
+ // Notify the front end of the assignment result. |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_BlimpClientSession_onAssignmentReceived(env, java_obj_.obj(), |
+ static_cast<jint>(result)); |
+ |
+ BlimpClientSession::OnAssignmentConnectionAttempted(result); |
+} |
+ |
} // namespace client |
} // namespace blimp |