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() { |