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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java

Issue 2784463002: Revert of chrome/android: Push EventFilters into the Layout implementations. (Closed)
Patch Set: Created 3 years, 9 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/compositor/layouts/Layout.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java
index 67763c3e7adcaa97cd006deb56fcfefd044e7f25..be3cf7b4c8ff4a0fc1129af23eef7b8393925ed4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java
@@ -99,6 +99,7 @@
// Helpers
private final LayoutUpdateHost mUpdateHost;
protected final LayoutRenderHost mRenderHost;
+ private EventFilter mEventFilter;
/** The tabs currently being rendered as part of this layout. The tabs are
* drawn using the same ordering as this array. */
@@ -119,11 +120,14 @@
* @param context The current Android's context.
* @param updateHost The parent {@link LayoutUpdateHost}.
* @param renderHost The parent {@link LayoutRenderHost}.
- */
- public Layout(Context context, LayoutUpdateHost updateHost, LayoutRenderHost renderHost) {
+ * @param eventFilter The {@link EventFilter} this {@link Layout} is listening to.
+ */
+ public Layout(Context context, LayoutUpdateHost updateHost, LayoutRenderHost renderHost,
+ EventFilter eventFilter) {
mContext = context;
mUpdateHost = updateHost;
mRenderHost = renderHost;
+ mEventFilter = eventFilter;
// Invalid sizes
mWidthDp = -1;
@@ -566,6 +570,69 @@
}
return false;
}
+
+ /**
+ * Called on touch drag event.
+ * @param time The current time of the app in ms.
+ * @param x The y coordinate of the end of the drag event.
+ * @param y The y coordinate of the end of the drag event.
+ * @param deltaX The number of pixels dragged in the x direction.
+ * @param deltaY The number of pixels dragged in the y direction.
+ */
+ public void drag(long time, float x, float y, float deltaX, float deltaY) { }
+
+ /**
+ * Called on touch fling event. This is called before the onUpOrCancel event.
+ *
+ * @param time The current time of the app in ms.
+ * @param x The y coordinate of the start of the fling event.
+ * @param y The y coordinate of the start of the fling event.
+ * @param velocityX The amount of velocity in the x direction.
+ * @param velocityY The amount of velocity in the y direction.
+ */
+ public void fling(long time, float x, float y, float velocityX, float velocityY) { }
+
+ /**
+ * Called on onDown event.
+ *
+ * @param time The time stamp in millisecond of the event.
+ * @param x The x position of the event.
+ * @param y The y position of the event.
+ */
+ public void onDown(long time, float x, float y) { }
+
+ /**
+ * Called on long press touch event.
+ * @param time The current time of the app in ms.
+ * @param x The x coordinate of the position of the press event.
+ * @param y The y coordinate of the position of the press event.
+ */
+ public void onLongPress(long time, float x, float y) { }
+
+ /**
+ * Called on click. This is called before the onUpOrCancel event.
+ * @param time The current time of the app in ms.
+ * @param x The x coordinate of the position of the click.
+ * @param y The y coordinate of the position of the click.
+ */
+ public void click(long time, float x, float y) { }
+
+ /**
+ * Called on up or cancel touch events. This is called after the click and fling event if any.
+ * @param time The current time of the app in ms.
+ */
+ public void onUpOrCancel(long time) { }
+
+ /**
+ * Called when at least 2 touch events are detected.
+ * @param time The current time of the app in ms.
+ * @param x0 The x coordinate of the first touch event.
+ * @param y0 The y coordinate of the first touch event.
+ * @param x1 The x coordinate of the second touch event.
+ * @param y1 The y coordinate of the second touch event.
+ * @param firstEvent The pinch is the first of a sequence of pinch events.
+ */
+ public void onPinch(long time, float x0, float y0, float x1, float y1, boolean firstEvent) { }
/**
* Called by the LayoutManager when an animation should be killed.
@@ -971,6 +1038,15 @@
}
/**
+ * Setting this will only take effect the next time this layout is shown. If it is currently
+ * showing the original filter will still be used.
+ * @param filter
+ */
+ public void setEventFilter(EventFilter filter) {
+ mEventFilter = filter;
+ }
+
+ /**
* @param e The {@link MotionEvent} to consider.
* @param offsets The current touch offsets that should be applied to the
* {@link EventFilter}s.
@@ -988,14 +1064,9 @@
if (eventFilter.onInterceptTouchEvent(e, isKeyboardShowing)) return eventFilter;
}
- EventFilter layoutEventFilter = getEventFilter();
- if (layoutEventFilter != null) {
- if (offsets != null) {
- layoutEventFilter.setCurrentMotionEventOffsets(offsets.x, offsets.y);
- }
- if (layoutEventFilter.onInterceptTouchEvent(e, isKeyboardShowing)) {
- return layoutEventFilter;
- }
+ if (mEventFilter != null) {
+ if (offsets != null) mEventFilter.setCurrentMotionEventOffsets(offsets.x, offsets.y);
+ if (mEventFilter.onInterceptTouchEvent(e, isKeyboardShowing)) return mEventFilter;
}
return null;
}
@@ -1056,9 +1127,11 @@
}
/**
- * @return The EventFilter to use for processing events for this Layout.
- */
- protected abstract EventFilter getEventFilter();
+ * @return Whether the tabstrip's event filter is enabled.
+ */
+ public boolean isTabStripEventFilterEnabled() {
+ return true;
+ }
/**
* Get an instance of {@link SceneLayer}. Any class inheriting {@link Layout}

Powered by Google App Engine
This is Rietveld 408576698