| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/android/window_android.h" | 5 #include "ui/android/window_android.h" |
| 6 | 6 |
| 7 #include <unordered_set> | 7 #include <unordered_set> |
| 8 | 8 |
| 9 #include "base/android/context_utils.h" | 9 #include "base/android/context_utils.h" |
| 10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 143 |
| 144 ScopedJavaLocalRef<jobject> WindowAndroid::GetJavaObject() { | 144 ScopedJavaLocalRef<jobject> WindowAndroid::GetJavaObject() { |
| 145 return base::android::ScopedJavaLocalRef<jobject>(java_window_); | 145 return base::android::ScopedJavaLocalRef<jobject>(java_window_); |
| 146 } | 146 } |
| 147 | 147 |
| 148 bool WindowAndroid::RegisterWindowAndroid(JNIEnv* env) { | 148 bool WindowAndroid::RegisterWindowAndroid(JNIEnv* env) { |
| 149 return RegisterNativesImpl(env); | 149 return RegisterNativesImpl(env); |
| 150 } | 150 } |
| 151 | 151 |
| 152 WindowAndroid::~WindowAndroid() { | 152 WindowAndroid::~WindowAndroid() { |
| 153 DCHECK(parent_ == nullptr) << "WindowAndroid must be a root view."; | |
| 154 DCHECK(!compositor_); | 153 DCHECK(!compositor_); |
| 155 Java_WindowAndroid_clearNativePointer(AttachCurrentThread(), GetJavaObject()); | 154 Java_WindowAndroid_clearNativePointer(AttachCurrentThread(), GetJavaObject()); |
| 156 } | 155 } |
| 157 | 156 |
| 158 WindowAndroid* WindowAndroid::CreateForTesting() { | 157 WindowAndroid* WindowAndroid::CreateForTesting() { |
| 159 JNIEnv* env = AttachCurrentThread(); | 158 JNIEnv* env = AttachCurrentThread(); |
| 160 const JavaRef<jobject>& context = base::android::GetApplicationContext(); | 159 const JavaRef<jobject>& context = base::android::GetApplicationContext(); |
| 161 long native_pointer = Java_WindowAndroid_createForTesting(env, context); | 160 long native_pointer = Java_WindowAndroid_createForTesting(env, context); |
| 162 return reinterpret_cast<WindowAndroid*>(native_pointer); | 161 return reinterpret_cast<WindowAndroid*>(native_pointer); |
| 163 } | 162 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 for (WindowAndroidObserver& observer : observer_list_) | 247 for (WindowAndroidObserver& observer : observer_list_) |
| 249 observer.OnActivityStopped(); | 248 observer.OnActivityStopped(); |
| 250 } | 249 } |
| 251 | 250 |
| 252 void WindowAndroid::OnActivityStarted(JNIEnv* env, | 251 void WindowAndroid::OnActivityStarted(JNIEnv* env, |
| 253 const JavaParamRef<jobject>& obj) { | 252 const JavaParamRef<jobject>& obj) { |
| 254 for (WindowAndroidObserver& observer : observer_list_) | 253 for (WindowAndroidObserver& observer : observer_list_) |
| 255 observer.OnActivityStarted(); | 254 observer.OnActivityStarted(); |
| 256 } | 255 } |
| 257 | 256 |
| 258 ScopedJavaLocalRef<jobject> WindowAndroid::GetViewRootForJava( | |
| 259 JNIEnv* env, | |
| 260 const base::android::JavaParamRef<jobject>& obj) { | |
| 261 return GetViewRoot(); | |
| 262 } | |
| 263 | |
| 264 bool WindowAndroid::HasPermission(const std::string& permission) { | 257 bool WindowAndroid::HasPermission(const std::string& permission) { |
| 265 JNIEnv* env = AttachCurrentThread(); | 258 JNIEnv* env = AttachCurrentThread(); |
| 266 return Java_WindowAndroid_hasPermission( | 259 return Java_WindowAndroid_hasPermission( |
| 267 env, GetJavaObject(), | 260 env, GetJavaObject(), |
| 268 base::android::ConvertUTF8ToJavaString(env, permission)); | 261 base::android::ConvertUTF8ToJavaString(env, permission)); |
| 269 } | 262 } |
| 270 | 263 |
| 271 bool WindowAndroid::CanRequestPermission(const std::string& permission) { | 264 bool WindowAndroid::CanRequestPermission(const std::string& permission) { |
| 272 JNIEnv* env = AttachCurrentThread(); | 265 JNIEnv* env = AttachCurrentThread(); |
| 273 return Java_WindowAndroid_canRequestPermission( | 266 return Java_WindowAndroid_canRequestPermission( |
| 274 env, GetJavaObject(), | 267 env, GetJavaObject(), |
| 275 base::android::ConvertUTF8ToJavaString(env, permission)); | 268 base::android::ConvertUTF8ToJavaString(env, permission)); |
| 276 } | 269 } |
| 277 | 270 |
| 278 WindowAndroid* WindowAndroid::GetWindowAndroid() const { | |
| 279 DCHECK(parent_ == nullptr); | |
| 280 return const_cast<WindowAndroid*>(this); | |
| 281 } | |
| 282 | |
| 283 // ---------------------------------------------------------------------------- | 271 // ---------------------------------------------------------------------------- |
| 284 // Native JNI methods | 272 // Native JNI methods |
| 285 // ---------------------------------------------------------------------------- | 273 // ---------------------------------------------------------------------------- |
| 286 | 274 |
| 287 jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj, int sdk_display_id) { | 275 jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj, int sdk_display_id) { |
| 288 WindowAndroid* window = new WindowAndroid(env, obj, sdk_display_id); | 276 WindowAndroid* window = new WindowAndroid(env, obj, sdk_display_id); |
| 289 return reinterpret_cast<intptr_t>(window); | 277 return reinterpret_cast<intptr_t>(window); |
| 290 } | 278 } |
| 291 | 279 |
| 292 } // namespace ui | 280 } // namespace ui |
| OLD | NEW |