123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600 |
- package epson.maintain.activity;
- import android.app.Dialog;
- import android.arch.lifecycle.Observer;
- import android.arch.lifecycle.ViewModelProviders;
- import android.content.Context;
- import android.content.Intent;
- import android.content.res.Configuration;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.fragment.app.FragmentActivity;
- import com.epson.iprint.shared.SharedParamStatus;
- import com.epson.mobilephone.common.escpr.MediaInfo;
- import com.epson.mobilephone.common.maintain2.MaintainPrinter2;
- import com.epson.mobilephone.common.maintain2.MaintainPrinterInfo2;
- import epson.common.Constants;
- import epson.common.DialogProgress;
- import epson.common.DialogProgressViewModel;
- import epson.common.Utils;
- import epson.print.R;
- import epson.print.CommonDefine;
- import epson.print.MyPrinter;
- import epson.print.Util.EPLog;
- import java.util.ArrayList;
- import java.util.Deque;
- public class GetPrinterReplyData extends AppCompatActivity implements MediaInfo, DialogProgress.DialogButtonClick {
- private static final int CLEANING_ERROR = 10;
- private static final int DELAY_TIME_MAINTAIN = 10;
- private static final String DIALOG_PROGRESS = "dialog_progress";
- private static final int END_REPLYDATA = 99;
- private static final int EPS_COMM_BID = 2;
- private static final int EPS_LANG_ESCPR = 1;
- private static final int EPS_MNT_CLEANING = 2;
- private static final int EPS_MNT_NOZZLE = 3;
- private static final int EPS_PRNERR_CEMPTY = 103;
- private static final int EPS_PRNERR_CFAIL = 104;
- private static final int EPS_PRNERR_DISABEL_CLEANING = 108;
- private static final int EPS_PRNERR_INKOUT = 6;
- private static final int GET_PRINTER_NAME = 8;
- private static final int HANDLE_ERROR = 4;
- public static final int ITEM_HEIGHT = 40;
- private static final int MAINTAIN_OK = 1;
- private static final int MAINTAIN_START = 0;
- private static final int NO_PRINTER_NAME = 9;
- public static final String PREFS_NAME = "PrintSetting";
- private static final int PROBE_ERROR = 7;
- private static final String PROBE_RESULT = "PROBE_ERROR";
- private static final int START_LOADCONFIG = 6;
- private static final String TAG = "MAINTAIN";
- private static final int UPDATE_INK = 3;
- private static final int UPDATE_SELECTED_PRINTER = 5;
- private static final int UPDATE_STT = 2;
- public static MaintainPrinter2 mPrinter;
- private Dialog customPro;
- private SharedParamStatus extParam;
- boolean isGotError = false;
- boolean isResearchScanner = false;
- private Thread mBackGround;
- private Thread mDoMaintainThread;
- boolean mHavePrinter = false;
- volatile boolean mIsCancelProbe = false;
- boolean mIsStillUpdate = true;
- boolean mIsStop = false;
- private Thread mLoadConfigThread;
- private DialogProgressViewModel mModelDialog;
- private String mPrinterId;
- private String mPrinterIp;
- private int mPrinterLocation;
- private String mPrinterName;
- private int[] mPrinterStatus;
- boolean mStartSearch = false;
- Handler mUiHandler = new Handler() {
- public void handleMessage(Message message) {
- int i = message.what;
- if (i != 99) {
- switch (i) {
- case 0:
- GetPrinterReplyData.this.showProDia();
- return;
- case 1:
- EPLog.m313i("Maintain", "********Maintain finish********");
- GetPrinterReplyData.this.interrupMaintainThread();
- return;
- case 2:
- GetPrinterReplyData.this.updateStatus(message.getData().getInt("GET_STT_RESULT"));
- return;
- case 3:
- GetPrinterReplyData.this.updateInkInfo(message.getData().getInt("GET_INK_RESULT"));
- return;
- case 4:
- GetPrinterReplyData.this.cancelLoadConPro();
- GetPrinterReplyData.this.interrupMaintainThread();
- return;
- case 5:
- GetPrinterReplyData.this.updateSelectedPrinter();
- return;
- case 6:
- GetPrinterReplyData.this.showLoadConPro();
- return;
- case 7:
- GetPrinterReplyData.this.setResult(1);
- GetPrinterReplyData.this.finish();
- return;
- case 9:
- GetPrinterReplyData.this.cancelLoadConPro();
- GetPrinterReplyData.this.endLoadConThread();
- GetPrinterReplyData.this.setResult(1);
- GetPrinterReplyData.this.finish();
- return;
- case 10:
- GetPrinterReplyData.this.setupErrorMessage(10);
- GetPrinterReplyData.this.interrupMaintainThread();
- return;
- default:
- return;
- }
- } else {
- GetPrinterReplyData.this.endBackGroundThread();
- GetPrinterReplyData.this.cancelLoadConPro();
- GetPrinterReplyData.this.endLoadConThread();
- Intent intent = new Intent();
- intent.putExtra("extStatus", GetPrinterReplyData.this.extParam);
- GetPrinterReplyData.this.setResult(message.getData().getInt("END_RELPY_RESULT"), intent);
- GetPrinterReplyData.this.finish();
- }
- }
- };
- private String inkCodeToString(int i) {
- switch (i) {
- case 0:
- return "Black";
- case 1:
- return "Cyan";
- case 2:
- return "Magenta";
- case 3:
- return "Yellow";
- case 4:
- return "Light Cyan";
- case 5:
- return "Light Magenta";
- case 6:
- return "Light Yellow";
- case 7:
- return "Dark Yellow";
- case 8:
- return "Light Black";
- case 9:
- return "Red";
- case 10:
- return "Blue";
- case 12:
- return "Light Gray";
- case 14:
- return "Gloss Optimizer";
- case 17:
- return "Black";
- case 18:
- return "Orange";
- case 19:
- return "Green";
- case 20:
- return "White";
- case 21:
- return "Clean";
- default:
- return "unKnown";
- }
- }
- public void onNegativeClick(String str) {
- }
- public void onNeutralClick(String str) {
- }
- public void onPositiveClick(String str) {
- }
- protected void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- mModelDialog = (DialogProgressViewModel) ViewModelProviders.m2of((FragmentActivity) this).get(DialogProgressViewModel.class);
- mModelDialog.getDialogJob().observe(this, new Observer() {
- public final void onChanged(Object obj) {
- GetPrinterReplyData.lambda$onCreate$0(GetPrinterReplyData.this, (Deque) obj);
- }
- });
- extParam = (SharedParamStatus) getIntent().getSerializableExtra("extStatus");
- if (this.extParam == null) {
- extParam = new SharedParamStatus();
- }
- if (mPrinter == null) {
- mPrinter = MaintainPrinter2.getInstance();
- }
- EPLog.m313i(TAG, "onCreate");
- lockRotation();
- mPrinter.doInitDriver(this, 2);
- startLoadConThread();
- }
- public static /* synthetic */ void lambda$onCreate$0(GetPrinterReplyData getPrinterReplyData, Deque deque) {
- String[] checkQueue = getPrinterReplyData.mModelDialog.checkQueue();
- if (checkQueue != null) {
- String str = checkQueue[0];
- String str2 = checkQueue[1];
- if (str2.equals("do_show")) {
- getPrinterReplyData.showDialog(str);
- }
- if (str2.equals("do_dismiss")) {
- getPrinterReplyData.dismissDialog(str);
- }
- }
- }
- private void lockRotation() {
- switch (getResources().getConfiguration().orientation) {
- case 1:
- setRequestedOrientation(1);
- return;
- case 2:
- setRequestedOrientation(0);
- return;
- default:
- return;
- }
- }
- public void startLoadConThread() {
- mIsCancelProbe = false;
- mLoadConfigThread = new Thread(new Runnable() {
- public void run() {
- EPLog.m313i(GetPrinterReplyData.TAG, "new load Config thread");
- GetPrinterReplyData.mUiHandler.sendEmptyMessage(6);
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- GetPrinterReplyData.this.loadConfig();
- if (GetPrinterReplyData.mPrinterId == null || GetPrinterReplyData.mPrinterName == null) {
- GetPrinterReplyData getPrinterReplyData = GetPrinterReplyData.this;
- getPrinterReplyData.mHavePrinter = false;
- getPrinterReplyData.mUiHandler.sendEmptyMessage(9);
- EPLog.m313i(GetPrinterReplyData.TAG, "not select printer");
- return;
- }
- GetPrinterReplyData.mUiHandler.sendEmptyMessage(8);
- EPLog.m313i("startLoadConThread", "mPrinter.doProbePrinter");
- if (!GetPrinterReplyData.mIsCancelProbe) {
- int doProbePrinter = GetPrinterReplyData.mPrinter.doProbePrinter(60, GetPrinterReplyData.mPrinterId, GetPrinterReplyData.mPrinterIp, GetPrinterReplyData.mPrinterLocation);
- while (!GetPrinterReplyData.mIsCancelProbe && doProbePrinter != 0) {
- try {
- Message message = new Message();
- message.what = 7;
- Bundle bundle = new Bundle();
- bundle.putInt(GetPrinterReplyData.PROBE_RESULT, doProbePrinter);
- message.setData(bundle);
- GetPrinterReplyData.mUiHandler.sendMessage(message);
- Thread.sleep(4000);
- if (!GetPrinterReplyData.mIsCancelProbe) {
- doProbePrinter = GetPrinterReplyData.mPrinter.doProbePrinter(60, GetPrinterReplyData.mPrinterId, GetPrinterReplyData.mPrinterIp, GetPrinterReplyData.mPrinterLocation);
- }
- } catch (InterruptedException e2) {
- e2.printStackTrace();
- }
- }
- EPLog.m313i(GetPrinterReplyData.TAG, "Probe Printer result: " + doProbePrinter);
- if (doProbePrinter == 0) {
- GetPrinterReplyData.mPrinter.setMSearchPos(0);
- GetPrinterReplyData getPrinterReplyData2 = GetPrinterReplyData.this;
- getPrinterReplyData2.mHavePrinter = true;
- getPrinterReplyData2.mUiHandler.sendEmptyMessage(5);
- }
- }
- }
- });
- mLoadConfigThread.start();
- }
- private void setupErrorMessage(int i) {
- Utils.makeMessageBox(this, getString(R.string.EPS_PRNERR_DISABEL_CLEANING_TITLE), getString(R.string.EPS_PRNERR_DISABEL_CLEANING_MSG), getString(R.string.str_ok)).show();
- }
- public void showProDia() {
- if (this.customPro == null) {
- customPro = new CustomProDialog(this, R.style.AppTheme_Translucent, R.layout.maintain_executing_dialog);
- }
- customPro.show();
- }
- public void cancelProDia() {
- Dialog dialog = customPro;
- if (dialog != null && dialog.isShowing()) {
- customPro.cancel();
- customPro = null;
- }
- }
- public void showLoadConPro() {
- mModelDialog.doShow(DIALOG_PROGRESS);
- }
- private void showDialog(String str) {
- DialogProgress dialogProgress;
- if (((str.hashCode() == -21731516 && str.equals(DIALOG_PROGRESS)) ? (char) 0 : 65535) != 0) {
- dialogProgress = null;
- } else {
- dialogProgress = DialogProgress.newInstance(str, 0, getString(R.string.str_wait));
- }
- if (dialogProgress != null) {
- dialogProgress.setCancelable(true);
- dialogProgress.show(getSupportFragmentManager(), str);
- }
- }
- private void dismissDialog(String str) {
- DialogFragment dialogFragment = (DialogFragment) getSupportFragmentManager().findFragmentByTag(str);
- if (dialogFragment != null) {
- dialogFragment.dismiss();
- }
- }
- public void cancelLoadConPro() {
- mModelDialog.doDismiss(DIALOG_PROGRESS);
- }
- public void endLoadConThread() {
- mIsCancelProbe = true;
- Thread thread = mLoadConfigThread;
- if (thread != null && thread.isAlive()) {
- mLoadConfigThread.interrupt();
- try {
- mLoadConfigThread.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- mLoadConfigThread = null;
- }
- }
- public void startBackgroundThread() {
- mIsStillUpdate = true;
- mBackGround = new Thread(new Runnable() {
- public void run() {
- int doGetStatus = GetPrinterReplyData.mPrinter.doGetStatus();
- Message message = new Message();
- message.what = 2;
- Bundle bundle = new Bundle();
- bundle.putInt("GET_STT_RESULT", doGetStatus);
- message.setData(bundle);
- GetPrinterReplyData.mUiHandler.sendMessage(message);
- int doGetInkInfo = GetPrinterReplyData.mPrinter.doGetInkInfo();
- Message message2 = new Message();
- message2.what = 3;
- Bundle bundle2 = new Bundle();
- bundle2.putInt("GET_INK_RESULT", doGetInkInfo);
- message2.setData(bundle2);
- GetPrinterReplyData.mUiHandler.sendMessage(message2);
- }
- });
- mBackGround.setPriority(5);
- mBackGround.start();
- }
- public void endBackGroundThread() {
- mIsStillUpdate = false;
- Thread thread = mBackGround;
- if (thread != null && thread.isAlive()) {
- mBackGround.interrupt();
- try {
- mBackGround.join();
- } catch (InterruptedException unused) {
- }
- mBackGround = null;
- }
- }
- public void onConfigurationChanged(Configuration configuration) {
- super.onConfigurationChanged(configuration);
- int doGetStatus = mPrinter.doGetStatus();
- Message message = new Message();
- message.what = 2;
- Bundle bundle = new Bundle();
- bundle.putInt("GET_STT_RESULT", doGetStatus);
- message.setData(bundle);
- mUiHandler.sendMessage(message);
- }
- protected void onActivityResult(int i, int i2, Intent intent) {
- super.onActivityResult(i, i2, intent);
- if (i == 1) {
- if (i2 == 1) {
- mPrinter.setMSearchPos(intent.getIntExtra(Constants.PRINTER_POS, 0));
- mPrinterName = intent.getStringExtra(Constants.PRINTER_NAME);
- mPrinterId = intent.getStringExtra(Constants.PRINTER_ID);
- mPrinterIp = intent.getStringExtra(Constants.PRINTER_IP);
- Utils.savePref(getApplicationContext(), "PrintSetting", CommonDefine.RE_SEARCH, true);
- mUiHandler.sendEmptyMessage(8);
- }
- saveSelectedPrinter();
- }
- }
- public void updateSelectedPrinter() {
- cancelLoadConPro();
- endLoadConThread();
- int doSetPrinter = mPrinter.doSetPrinter();
- if (doSetPrinter == 0) {
- startBackgroundThread();
- mIsStillUpdate = true;
- return;
- }
- mIsStillUpdate = false;
- handlerError(doSetPrinter, false);
- }
- public void updateStatus(int i) {
- if (i == 0) {
- if (isPrinterReady() == 1) {
- int doGetInkInfo = mPrinter.doGetInkInfo();
- Message message = new Message();
- message.what = 3;
- Bundle bundle = new Bundle();
- bundle.putInt("GET_INK_RESULT", doGetInkInfo);
- message.setData(bundle);
- mUiHandler.sendMessage(message);
- }
- int[] iArr = mPrinterStatus;
- if (iArr[0] != 4) {
- return;
- }
- if (iArr[1] == 6 || iArr[1] == 103 || iArr[1] == 104) {
- int doGetInkInfo2 = mPrinter.doGetInkInfo();
- Message message2 = new Message();
- message2.what = 3;
- Bundle bundle2 = new Bundle();
- bundle2.putInt("GET_INK_RESULT", doGetInkInfo2);
- message2.setData(bundle2);
- mUiHandler.sendMessage(message2);
- return;
- }
- return;
- }
- handlerError(i, false);
- }
- public void updateInkInfo(int i) {
- int i2;
- MaintainPrinterInfo2 mPrinterInfor = mPrinter.getMPrinterInfor();
- if (i == 0) {
- int inkNum = mPrinterInfor.getInkNum();
- ArrayList arrayList = new ArrayList();
- ArrayList arrayList2 = new ArrayList();
- ArrayList arrayList3 = new ArrayList();
- i2 = -1;
- extParam.setPrinter_name(mPrinterName);
- extParam.setPrinter_status(mPrinterStatus[0]);
- for (int i3 = 0; i3 < inkNum; i3++) {
- arrayList.add(inkCodeToString(mPrinterInfor.getInkCode(i3)));
- arrayList2.add(Integer.valueOf(mPrinterInfor.getInkRemainingAmount(i3)));
- arrayList3.add(Integer.valueOf(mPrinterInfor.getInkStatus(i3)));
- }
- extParam.setArrayOutInkName(arrayList);
- extParam.setArrayOutInkRemain(arrayList2);
- extParam.setEscprlibInkStatus(arrayList3);
- } else {
- i2 = 1;
- }
- Message message = new Message();
- message.what = 99;
- Bundle bundle = new Bundle();
- bundle.putInt("END_RELPY_RESULT", i2);
- message.setData(bundle);
- mUiHandler.sendMessage(message);
- }
- public void handlerError(int i, boolean z) {
- cancelLoadConPro();
- }
- public int isPrinterReady() {
- mPrinterStatus = mPrinter.getMPrinterInfor().getMStatus();
- int[] iArr = mPrinterStatus;
- if (iArr[0] == 2 || iArr[0] == 1 || iArr[0] == 3) {
- return 0;
- }
- if (iArr[0] == 4) {
- return -1;
- }
- return 1;
- }
- public void interrupMaintainThread() {
- Thread thread = mDoMaintainThread;
- if (thread != null && thread.isAlive()) {
- mDoMaintainThread.interrupt();
- mDoMaintainThread = null;
- }
- }
- protected void onDestroy() {
- stopAllThread();
- super.onDestroy();
- EPLog.m313i(TAG, "onDestroy");
- }
- protected void onPause() {
- super.onPause();
- }
- protected void OLDonPause() {
- mIsStop = true;
- mIsCancelProbe = true;
- cancelLoadConPro();
- mPrinter.doCancelFindPrinter();
- endLoadConThread();
- interrupMaintainThread();
- endBackGroundThread();
- super.onPause();
- }
- protected void onStop() {
- super.onStop();
- }
- private void loadConfig() {
- MyPrinter curPrinter = MyPrinter.getCurPrinter(this);
- mPrinterId = curPrinter.getPrinterId();
- mPrinterName = curPrinter.getName();
- mPrinterIp = curPrinter.getIp();
- mPrinterLocation = curPrinter.getLocation();
- }
- private void saveSelectedPrinter() {
- Utils.savePref(getApplicationContext(), "PrintSetting", Constants.PRINTER_NAME, mPrinterName);
- Utils.savePref(getApplicationContext(), "PrintSetting", Constants.PRINTER_IP, mPrinterIp);
- Utils.savePref(getApplicationContext(), "PrintSetting", Constants.PRINTER_ID, mPrinterId);
- }
- public void onCancelDialog(String str) {
- if (((str.hashCode() == -21731516 && str.equals(DIALOG_PROGRESS)) ? (char) 0 : 65535) == 0) {
- stopAllThread();
- finish();
- }
- }
- private class CustomProDialog extends Dialog {
- private int mLayoutId;
- public CustomProDialog(Context context, int i, int i2) {
- super(context, i);
- mLayoutId = i2;
- setCancelable(false);
- }
- protected void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- requestWindowFeature(1);
- View inflate = getLayoutInflater().inflate(mLayoutId, (ViewGroup) null);
- if (mLayoutId == R.layout.maintain_executing_dialog) {
- ((Button) inflate.findViewById(R.id.close_btn)).setOnClickListener(new View.OnClickListener() {
- public void onClick(View view) {
- CustomProDialog.this.cancel();
- GetPrinterReplyData.this.interrupMaintainThread();
- }
- });
- }
- setContentView(inflate);
- }
- }
- private void stopAllThread() {
- if (!mIsCancelProbe) {
- mIsStop = true;
- mIsCancelProbe = true;
- MaintainPrinter2 maintainPrinter2 = mPrinter;
- if (maintainPrinter2 != null) {
- maintainPrinter2.doCancelFindPrinter();
- }
- cancelLoadConPro();
- endLoadConThread();
- interrupMaintainThread();
- endBackGroundThread();
- }
- }
- }
|