From 581252febc2ca8c2ecbe7077047a34aae0ab25b5 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Tue, 7 Apr 2015 21:15:33 -0400 Subject: [PATCH] CB-8814 Deprecate ScrollEvent --- .../src/org/apache/cordova/CordovaWebViewEngine.java | 1 - framework/src/org/apache/cordova/CordovaWebViewImpl.java | 8 -------- framework/src/org/apache/cordova/ScrollEvent.java | 6 ++---- .../src/org/apache/cordova/engine/SystemWebView.java | 9 +++++++-- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/framework/src/org/apache/cordova/CordovaWebViewEngine.java b/framework/src/org/apache/cordova/CordovaWebViewEngine.java index b31c888a..dd84ab11 100644 --- a/framework/src/org/apache/cordova/CordovaWebViewEngine.java +++ b/framework/src/org/apache/cordova/CordovaWebViewEngine.java @@ -76,7 +76,6 @@ public interface CordovaWebViewEngine { void onPageStarted(String newUrl); void onReceivedError(int errorCode, String description, String failingUrl); void onPageFinishedLoading(String url); - void onScrollChanged(int l, int t, int oldl, int oldt); boolean onNavigationAttempt(String url); } } diff --git a/framework/src/org/apache/cordova/CordovaWebViewImpl.java b/framework/src/org/apache/cordova/CordovaWebViewImpl.java index 04bc1dd4..7115db41 100644 --- a/framework/src/org/apache/cordova/CordovaWebViewImpl.java +++ b/framework/src/org/apache/cordova/CordovaWebViewImpl.java @@ -573,14 +573,6 @@ public class CordovaWebViewImpl implements CordovaWebView { return null; } - @Override - public void onScrollChanged(int l, int t, int oldl, int oldt) { - // TODO: scrolling is perf-sensitive, so we'd probably be better to no use postMessage - // here, and also not to create any new objects. - ScrollEvent myEvent = new ScrollEvent(l, t, oldl, oldt, getView()); - pluginManager.postMessage("onScrollChanged", myEvent); - } - @Override public boolean onNavigationAttempt(String url) { // Give plugins the chance to handle the url diff --git a/framework/src/org/apache/cordova/ScrollEvent.java b/framework/src/org/apache/cordova/ScrollEvent.java index de1de8d9..4e31ca71 100644 --- a/framework/src/org/apache/cordova/ScrollEvent.java +++ b/framework/src/org/apache/cordova/ScrollEvent.java @@ -22,11 +22,9 @@ package org.apache.cordova; import android.view.View; /* - * This can be used by any view, including native views - * + * @deprecated As of release 4.0. Use view.getViewTreeObserver().addOnScrollChangedListener(...) instead. */ - - +@Deprecated public class ScrollEvent { public int l, t, nl, nt; diff --git a/framework/src/org/apache/cordova/engine/SystemWebView.java b/framework/src/org/apache/cordova/engine/SystemWebView.java index 34d54585..66ce8468 100644 --- a/framework/src/org/apache/cordova/engine/SystemWebView.java +++ b/framework/src/org/apache/cordova/engine/SystemWebView.java @@ -62,8 +62,13 @@ public class SystemWebView extends WebView implements CordovaWebViewEngine.Engin @Override public void onScrollChanged(int l, int t, int oldl, int oldt) { - super.onScrollChanged(l, t, oldl, oldt); - parentEngine.client.onScrollChanged(l, t, oldl, oldt); + // TODO: scrolling is perf-sensitive, so we'd be better to not use postMessage + // here, and also not create any new objects. Instead, plugins should use: + // webView.getView().getViewTreeObserver().addOnScrollChangedListener(...) + if (parentEngine != null && parentEngine.pluginManager != null) { + ScrollEvent myEvent = new ScrollEvent(l, t, oldl, oldt, this); + parentEngine.pluginManager.postMessage("onScrollChanged", myEvent); + } } @Override