12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163 |
- package epson.print;
- import android.annotation.SuppressLint;
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.content.SharedPreferences;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Rect;
- import android.net.Uri;
- import android.net.http.SslError;
- import android.os.AsyncTask;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.KeyEvent;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.WindowManager;
- import android.view.inputmethod.InputMethodManager;
- import android.webkit.SslErrorHandler;
- import android.webkit.WebChromeClient;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.LinearLayout;
- import android.widget.Toast;
- import androidx.annotation.Nullable;
- import androidx.annotation.VisibleForTesting;
- import com.box.androidsdk.content.models.BoxFile;
- import com.box.androidsdk.content.requests.BoxRequestsMetadata;
- import com.epson.iprint.prtlogger.Analytics;
- import com.epson.iprint.prtlogger.NewLoggerController;
- import com.epson.iprint.prtlogger.PrintLog;
- import com.epson.iprint.shared.EpsoniPrintSharedActivity;
- import com.epson.mobilephone.common.license.LicenseTopActivity;
- import com.epson.mobilephone.common.wifidirect.NfcTagUtils;
- import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
- import java.io.File;
- import java.io.IOException;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
- import epson.common.ExternalFileUtils;
- import epson.common.IprintLicenseInfo;
- import epson.common.IprintUserSurveyInfo;
- import epson.common.Utils;
- import epson.print.Util.CommonMessage;
- import epson.print.Util.EPLog;
- public class WebviewActivity extends ActivityIACommon implements CommonDefine, View.OnClickListener, View.OnKeyListener {
- private static final int ACTION_PRINT_WEB = 2;
- private static final float FIRST_SCREEN_SCALE_VALUE = 0.0f;
- private static final int MESSAGE_WAIT_WEBVIEW_PROGRESS = 3;
- private static final int Menu_Add_Bookmark = 4;
- private static final int Menu_Back = 1;
- private static final int Menu_Bookmark = 6;
- private static final int Menu_History = 5;
- private static final int Menu_Next = 2;
- private static final int Menu_Print = 7;
- public static final String PARAMS_KEY_WEBVIEW_PRINT_LOG = "print_log";
- private static final int REQUEST_CODE_LICENSE_CHECK = 3;
- protected static final String TAG = "WebviewActivity";
- private static final int WEBVIEW_MENU_GROUP = 0;
- private final int ERROR_CODE = 1;
- private final int SDCARD_ERROR = 2;
- private ImageButton btnClearUrl;
- private boolean captureStart = false;
- private boolean checkImage = false;
- private boolean checkSharepage = false;
- private int countUrl;
- private String inURL = null;
- boolean isBuy = false;
- private boolean isCustomAction = false;
- boolean isFaq = false;
- boolean isInfo = false;
- private ArrayList<String> mAddImageView = new ArrayList<>();
- private boolean mCanClear;
- private boolean mCanRefresh;
- private boolean mCanStop;
- private Dialog mCustomPro;
- public AlertDialog mErrorDialog;
- private Integer[] mImageArray = new Integer[2];
- private ImageCreateThread mImageCreateThread;
- private Intent mIntent;
- boolean mIsBookmark;
- boolean mIsBookmarkEmpty;
- private boolean mIsFinish;
- boolean mIsFistLoad;
- boolean mIsLoadError = false;
- private MenuItem[] mItem = new MenuItem[6];
- private int mLastHeight = 0;
- private ArrayList<HashMap<String, String>> mListUrl = new ArrayList<>();
- private LinearLayout mLoadWebLayout;
- private volatile boolean mPreviewWebInterrupted;
- private PrintLog mPrintLog;
- IprintStrictMode.StrictModeInterface mStrictMode = IprintStrictMode.getStrictMode();
- private WebViewClient mWebClient = new WebViewClient() {
- public boolean shouldOverrideUrlLoading(WebView webView, String str) {
- return false;
- }
- public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
- if (!checkSharepage) {
- mLoadWebLayout.setVisibility(View.VISIBLE);
- } else {
- showLoadingDialog();
- }
- WebviewActivity webviewActivity = WebviewActivity.this;
- setTextOnUrlEditText(fixUrl(str));
- boolean unused = mIsFinish = false;
- boolean unused2 = mCanStop = true;
- setClearButtonAppearance(0);
- boolean unused3 = mCanRefresh = false;
- invalidateOptionsMenu();
- }
- public void onPageFinished(WebView webView, String str) {
- boolean z;
- Map<String, ?> all;
- EPLog.d(TAG, "onPageFinished: " + str);
- boolean unused = mIsFinish = true;
- boolean unused2 = mCanRefresh = true;
- boolean unused3 = mCanStop = false;
- setClearButtonAppearance(1);
- if (!getTitle().toString().equals("Web page not available")) {
- String unused4 = strUrlIn = str;
- String unused5 = inURL = null;
- mIsLoadError = false;
- } else {
- mIsLoadError = true;
- }
- invalidateOptionsMenu();
- if (!isBuy && !isFaq && !isInfo) {
- mStrictMode.permitAll();
- WebviewActivity webviewActivity = WebviewActivity.this;
- SharedPreferences unused6 = statePre = getSharedPreferences("history", 0);
- if (mIsFistLoad || (all = statePre.getAll()) == null) {
- z = false;
- } else {
- mListUrl.clear();
- for (String next : all.keySet()) {
- HashMap hashMap = new HashMap();
- hashMap.put("key", next);
- hashMap.put(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE, all.get(next).toString());
- mListUrl.add(hashMap);
- }
- WebviewActivity webviewActivity2 = WebviewActivity.this;
- int unused7 = webviewActivity2.countUrl = webviewActivity2.mListUrl.size();
- z = false;
- for (int i = 0; i < mListUrl.size(); i++) {
- if (str.equalsIgnoreCase((String) ((HashMap) mListUrl.get(i)).get(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE))) {
- z = true;
- }
- }
- }
- if (!z || mIsFistLoad) {
- HashMap hashMap2 = new HashMap();
- access$1308(WebviewActivity.this);
- WebviewActivity webviewActivity3 = WebviewActivity.this;
- SharedPreferences.Editor unused8 = webviewActivity3.stateEditor = webviewActivity3.statePre.edit();
- stateEditor.putString(String.valueOf(countUrl), str);
- EPLog.i("Save countUrl " + countUrl + " : ", str);
- stateEditor.commit();
- hashMap2.put("key", String.valueOf(countUrl));
- hashMap2.put(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE, str);
- mListUrl.add(hashMap2);
- mIsFistLoad = false;
- for (int i2 = 0; i2 < mListUrl.size(); i2++) {
- EPLog.i(((String) ((HashMap) mListUrl.get(i2)).get("key")) + " : ", (String) ((HashMap) mListUrl.get(i2)).get(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE));
- }
- } else {
- mIsFistLoad = false;
- EPLog.i("Link: " + str, " already exist");
- }
- if (!str.startsWith("file://")) {
- WebviewActivity webviewActivity4 = WebviewActivity.this;
- SharedPreferences unused9 = webviewActivity4.statePre = webviewActivity4.getSharedPreferences(CommonDefine.SAVE_URL, 0);
- WebviewActivity webviewActivity5 = WebviewActivity.this;
- SharedPreferences.Editor unused10 = webviewActivity5.stateEditor = webviewActivity5.statePre.edit();
- stateEditor.putString(CommonDefine.SAVE_URL, str);
- stateEditor.commit();
- }
- mStrictMode.restoreStatus();
- }
- if (checkSharepage && !captureStart) {
- previewWeb();
- }
- }
- public void onReceivedError(WebView webView, int i, String str, String str2) {
- WebviewActivity webviewActivity = WebviewActivity.this;
- mErrorDialog = createDialog(str);
- try {
- mErrorDialog.show();
- } catch (WindowManager.BadTokenException e) {
- e.printStackTrace();
- }
- }
- public void onReceivedSslError(WebView webView, final SslErrorHandler sslErrorHandler, SslError sslError) {
- EPLog.d(TAG, "SSL error: " + sslError);
- if (!isFinishing()) {
- AlertDialog.Builder builder = new AlertDialog.Builder(WebviewActivity.this);
- builder.setIcon(R.drawable.ic_action_warning);
- builder.setTitle("SSL error");
- builder.setMessage(trasrateSslError(sslError.getPrimaryError())).setCancelable(false).setPositiveButton(R.string.str_continue, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialogInterface, int i) {
- sslErrorHandler.proceed();
- }
- }).setNegativeButton(getResources().getString(R.string.str_cancel), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialogInterface, int i) {
- sslErrorHandler.cancel();
- if (checkSharepage) {
- boolean unused = checkSharepage = false;
- setResult(0);
- finish();
- }
- }
- }).show();
- }
- }
- private String trasrateSslError(int i) {
- StringBuffer stringBuffer = new StringBuffer("primaryError = ");
- switch (i) {
- case 0:
- stringBuffer.append("SSL_NOTYETVALID");
- break;
- case 1:
- stringBuffer.append("SSL_EXPIRED");
- break;
- case 2:
- stringBuffer.append("SSL_IDMISMATCH");
- break;
- case 3:
- stringBuffer.append("SSL_UNTRUSTED");
- break;
- case 4:
- stringBuffer.append("SSL_DATE_INVALID ");
- break;
- case 5:
- stringBuffer.append("SSL_INVALID");
- break;
- default:
- stringBuffer.append(i);
- break;
- }
- return stringBuffer.toString();
- }
- public void onScaleChanged(WebView webView, float f, float f2) {
- super.onScaleChanged(webView, f, f2);
- float unused = onScaleChangedCurrent = f2;
- }
- };
- private WebChromeClient mWebCromClient = new WebChromeClient() {
- public void onProgressChanged(WebView webView, int i) {
- if (i == 100) {
- mLoadWebLayout.setVisibility(View.GONE);
- }
- }
- public void onReceivedTitle(WebView webView, String str) {
- super.onReceivedTitle(webView, str);
- if (!isBuy && !isFaq && !isInfo) {
- setTitle(str);
- }
- }
- };
- private WebView mWebview;
- Handler myHandler = new Handler() {
- public void handleMessage(Message message) {
- switch (message.what) {
- case 1:
- Toast.makeText(getBaseContext(), getString(R.string.str_err_msg_out_of_memory_title), 1).show();
- return;
- case 2:
- try {
- Utils.makeMessageBox(this, getString(R.string.str_err_msg_out_of_memory_title), getString(R.string.str_ok)).show();
- return;
- } catch (Exception e) {
- e.printStackTrace();
- return;
- }
- case 3:
- if (!mPreviewWebInterrupted) {
- float access$2000 = getScaleValue();
- if (mWebview.getProgress() < 100) {
- myHandler.sendEmptyMessageDelayed(3, 2000);
- return;
- } else if (mLastHeight == 0 || mLastHeight < ((((float) mWebview.getContentHeight()) * access$2000))) {
- WebviewActivity webviewActivity = WebviewActivity.this;
- int unused = mLastHeight = (((float) mWebview.getContentHeight()) * access$2000);
- myHandler.sendEmptyMessageDelayed(3, 5000);
- EPLog.d(TAG, "Waiting not change mLastHeight = " + mLastHeight);
- return;
- } else {
- startPreviewWebThread();
- return;
- }
- } else {
- return;
- }
- default:
- return;
- }
- }
- };
- private float onScaleChangedCurrent = 0.0f;
- private AsyncTask<Void, Void, Void> previewImageTask;
- private SharedPreferences.Editor stateEditor;
- private SharedPreferences statePre;
- private String strUrlIn;
- private EditText teInurl;
- interface InteruptChecker {
- boolean check();
- }
- static /* synthetic */ int access$1308(WebviewActivity webviewActivity) {
- int i = countUrl;
- countUrl = i + 1;
- return i;
- }
- @SuppressLint({"NewApi", "SetJavaScriptEnabled"})
- public void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- NewLoggerController.stopLoggerIfNotAgreed(this);
- if (Build.VERSION.SDK_INT >= 21) {
- WebView.enableSlowWholeDocumentDraw();
- }
- setContentView(R.layout.main_webview);
- setActionBar(R.string.web_btn_label, true);
- mAddImageView.clear();
- ExternalFileUtils.getInstance(this).initTempViewDir();
- ExternalFileUtils.getInstance(this).initPrintDir();
- mWebview = (WebView) findViewById(R.id.web_engine);
- mLoadWebLayout = (LinearLayout) findViewById(R.id.layout_loading);
- teInurl = (EditText) findViewById(R.id.te_url);
- teInurl.setOnKeyListener(this);
- teInurl.setOnTouchListener(new View.OnTouchListener() {
- public boolean onTouch(View view, MotionEvent motionEvent) {
- setClearButtonAppearance(0);
- boolean unused = mCanRefresh = false;
- boolean unused2 = mCanClear = true;
- return false;
- }
- });
- mImageArray[0] = Integer.valueOf(R.drawable.clear_text);
- mImageArray[1] = Integer.valueOf(R.drawable.reload);
- btnClearUrl = (ImageButton) findViewById(R.id.btn_clear_url);
- setClearButtonAppearance(0);
- btnClearUrl.setOnClickListener(this);
- WebSettings settings = mWebview.getSettings();
- settings.setJavaScriptEnabled(true);
- settings.setBuiltInZoomControls(true);
- settings.setUseWideViewPort(true);
- settings.setSupportZoom(true);
- settings.setLoadWithOverviewMode(true);
- settings.setBlockNetworkLoads(false);
- settings.setBlockNetworkImage(false);
- try {
- Method method = mWebview.getClass().getMethod("setIsCacheDrawBitmap", new Class[]{Boolean.TYPE});
- if (method != null) {
- method.invoke(mWebview, new Object[]{false});
- mWebview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
- }
- } catch (NoSuchMethodException unused) {
- } catch (IllegalAccessException unused2) {
- } catch (InvocationTargetException unused3) {
- }
- mWebview.requestFocus(130);
- mWebview.setWebViewClient(mWebClient);
- mWebview.setWebChromeClient(mWebCromClient);
- mWebview.setOnTouchListener(new View.OnTouchListener() {
- public boolean onTouch(View view, MotionEvent motionEvent) {
- teInurl.clearFocus();
- mWebview.requestFocus();
- return false;
- }
- });
- mErrorDialog = new AlertDialog.Builder(this).create();
- if (bundle == null) {
- startLicenseCheckActivity();
- } else if (!IprintLicenseInfo.isAgreedCurrentVersion(getApplicationContext())) {
- finish();
- }
- }
- private void startLicenseCheckActivity() {
- IprintLicenseInfo.beforeLicenseCheck(getApplicationContext());
- startActivityForResult(LicenseTopActivity.getStartIntent(getApplicationContext(), new IprintLicenseInfo(), new IprintUserSurveyInfo()), 3);
- }
- private void onInit() {
- configureFromIntent(getIntent());
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void configureFromIntent(Intent intent) {
- String action = intent.getAction();
- boolean equals = "android.intent.action.SEND".equals(action);
- boolean equals2 = EpsoniPrintSharedActivity.ACTION_WEB_PRINT.equals(action);
- if (equals || equals2) {
- setPrintLogForExternalApp(intent);
- isCustomAction = equals2;
- inURL = intent.getStringExtra("android.intent.extra.TEXT");
- if (Utils.checkMimeType(this.inURL, "image/jpeg")) {
- checkImage = true;
- previewImage();
- } else {
- loadUrl(this.inURL);
- checkSharepage = !equals;
- }
- String str = inURL;
- if (str != null) {
- strUrlIn = str;
- } else {
- strUrlIn = "";
- }
- } else {
- Bundle extras = intent.getExtras();
- if (extras != null) {
- inURL = intent.getStringExtra("android.intent.extra.TEXT");
- setTitle("Text");
- }
- String str2 = inURL;
- if (str2 == null) {
- mStrictMode.permitAll();
- statePre = getSharedPreferences(CommonDefine.SAVE_URL, 0);
- strUrlIn = statePre.getString(CommonDefine.SAVE_URL, "");
- mStrictMode.restoreStatus();
- if (this.strUrlIn.equals("")) {
- mIsFistLoad = true;
- setTextOnUrlEditText(CommonDefine.HTTP_PREFIX);
- setClearButtonAppearance(1);
- }
- if (extras != null) {
- inURL = (String) extras.get(CommonDefine.EXTRA_URL);
- isFaq = extras.getBoolean("is_faq");
- isBuy = extras.getBoolean("is_buy");
- isInfo = extras.getBoolean("is_info");
- }
- } else {
- checkSharepage = true;
- strUrlIn = str2;
- }
- String str3 = inURL;
- if (str3 != null) {
- loadUrl(str3);
- } else {
- loadUrl(this.strUrlIn);
- }
- registerForContextMenu(mWebview);
- }
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void loadUrl(String str) {
- WiFiDirectManager.setPriorityToSimpleAP(this, false);
- mWebview.loadUrl(str);
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void setClearButtonAppearance(int i) {
- btnClearUrl.setBackgroundResource(mImageArray[i].intValue());
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void setTextOnUrlEditText(String str) {
- teInurl.setText(str);
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void setPrintLogForExternalApp(@Nullable Intent intent) {
- if (intent != null) {
- try {
- mPrintLog = (PrintLog) intent.getSerializableExtra("print_log");
- } catch (ClassCastException unused) {
- }
- }
- if (mPrintLog == null) {
- mPrintLog = new PrintLog();
- }
- if (mPrintLog.uiRoute <= 0) {
- mPrintLog.uiRoute = PrintLog.PRINT_SOURCE_EXTERNAL_APP_WEB;
- }
- if (mPrintLog.callerPackage == null) {
- mPrintLog.callerPackage = getCallingPackage();
- }
- }
- private void loadInputUrl() {
- hideSoftKeyboard();
- String str = strUrlIn;
- if (str != null && str.compareTo("") != 0) {
- if (this.strUrlIn.equals(mWebview.getUrl())) {
- strUrlIn = fixUrl(this.strUrlIn);
- setTextOnUrlEditText(this.strUrlIn);
- mWebview.reload();
- return;
- }
- strUrlIn = fixUrl(this.strUrlIn);
- setTextOnUrlEditText(this.strUrlIn);
- loadUrl(this.strUrlIn);
- }
- }
- private void hideSoftKeyboard() {
- ((InputMethodManager) getSystemService("input_method")).hideSoftInputFromWindow(this.teInurl.getWindowToken(), 0);
- }
- public void onClick(View view) {
- EPLog.i(TAG, "onCLick()");
- if (view.getId() == R.id.btn_clear_url) {
- if (mCanRefresh) {
- mWebview.reload();
- } else if (mCanStop) {
- mWebview.stopLoading();
- mLoadWebLayout.setVisibility(View.GONE);
- } else if (mCanClear) {
- setTextOnUrlEditText("");
- }
- }
- }
- public boolean onKey(View view, int i, KeyEvent keyEvent) {
- if (keyEvent.getAction() == 0 && i == 66) {
- mIsFinish = false;
- setClearButtonAppearance(0);
- strUrlIn = teInurl.getText().toString();
- loadInputUrl();
- return true;
- } else if (keyEvent.getAction() != 0 || i != 4 || !this.checkSharepage) {
- return false;
- } else {
- finish();
- return true;
- }
- }
- protected void onPause() {
- super.onPause();
- NfcTagUtils.disableForegroundDispatch(this);
- }
- protected void onResume() {
- super.onResume();
- NfcTagUtils.enableForegroundDispatch(this, (IntentFilter[]) null, (String[][]) null);
- }
- protected void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
- CommonMessage.showInvalidPrintMessageIfEpsonNfcPrinter(this, intent);
- }
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.print_option_menu, menu);
- return true;
- }
- public boolean onPrepareOptionsMenu(Menu menu) {
- menu.findItem(R.id.go_back).setEnabled(canGoBack() && mIsFinish);
- menu.findItem(R.id.go_next).setEnabled(canGoForward() && mIsFinish);
- menu.findItem(R.id.print_option).setEnabled(mIsFinish && !mIsLoadError);
- if (this.checkSharepage) {
- menu.setGroupVisible(0, false);
- }
- return true;
- }
- public boolean onOptionsItemSelected(MenuItem menuItem) {
- int itemId = menuItem.getItemId();
- if (itemId != R.id.print_option) {
- switch (itemId) {
- case R.id.go_back /*2131231074*/:
- String linkOfIndex = getLinkOfIndex(getIndexOfLink(this.strUrlIn) - 1);
- EPLog.i("Comeback to : ", linkOfIndex);
- mWebview.loadUrl(linkOfIndex);
- break;
- case R.id.go_next /*2131231075*/:
- String linkOfIndex2 = getLinkOfIndex(getIndexOfLink(this.strUrlIn) + 1);
- EPLog.i("Forward to : ", linkOfIndex2);
- mWebview.loadUrl(linkOfIndex2);
- break;
- }
- } else {
- previewWeb();
- }
- return super.onOptionsItemSelected(menuItem);
- }
- /* access modifiers changed from: private */
- /* JADX WARNING: Removed duplicated region for block: B:11:0x0017 */
- /* Code decompiled incorrectly, please refer to instructions dump. */
- public static void saveJPG(Bitmap r2, String r3) throws IOException {
- /*
- r0 = 0
- java.io.FileOutputStream r1 = new java.io.FileOutputStream // Catch:{ all -> 0x0014 }
- r1.<init>(r3) // Catch:{ all -> 0x0014 }
- android.graphics.Bitmap$CompressFormat r3 = android.graphics.Bitmap.CompressFormat.JPEG // Catch:{ all -> 0x0011 }
- r0 = 100
- r2.compress(r3, r0, r1) // Catch:{ all -> 0x0011 }
- r1.close()
- return
- L_0x0011:
- r2 = move-exception
- r0 = r1
- goto L_0x0015
- L_0x0014:
- r2 = move-exception
- L_0x0015:
- if (r0 == 0) goto L_0x001a
- r0.close()
- L_0x001a:
- throw r2
- */
- throw new UnsupportedOperationException("Method not decompiled: epson.print.saveJPG(android.graphics.Bitmap, java.lang.String):void");
- }
- public void showLoadingDialog() {
- if (mCustomPro == null) {
- mCustomPro = new CustomProDialog(this, R.style.AppTheme_Translucent, R.layout.preview_open_dialog);
- mCustomPro.setCancelable(false);
- mCustomPro.setCanceledOnTouchOutside(false);
- }
- try {
- mCustomPro.show();
- } catch (WindowManager.BadTokenException e) {
- e.printStackTrace();
- }
- }
- public void cancelShowingDialog() {
- Dialog dialog = mCustomPro;
- if (dialog != null && dialog.isShowing()) {
- mCustomPro.dismiss();
- }
- }
- private class CustomProDialog extends Dialog {
- private int mLayoutId;
- public CustomProDialog(Context context, int i, int i2) {
- super(context, i);
- mLayoutId = i2;
- }
- protected void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- requestWindowFeature(1);
- View inflate = getLayoutInflater().inflate(mLayoutId, (ViewGroup) null);
- ((Button) inflate.findViewById(R.id.close_btn)).setOnClickListener(new View.OnClickListener() {
- public void onClick(View view) {
- if (checkSharepage) {
- mWebview.stopLoading();
- finish();
- }
- stopDoBackGroundThread();
- }
- });
- setContentView(inflate);
- }
- public void onBackPressed() {
- stopDoBackGroundThread();
- }
- }
- protected void stopDoBackGroundThread() {
- cancelPreviewWeb();
- AsyncTask<Void, Void, Void> asyncTask = previewImageTask;
- if (asyncTask != null) {
- asyncTask.cancel(true);
- }
- ImageCreateThread imageCreateThread = mImageCreateThread;
- if (imageCreateThread != null) {
- imageCreateThread.interrupt();
- }
- }
- protected void onDestroy() {
- super.onDestroy();
- stopDoBackGroundThread();
- previewImageTask = null;
- mImageCreateThread = null;
- Dialog dialog = mCustomPro;
- if (dialog != null) {
- dialog.dismiss();
- }
- mCustomPro = null;
- AlertDialog alertDialog = mErrorDialog;
- if (alertDialog != null) {
- alertDialog.dismiss();
- }
- mErrorDialog = null;
- }
- private void startPrintActivity() {
- Intent intent = new Intent(this, ActivityPrintWeb.class);
- intent.putStringArrayListExtra("print_web", mAddImageView);
- intent.putExtra("print_url", strUrlIn);
- intent.putExtra("from_customaction", isCustomAction);
- intent.putExtra("print_log", getPrintLog());
- startActivityForResult(intent, 2);
- cancelShowingDialog();
- if (this.checkSharepage && !this.isCustomAction) {
- finish();
- }
- }
- private PrintLog getPrintLog() {
- PrintLog printLog = mPrintLog;
- if (printLog == null) {
- printLog = new PrintLog();
- }
- if (printLog.uiRoute <= 0) {
- printLog.uiRoute = 3;
- }
- if (printLog.originalFileExtension == null) {
- printLog.originalFileExtension = Analytics.EXTENSION_STRING_WEB;
- }
- return printLog;
- }
- class ImageFileCreator {
- static final int A4_360DPI_HEIGHT = 4209;
- static final int A4_360DPI_WIDTH = 2976;
- static final double A4_ASPECT_RATIO = 1.4143145161290323d;
- final int[] RATE_FROME_360DPI = {2, 3, 4};
- Bitmap mBitmap;
- double mExRate;
- Rect mPictureSize;
- ImageFileCreator() {
- }
- public void setPicture(Rect rect) {
- mPictureSize = rect;
- }
- private double[] getExRateCand(int i) {
- double[] dArr = new double[this.RATE_FROME_360DPI.length];
- int i2 = 0;
- while (true) {
- int[] iArr = RATE_FROME_360DPI;
- if (i2 >= iArr.length) {
- return dArr;
- }
- dArr[i2] = 2976.0d / ((i) * (iArr[i2]));
- i2++;
- }
- }
- public boolean prepareBitmap() {
- int width = mPictureSize.width();
- double[] exRateCand = getExRateCand(width);
- int i = 90;
- double d = 1.0d;
- Bitmap bitmap = null;
- for (int i2 = 0; i2 < exRateCand.length && bitmap == null; i2++) {
- d = exRateCand[i2];
- int i3 = ((width) * d);
- int i4 = ((i3) * A4_ASPECT_RATIO);
- try {
- System.gc();
- bitmap = Bitmap.createBitmap(i3, i4, Bitmap.Config.ARGB_8888);
- i = 360 / RATE_FROME_360DPI[i2];
- } catch (OutOfMemoryError unused) {
- }
- }
- if (bitmap == null) {
- return false;
- }
- bitmap.setDensity(i);
- mBitmap = bitmap;
- mExRate = d;
- EPLog.i(TAG, "expand => " + d);
- return true;
- }
- public boolean createImageFile(final WebView webView, ArrayList<String> arrayList, InteruptChecker interuptChecker) throws IOException {
- double d = mExRate;
- final Object obj = new Object();
- final Canvas canvas = new Canvas(mBitmap);
- float f = (float) d;
- canvas.scale(f, f);
- int width = ((mPictureSize.width()) * A4_ASPECT_RATIO);
- int height = mPictureSize.height();
- int i = 1;
- while (height > 0) {
- if (interuptChecker.check()) {
- return false;
- }
- String tempViewDir = ExternalFileUtils.getInstance(this).getTempViewDir();
- String path = new File(tempViewDir, "multi_cut_" + i + ".jpg").getPath();
- canvas.drawRGB(255, 255, 255);
- synchronized (obj) {
- runOnUiThread(new Runnable() {
- public void run() {
- synchronized (obj) {
- webView.draw(canvas);
- obj.notifyAll();
- EPLog.v(TAG, "webView.draw() finish");
- }
- }
- });
- try {
- EPLog.v(TAG, "webView.draw() wait page = " + i);
- obj.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- saveJPG(mBitmap, path);
- arrayList.add(path);
- height -= width;
- canvas.translate(0.0f, -((float) width));
- i++;
- }
- return true;
- }
- public void freeMemory() {
- Bitmap bitmap = mBitmap;
- if (bitmap != null) {
- bitmap.recycle();
- mBitmap = null;
- }
- }
- }
- private void previewWeb() {
- mPreviewWebInterrupted = false;
- captureStart = true;
- showLoadingDialog();
- if (this.checkSharepage) {
- myHandler.sendEmptyMessage(3);
- } else {
- startPreviewWebThread();
- }
- }
- private void cancelPreviewWeb() {
- mPreviewWebInterrupted = true;
- myHandler.removeMessages(3);
- ImageCreateThread imageCreateThread = mImageCreateThread;
- if (imageCreateThread != null) {
- imageCreateThread.interrupt();
- }
- cancelShowingDialog();
- }
- private void startPreviewWebThread() {
- mAddImageView.clear();
- float scaleValue = getScaleValue();
- Rect rect = new Rect(0, 0, mWebview.getWidth(), (((float) mWebview.getContentHeight()) * scaleValue));
- EPLog.i(TAG, "picture Rect = " + rect.toString() + " currentScale = " + scaleValue);
- if (rect.width() > 0 && rect.height() > 0) {
- mImageCreateThread = new ImageCreateThread();
- mImageCreateThread.setPicture(rect);
- mImageCreateThread.start();
- } else if (!isFinishing()) {
- cancelShowingDialog();
- mErrorDialog = createDialog(getString(R.string.not_support_format));
- try {
- mErrorDialog.show();
- } catch (WindowManager.BadTokenException unused) {
- }
- }
- }
- private float getScaleValue() {
- float f = onScaleChangedCurrent;
- return f == 0.0f ? getResources().getDisplayMetrics().density : f;
- }
- class ImageCreateThread extends Thread implements InteruptChecker {
- private ImageFileCreator mImageFileCreator;
- private Rect mPicture;
- ImageCreateThread() {
- }
- public ImageCreateThread setPicture(Rect rect) {
- mPicture = rect;
- return this;
- }
- public void run() {
- if (!mPreviewWebInterrupted) {
- ExternalFileUtils.getInstance(this).initTempViewDir();
- mImageFileCreator = new ImageFileCreator();
- mImageFileCreator.setPicture(mPicture);
- if (!mImageFileCreator.prepareBitmap()) {
- ExternalFileUtils.getInstance(this).initTempViewDir();
- cancelShowingDialog();
- myHandler.sendEmptyMessage(1);
- finish();
- } else if (isInterrupted()) {
- freeLargeMem();
- ExternalFileUtils.getInstance(this).initTempViewDir();
- cancelShowingDialog();
- } else {
- try {
- if (!mImageFileCreator.createImageFile(mWebview, mAddImageView, this) || isInterrupted()) {
- ExternalFileUtils.getInstance(this).initTempViewDir();
- cancelShowingDialog();
- return;
- }
- startPrintActivity();
- } catch (IOException e) {
- e.printStackTrace();
- ExternalFileUtils.getInstance(this).initTempViewDir();
- cancelShowingDialog();
- myHandler.sendEmptyMessage(2);
- } finally {
- freeLargeMem();
- }
- }
- }
- }
- private void freeLargeMem() {
- ImageFileCreator imageFileCreator = mImageFileCreator;
- if (imageFileCreator != null) {
- imageFileCreator.freeMemory();
- mImageFileCreator = null;
- }
- mPicture = null;
- }
- public boolean check() {
- return isInterrupted();
- }
- }
- private AlertDialog createDialog(final String str) {
- AlertDialog create = new AlertDialog.Builder(this).create();
- create.setCancelable(false);
- create.setIcon(R.drawable.ic_action_warning);
- create.setTitle(R.string.unknow_error_title);
- create.setMessage(str);
- create.setButton(-1, getString(R.string.str_ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialogInterface, int i) {
- if (str.equals(getString(R.string.str_no_sdcard))) {
- cancelShowingDialog();
- if (checkImage || checkSharepage) {
- finish();
- }
- }
- }
- });
- create.setOnKeyListener(new DialogInterface.OnKeyListener() {
- public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
- return keyEvent.getKeyCode() == 84;
- }
- });
- return create;
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public void previewImage() {
- if (isMediaMounted()) {
- previewImageTask = new AsyncTask<Void, Void, Void>() {
- ArrayList<String> imagePath = new ArrayList<>();
- protected void onPreExecute() {
- super.onPreExecute();
- showLoadingDialog();
- }
- protected Void doInBackground(Void... voidArr) {
- Uri parse = Uri.parse(inURL);
- if (String.valueOf(BoxFile.TYPE).equals(parse.getScheme())) {
- imagePath.add(parse.getPath());
- } else {
- String lastPathSegment = parse.getLastPathSegment();
- String downloadDir = ExternalFileUtils.getInstance(this).getDownloadDir();
- ExternalFileUtils.getInstance(this).initDownloadDir();
- if (isCancelled()) {
- return null;
- }
- epson.print.Util.Utils.getInstance();
- epson.print.Util.Utils.mUtils.downloadFile(inURL, downloadDir, lastPathSegment, this);
- imagePath.add(new File(downloadDir, lastPathSegment).getPath());
- }
- return null;
- }
- protected void onPostExecute(Void voidR) {
- EPLog.i(TAG, "previewImage::onPostExecute() Share image: " + imagePath.toString());
- WebviewActivity webviewActivity = this;
- Intent unused = mIntent = new Intent(webviewActivity, ActivityViewImageSelect.class);
- mIntent.putExtra(ActivityViewImageSelect.LIST_ALBUM, imagePath);
- mIntent.putExtra(CommonDefine.STYPE, true);
- mIntent.putExtra("print_log", getPrintLog());
- WebviewActivity webviewActivity2 = this;
- webviewActivity2.startActivity(webviewActivity2.mIntent);
- finish();
- }
- protected void onCancelled() {
- EPLog.i(TAG, "Cancel: OK");
- if (checkImage) {
- finish();
- }
- }
- };
- previewImageTask.execute(new Void[0]);
- return;
- }
- mErrorDialog = createDialog(getString(R.string.str_no_sdcard));
- try {
- findViewById(R.id.webview).setVisibility(4);
- mErrorDialog.show();
- } catch (WindowManager.BadTokenException e) {
- e.printStackTrace();
- }
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public boolean isMediaMounted() {
- return Utils.isMediaMounted();
- }
- private String fixUrl(String str) {
- int indexOf = str.indexOf(58);
- String str2 = str;
- boolean z = true;
- for (int i = 0; i < indexOf; i++) {
- char charAt = str2.charAt(i);
- if (!Character.isLetter(charAt)) {
- break;
- }
- z &= Character.isLowerCase(charAt);
- if (i == indexOf - 1 && !z) {
- str2 = str2.substring(0, indexOf).toLowerCase() + str2.substring(indexOf);
- }
- }
- if (str2.startsWith(CommonDefine.HTTP_PREFIX) || str2.startsWith("https://")) {
- return str2;
- }
- if (str2.startsWith("http:") || str2.startsWith("https:")) {
- if (str2.startsWith("http:/") || str2.startsWith("https:/")) {
- str2 = str2.replaceFirst(CommonDefine.SLASH, "//");
- } else {
- str2 = str2.replaceFirst(":", "://");
- }
- }
- if (!str2.startsWith(CommonDefine.HTTP_PREFIX) && !str2.startsWith("file://")) {
- str2 = CommonDefine.HTTP_PREFIX + str2;
- }
- return str2.toLowerCase();
- }
- public void onBackPressed() {
- AlertDialog alertDialog = mErrorDialog;
- if (alertDialog != null && alertDialog.isShowing()) {
- try {
- mErrorDialog.dismiss();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
- ImageCreateThread imageCreateThread = mImageCreateThread;
- if (imageCreateThread != null) {
- imageCreateThread.interrupt();
- }
- if (this.isBuy || isFaq || isInfo) {
- finish();
- } else if (this.isCustomAction) {
- setResult(0);
- finish();
- } else {
- setResult(-1, getIntent());
- finish();
- }
- }
- protected void onActivityResult(int i, int i2, Intent intent) {
- EPLog.d("onActivityResult : requestCode = ", String.valueOf(i));
- super.onActivityResult(i, i2, intent);
- switch (i) {
- case 2:
- EPLog.d("onActivityResult : ACTION_PRINT_WEB = ", String.valueOf(this.isCustomAction));
- mAddImageView.clear();
- ExternalFileUtils.getInstance(this).initTempViewDir();
- if (this.isCustomAction) {
- EPLog.d("onActivityResult : resultCode = ", String.valueOf(i2));
- setResult(i2);
- finish();
- return;
- }
- return;
- case 3:
- if (i2 != -1) {
- finish();
- return;
- } else {
- onInit();
- return;
- }
- default:
- return;
- }
- }
- private int getIndexOfLink(String str) {
- int i = 0;
- for (int i2 = 0; i2 < mListUrl.size(); i2++) {
- if (str.equalsIgnoreCase((String) mListUrl.get(i2).get(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE))) {
- i = Integer.parseInt((String) mListUrl.get(i2).get("key"));
- }
- }
- return i;
- }
- private String getLinkOfIndex(int i) {
- String str = "";
- for (int i2 = 0; i2 < mListUrl.size(); i2++) {
- if (Integer.parseInt((String) mListUrl.get(i2).get("key")) == i) {
- str = (String) mListUrl.get(i2).get(BoxRequestsMetadata.UpdateItemMetadata.BoxMetadataUpdateTask.VALUE);
- }
- }
- return str;
- }
- private boolean canGoBack() {
- return getIndexOfLink(this.strUrlIn) > 1;
- }
- private boolean canGoForward() {
- return getIndexOfLink(this.strUrlIn) < mListUrl.size();
- }
- }
|