MaintainPrinterSearchActivity.java 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747
  1. package epson.maintain.activity;
  2. import android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.app.Dialog;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.net.Uri;
  9. import android.os.AsyncTask;
  10. import android.os.Build;
  11. import android.os.Bundle;
  12. import android.os.Handler;
  13. import android.os.Message;
  14. import android.view.ContextMenu;
  15. import android.view.MenuItem;
  16. import android.view.View;
  17. import android.view.ViewGroup;
  18. import android.widget.AdapterView;
  19. import android.widget.Button;
  20. import android.widget.ListView;
  21. import android.widget.ProgressBar;
  22. import android.widget.RadioButton;
  23. import android.widget.RelativeLayout;
  24. import android.widget.TextView;
  25. import androidx.fragment.app.DialogFragment;
  26. import com.epson.mobilephone.common.ble.BleAsyncTask;
  27. import com.epson.mobilephone.common.ble.BleWork;
  28. import com.epson.mobilephone.common.ble.BleWorkActivity;
  29. import com.epson.mobilephone.common.ble.util.BLEUtility;
  30. import com.epson.mobilephone.common.ble.util.ScannedDevice;
  31. import com.epson.mobilephone.common.maintain2.MaintainPrinter2;
  32. import com.epson.mobilephone.common.wifidirect.ActivityRequestLocationPermission;
  33. import com.epson.mobilephone.common.wifidirect.ActivityWiFiDirectStart;
  34. import com.epson.mobilephone.common.wifidirect.ActivityiPrintConnect;
  35. import com.epson.mobilephone.common.wifidirect.SearchWiFiDirectPrinterTask;
  36. import com.epson.mobilephone.common.wifidirect.WiFiControl;
  37. import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
  38. import com.epson.mobilephone.common.wifidirect.WiFiDirectPrinterListUtils;
  39. import com.epson.mobilephone.common.wifidirect.WiFiNetworkManager;
  40. import com.epson.mobilephone.common.wifidirect.escprLib;
  41. import java.util.ArrayList;
  42. import java.util.Locale;
  43. import epson.common.Constants;
  44. import epson.common.ExternalFileUtils;
  45. import epson.common.Utils;
  46. import epson.print.ActivityIACommon;
  47. import epson.print.CustomTitleDialogFragment;
  48. import epson.print.EPPrinterManager;
  49. import epson.print.MyPrinter;
  50. import epson.print.R;
  51. import epson.print.screen.ActivityPrinterSetting;
  52. import epson.print.screen.WorkingDialog;
  53. import epson.print.widgets.AbstractListBuilder;
  54. import epson.print.widgets.ListControlHelper;
  55. import epson.print.widgets.PrinterInfoBuilder;
  56. import epson.print.widgets.PrinterInfoECBuilder;
  57. import epson.print.widgets.PrinterInfoIpBuilder;
  58. import epson.scan.lib.escanLib;
  59. public class MaintainPrinterSearchActivity extends ActivityIACommon implements CustomTitleDialogFragment.Callback {
  60. private static final int DELAY = 100;
  61. private static final int DIALOG_ID_PRINTER_NOT_FOUND_WITH_WEB_GUIDANCE = 1;
  62. private static final String DIALOG_TAG_PRINTER_NOT_FOUND = "printer_not_found_dialog";
  63. private static final int EPS_PROTOCOL_ALL = 208;
  64. private static final int EPS_PROTOCOL_LPR = 64;
  65. private static final int EPS_PROTOCOL_NET = 192;
  66. private static final int EPS_PROTOCOL_RAW = 128;
  67. private static final int EPS_PROTOCOL_USB = 16;
  68. private static final int Menu_Delete = 1;
  69. private static final int Menu_Edit = 2;
  70. private static final String TAG = "MaintainPrinterSearchActivity";
  71. private static final Object mLock = new Object();
  72. private static escanLib mScanner = new escanLib();
  73. private final int BLE_SET_PRINTER = 15;
  74. private final int CANCEL_FIND_PRINTER = 2;
  75. private final int CONNECT_SIMPLEAP = 9;
  76. private final int DELETE_PRINTER = 6;
  77. private final int EDIT_IPPRINTER = 10;
  78. private final int EDIT_PRINTER = 7;
  79. private final int FINISH_FIND_PRINTER = 5;
  80. private final int FOUND_SIMPLEAP = 8;
  81. private final String PRINTER_COMMON_DEVICENAME = "common_devicename";
  82. private final String PRINTER_ID = "id";
  83. private final String PRINTER_INDEX = "index";
  84. private final String PRINTER_IP = escprLib.PRINTER_IP;
  85. private final String PRINTER_NAME = "name";
  86. private final String PRINTER_SERIAL_NO = escprLib.PRINTER_SERIAL_NO;
  87. private final int PROBE_PRINTER = 11;
  88. private final int PROBE_SCANNER = 12;
  89. private final int REQUEST_CODE_LOCATION_PERMISSION = 14;
  90. private final int SEARCH_PRINTER = 1;
  91. private final int SEARCH_PRINTER_P2P = 13;
  92. private final int SELECT_PRINTER = 4;
  93. private boolean bCheckWiFiStatus = false;
  94. private boolean bRejectLocationPermission = false;
  95. ListControlHelper helper = null;
  96. private volatile boolean isFinishSearchPrinter = true;
  97. private Boolean isFocused = true;
  98. private boolean isJapaneseLocale = false;
  99. private volatile boolean isSearchSimpleAp = false;
  100. private AdapterView.AdapterContextMenuInfo listItemIndex;
  101. View mAboutRemoteButton;
  102. private boolean mActivityForegroundLifetime;
  103. Button mAddButton;
  104. private RelativeLayout mBleButton;
  105. private BLEUtility.BleWorkCallback mBleFind = null;
  106. AbstractListBuilder mBuilder;
  107. private Context mContext = null;
  108. private int mDeletePos = -1;
  109. Handler mHandler = new Handler(new Handler.Callback() {
  110. public boolean handleMessage(android.os.Message r8) {
  111. throw new UnsupportedOperationException("Method not decompiled: epson.maintain.activity.C203814.handleMessage(android.os.Message):boolean");
  112. }
  113. });
  114. RadioButton mIpButton;
  115. boolean mIsClickSelect = false;
  116. ViewGroup mLayout;
  117. private TextView mListEmptyMessageTextView;
  118. private ListView mListView;
  119. RadioButton mLocalButton;
  120. private MaintainPrinter2 mPrinter = MaintainPrinter2.getInstance();
  121. ProgressBar mProgressBar;
  122. RadioButton mRemoteButton;
  123. Button mSearchButton;
  124. private Thread mSearchThread;
  125. TextView mTextDetail;
  126. View mWiFiSettingButton;
  127. private String printerEmailAddress = "";
  128. private String printerId = "";
  129. private String printerKey = "";
  130. private volatile int printer_location = 0;
  131. AsyncTask<Void, Void, Integer> probePrinterThread = null;
  132. WorkingDialog progress;
  133. private SearchWiFiDirectPrinterTask searchWiFiDirectPrinter = null;
  134. WiFiDirectPrinterListUtils wiFiDirectPrinterListUtils = null;
  135. public void onLocalNegativeCallback(int i) {
  136. }
  137. protected void onCreate(Bundle bundle) {
  138. super.onCreate(bundle);
  139. if (Locale.getDefault().getLanguage().equalsIgnoreCase(Locale.JAPAN.getLanguage()) || Locale.getDefault().getLanguage().equalsIgnoreCase(Locale.JAPANESE.getLanguage())) {
  140. isJapaneseLocale = true;
  141. } else {
  142. isJapaneseLocale = false;
  143. }
  144. mLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.search_printer_layout, (ViewGroup) null);
  145. addWiFiSetupButton();
  146. addAboutRemoteButton();
  147. mListEmptyMessageTextView = (TextView) mLayout.findViewById(R.id.list_empty_message);
  148. mListView = (ListView) mLayout.findViewById(16908298);
  149. init();
  150. setContentView((View) mLayout);
  151. mContext = this;
  152. mIsClickSelect = false;
  153. if (this.printer_location != 1) {
  154. displaySearchResult();
  155. mSearchButton.setVisibility(View.GONE);
  156. ((TextView) mLayout.findViewById(R.id.empty)).setVisibility(View.GONE);
  157. }
  158. setNotFoundPrinterButton();
  159. setBleWifiSetupButton();
  160. setActionBar(R.string.title_addprint, true);
  161. requestLocationPermission();
  162. }
  163. private void init() {
  164. MyPrinter curPrinter = MyPrinter.getCurPrinter(this);
  165. printer_location = curPrinter.getLocation();
  166. if (this.printer_location == 0) {
  167. printer_location = 1;
  168. }
  169. switch (this.printer_location) {
  170. case 2:
  171. printerEmailAddress = curPrinter.getEmailAddress();
  172. break;
  173. case 3:
  174. printerKey = curPrinter.getPrinterId();
  175. break;
  176. default:
  177. printerId = curPrinter.getPrinterId();
  178. break;
  179. }
  180. buildElements();
  181. }
  182. private void requestLocationPermission() {
  183. if (!this.bRejectLocationPermission && !ActivityRequestLocationPermission.canAccessWiFiInfo(this, 20)) {
  184. if (BleWork.isStartBleProcess(this, false)) {
  185. ActivityRequestLocationPermission.requestLocationPermission((Activity) this, 14);
  186. } else if (Build.VERSION.SDK_INT > 28 && !WiFiNetworkManager.getInsetance(this).isWiFiValidated()) {
  187. ActivityRequestLocationPermission.requestLocationPermissionForce(this, 14);
  188. }
  189. }
  190. }
  191. private void setBleWifiSetupButton() {
  192. mBleButton = (RelativeLayout) mLayout.findViewById(R.id.ble_wifi_setting);
  193. mBleButton.setVisibility(View.GONE);
  194. mBleButton.setOnClickListener(new View.OnClickListener() {
  195. public void onClick(View view) {
  196. interruptSearch();
  197. BleAsyncTask.blePrinterCheckStop();
  198. Intent intent = new Intent(getApplicationContext(), BleWorkActivity.class);
  199. intent.putParcelableArrayListExtra(ScannedDevice.TYPE, (ArrayList) mBleButton.getTag());
  200. startActivityForResult(intent, 15);
  201. }
  202. });
  203. }
  204. private void setNotFoundPrinterButton() {
  205. mLayout.findViewById(R.id.not_found_printer_epsonsn).setOnClickListener(new View.OnClickListener() {
  206. public void onClick(View view) {
  207. MaintainPrinterSearchActivity maintainPrinterSearchActivity = MaintainPrinterSearchActivity.this;
  208. startActivity(PrinterNotFoundDialogCreator.getStartIntent(getApplicationContext()));
  209. }
  210. });
  211. }
  212. private void addWiFiSetupButton() {
  213. mWiFiSettingButton = mLayout.findViewById(R.id.rlWifiSettings);
  214. if (this.isJapaneseLocale) {
  215. ((TextView) mWiFiSettingButton).setText(R.string.str_goto_wifidirect_settings);
  216. } else {
  217. ((TextView) mWiFiSettingButton).setText(R.string.str_wifidirect_settings);
  218. }
  219. mWiFiSettingButton.setOnClickListener(new View.OnClickListener() {
  220. public void onClick(View view) {
  221. startWifiPrinterSelect();
  222. }
  223. });
  224. }
  225. private void startWifiPrinterSelect() {
  226. startActivityForResult(new Intent(this, ActivityWiFiDirectStart.class), 9);
  227. }
  228. private void addAboutRemoteButton() {
  229. mAboutRemoteButton = mLayout.findViewById(R.id.AboutRemoteFrame);
  230. mAboutRemoteButton.setOnClickListener(new View.OnClickListener() {
  231. public void onClick(View view) {
  232. startActivity(new Intent("android.intent.action.VIEW", Uri.parse("https://www.epsonconnect.com/iguide/")));
  233. }
  234. });
  235. }
  236. private void buildElements() {
  237. mSearchButton = (Button) mLayout.findViewById(R.id.function_button);
  238. mProgressBar = (ProgressBar) mLayout.findViewById(R.id.progress_bar);
  239. mAddButton = (Button) mLayout.findViewById(R.id.edit_button);
  240. mTextDetail = (TextView) mLayout.findViewById(R.id.detail);
  241. searchButtonSetEnabled(false);
  242. mProgressBar.setVisibility(View.VISIBLE);
  243. mAddButton.setVisibility(View.GONE);
  244. mTextDetail.setVisibility(View.VISIBLE);
  245. mWiFiSettingButton.setVisibility(View.VISIBLE);
  246. mLocalButton = (RadioButton) mLayout.findViewById(R.id.btn_local);
  247. mIpButton = (RadioButton) mLayout.findViewById(R.id.btn_ip);
  248. mRemoteButton = (RadioButton) mLayout.findViewById(R.id.btn_remote);
  249. Utils.setDrawble2TextView(this, mLocalButton, R.drawable.printer_selector_icon_local);
  250. Utils.setDrawble2TextView(this, mIpButton, R.drawable.printer_selector_icon_ip);
  251. Utils.setDrawble2TextView(this, mRemoteButton, R.drawable.printer_selector_icon_remote);
  252. TextView textView = null;
  253. switch (this.printer_location) {
  254. case 1:
  255. mListView.setEmptyView((View) null);
  256. mListEmptyMessageTextView.setText((CharSequence) null);
  257. mListEmptyMessageTextView.setVisibility(View.GONE);
  258. mBuilder = new PrinterInfoBuilder(getBaseContext(), mLayout, 0);
  259. String connectInfo = WiFiDirectManager.getConnectInfo(this, WiFiDirectManager.DEVICE_TYPE_PRINTER);
  260. mBuilder.setResource(WiFiDirectPrinterListUtils.getCurPrinterString(this, printerId, connectInfo));
  261. helper = new ListControlHelper((PrinterInfoBuilder) mBuilder);
  262. wiFiDirectPrinterListUtils = new WiFiDirectPrinterListUtils(this, mBuilder.getData(), helper, connectInfo);
  263. mLocalButton.setChecked(true);
  264. mTextDetail.setText(R.string.str_detailtext_local);
  265. mLayout.findViewById(R.id.not_found_printer_epsonsn).setVisibility(View.VISIBLE);
  266. RelativeLayout relativeLayout = mBleButton;
  267. if (!(relativeLayout == null || relativeLayout.getTag() == null)) {
  268. mBleButton.setVisibility(View.VISIBLE);
  269. break;
  270. }
  271. case 2:
  272. mAddButton.setVisibility(View.VISIBLE);
  273. mListEmptyMessageTextView.setText(R.string.printer_list_empty_message);
  274. textView = mListEmptyMessageTextView;
  275. mBuilder = new PrinterInfoECBuilder(getBaseContext(), mLayout);
  276. mBuilder.setResource(this.printerEmailAddress);
  277. mRemoteButton.setChecked(true);
  278. mTextDetail.setText(R.string.str_detailtext_remote);
  279. mSearchButton.setVisibility(View.GONE);
  280. mWiFiSettingButton.setVisibility(View.GONE);
  281. mLayout.findViewById(R.id.not_found_printer_epsonsn).setVisibility(View.GONE);
  282. RelativeLayout relativeLayout2 = mBleButton;
  283. if (relativeLayout2 != null) {
  284. relativeLayout2.setVisibility(View.GONE);
  285. break;
  286. }
  287. break;
  288. case 3:
  289. mAddButton.setVisibility(View.VISIBLE);
  290. mListEmptyMessageTextView.setText(R.string.printer_list_empty_message);
  291. textView = mListEmptyMessageTextView;
  292. mBuilder = new PrinterInfoIpBuilder(getBaseContext(), mLayout, 0);
  293. mBuilder.setResource(this.printerKey);
  294. mIpButton.setChecked(true);
  295. mTextDetail.setText(R.string.str_detailtext_ip);
  296. mSearchButton.setVisibility(View.GONE);
  297. mWiFiSettingButton.setVisibility(View.GONE);
  298. mLayout.findViewById(R.id.not_found_printer_epsonsn).setVisibility(View.GONE);
  299. RelativeLayout relativeLayout3 = mBleButton;
  300. if (relativeLayout3 != null) {
  301. relativeLayout3.setVisibility(View.GONE);
  302. break;
  303. }
  304. break;
  305. }
  306. mBuilder.build();
  307. mBuilder.refresh();
  308. mListView.setEmptyView(textView);
  309. if (this.printer_location == 2) {
  310. mAboutRemoteButton.setVisibility(View.VISIBLE);
  311. } else {
  312. mAboutRemoteButton.setVisibility(View.GONE);
  313. }
  314. mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  315. public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
  316. if (isFocused.booleanValue()) {
  317. Boolean unused = isFocused = false;
  318. MaintainPrinterSearchActivity maintainPrinterSearchActivity = MaintainPrinterSearchActivity.this;
  319. mIsClickSelect = true;
  320. Message obtainMessage = mHandler.obtainMessage();
  321. obtainMessage.obj = mBuilder.getData().elementAt(i);
  322. int access$400 = printer_location;
  323. if (access$400 == 1) {
  324. String ip = ((MyPrinter) obtainMessage.obj).getIp();
  325. if (!WiFiControl.ConnectType.NONE.equals(WiFiDirectManager.getConnectType(this, ip))) {
  326. interruptSearch();
  327. WiFiDirectManager.connect(MaintainPrinterSearchActivity.this, ip, 9);
  328. } else {
  329. obtainMessage.what = 11;
  330. }
  331. } else if (access$400 != 3) {
  332. obtainMessage.what = 4;
  333. } else {
  334. obtainMessage.what = 11;
  335. }
  336. BleAsyncTask.blePrinterCheckStop();
  337. mHandler.sendMessageDelayed(obtainMessage, 100);
  338. }
  339. }
  340. });
  341. mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
  342. public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long j) {
  343. if (printer_location == 1) {
  344. return true;
  345. }
  346. int unused = mDeletePos = i;
  347. MaintainPrinterSearchActivity maintainPrinterSearchActivity = MaintainPrinterSearchActivity.this;
  348. registerForContextMenu(mListView);
  349. return false;
  350. }
  351. });
  352. mAddButton.setOnClickListener(new View.OnClickListener() {
  353. public void onClick(View view) {
  354. switch (printer_location) {
  355. case 2:
  356. if (mBuilder.getData().size() >= 32) {
  357. new AlertDialog.Builder(mContext).setCancelable(false).setTitle(getString(R.string.epsonconnect_err_regist_remote_printer_max_size_title)).setMessage(getString(R.string.epsonconnect_err_regist_remote_printer_max_size)).setPositiveButton(getString(R.string.str_yes), new DialogInterface.OnClickListener() {
  358. public void onClick(DialogInterface dialogInterface, int i) {
  359. }
  360. }).show();
  361. return;
  362. } else if (getSharedPreferences(Constants.PREFS_EPSON_CONNECT, 0).getBoolean(Constants.ENABLE_SHOW_WARNING, true)) {
  363. AlertDialog.Builder cancelable = new AlertDialog.Builder(mContext).setCancelable(false);
  364. cancelable.setMessage(getString(R.string.epsonconnect_str_remote_print_warning) + "\n\n" + getString(R.string.epsonconnect_str_remote_print_warning2)).setPositiveButton(getString(R.string.str_yes), new DialogInterface.OnClickListener() {
  365. public void onClick(DialogInterface dialogInterface, int i) {
  366. Message message = new Message();
  367. message.what = 7;
  368. message.obj = null;
  369. mHandler.sendMessage(message);
  370. }
  371. }).setNegativeButton(getString(R.string.str_no), new DialogInterface.OnClickListener() {
  372. public void onClick(DialogInterface dialogInterface, int i) {
  373. }
  374. }).show();
  375. return;
  376. } else {
  377. Message message = new Message();
  378. message.what = 7;
  379. message.obj = null;
  380. mHandler.sendMessage(message);
  381. return;
  382. }
  383. case 3:
  384. if (mBuilder.getData().size() >= 32) {
  385. new AlertDialog.Builder(mContext).setCancelable(false).setTitle(getString(R.string.epsonconnect_err_regist_remote_printer_max_size_title)).setMessage(getString(R.string.epsonconnect_err_regist_remote_printer_max_size)).setPositiveButton(getString(R.string.str_yes), new DialogInterface.OnClickListener() {
  386. public void onClick(DialogInterface dialogInterface, int i) {
  387. }
  388. }).show();
  389. return;
  390. }
  391. Message message2 = new Message();
  392. message2.what = 10;
  393. message2.obj = null;
  394. mHandler.sendMessage(message2);
  395. return;
  396. default:
  397. return;
  398. }
  399. }
  400. });
  401. mSearchButton.setOnClickListener(new View.OnClickListener() {
  402. public void onClick(View view) {
  403. if (printer_location == 1) {
  404. mHandler.sendEmptyMessageDelayed(1, 100);
  405. }
  406. }
  407. });
  408. mLocalButton.setOnClickListener(new View.OnClickListener() {
  409. public void onClick(View view) {
  410. if (printer_location != 1) {
  411. mAddButton.setVisibility(View.GONE);
  412. ((TextView) mLayout.findViewById(R.id.empty)).setVisibility(View.VISIBLE);
  413. interruptSearch();
  414. int unused = printer_location = 1;
  415. buildElements();
  416. mHandler.sendEmptyMessageDelayed(1, 100);
  417. }
  418. }
  419. });
  420. mRemoteButton.setOnClickListener(new View.OnClickListener() {
  421. public void onClick(View view) {
  422. if (printer_location != 2) {
  423. int unused = printer_location = 2;
  424. interruptSearch();
  425. ((TextView) mLayout.findViewById(R.id.empty)).setVisibility(View.GONE);
  426. mBuilder.refresh();
  427. buildElements();
  428. displaySearchResult();
  429. mSearchButton.setVisibility(View.GONE);
  430. }
  431. }
  432. });
  433. mIpButton.setOnClickListener(new View.OnClickListener() {
  434. public void onClick(View view) {
  435. if (printer_location != 3) {
  436. int unused = printer_location = 3;
  437. interruptSearch();
  438. ((TextView) mLayout.findViewById(R.id.empty)).setVisibility(View.GONE);
  439. mBuilder.refresh();
  440. buildElements();
  441. displaySearchResult();
  442. mSearchButton.setVisibility(View.GONE);
  443. }
  444. }
  445. });
  446. }
  447. public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
  448. super.onCreateContextMenu(contextMenu, view, contextMenuInfo);
  449. contextMenu.setHeaderTitle(R.string.str_edit_bookmark);
  450. contextMenu.add(0, 1, 0, R.string.str_delete);
  451. contextMenu.add(0, 2, 0, R.string.str_edit_bookmark);
  452. }
  453. public boolean onContextItemSelected(MenuItem menuItem) {
  454. listItemIndex = (AdapterView.AdapterContextMenuInfo) menuItem.getMenuInfo();
  455. if (this.listItemIndex == null) {
  456. return true;
  457. }
  458. switch (menuItem.getItemId()) {
  459. case 1:
  460. new AlertDialog.Builder(mContext).setCancelable(false).setTitle(getString(R.string.delete_file)).setIcon(getResources().getDrawable(R.drawable.delete_file)).setNegativeButton(getString(R.string.str_ok), new DialogInterface.OnClickListener() {
  461. public void onClick(DialogInterface dialogInterface, int i) {
  462. Message obtainMessage = mHandler.obtainMessage();
  463. obtainMessage.what = 6;
  464. mHandler.sendMessageDelayed(obtainMessage, 100);
  465. }
  466. }).setPositiveButton(getString(R.string.str_cancel), new DialogInterface.OnClickListener() {
  467. public void onClick(DialogInterface dialogInterface, int i) {
  468. }
  469. }).show();
  470. break;
  471. case 2:
  472. Message message = new Message();
  473. switch (this.printer_location) {
  474. case 2:
  475. message.what = 7;
  476. break;
  477. case 3:
  478. message.what = 10;
  479. break;
  480. }
  481. message.obj = mBuilder.getData().elementAt(mDeletePos);
  482. mHandler.sendMessage(message);
  483. break;
  484. }
  485. return true;
  486. }
  487. protected void onDestroy() {
  488. mBuilder.destructor();
  489. super.onDestroy();
  490. }
  491. public void onBackPressed() {
  492. super.onBackPressed();
  493. EPPrinterManager ePPrinterManager = new EPPrinterManager(mContext);
  494. ePPrinterManager.rollbackRemotePrinterInfo();
  495. ePPrinterManager.rollbackIPPrinterInfo();
  496. finish();
  497. }
  498. protected void onResume() {
  499. mActivityForegroundLifetime = true;
  500. super.onResume();
  501. EPLog.i(TAG, "onResume()");
  502. dismissPrinterNotFoundDialog();
  503. if (this.printer_location == 1) {
  504. mHandler.sendEmptyMessageDelayed(1, 300);
  505. EPLog.d(TAG, "Send CHECK_PRINTER Message.");
  506. }
  507. if (this.printer_location == 1 && mBleButton.getTag() == null && BleWork.isStartBleProcess(this, false)) {
  508. EPLog.e("blePrinterCheck");
  509. callBackFuncs();
  510. BleAsyncTask.blePrinterCheck(this, mBleFind);
  511. }
  512. }
  513. protected void onPause() {
  514. EPLog.i();
  515. super.onPause();
  516. mActivityForegroundLifetime = false;
  517. interruptSearch();
  518. BleAsyncTask.blePrinterCheckStop();
  519. removeAllDialog();
  520. }
  521. protected void onStart() {
  522. super.onStart();
  523. }
  524. protected void onStop() {
  525. EPLog.i();
  526. super.onStop();
  527. }
  528. protected void onActivityResult(int i, int i2, Intent intent) {
  529. super.onActivityResult(i, i2, intent);
  530. interruptSearch();
  531. switch (i) {
  532. case 7:
  533. if (i2 == -1) {
  534. ((MyPrinter) intent.getParcelableExtra(ActivityPrinterSetting.KEY_MYPRINTER)).setCurPrinter(this);
  535. commitEPPrinterInfo();
  536. ExternalFileUtils.getInstance(this).removeAreaInfo();
  537. setResult(1);
  538. finish();
  539. return;
  540. }
  541. return;
  542. case 9:
  543. if (i2 == -1) {
  544. MyPrinter myPrinter = new MyPrinter(intent.getStringExtra("name"), intent.getStringExtra(escprLib.PRINTER_IP), intent.getStringExtra("id"), intent.getStringExtra(escprLib.PRINTER_SERIAL_NO));
  545. Message obtainMessage = mHandler.obtainMessage();
  546. obtainMessage.what = 11;
  547. obtainMessage.obj = myPrinter;
  548. mHandler.sendMessage(obtainMessage);
  549. intent.getBooleanExtra(ActivityiPrintConnect.FINISH_EAYSETUP, false);
  550. return;
  551. }
  552. isFocused = true;
  553. mIsClickSelect = false;
  554. return;
  555. case 10:
  556. if (i2 == -1) {
  557. MyPrinter myPrinter2 = new MyPrinter(intent.getStringExtra(Constants.PRINTER_NAME), intent.getStringExtra(Constants.PRINTER_IP), intent.getStringExtra(Constants.PRINTER_ID), intent.getStringExtra(Constants.PRINTER_SERIAL_NO), "", 3);
  558. myPrinter2.setScannerId(intent.getStringExtra(Constants.SCAN_REFS_SCANNER_ID));
  559. Message obtainMessage2 = mHandler.obtainMessage();
  560. obtainMessage2.what = 11;
  561. obtainMessage2.obj = myPrinter2;
  562. mHandler.sendMessage(obtainMessage2);
  563. return;
  564. }
  565. return;
  566. case 14:
  567. if (i2 != -1) {
  568. bRejectLocationPermission = true;
  569. return;
  570. }
  571. return;
  572. case 15:
  573. EPLog.i();
  574. finish();
  575. return;
  576. default:
  577. return;
  578. }
  579. }
  580. private void search() {
  581. interruptSearch();
  582. synchronized (mLock) {
  583. mBuilder.refresh();
  584. wiFiDirectPrinterListUtils.clearPrinterInfoList();
  585. }
  586. mIsClickSelect = false;
  587. isFinishSearchPrinter = false;
  588. searchButtonSetEnabled(false);
  589. mProgressBar.setVisibility(View.VISIBLE);
  590. ((TextView) mLayout.findViewById(R.id.empty)).setText(getString(R.string.searching_text));
  591. isFocused = true;
  592. if (WiFiDirectManager.getCurSSID(this) != null) {
  593. mHandler.sendEmptyMessageDelayed(13, 5000);
  594. isSearchSimpleAp = true;
  595. } else if (WiFiDirectManager.isWifiEnabled(this)) {
  596. mHandler.sendEmptyMessage(13);
  597. isSearchSimpleAp = true;
  598. } else {
  599. boolean z = bCheckWiFiStatus;
  600. if (!z && !z) {
  601. bCheckWiFiStatus = true;
  602. WiFiDirectManager.enableWiFi(this, -1);
  603. return;
  604. }
  605. }
  606. WiFiDirectManager.setPriorityToSimpleAP(this, true);
  607. mPrinter.getMEscpLib().setHanlder(mHandler);
  608. mSearchThread = new Thread() {
  609. public void run() {
  610. synchronized (mLock) {
  611. boolean unused = isFinishSearchPrinter = false;
  612. }
  613. mPrinter.doFindPrinter(EPS_PROTOCOL_ALL, 60);
  614. if (!isFinishSearchPrinter) {
  615. synchronized (mLock) {
  616. boolean unused2 = isFinishSearchPrinter = true;
  617. if (!isSearchSimpleAp) {
  618. mHandler.sendEmptyMessage(5);
  619. }
  620. }
  621. }
  622. }
  623. };
  624. mSearchThread.start();
  625. }
  626. public void interruptSearch() {
  627. throw new UnsupportedOperationException("Method not decompiled: epson.maintain.activity.interruptSearch():void");
  628. }
  629. public void displaySearchResult() {
  630. if (!mIsClickSelect) {
  631. boolean z = false;
  632. if (mBuilder.getData().size() <= 0) {
  633. ((TextView) mLayout.findViewById(R.id.empty)).setText(R.string.str_printer_search_result_none);
  634. if (this.printer_location == 1 && mActivityForegroundLifetime) {
  635. if (WiFiDirectManager.getCurSSID(this) == null) {
  636. z = true;
  637. }
  638. PrinterNotFoundDialogCreator.getPrinterNotFoundDialog(this, z, 1).show(getSupportFragmentManager(), DIALOG_TAG_PRINTER_NOT_FOUND);
  639. }
  640. } else if (Locale.getDefault().getLanguage().equalsIgnoreCase(Locale.JAPAN.getLanguage()) || Locale.getDefault().getLanguage().equalsIgnoreCase(Locale.JAPANESE.getLanguage())) {
  641. ((TextView) mLayout.findViewById(R.id.empty)).setText(getString(R.string.numberOfPrintersAvailable));
  642. } else {
  643. ((TextView) mLayout.findViewById(R.id.empty)).setText(String.format(getString(R.string.numberOfPrintersAvailable), new Object[]{Integer.valueOf(mBuilder.getData().size())}));
  644. }
  645. }
  646. mProgressBar.setVisibility(View.GONE);
  647. searchButtonSetEnabled(true);
  648. }
  649. protected Dialog onCreateDialog(int i) {
  650. String str;
  651. Dialog onCreateDialog = super.onCreateDialog(i);
  652. if (i != R.string.EPS_ERR_PRINTER_NOT_FOUND_RESEARCH) {
  653. switch (i) {
  654. case R.string.EPS_PRNERR_COMM1 /*2131624360*/:
  655. return Utils.makeMessageBox(this, getString(R.string.EPS_ERR_PRINTER_NOT_FOUND_TITLE), getString(i), getString(R.string.str_ok));
  656. case R.string.EPS_PRNERR_COMM1_NOWIFI /*2131624361*/:
  657. return Utils.makeMessageBox(this, getString(R.string.EPS_ERR_PRINTER_NOT_FOUND_TITLE), getString(R.string.EPS_PRNERR_COMM1_NOWIFI), getString(R.string.str_ok));
  658. default:
  659. return onCreateDialog;
  660. }
  661. } else {
  662. String string = getString(i);
  663. String ssid = Utils.getSSID(this);
  664. if (!Utils.isConnectedWifi(this) || ssid == null) {
  665. str = getString(R.string.EPS_PRNERR_COMM4);
  666. } else {
  667. str = String.format(string, new Object[]{ssid});
  668. }
  669. return Utils.makeMessageBox(this, getString(R.string.EPS_ERR_PRINTER_NOT_FOUND_TITLE), str, getString(R.string.str_ok));
  670. }
  671. }
  672. private void dismissPrinterNotFoundDialog() {
  673. DialogFragment dialogFragment = (DialogFragment) getSupportFragmentManager().findFragmentByTag(DIALOG_TAG_PRINTER_NOT_FOUND);
  674. if (dialogFragment != null) {
  675. dialogFragment.dismiss();
  676. }
  677. }
  678. public void removeAllDialog() {
  679. throw new UnsupportedOperationException("Method not decompiled: epson.maintain.activity.removeAllDialog():void");
  680. }
  681. public void searchButtonSetEnabled(boolean z) {
  682. mSearchButton.setVisibility(View.VISIBLE);
  683. if (z) {
  684. mSearchButton.setEnabled(true);
  685. } else {
  686. mSearchButton.setEnabled(false);
  687. }
  688. }
  689. private void commitEPPrinterInfo() {
  690. EPPrinterManager ePPrinterManager = new EPPrinterManager(mContext);
  691. ePPrinterManager.commitIPPrinterInfo();
  692. ePPrinterManager.commitRemotePrinterInfo();
  693. }
  694. public void onLocalPositiveCallback(int i) {
  695. if (i == 1) {
  696. startActivity(PrinterNotFoundDialogCreator.getStartIntent(this));
  697. }
  698. }
  699. private void callBackFuncs() {
  700. mBleFind = new BLEUtility.BleWorkCallback() {
  701. public void call(Object obj) {
  702. ArrayList arrayList = (ArrayList) obj;
  703. EPLog.d(" ★★ mDevicelist " + arrayList.size());
  704. if (printer_location == 1) {
  705. mBleButton.setVisibility(View.VISIBLE);
  706. }
  707. mBleButton.setTag(arrayList);
  708. }
  709. };
  710. }
  711. }