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 33ef3fb492c86dfbca365a7f55be7a9722dad9ec..87a781fb78e194f9b4c2d2a55700648854845cf0 100644 |
--- a/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc |
+++ b/chrome/browser/ui/android/autofill/autofill_keyboard_accessory_view.cc |
@@ -22,7 +22,8 @@ namespace autofill { |
AutofillKeyboardAccessoryView::AutofillKeyboardAccessoryView( |
AutofillPopupController* controller) |
- : controller_(controller) { |
+ : controller_(controller), |
+ deleting_index_(-1) { |
JNIEnv* env = base::android::AttachCurrentThread(); |
java_object_.Reset(Java_AutofillKeyboardAccessoryBridge_create(env)); |
} |
@@ -66,11 +67,13 @@ void AutofillKeyboardAccessoryView::UpdateBoundsAndRedrawPopup() { |
controller_->GetIconResourceID(suggestion.icon)); |
} |
+ bool deletable = |
+ controller_->GetRemovalConfirmationText(i, nullptr, nullptr); |
Java_AutofillKeyboardAccessoryBridge_addToAutofillSuggestionArray( |
env, data_array.obj(), i, |
base::android::ConvertUTF16ToJavaString(env, suggestion.value).obj(), |
base::android::ConvertUTF16ToJavaString(env, suggestion.label).obj(), |
- android_icon_id, suggestion.frontend_id); |
+ android_icon_id, suggestion.frontend_id, deletable); |
} |
Java_AutofillKeyboardAccessoryBridge_show( |
@@ -85,6 +88,34 @@ void AutofillKeyboardAccessoryView::SuggestionSelected(JNIEnv* env, |
controller_->AcceptSuggestion(list_index); |
} |
+void AutofillKeyboardAccessoryView::DeletionRequested(JNIEnv* env, |
+ jobject obj, |
+ jint list_index) { |
+ if (!controller_) |
+ return; |
+ |
+ base::string16 confirmation_title, confirmation_body; |
+ if (!controller_->GetRemovalConfirmationText(list_index, &confirmation_title, |
+ &confirmation_body)) { |
+ return; |
+ } |
+ |
+ deleting_index_ = list_index; |
+ Java_AutofillKeyboardAccessoryBridge_confirmDeletion( |
+ env, java_object_.obj(), |
+ base::android::ConvertUTF16ToJavaString(env, confirmation_title).obj(), |
+ base::android::ConvertUTF16ToJavaString(env, confirmation_body).obj()); |
+} |
+ |
+void AutofillKeyboardAccessoryView::DeletionConfirmed(JNIEnv* env, |
+ jobject obj) { |
+ if (!controller_) |
+ return; |
+ |
+ CHECK_GE(deleting_index_, 0); |
+ controller_->RemoveSuggestion(deleting_index_); |
+} |
+ |
void AutofillKeyboardAccessoryView::ViewDismissed(JNIEnv* env, jobject obj) { |
if (controller_) |
controller_->ViewDestroyed(); |