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

Side by Side Diff: content/browser/android/overscroll_controller_android.cc

Issue 748433002: [Android] Isolate OverscrollRefresh from device density (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « no previous file | content/browser/android/overscroll_refresh.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/android/overscroll_controller_android.h" 5 #include "content/browser/android/overscroll_controller_android.h"
6 6
7 #include "base/android/build_info.h" 7 #include "base/android/build_info.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "cc/layers/layer.h" 9 #include "cc/layers/layer.h"
10 #include "cc/output/compositor_frame_metadata.h" 10 #include "cc/output/compositor_frame_metadata.h"
11 #include "content/browser/android/edge_effect.h" 11 #include "content/browser/android/edge_effect.h"
12 #include "content/browser/android/edge_effect_l.h" 12 #include "content/browser/android/edge_effect_l.h"
13 #include "content/common/input/did_overscroll_params.h" 13 #include "content/common/input/did_overscroll_params.h"
14 #include "content/public/browser/web_contents.h" 14 #include "content/public/browser/web_contents.h"
15 #include "third_party/WebKit/public/web/WebInputEvent.h" 15 #include "third_party/WebKit/public/web/WebInputEvent.h"
16 #include "ui/base/android/window_android_compositor.h" 16 #include "ui/base/android/window_android_compositor.h"
17 17
18 namespace content { 18 namespace content {
19 namespace { 19 namespace {
20 20
21 // Used for conditional creation of EdgeEffect types for the overscroll glow. 21 // Used for conditional creation of EdgeEffect types for the overscroll glow.
22 const int kAndroidLSDKVersion = 21; 22 const int kAndroidLSDKVersion = 21;
23 23
24 // Default offset in dips from the top of the view beyond which the refresh
25 // action will be activated.
26 const int kDefaultRefreshDragTargetDips = 64;
27
24 scoped_ptr<EdgeEffectBase> CreateGlowEdgeEffect( 28 scoped_ptr<EdgeEffectBase> CreateGlowEdgeEffect(
25 ui::SystemUIResourceManager* resource_manager, 29 ui::SystemUIResourceManager* resource_manager,
26 float dpi_scale) { 30 float dpi_scale) {
27 DCHECK(resource_manager); 31 DCHECK(resource_manager);
28 static bool use_l_flavoured_effect = 32 static bool use_l_flavoured_effect =
29 base::android::BuildInfo::GetInstance()->sdk_int() >= kAndroidLSDKVersion; 33 base::android::BuildInfo::GetInstance()->sdk_int() >= kAndroidLSDKVersion;
30 if (use_l_flavoured_effect) 34 if (use_l_flavoured_effect)
31 return scoped_ptr<EdgeEffectBase>(new EdgeEffectL(resource_manager)); 35 return scoped_ptr<EdgeEffectBase>(new EdgeEffectL(resource_manager));
32 36
33 return scoped_ptr<EdgeEffectBase>( 37 return scoped_ptr<EdgeEffectBase>(
34 new EdgeEffect(resource_manager, dpi_scale)); 38 new EdgeEffect(resource_manager, dpi_scale));
35 } 39 }
36 40
37 } // namespace 41 } // namespace
38 42
39 OverscrollControllerAndroid::OverscrollControllerAndroid( 43 OverscrollControllerAndroid::OverscrollControllerAndroid(
40 WebContents* web_contents, 44 WebContents* web_contents,
41 ui::WindowAndroidCompositor* compositor, 45 ui::WindowAndroidCompositor* compositor,
42 float dpi_scale) 46 float dpi_scale)
43 : WebContentsObserver(web_contents), 47 : WebContentsObserver(web_contents),
44 compositor_(compositor), 48 compositor_(compositor),
45 dpi_scale_(dpi_scale), 49 dpi_scale_(dpi_scale),
46 enabled_(true), 50 enabled_(true),
47 glow_effect_(base::Bind(&CreateGlowEdgeEffect, 51 glow_effect_(base::Bind(&CreateGlowEdgeEffect,
48 &compositor->GetSystemUIResourceManager(), 52 &compositor->GetSystemUIResourceManager(),
49 dpi_scale_)), 53 dpi_scale_)),
50 refresh_effect_(&compositor->GetSystemUIResourceManager(), this), 54 refresh_effect_(&compositor->GetSystemUIResourceManager(),
55 this,
56 kDefaultRefreshDragTargetDips * dpi_scale),
51 triggered_refresh_active_(false) { 57 triggered_refresh_active_(false) {
52 DCHECK(web_contents); 58 DCHECK(web_contents);
53 } 59 }
54 60
55 OverscrollControllerAndroid::~OverscrollControllerAndroid() { 61 OverscrollControllerAndroid::~OverscrollControllerAndroid() {
56 } 62 }
57 63
58 bool OverscrollControllerAndroid::WillHandleGestureEvent( 64 bool OverscrollControllerAndroid::WillHandleGestureEvent(
59 const blink::WebGestureEvent& event) { 65 const blink::WebGestureEvent& event) {
60 if (!enabled_) 66 if (!enabled_)
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 223
218 bool OverscrollControllerAndroid::IsStillRefreshing() const { 224 bool OverscrollControllerAndroid::IsStillRefreshing() const {
219 return triggered_refresh_active_; 225 return triggered_refresh_active_;
220 } 226 }
221 227
222 void OverscrollControllerAndroid::SetNeedsAnimate() { 228 void OverscrollControllerAndroid::SetNeedsAnimate() {
223 compositor_->SetNeedsAnimate(); 229 compositor_->SetNeedsAnimate();
224 } 230 }
225 231
226 } // namespace content 232 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/android/overscroll_refresh.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698