Add title bar indicator to tab
Bug: http://b/issue?id=3184567
When the url bar is scrolled off the screen, the current
tab shows an indicator
Change-Id: I5a1f11bac09304c81857496b4bb7662656ef225a
diff --git a/src/com/android/browser/ScrollWebView.java b/src/com/android/browser/ScrollWebView.java
index 97bd2c7..51df958 100644
--- a/src/com/android/browser/ScrollWebView.java
+++ b/src/com/android/browser/ScrollWebView.java
@@ -26,11 +26,10 @@
/**
* Manage WebView scroll events
*/
-public class ScrollWebView extends WebView {
+public class ScrollWebView extends WebView implements Runnable {
private ScrollListener mScrollListener;
private boolean mIsCancelled;
- private Runnable mScrollRunnable;
/**
* @param context
@@ -68,6 +67,13 @@
super(context);
}
+ // scroll runnable implementation
+ public void run() {
+ if (!mIsCancelled && (mScrollListener != null)) {
+ mScrollListener.onScroll(getVisibleTitleHeight());
+ }
+ }
+
void hideEmbeddedTitleBar() {
scrollBy(0, getVisibleTitleHeight());
}
@@ -77,13 +83,7 @@
super.setEmbeddedTitleBar(title);
if (title != null && mScrollListener != null) {
// allow the scroll listener to initialize its state
- post(new Runnable() {
- @Override
- public void run() {
- mScrollListener.onScroll((title.getHeight() == 0 ||
- getVisibleTitleHeight() > 0));
- }
- });
+ post(this);
}
}
@@ -97,7 +97,7 @@
protected void onScrollChanged(int l, final int t, int ol, int ot) {
super.onScrollChanged(l, t, ol, ot);
if (!mIsCancelled) {
- post(mScrollRunnable);
+ post(this);
} else {
mIsCancelled = false;
}
@@ -105,21 +105,12 @@
void setScrollListener(ScrollListener l) {
mScrollListener = l;
- if (mScrollListener != null) {
- mScrollRunnable = new Runnable() {
- public void run() {
- if (!mIsCancelled) {
- mScrollListener.onScroll(getVisibleTitleHeight() > 0);
- }
- }
- };
- }
}
// callback for scroll events
interface ScrollListener {
- public void onScroll(boolean titleVisible);
+ public void onScroll(int visibleTitleHeight);
}
}