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

Unified Diff: ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.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: ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java
diff --git a/ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java b/ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java
index 153691f0aa3d083edba8da6e4bf9a98dc99a3795..567df689dc09b237d0ede4cf04c56725eb954dea 100644
--- a/ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java
+++ b/ui/android/java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java
@@ -26,41 +26,26 @@ import org.chromium.ui.gfx.DeviceDisplayInfo;
* below the content area.
*/
public class AutofillKeyboardAccessory extends LinearLayout
- implements WindowAndroid.KeyboardVisibilityListener, View.OnClickListener {
+ implements WindowAndroid.KeyboardVisibilityListener, View.OnClickListener,
+ View.OnLongClickListener {
private final WindowAndroid mWindowAndroid;
- private final AutofillKeyboardAccessoryDelegate mAutofillCallback;
+ private final AutofillDelegate mAutofillDelegate;
private final int mMaximumLabelWidthPx;
private final int mMaximumSublabelWidthPx;
/**
- * An interface to handle the touch interaction with an AutofillKeyboardAccessory object.
- */
- public interface AutofillKeyboardAccessoryDelegate {
- /**
- * Informs the controller the AutofillKeyboardAccessory was hidden.
- */
- public void dismissed();
-
- /**
- * Handles the selection of an Autofill suggestion from an AutofillKeyboardAccessory.
- * @param listIndex The index of the selected Autofill suggestion.
- */
- public void suggestionSelected(int listIndex);
- }
-
- /**
* Creates an AutofillKeyboardAccessory with specified parameters.
* @param windowAndroid The owning WindowAndroid.
- * @param autofillCallback A object that handles the calls to the native
- * AutofillKeyboardAccessoryView.
+ * @param autofillDelegate A object that handles the calls to the native
+ * AutofillKeyboardAccessoryView.
*/
public AutofillKeyboardAccessory(
- WindowAndroid windowAndroid, AutofillKeyboardAccessoryDelegate autofillCallback) {
+ WindowAndroid windowAndroid, AutofillDelegate autofillDelegate) {
super(windowAndroid.getActivity().get());
- assert autofillCallback != null;
+ assert autofillDelegate != null;
assert windowAndroid.getActivity().get() != null;
mWindowAndroid = windowAndroid;
- mAutofillCallback = autofillCallback;
+ mAutofillDelegate = autofillDelegate;
int deviceWidthPx = DeviceDisplayInfo.create(getContext()).getDisplayWidth();
mMaximumLabelWidthPx = deviceWidthPx / 2;
@@ -82,7 +67,8 @@ public class AutofillKeyboardAccessory extends LinearLayout
@SuppressLint("InlinedApi")
public void showWithSuggestions(AutofillSuggestion[] suggestions, boolean isRtl) {
removeAllViews();
- for (AutofillSuggestion suggestion : suggestions) {
+ for (int i = 0; i < suggestions.length; i++) {
+ AutofillSuggestion suggestion = suggestions[i];
assert !TextUtils.isEmpty(suggestion.getLabel());
View touchTarget;
@@ -119,7 +105,12 @@ public class AutofillKeyboardAccessory extends LinearLayout
}
}
+ touchTarget.setTag(i);
touchTarget.setOnClickListener(this);
+ if (suggestion.isDeletable()) {
+ touchTarget.setOnLongClickListener(this);
+ }
+
addView(touchTarget);
}
@@ -149,20 +140,18 @@ public class AutofillKeyboardAccessory extends LinearLayout
public void keyboardVisibilityChanged(boolean isShowing) {
if (!isShowing) {
dismiss();
- mAutofillCallback.dismissed();
+ mAutofillDelegate.dismissed();
}
}
@Override
public void onClick(View v) {
- int count = getChildCount();
- for (int i = 0; i < count; i++) {
- if (getChildAt(i) == v) {
- mAutofillCallback.suggestionSelected(i);
- return;
- }
- }
+ mAutofillDelegate.suggestionSelected((int) v.getTag());
+ }
- assert false;
+ @Override
+ public boolean onLongClick(View v) {
+ mAutofillDelegate.deleteSuggestion((int) v.getTag());
+ return true;
}
}

Powered by Google App Engine
This is Rietveld 408576698