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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java

Issue 1281323003: Remove items on long press in keyboard accessory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Null out context. Rebase. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java
index 85b48904fbd3aebde4c89963e721c7e8fefa4a78..54674b18d6e2a32d279919242bf33456eeb24519 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java
@@ -4,12 +4,17 @@
package org.chromium.chrome.browser.autofill;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
+import org.chromium.chrome.R;
import org.chromium.chrome.browser.ResourceId;
import org.chromium.ui.DropdownItem;
+import org.chromium.ui.autofill.AutofillDelegate;
import org.chromium.ui.autofill.AutofillKeyboardAccessory;
-import org.chromium.ui.autofill.AutofillKeyboardAccessory.AutofillKeyboardAccessoryDelegate;
import org.chromium.ui.autofill.AutofillSuggestion;
import org.chromium.ui.base.WindowAndroid;
@@ -19,9 +24,11 @@ import org.chromium.ui.base.WindowAndroid;
* --enable-autofill-keyboard-accessory-view is passed on the command line.
*/
@JNINamespace("autofill")
-public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessoryDelegate {
+public class AutofillKeyboardAccessoryBridge
+ implements AutofillDelegate, DialogInterface.OnClickListener {
private long mNativeAutofillKeyboardAccessory;
private AutofillKeyboardAccessory mAccessoryView;
+ private Context mContext;
private AutofillKeyboardAccessoryBridge() {
}
@@ -43,6 +50,19 @@ public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessor
nativeSuggestionSelected(mNativeAutofillKeyboardAccessory, listIndex);
}
+ @Override
+ public void deleteSuggestion(int listIndex) {
+ if (mNativeAutofillKeyboardAccessory == 0) return;
+ nativeDeletionRequested(mNativeAutofillKeyboardAccessory, listIndex);
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ assert which == DialogInterface.BUTTON_POSITIVE;
+ if (mNativeAutofillKeyboardAccessory == 0) return;
+ nativeDeletionConfirmed(mNativeAutofillKeyboardAccessory);
+ }
+
/**
* Initializes this object.
* This function should be called at most one time.
@@ -59,6 +79,7 @@ public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessor
mNativeAutofillKeyboardAccessory = nativeAutofillKeyboardAccessory;
mAccessoryView = new AutofillKeyboardAccessory(windowAndroid, this);
+ mContext = windowAndroid.getActivity().get();
}
/**
@@ -75,6 +96,7 @@ public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessor
@CalledByNative
private void dismiss() {
if (mAccessoryView != null) mAccessoryView.dismiss();
+ mContext = null;
}
/**
@@ -91,6 +113,17 @@ public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessor
// eventually disappear).
@CalledByNative
+ private void confirmDeletion(String title, String body) {
+ new AlertDialog.Builder(mContext, R.style.AlertDialogTheme)
+ .setTitle(title)
+ .setMessage(body)
+ .setNegativeButton(R.string.cancel, null)
+ .setPositiveButton(R.string.ok, this)
+ .create()
+ .show();
+ }
+
+ @CalledByNative
private static AutofillSuggestion[] createAutofillSuggestionArray(int size) {
return new AutofillSuggestion[size];
}
@@ -114,12 +147,15 @@ public class AutofillKeyboardAccessoryBridge implements AutofillKeyboardAccessor
*/
@CalledByNative
private static void addToAutofillSuggestionArray(AutofillSuggestion[] array, int index,
- String label, String sublabel, int iconId, int suggestionId) {
+ String label, String sublabel, int iconId, int suggestionId, boolean deletable) {
int drawableId = iconId == 0 ? DropdownItem.NO_ICON : ResourceId.mapToDrawableId(iconId);
- array[index] = new AutofillSuggestion(label, sublabel, drawableId, suggestionId, false);
+ array[index] = new AutofillSuggestion(label, sublabel, drawableId, suggestionId, deletable);
}
private native void nativeViewDismissed(long nativeAutofillKeyboardAccessoryView);
private native void nativeSuggestionSelected(
long nativeAutofillKeyboardAccessoryView, int listIndex);
+ private native void nativeDeletionRequested(
+ long nativeAutofillKeyboardAccessoryView, int listIndex);
+ private native void nativeDeletionConfirmed(long nativeAutofillKeyboardAccessoryView);
}

Powered by Google App Engine
This is Rietveld 408576698