/** * */ package au.com.museumvictoria.fieldguide.bunurong.ui.fragments; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; import android.content.res.AssetManager; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import au.com.museumvictoria.fieldguide.bunurong.R; import au.com.museumvictoria.fieldguide.bunurong.util.Utilities; import com.actionbarsherlock.app.SherlockFragment; public class WebFragment extends SherlockFragment { private String htmlPage = "information"; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); if (bundle.containsKey("pageurl")) { htmlPage = bundle.getString("pageurl"); } String filename = "html/"+htmlPage+".html"; Log.d("Loading webview", "filename: " + filename); AssetManager mgr = getActivity().getAssets(); try { //display this html in the browser WebView w = (WebView) getActivity().findViewById(R.id.webView); w.setBackgroundColor(Color.BLACK); w.getSettings().setSupportZoom(false); w.getSettings().setJavaScriptEnabled(true); if (htmlPage.equalsIgnoreCase("opensourcelicences")) { w.loadDataWithBaseURL("", getResources().getString(R.string.opensourcelicences), "text/html", "utf-8", null); } else if (htmlPage.equalsIgnoreCase("aboutthreatenedstatus")) { w.loadDataWithBaseURL("", getResources().getString(R.string.aboutthreatenedstatus), "text/html", "utf-8", null); } else { w.loadUrl("file://" + Utilities.getFullExternalDataPath(getActivity(), filename)); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_web, container, false); return view; } public static String streamToString(InputStream in) throws IOException { if(in == null) { return ""; } Writer writer = new StringWriter(); char[] buffer = new char[1024]; try { Reader reader = new BufferedReader(new InputStreamReader(in, "UTF-8")); int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } } finally { } return writer.toString(); } }