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

Side by Side Diff: chrome/browser/ui/android/autofill/autofill_popup_view_android.cc

Issue 442933002: android: Don't dismiss AutofillPopup on outside touch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync Created 6 years, 4 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "chrome/browser/ui/android/autofill/autofill_popup_view_android.h" 5 #include "chrome/browser/ui/android/autofill/autofill_popup_view_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "chrome/browser/ui/android/window_android_helper.h" 9 #include "chrome/browser/ui/android/window_android_helper.h"
10 #include "chrome/browser/ui/autofill/autofill_popup_controller.h" 10 #include "chrome/browser/ui/autofill/autofill_popup_controller.h"
(...skipping 20 matching lines...) Expand all
31 java_object_.Reset(Java_AutofillPopupBridge_create( 31 java_object_.Reset(Java_AutofillPopupBridge_create(
32 env, 32 env,
33 reinterpret_cast<intptr_t>(this), 33 reinterpret_cast<intptr_t>(this),
34 view_android->GetWindowAndroid()->GetJavaObject().obj(), 34 view_android->GetWindowAndroid()->GetJavaObject().obj(),
35 view_android->GetJavaObject().obj())); 35 view_android->GetJavaObject().obj()));
36 36
37 UpdateBoundsAndRedrawPopup(); 37 UpdateBoundsAndRedrawPopup();
38 } 38 }
39 39
40 void AutofillPopupViewAndroid::Hide() { 40 void AutofillPopupViewAndroid::Hide() {
41 controller_ = NULL;
41 JNIEnv* env = base::android::AttachCurrentThread(); 42 JNIEnv* env = base::android::AttachCurrentThread();
42 Java_AutofillPopupBridge_hide(env, java_object_.obj()); 43 Java_AutofillPopupBridge_hide(env, java_object_.obj());
43 delete this;
44 } 44 }
45 45
46 void AutofillPopupViewAndroid::UpdateBoundsAndRedrawPopup() { 46 void AutofillPopupViewAndroid::UpdateBoundsAndRedrawPopup() {
47 JNIEnv* env = base::android::AttachCurrentThread(); 47 JNIEnv* env = base::android::AttachCurrentThread();
48 Java_AutofillPopupBridge_setAnchorRect( 48 Java_AutofillPopupBridge_setAnchorRect(
49 env, 49 env,
50 java_object_.obj(), 50 java_object_.obj(),
51 controller_->element_bounds().x(), 51 controller_->element_bounds().x(),
52 controller_->element_bounds().y(), 52 controller_->element_bounds().y(),
53 controller_->element_bounds().width(), 53 controller_->element_bounds().width(),
(...skipping 23 matching lines...) Expand all
77 Java_AutofillPopupBridge_show( 77 Java_AutofillPopupBridge_show(
78 env, java_object_.obj(), data_array.obj(), controller_->IsRTL()); 78 env, java_object_.obj(), data_array.obj(), controller_->IsRTL());
79 } 79 }
80 80
81 void AutofillPopupViewAndroid::SuggestionSelected(JNIEnv* env, 81 void AutofillPopupViewAndroid::SuggestionSelected(JNIEnv* env,
82 jobject obj, 82 jobject obj,
83 jint list_index) { 83 jint list_index) {
84 controller_->AcceptSuggestion(list_index); 84 controller_->AcceptSuggestion(list_index);
85 } 85 }
86 86
87 void AutofillPopupViewAndroid::RequestHide(JNIEnv* env, jobject obj) { 87 void AutofillPopupViewAndroid::PopupDismissed(JNIEnv* env, jobject obj) {
88 controller_->Hide(); 88 if (controller_)
89 controller_->ViewDestroyed();
90
91 delete this;
89 } 92 }
90 93
91 void AutofillPopupViewAndroid::InvalidateRow(size_t) {} 94 void AutofillPopupViewAndroid::InvalidateRow(size_t) {}
92 95
93 // static 96 // static
94 bool AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid(JNIEnv* env) { 97 bool AutofillPopupViewAndroid::RegisterAutofillPopupViewAndroid(JNIEnv* env) {
95 return RegisterNativesImpl(env); 98 return RegisterNativesImpl(env);
96 } 99 }
97 100
98 // static 101 // static
99 AutofillPopupView* AutofillPopupView::Create( 102 AutofillPopupView* AutofillPopupView::Create(
100 AutofillPopupController* controller) { 103 AutofillPopupController* controller) {
101 return new AutofillPopupViewAndroid(controller); 104 return new AutofillPopupViewAndroid(controller);
102 } 105 }
103 106
104 } // namespace autofill 107 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698