package com.hkm.ezwebview.webviewclients; import android.app.Activity; import android.content.Context; import android.support.v4.view.ViewCompat; import android.view.View; import android.webkit.WebView; import android.widget.ProgressBar; import com.hkm.ezwebview.webviewleakfix.PreventLeakClientChrome; import com.lsjwzh.widget.materialloadingprogressbar.CircleProgressBar; /** * Created by hesk on 3/13/15. */ public class ChromeLoader extends PreventLeakClientChrome { private CircleProgressBar mCircleProgressBar; private boolean control_webview_show_hide_onload = false; private Activity mActivity; private ProgressBar cpb; private boolean withLoadingText = false; private String loadingText; private CharSequence barTitle; private int time_of_fade = 0; public ChromeLoader(CircleProgressBar circlebar, int time_fade) { this(circlebar); time_of_fade = time_fade; } public ChromeLoader(CircleProgressBar circlebar) { mCircleProgressBar = circlebar; mCircleProgressBar.setCircleBackgroundEnabled(true); mCircleProgressBar.setVisibility(View.VISIBLE); mCircleProgressBar.setShowProgressText(true); } public ChromeLoader(Activity c) { mActivity = c; mActivity.setProgressBarVisibility(true); barTitle = c.getTitle(); } public ChromeLoader() { } public ChromeLoader(Activity c, ProgressBar bar) { cpb = bar; mActivity = c; barTitle = c.getTitle(); } public ChromeLoader setShowHideWebViewOnload(boolean b) { control_webview_show_hide_onload = b; return this; } public ChromeLoader setLoadingText(String b) { loadingText = b; withLoadingText = true; return this; } @Override public void onProgressChanged(WebView view, int progress) { if (mCircleProgressBar != null) { if (progress < 100) { mCircleProgressBar.setProgress(progress); if (mCircleProgressBar.getVisibility() == View.GONE) { mCircleProgressBar.setVisibility(View.VISIBLE); } if (control_webview_show_hide_onload && view.getVisibility() == View.VISIBLE) view.setVisibility(View.GONE); } else { if (time_of_fade > 0) { ViewCompat.animate(mCircleProgressBar).alpha(0f).withEndAction(new Runnable() { @Override public void run() { mCircleProgressBar.setVisibility(View.GONE); } }); } else { mCircleProgressBar.setVisibility(View.GONE); } if (control_webview_show_hide_onload && view.getVisibility() == View.GONE) view.setVisibility(View.VISIBLE); } } else if (mActivity != null) { //mActivity.setProgressBarIndeterminateVisibility(true); cpb.setVisibility(View.VISIBLE); if (withLoadingText) { mActivity.setTitle(loadingText); } cpb.setProgress(progress); if (control_webview_show_hide_onload && view.getVisibility() == View.VISIBLE) view.setVisibility(View.GONE); if (progress == 100) { if (withLoadingText) { if (barTitle == null) mActivity.setTitle("no name"); else mActivity.setTitle(barTitle); } cpb.setVisibility(View.GONE); if (control_webview_show_hide_onload && view.getVisibility() == View.GONE) view.setVisibility(View.VISIBLE); } } } }