| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/view_android.h" | 5 #include "ui/android/view_android.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 if (this != &other) { | 41 if (this != &other) { |
| 42 view_ = other.view_; | 42 view_ = other.view_; |
| 43 other.view_.reset(); | 43 other.view_.reset(); |
| 44 delegate_ = other.delegate_; | 44 delegate_ = other.delegate_; |
| 45 other.delegate_.reset(); | 45 other.delegate_.reset(); |
| 46 } | 46 } |
| 47 return *this; | 47 return *this; |
| 48 } | 48 } |
| 49 | 49 |
| 50 ViewAndroid::ScopedAnchorView::~ScopedAnchorView() { | 50 ViewAndroid::ScopedAnchorView::~ScopedAnchorView() { |
| 51 Reset(); |
| 52 } |
| 53 |
| 54 void ViewAndroid::ScopedAnchorView::Reset() { |
| 51 JNIEnv* env = base::android::AttachCurrentThread(); | 55 JNIEnv* env = base::android::AttachCurrentThread(); |
| 52 const ScopedJavaLocalRef<jobject> view = view_.get(env); | 56 const ScopedJavaLocalRef<jobject> view = view_.get(env); |
| 53 const ScopedJavaLocalRef<jobject> delegate = delegate_.get(env); | 57 const ScopedJavaLocalRef<jobject> delegate = delegate_.get(env); |
| 54 if (!view.is_null() && !delegate.is_null()) { | 58 if (!view.is_null() && !delegate.is_null()) { |
| 55 Java_ViewAndroidDelegate_removeView(env, delegate, view); | 59 Java_ViewAndroidDelegate_removeView(env, delegate, view); |
| 56 } | 60 } |
| 57 view_.reset(); | 61 view_.reset(); |
| 58 } | |
| 59 | |
| 60 void ViewAndroid::ScopedAnchorView::Reset() { | |
| 61 view_.reset(); | |
| 62 delegate_.reset(); | 62 delegate_.reset(); |
| 63 } | 63 } |
| 64 | 64 |
| 65 const base::android::ScopedJavaLocalRef<jobject> | 65 const base::android::ScopedJavaLocalRef<jobject> |
| 66 ViewAndroid::ScopedAnchorView::view() const { | 66 ViewAndroid::ScopedAnchorView::view() const { |
| 67 JNIEnv* env = base::android::AttachCurrentThread(); | 67 JNIEnv* env = base::android::AttachCurrentThread(); |
| 68 return view_.get(env); | 68 return view_.get(env); |
| 69 } | 69 } |
| 70 | 70 |
| 71 ViewAndroid::ViewAndroid(const JavaRef<jobject>& delegate) | 71 ViewAndroid::ViewAndroid(const JavaRef<jobject>& delegate) |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 void ViewAndroid::StartDragAndDrop(const JavaRef<jstring>& jtext, | 170 void ViewAndroid::StartDragAndDrop(const JavaRef<jstring>& jtext, |
| 171 const JavaRef<jobject>& jimage) { | 171 const JavaRef<jobject>& jimage) { |
| 172 ScopedJavaLocalRef<jobject> delegate(GetViewAndroidDelegate()); | 172 ScopedJavaLocalRef<jobject> delegate(GetViewAndroidDelegate()); |
| 173 if (delegate.is_null()) | 173 if (delegate.is_null()) |
| 174 return; | 174 return; |
| 175 JNIEnv* env = base::android::AttachCurrentThread(); | 175 JNIEnv* env = base::android::AttachCurrentThread(); |
| 176 Java_ViewAndroidDelegate_startDragAndDrop(env, delegate, jtext, jimage); | 176 Java_ViewAndroidDelegate_startDragAndDrop(env, delegate, jtext, jimage); |
| 177 } | 177 } |
| 178 | 178 |
| 179 } // namespace ui | 179 } // namespace ui |
| OLD | NEW |