| Index: blimp/client/app/android/web_input_box.cc
|
| diff --git a/blimp/client/app/android/web_input_box.cc b/blimp/client/app/android/web_input_box.cc
|
| index ffdf9cdd18af1f640c9f8bfedf98ce64057bde63..c20841c9171e871128298b23ac46ebba73ee6da7 100644
|
| --- a/blimp/client/app/android/web_input_box.cc
|
| +++ b/blimp/client/app/android/web_input_box.cc
|
| @@ -5,7 +5,9 @@
|
| #include "base/android/jni_string.h"
|
| #include "blimp/client/app/android/blimp_client_session_android.h"
|
| #include "blimp/client/app/android/web_input_box.h"
|
| +#include "blimp/client/feature/ime_feature.h"
|
| #include "jni/WebInputBox_jni.h"
|
| +#include "ui/base/ime/text_input_type.h"
|
|
|
| namespace blimp {
|
| namespace client {
|
| @@ -13,7 +15,11 @@ namespace client {
|
| static jlong Init(JNIEnv* env,
|
| const JavaParamRef<jobject>& jobj,
|
| const JavaParamRef<jobject>& blimp_client_session) {
|
| - return reinterpret_cast<intptr_t>(new WebInputBox(env, jobj));
|
| + BlimpClientSession* client_session =
|
| + BlimpClientSessionAndroid::FromJavaObject(env,
|
| + blimp_client_session.obj());
|
| + return reinterpret_cast<intptr_t>(
|
| + new WebInputBox(env, jobj, client_session->GetImeFeature()));
|
| }
|
|
|
| // static
|
| @@ -22,25 +28,40 @@ bool WebInputBox::RegisterJni(JNIEnv* env) {
|
| }
|
|
|
| WebInputBox::WebInputBox(JNIEnv* env,
|
| - const base::android::JavaParamRef<jobject>& jobj) {
|
| + const base::android::JavaParamRef<jobject>& jobj,
|
| + ImeFeature* ime_feature) {
|
| java_obj_.Reset(env, jobj);
|
| + ime_feature_ = ime_feature;
|
| + ime_feature_->set_delegate(this);
|
| }
|
|
|
| -WebInputBox::~WebInputBox() {}
|
| +WebInputBox::~WebInputBox() {
|
| + ime_feature_->set_delegate(nullptr);
|
| +}
|
|
|
| void WebInputBox::Destroy(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
|
| delete this;
|
| }
|
|
|
| -void WebInputBox::OnImeRequested(bool show) {
|
| +void WebInputBox::OnShowImeRequested(ui::TextInputType input_type,
|
| + const std::string& text) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + DCHECK_NE(ui::TEXT_INPUT_TYPE_NONE, input_type);
|
| + Java_WebInputBox_onShowImeRequested(
|
| + env, java_obj_.obj(), input_type,
|
| + base::android::ConvertUTF8ToJavaString(env, text).obj());
|
| +}
|
| +
|
| +void WebInputBox::OnHideImeRequested() {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - Java_WebInputBox_onImeRequested(env, java_obj_.obj(), show);
|
| + Java_WebInputBox_onHideImeRequested(env, java_obj_.obj());
|
| }
|
|
|
| void WebInputBox::OnImeTextEntered(JNIEnv* env,
|
| const JavaParamRef<jobject>& jobj,
|
| const JavaParamRef<jstring>& text) {
|
| - // TODO(shaktisahu): Send text to browser.
|
| + std::string textInput = base::android::ConvertJavaStringToUTF8(env, text);
|
| + ime_feature_->OnImeTextEntered(textInput);
|
| }
|
|
|
| } // namespace client
|
|
|