Index: ui/events/gesture_detection/gesture_config_helper_android.cc |
diff --git a/ui/events/gesture_detection/gesture_config_helper_android.cc b/ui/events/gesture_detection/gesture_config_helper_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..414b2b34982ae622a398b0e27a8fa0c5a5e5cecf |
--- /dev/null |
+++ b/ui/events/gesture_detection/gesture_config_helper_android.cc |
@@ -0,0 +1,71 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ui/events/gesture_detection/gesture_config_helper.h" |
+ |
+#include "ui/gfx/android/view_configuration.h" |
+#include "ui/gfx/screen.h" |
+ |
+using gfx::ViewConfiguration; |
+ |
+namespace ui { |
+ |
+// TODO(jdduke): Adopt GestureConfiguration on Android, crbug/339203. |
+ |
+GestureDetector::Config DefaultGestureDetectorConfig() { |
+ GestureDetector::Config config; |
+ |
+ config.longpress_timeout = base::TimeDelta::FromMilliseconds( |
+ ViewConfiguration::GetLongPressTimeoutInMs()); |
+ config.tap_timeout = base::TimeDelta::FromMilliseconds( |
+ ViewConfiguration::GetTapTimeoutInMs()); |
+ config.double_tap_timeout = base::TimeDelta::FromMilliseconds( |
+ ViewConfiguration::GetDoubleTapTimeoutInMs()); |
+ |
+ config.scaled_touch_slop = ViewConfiguration::GetTouchSlopInPixels(); |
+ config.scaled_double_tap_slop = ViewConfiguration::GetDoubleTapSlopInPixels(); |
+ config.scaled_minimum_fling_velocity = |
+ ViewConfiguration::GetMinimumFlingVelocityInPixelsPerSecond(); |
+ config.scaled_maximum_fling_velocity = |
+ ViewConfiguration::GetMaximumFlingVelocityInPixelsPerSecond(); |
+ |
+ return config; |
+} |
+ |
+ScaleGestureDetector::Config DefaultScaleGestureDetectorConfig() { |
+ ScaleGestureDetector::Config config; |
+ |
+ config.gesture_detector_config = DefaultGestureDetectorConfig(); |
+ // TODO(jdduke): Enable "quick scale" on the ScaleGestureDetector, and remove |
+ // corresponding double tap drag zoom code from GestureProvider, crbug/331092. |
+ config.quick_scale_enabled = false; |
+ config.min_scaling_touch_major = |
+ ViewConfiguration::GetMinScalingTouchMajorInPixels(); |
+ config.min_scaling_span = ViewConfiguration::GetMinScalingSpanInPixels(); |
+ |
+ return config; |
+} |
+ |
+SnapScrollController::Config DefaultSnapScrollControllerConfig() { |
+ SnapScrollController::Config config; |
+ |
+ const gfx::Display& display = |
+ gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
+ |
+ config.screen_width_pixels = display.GetSizeInPixel().width(); |
+ config.screen_height_pixels = display.GetSizeInPixel().height(); |
+ config.device_scale_factor = display.device_scale_factor(); |
+ |
+ return config; |
+} |
+ |
+GestureProvider::Config DefaultGestureProviderConfig() { |
+ GestureProvider::Config config; |
+ config.gesture_detector_config = DefaultGestureDetectorConfig(); |
+ config.scale_gesture_detector_config = DefaultScaleGestureDetectorConfig(); |
+ config.snap_scroll_controller_config = DefaultSnapScrollControllerConfig(); |
+ return config; |
+} |
+ |
+} // namespace ui |