Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: ui/gfx/android/window_android.cc

Issue 10916160: Upstreaming SelectFileDialog for Android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Elliot's nits Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "window_android.h"
6
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_helper.h"
9 #include "base/android/scoped_java_ref.h"
10 #include "jni/NativeWindow_jni.h"
11
12 using base::android::AttachCurrentThread;
13 using base::android::ScopedJavaLocalRef;
14
15 struct WindowAndroid::JavaObject {
16 jweak obj_;
17 ScopedJavaLocalRef<jobject> WindowAndroid(JNIEnv* env) {
18 return GetRealObject(env, obj_);
19 }
20 };
21
22 WindowAndroid::WindowAndroid(JNIEnv* env, jobject obj) {
23 java_object_ = new JavaObject;
24 java_object_->obj_ = env->NewWeakGlobalRef(obj);
25 }
26
27 WindowAndroid::~WindowAndroid() {
28 if (java_object_->obj_) {
29 JNIEnv* env = AttachCurrentThread();
30 env->DeleteWeakGlobalRef(java_object_->obj_);
31 java_object_->obj_ = 0;
32 }
33 delete java_object_;
34 }
35
36 void WindowAndroid::Destroy(JNIEnv* env, jobject obj) {
37 delete this;
38 }
39
40 ScopedJavaLocalRef<jobject> WindowAndroid::GetJavaObject() {
41 JNIEnv* env = AttachCurrentThread();
42 return GetRealObject(env, java_object_->obj_);
43 }
44
45 bool RegisterWindowAndroid(JNIEnv* env) {
46 return RegisterNativesImpl(env);
47 }
48
49
50 // ----------------------------------------------------------------------------
51 // Native JNI methods
52 // ----------------------------------------------------------------------------
53
54 jint Init(JNIEnv* env, jobject obj) {
55 WindowAndroid* window = new WindowAndroid(env, obj);
56 return reinterpret_cast<jint>(window);
57 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698