Chromium Code Reviews| Index: ui/platform_window/android/platform_window_android.cc |
| diff --git a/ui/platform_window/android/platform_window_android.cc b/ui/platform_window/android/platform_window_android.cc |
| index 49b6ba7b3357786af2331befc6823c7d3abf1cfd..8a05d239857929758b411d4ea7b0f1d681d7cd12 100644 |
| --- a/ui/platform_window/android/platform_window_android.cc |
| +++ b/ui/platform_window/android/platform_window_android.cc |
| @@ -51,6 +51,12 @@ bool PlatformWindowAndroid::Register(JNIEnv* env) { |
| return RegisterNativesImpl(env); |
| } |
| +//static |
| +PlatformWindowAndroid* PlatformWindowAndroid::From( |
| + PlatformWindow* platform_window) { |
| + return static_cast<PlatformWindowAndroid*>(platform_window); |
| +} |
| + |
| PlatformWindowAndroid::PlatformWindowAndroid(PlatformWindowDelegate* delegate) |
| : delegate_(delegate), |
| window_(NULL), |
| @@ -68,6 +74,21 @@ PlatformWindowAndroid::~PlatformWindowAndroid() { |
| } |
| } |
| +void PlatformWindowAndroid::AttachToActivity(jobject activity) { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
|
sadrul
2015/12/01 21:29:34
Should this DCHECK(!IsAttachedToActivity())? Or is
mfomitchev
2015/12/01 21:50:50
I'll add the DCHECK for now. If we need to change
|
| + base::android::ScopedJavaLocalRef<jobject> jpwa = |
| + Java_PlatformWindowAndroid_createForActivity( |
| + env, |
| + activity, |
| + reinterpret_cast<jlong>(this), |
| + reinterpret_cast<jlong>(&platform_ime_controller_)); |
| + java_platform_window_android_ = JavaObjectWeakGlobalRef(env, jpwa.obj()); |
| +} |
| + |
| +bool PlatformWindowAndroid::IsAttachedToActivity() { |
| + return !java_platform_window_android_.is_empty(); |
| +} |
| + |
| void PlatformWindowAndroid::Destroy(JNIEnv* env, jobject obj) { |
| delegate_->OnClosed(); |
| } |
| @@ -152,14 +173,7 @@ void PlatformWindowAndroid::ReleaseWindow() { |
| // PlatformWindowAndroid, PlatformWindow implementation: |
| void PlatformWindowAndroid::Show() { |
| - if (!java_platform_window_android_.is_empty()) |
| - return; |
| - JNIEnv* env = base::android::AttachCurrentThread(); |
| - java_platform_window_android_ = JavaObjectWeakGlobalRef( |
| - env, Java_PlatformWindowAndroid_createForActivity( |
| - env, base::android::GetApplicationContext(), |
| - reinterpret_cast<jlong>(this), |
| - reinterpret_cast<jlong>(&platform_ime_controller_)).obj()); |
| + DCHECK(IsAttachedToActivity()); |
| } |
|
sadrul
2015/12/01 21:29:34
Should this set visibility on the android SurfaceV
mfomitchev
2015/12/01 21:50:51
Considering we are not doing anything in Hide(), I
|
| void PlatformWindowAndroid::Hide() { |