package com.lean56.andplug.app.view;
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
import com.lean56.andplug.app.view.generic.MutableScroll;
import com.lean56.andplug.app.view.generic.ObservableScroll;
import com.lean56.andplug.app.view.generic.OnContentChangedListener;
/**
* ObservableWebView
*
* @author liwuhuo <www.liwushuo.com>
* @author Charles
*/
public class ObservableWebView extends WebView implements ObservableScroll, MutableScroll {
private OnContentChangedListener mOnContentChangedListener;
private ObservableScroll.OnScrollChangedListener mOnScrollChangedListener;
public ObservableWebView(Context context) {
super(context);
}
public ObservableWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ObservableWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
// [+] WebView
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if(mOnScrollChangedListener != null) {
mOnScrollChangedListener.onScrollChanged(l, t);
}
}
// [-] WebView
// [+] ObservableScroll
@Override
public void setOnContentChangedListener(OnContentChangedListener listener) {
mOnContentChangedListener = listener;
}
@Override
public ObservableScroll.OnScrollChangedListener getOnScrollChangedListener() {
return mOnScrollChangedListener;
}
@Override
public void setOnScrollChangedListener(ObservableScroll.OnScrollChangedListener listener) {
mOnScrollChangedListener = listener;
}
// [-] ObservableScroll
// [-] MutableScroll
@Override
public int getScrollTop() {
return getScrollY();
}
@Override
public void setScrollTop(int y) {
scrollTo(getScrollX(), y);
}
// [-] MutableScroll
}