package com.lechucksoftware.proxy.proxysettings.ui.fragments; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.webkit.WebViewClient; import com.lechucksoftware.proxy.proxysettings.App; import com.lechucksoftware.proxy.proxysettings.R; import com.lechucksoftware.proxy.proxysettings.ui.base.BaseDialogFragment; import com.lechucksoftware.proxy.proxysettings.utils.LocaleManager; import timber.log.Timber; /** * Created by mpagliar on 13/03/14. */ public class DialogHTMLFragment extends BaseDialogFragment { public static DialogHTMLFragment instance; private static final String DIALOG_TITLE_ARG = "DIALOG_TITLE_ARG"; private static final String DIALOG_HTML_TEXT_ARG = "DIALOG_HTML_TEXT_ARG"; private static final String DIALOG_CLOSE_ARG = "DIALOG_CLOSE_ARG"; private static final String DIALOG_DISMISS_LISTENER_ARG = "DIALOG_DISMISS_LISTENER_ARG"; private String titleText; private String htmlText; private String closeText; private WebView webView; private Dialog dialog; String BASE_URL = "file:///android_asset/www/www-" + LocaleManager.getTranslatedAssetLanguage() + '/'; public static DialogHTMLFragment newInstance(String title, String htmlText, String closeString, final DialogInterface.OnDismissListener mOnDismissListener) { DialogHTMLFragment instance = new DialogHTMLFragment(); Bundle args = new Bundle(); args.putSerializable(DIALOG_TITLE_ARG, title); args.putSerializable(DIALOG_HTML_TEXT_ARG, htmlText); args.putSerializable(DIALOG_CLOSE_ARG, closeString); // args.putSerializable(DIALOG_DISMISS_LISTENER_ARG, mOnDismissListener); instance.setArguments(args); return instance; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle args = getArguments(); if (args != null) { if (args.containsKey(DIALOG_TITLE_ARG)) { titleText = (String) getArguments().getSerializable(DIALOG_TITLE_ARG); } if (args.containsKey(DIALOG_HTML_TEXT_ARG)) { htmlText = (String) getArguments().getSerializable(DIALOG_HTML_TEXT_ARG); } if (args.containsKey(DIALOG_CLOSE_ARG)) { closeText = (String) getArguments().getSerializable(DIALOG_CLOSE_ARG); } } instance = this; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.html_dialog, container, false); dialog = getDialog(); if (dialog != null) { dialog.setTitle(titleText); } webView = (WebView) v.findViewById(R.id.dialog_webview); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); try { getActivity().startActivity(intent); } catch (Exception e) { Timber.e(e,"Exception starting activity from WebView"); } return true; } }); // webView.loadDataWithBaseURL(null, htmlText, "text/html", "utf-8", null); webView.loadUrl(BASE_URL + htmlText); // getDialog().set // .setPositiveButton(closeString, new Dialog.OnClickListener() // { // public void onClick(final DialogInterface dialogInterface, final int i) // { // dialogInterface.dismiss(); // } // }) // .setOnCancelListener(new DialogInterface.OnCancelListener() // { // // @Override // public void onCancel(DialogInterface dialog) // { // dialog.dismiss(); // } // }); // AlertDialog dialog = builder.create(); // dialog.setOnDismissListener(new DialogInterface.OnDismissListener() // { // @Override // public void onDismiss(final DialogInterface dialog) // { // if (mOnDismissListener != null) // { // mOnDismissListener.onDismiss(dialog); // } // } // }); return v; } }