//package com.artifex.mupdfdemo;
//
//import java.io.ByteArrayOutputStream;
//import java.io.InputStream;
//
//import android.app.Activity;
//import android.content.ActivityNotFoundException;
//import android.content.ContentResolver;
//import android.content.Intent;
//import android.os.Bundle;
//import android.util.Base64;
//import android.webkit.WebSettings;
//import android.webkit.WebView;
//import android.webkit.WebViewClient;
//
//public class PrintDialogActivity extends Activity {
// private static final String PRINT_DIALOG_URL = "https://www.google.com/cloudprint/dialog.html";
// private static final String JS_INTERFACE = "AndroidPrintDialog";
// private static final String CONTENT_TRANSFER_ENCODING = "base64";
//
// private static final String ZXING_URL = "http://zxing.appspot.com";
// private static final int ZXING_SCAN_REQUEST = 65743;
//
// /**
// * Post message that is sent by Print Dialog web page when the printing dialog
// * needs to be closed.
// */
// private static final String CLOSE_POST_MESSAGE_NAME = "cp-dialog-on-close";
//
// /**
// * Web view element to show the printing dialog in.
// */
// private WebView dialogWebView;
//
// /**
// * Intent that started the action.
// */
// Intent cloudPrintIntent;
//
// private int resultCode;
//
// @Override
// public void onCreate(Bundle icicle) {
// super.onCreate(icicle);
//
// resultCode = RESULT_OK;
// setContentView(R.layout.print_dialog);
// dialogWebView = (WebView) findViewById(R.id.webview);
// cloudPrintIntent = this.getIntent();
//
// WebSettings settings = dialogWebView.getSettings();
// settings.setJavaScriptEnabled(true);
//
// dialogWebView.setWebViewClient(new PrintDialogWebClient());
// dialogWebView.addJavascriptInterface(
// new PrintDialogJavaScriptInterface(), JS_INTERFACE);
//
// dialogWebView.loadUrl(PRINT_DIALOG_URL);
// }
//
// @Override
// public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// if (requestCode == ZXING_SCAN_REQUEST && resultCode == RESULT_OK) {
// dialogWebView.loadUrl(intent.getStringExtra("SCAN_RESULT"));
// }
// }
//
// final class PrintDialogJavaScriptInterface {
// public String getType() {
// return cloudPrintIntent.getType();
// }
//
// public String getTitle() {
// return cloudPrintIntent.getExtras().getString("title");
// }
//
// public String getContent() {
// try {
// ContentResolver contentResolver = getContentResolver();
// InputStream is = contentResolver.openInputStream(cloudPrintIntent.getData());
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
//
// byte[] buffer = new byte[4096];
// int n = is.read(buffer);
// while (n >= 0) {
// baos.write(buffer, 0, n);
// n = is.read(buffer);
// }
// is.close();
// baos.flush();
//
// return Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
// } catch (Throwable e) {
// resultCode = RESULT_CANCELED;
// setResult(resultCode);
// finish();
// e.printStackTrace();
// }
// return "";
// }
//
// public String getEncoding() {
// return CONTENT_TRANSFER_ENCODING;
// }
//
// public void onPostMessage(String message) {
// if (message.startsWith(CLOSE_POST_MESSAGE_NAME)) {
// setResult(resultCode);
// finish();
// }
// }
// }
//
// private final class PrintDialogWebClient extends WebViewClient {
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
// if (url.startsWith(ZXING_URL)) {
// Intent intentScan = new Intent("com.google.zxing.client.android.SCAN");
// intentScan.putExtra("SCAN_MODE", "QR_CODE_MODE");
// try {
// startActivityForResult(intentScan, ZXING_SCAN_REQUEST);
// } catch (ActivityNotFoundException error) {
// view.loadUrl(url);
// }
// } else {
// view.loadUrl(url);
// }
// return false;
// }
//
// @Override
// public void onPageFinished(WebView view, String url) {
// if (PRINT_DIALOG_URL.equals(url)) {
// // Submit print document.
// view.loadUrl("javascript:printDialog.setPrintDocument(printDialog.createPrintDocument("
// + "window." + JS_INTERFACE + ".getType(),window." + JS_INTERFACE + ".getTitle(),"
// + "window." + JS_INTERFACE + ".getContent(),window." + JS_INTERFACE + ".getEncoding()))");
//
// // Add post messages listener.
// view.loadUrl("javascript:window.addEventListener('message',"
// + "function(evt){window." + JS_INTERFACE + ".onPostMessage(evt.data)}, false)");
// }
// }
// }
//}