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..5edc974896b258795729e92e7268f7d29ff8a28e 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,13 @@ BlimpClientSessionAndroid::BlimpClientSessionAndroid( |
void BlimpClientSessionAndroid::Connect( |
JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& jobj) { |
- BlimpClientSession::Connect(); |
+ const base::android::JavaParamRef<jobject>& jobj, |
+ const base::android::JavaParamRef<jstring>& jtoken) { |
+ std::string token; |
+ if (jtoken.obj()) |
+ token = base::android::ConvertJavaStringToUTF8(env, jtoken); |
+ |
+ BlimpClientSession::Connect(token); |
} |
BlimpClientSessionAndroid::~BlimpClientSessionAndroid() {} |
@@ -60,5 +61,16 @@ void BlimpClientSessionAndroid::Destroy(JNIEnv* env, |
delete this; |
} |
+void BlimpClientSessionAndroid::ConnectWithAssignment( |
Kevin M
2016/02/12 19:45:26
I think that subclassing this method obfuscates th
David Trainor- moved to gerrit
2016/02/17 21:09:47
Good point. Done :).
|
+ AssignmentSourceResult result, |
+ const Assignment& assignment) { |
+ // 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::ConnectWithAssignment(result, assignment); |
+} |
+ |
} // namespace client |
} // namespace blimp |