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

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

Issue 1570783003: [Autofill] Move functions from the AutofillPopupController to AutofillPopupLayoutModel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove scoped_ptr and rename mac delegate Created 4 years, 11 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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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_keyboard_accessory_view.h" 5 #include "chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.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/android/resource_mapper.h" 9 #include "chrome/browser/android/resource_mapper.h"
10 #include "chrome/browser/ui/android/view_android_helper.h" 10 #include "chrome/browser/ui/android/view_android_helper.h"
11 #include "chrome/browser/ui/autofill/autofill_popup_controller.h" 11 #include "chrome/browser/ui/autofill/autofill_popup_controller.h"
12 #include "components/autofill/core/browser/popup_item_ids.h" 12 #include "components/autofill/core/browser/popup_item_ids.h"
13 #include "components/autofill/core/browser/suggestion.h" 13 #include "components/autofill/core/browser/suggestion.h"
14 #include "grit/components_strings.h" 14 #include "grit/components_strings.h"
15 #include "jni/AutofillKeyboardAccessoryBridge_jni.h" 15 #include "jni/AutofillKeyboardAccessoryBridge_jni.h"
16 #include "ui/android/view_android.h" 16 #include "ui/android/view_android.h"
17 #include "ui/android/window_android.h" 17 #include "ui/android/window_android.h"
18 #include "ui/base/l10n/l10n_util.h" 18 #include "ui/base/l10n/l10n_util.h"
19 #include "ui/base/resource/resource_bundle.h" 19 #include "ui/base/resource/resource_bundle.h"
20 #include "ui/gfx/geometry/rect.h" 20 #include "ui/gfx/geometry/rect.h"
21 21
22 namespace autofill { 22 namespace autofill {
23 23
24 namespace { 24 namespace {
25 25
26 void AddToJavaArray(const Suggestion& suggestion, 26 void AddToJavaArray(const Suggestion& suggestion,
27 const AutofillPopupController& controller, 27 int icon_id,
28 JNIEnv* env, 28 JNIEnv* env,
29 jobjectArray data_array, 29 jobjectArray data_array,
30 size_t position, 30 size_t position,
31 bool deletable) { 31 bool deletable) {
32 int android_icon_id = 0; 32 int android_icon_id = 0;
33 if (!suggestion.icon.empty()) { 33 if (!suggestion.icon.empty())
34 android_icon_id = ResourceMapper::MapFromChromiumId( 34 android_icon_id = ResourceMapper::MapFromChromiumId(icon_id);
35 controller.GetIconResourceID(suggestion.icon));
36 }
37 35
38 Java_AutofillKeyboardAccessoryBridge_addToAutofillSuggestionArray( 36 Java_AutofillKeyboardAccessoryBridge_addToAutofillSuggestionArray(
39 env, data_array, position, 37 env, data_array, position,
40 base::android::ConvertUTF16ToJavaString(env, suggestion.value).obj(), 38 base::android::ConvertUTF16ToJavaString(env, suggestion.value).obj(),
41 base::android::ConvertUTF16ToJavaString(env, suggestion.label).obj(), 39 base::android::ConvertUTF16ToJavaString(env, suggestion.label).obj(),
42 android_icon_id, suggestion.frontend_id, deletable); 40 android_icon_id, suggestion.frontend_id, deletable);
43 } 41 }
44 42
45 } // namespace 43 } // namespace
46 44
47 AutofillKeyboardAccessoryView::AutofillKeyboardAccessoryView( 45 AutofillKeyboardAccessoryView::AutofillKeyboardAccessoryView(
48 AutofillPopupController* controller) 46 AutofillPopupController* controller)
49 : controller_(controller), 47 : view_helper_(controller), controller_(controller), deleting_index_(-1) {
50 deleting_index_(-1) {
51 JNIEnv* env = base::android::AttachCurrentThread(); 48 JNIEnv* env = base::android::AttachCurrentThread();
52 java_object_.Reset(Java_AutofillKeyboardAccessoryBridge_create(env)); 49 java_object_.Reset(Java_AutofillKeyboardAccessoryBridge_create(env));
53 } 50 }
54 51
55 AutofillKeyboardAccessoryView::~AutofillKeyboardAccessoryView() { 52 AutofillKeyboardAccessoryView::~AutofillKeyboardAccessoryView() {
56 JNIEnv* env = base::android::AttachCurrentThread(); 53 JNIEnv* env = base::android::AttachCurrentThread();
57 Java_AutofillKeyboardAccessoryBridge_resetNativeViewPointer( 54 Java_AutofillKeyboardAccessoryBridge_resetNativeViewPointer(
58 env, java_object_.obj()); 55 env, java_object_.obj());
59 } 56 }
60 57
(...skipping 21 matching lines...) Expand all
82 ScopedJavaLocalRef<jobjectArray> data_array = 79 ScopedJavaLocalRef<jobjectArray> data_array =
83 Java_AutofillKeyboardAccessoryBridge_createAutofillSuggestionArray(env, 80 Java_AutofillKeyboardAccessoryBridge_createAutofillSuggestionArray(env,
84 count); 81 count);
85 positions_.resize(count); 82 positions_.resize(count);
86 size_t position = 0; 83 size_t position = 0;
87 84
88 // Place "CLEAR FORM" item first in the list. 85 // Place "CLEAR FORM" item first in the list.
89 for (size_t i = 0; i < count; ++i) { 86 for (size_t i = 0; i < count; ++i) {
90 const Suggestion& suggestion = controller_->GetSuggestionAt(i); 87 const Suggestion& suggestion = controller_->GetSuggestionAt(i);
91 if (suggestion.frontend_id == POPUP_ITEM_ID_CLEAR_FORM) { 88 if (suggestion.frontend_id == POPUP_ITEM_ID_CLEAR_FORM) {
92 AddToJavaArray(suggestion, *controller_, env, data_array.obj(), position, 89 AddToJavaArray(suggestion,
93 false); 90 view_helper_.GetIconResourceID(suggestion.icon), env,
91 data_array.obj(), position, false);
94 positions_[position++] = i; 92 positions_[position++] = i;
95 } 93 }
96 } 94 }
97 95
98 for (size_t i = 0; i < count; ++i) { 96 for (size_t i = 0; i < count; ++i) {
99 const Suggestion& suggestion = controller_->GetSuggestionAt(i); 97 const Suggestion& suggestion = controller_->GetSuggestionAt(i);
100 if (suggestion.frontend_id != POPUP_ITEM_ID_CLEAR_FORM) { 98 if (suggestion.frontend_id != POPUP_ITEM_ID_CLEAR_FORM) {
101 bool deletable = 99 bool deletable =
102 controller_->GetRemovalConfirmationText(i, nullptr, nullptr); 100 controller_->GetRemovalConfirmationText(i, nullptr, nullptr);
103 AddToJavaArray(suggestion, *controller_, env, data_array.obj(), position, 101 AddToJavaArray(suggestion,
104 deletable); 102 view_helper_.GetIconResourceID(suggestion.icon), env,
103 data_array.obj(), position, deletable);
105 positions_[position++] = i; 104 positions_[position++] = i;
106 } 105 }
107 } 106 }
108 107
109 Java_AutofillKeyboardAccessoryBridge_show( 108 Java_AutofillKeyboardAccessoryBridge_show(
110 env, java_object_.obj(), data_array.obj(), controller_->IsRTL()); 109 env, java_object_.obj(), data_array.obj(), controller_->IsRTL());
111 } 110 }
112 111
112 int AutofillKeyboardAccessoryView::LineFromY(int y) {
113 return view_helper_.LineFromY(y);
114 }
115
116 gfx::Rect AutofillKeyboardAccessoryView::GetPopupBounds() {
117 return view_helper_.popup_bounds();
118 }
119
113 void AutofillKeyboardAccessoryView::SuggestionSelected( 120 void AutofillKeyboardAccessoryView::SuggestionSelected(
114 JNIEnv* env, 121 JNIEnv* env,
115 const JavaParamRef<jobject>& obj, 122 const JavaParamRef<jobject>& obj,
116 jint list_index) { 123 jint list_index) {
117 // Race: Hide() may have already run. 124 // Race: Hide() may have already run.
118 if (controller_) 125 if (controller_)
119 controller_->AcceptSuggestion(positions_[list_index]); 126 controller_->AcceptSuggestion(positions_[list_index]);
120 } 127 }
121 128
122 void AutofillKeyboardAccessoryView::DeletionRequested( 129 void AutofillKeyboardAccessoryView::DeletionRequested(
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 void AutofillKeyboardAccessoryView::InvalidateRow(size_t) { 168 void AutofillKeyboardAccessoryView::InvalidateRow(size_t) {
162 } 169 }
163 170
164 // static 171 // static
165 bool AutofillKeyboardAccessoryView::RegisterAutofillKeyboardAccessoryView( 172 bool AutofillKeyboardAccessoryView::RegisterAutofillKeyboardAccessoryView(
166 JNIEnv* env) { 173 JNIEnv* env) {
167 return RegisterNativesImpl(env); 174 return RegisterNativesImpl(env);
168 } 175 }
169 176
170 } // namespace autofill 177 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698