package com.merono.g; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; public class ImageWebViewFragment extends Fragment { private Activity activity; private static ImageWebViewFragment newInstance(String url) { ImageWebViewFragment frag = new ImageWebViewFragment(); Bundle b = new Bundle(); b.putString("URL", url); frag.setArguments(b); return frag; } @Override public void onAttach(Activity activity) { super.onAttach(activity); this.activity = activity; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.image_web_view, container, false); final ProgressBar progressBar = (ProgressBar) v.findViewById(R.id.progress_bar); WebView wv = (WebView) v.findViewById(R.id.web_view); SharedPreferences pref = PreferenceManager .getDefaultSharedPreferences(getActivity()); WebSettings ws = wv.getSettings(); ws.setLoadWithOverviewMode(true); ws.setUseWideViewPort(true); ws.setBuiltInZoomControls(true); ws.setDisplayZoomControls(pref.getBoolean("zoom_imageviewer", false)); disableDoubleTapToast(); wv.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); progressBar.setProgress(newProgress); } }); wv.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); progressBar.setVisibility(View.GONE); } }); wv.loadUrl(getArguments().getString("URL")); return v; } private void disableDoubleTapToast() { final String PREF_FILE = "WebViewSettings"; final String DOUBLE_TAP_TOAST_COUNT = "double_tap_toast_count"; SharedPreferences prefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE); if (prefs.getInt(DOUBLE_TAP_TOAST_COUNT, 1) > 0) { prefs.edit().putInt(DOUBLE_TAP_TOAST_COUNT, 0).commit(); } } @Override public void onStart() { super.onStart(); activity.getActionBar().hide(); } @Override public void onStop() { super.onStop(); activity.getActionBar().show(); } public static void openImageWebView(FragmentActivity activity, String url) { ImageWebViewFragment frag = newInstance(url); FragmentManager fm = activity.getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.add(android.R.id.content, frag).addToBackStack(null).commit(); } }