| Index: chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
|
| diff --git a/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc b/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
|
| index 76591fc4ba6149b2ba768e11c7aec3274251d17c..8f48efa5c8cbca45aa4f25f4ac2db5138263dbee 100644
|
| --- a/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
|
| +++ b/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc
|
| @@ -45,8 +45,13 @@ void AddToJavaArray(const Suggestion& suggestion,
|
| } // namespace
|
|
|
| AutofillKeyboardAccessoryView::AutofillKeyboardAccessoryView(
|
| - AutofillPopupController* controller)
|
| - : controller_(controller), deleting_index_(-1) {
|
| + AutofillPopupController* controller,
|
| + unsigned int animation_duration_millis,
|
| + bool should_limit_label_width)
|
| + : controller_(controller),
|
| + animation_duration_millis_(animation_duration_millis),
|
| + should_limit_label_width_(should_limit_label_width),
|
| + deleting_index_(-1) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| java_object_.Reset(Java_AutofillKeyboardAccessoryBridge_create(env));
|
| }
|
| @@ -63,7 +68,8 @@ void AutofillKeyboardAccessoryView::Show() {
|
| DCHECK(view_android);
|
| Java_AutofillKeyboardAccessoryBridge_init(
|
| env, java_object_, reinterpret_cast<intptr_t>(this),
|
| - view_android->GetWindowAndroid()->GetJavaObject());
|
| + view_android->GetWindowAndroid()->GetJavaObject(),
|
| + animation_duration_millis_, should_limit_label_width_);
|
|
|
| OnSuggestionsChanged();
|
| }
|
| @@ -87,20 +93,26 @@ void AutofillKeyboardAccessoryView::OnSuggestionsChanged() {
|
| positions_.resize(count);
|
| size_t position = 0;
|
|
|
| - // Place "CLEAR FORM" item first in the list.
|
| + // Place "CLEAR FORM" and "CREATE HINT" items first in the list.
|
| + // Both "CLEAR FORM" and "CREATE HINT" cannot be present in the list.
|
| for (size_t i = 0; i < count; ++i) {
|
| const Suggestion& suggestion = controller_->GetSuggestionAt(i);
|
| - if (suggestion.frontend_id == POPUP_ITEM_ID_CLEAR_FORM) {
|
| - AddToJavaArray(suggestion, controller_->layout_model().GetIconResourceID(
|
| - suggestion.icon),
|
| - env, data_array.obj(), position, false);
|
| + if (suggestion.frontend_id == POPUP_ITEM_ID_CLEAR_FORM ||
|
| + suggestion.frontend_id == POPUP_ITEM_ID_CREATE_HINT) {
|
| + AddToJavaArray(
|
| + suggestion,
|
| + controller_->layout_model().GetIconResourceID(suggestion.icon), env,
|
| + data_array.obj(), position, false);
|
| positions_[position++] = i;
|
| }
|
| }
|
|
|
| + DCHECK_LT(position, 2U);
|
| +
|
| for (size_t i = 0; i < count; ++i) {
|
| const Suggestion& suggestion = controller_->GetSuggestionAt(i);
|
| - if (suggestion.frontend_id != POPUP_ITEM_ID_CLEAR_FORM) {
|
| + if (suggestion.frontend_id != POPUP_ITEM_ID_CLEAR_FORM &&
|
| + suggestion.frontend_id != POPUP_ITEM_ID_CREATE_HINT) {
|
| bool deletable =
|
| controller_->GetRemovalConfirmationText(i, nullptr, nullptr);
|
| AddToJavaArray(suggestion, controller_->layout_model().GetIconResourceID(
|
|
|