package com.florianmski.tracktoid.ui.fragments.base.list;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.florianmski.tracktoid.adapters.AbstractAdapter;
import com.florianmski.tracktoid.containers.ViewContainer;
import com.florianmski.tracktoid.ui.widgets.NotifyingWebView;
public abstract class ItemWebViewFragment<E> extends ItemScrollFragment<E, E, NotifyingWebView, NotifyingWebView.OnScrollChangedListener, AbstractAdapter<E>> implements NotifyingWebView.OnScrollChangedListener
{
private NotifyingWebView.OnScrollChangedListener onScrollListener = new NotifyingWebView.OnScrollChangedListener()
{
@Override
public void onScrollChanged(NotifyingWebView who, int l, int t, int oldl, int oldt)
{
for(NotifyingWebView.OnScrollChangedListener scrollListener : scrollListeners)
scrollListener.onScrollChanged(who, l, t, oldl, oldt);
int delta = oldt - t;
if((getToolbar().getHeight() - t) < 0 && delta < 0)
showActionBar(false);
else if(delta > 0)
showActionBar(true);
}
};
public ItemWebViewFragment()
{
super(new ViewContainer.WebViewContainer<E, NotifyingWebView>());
}
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
getGroupView().setOnScrollChangedListener(onScrollListener);
getGroupView().setWebViewClient(getWebViewClient());
// getGroupView().setWebChromeClient(new WebChromeClient()
// {
// public void onProgressChanged(WebView view, int progress)
// {
// // TODO maybe add some kind of progress
//// ((ActionBarActivity)getActivity()).setSupportProgressBarVisibility(progress > 0 && progress < 100);
//// ((ActionBarActivity)getActivity()).setSupportProgress(progress);
// }
// });
}
protected RefreshWebViewClient getWebViewClient()
{
return new RefreshWebViewClient();
}
@Override
public void onDestroy()
{
super.onDestroy();
}
@Override
protected boolean isEmpty(E data)
{
return data == null;
}
@Override
public void onScrollChanged(NotifyingWebView who, int l, int t, int oldl, int oldt)
{
for(NotifyingWebView.OnScrollChangedListener listener : scrollListeners)
listener.onScrollChanged(who, l, t, oldl, oldt);
}
public class RefreshWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
// showProgressBar(null);
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
// showView();
}
}
}