a>

No Description

PrinterSettingPresenter.java 8.2KB

    package ai.pai.lensman.printer; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.os.IBinder; import android.text.TextUtils; import android.util.Log; import com.gprinter.command.GpCom; import com.gprinter.io.GpDevice; import com.gprinter.service.GpPrintService; import java.util.ArrayList; import java.util.List; import java.util.Set; import ai.pai.lensman.App; import ai.pai.lensman.R; import ai.pai.lensman.db.Preferences; public class PrinterSettingPresenter implements PrinterSettingContract.Presenter { private Context context; private PrinterService printerService; private PrinterSettingContract.View view; private PrinterServiceConnection connection; private BluetoothAdapter bluetoothAdapter; private static final String TAG = "PrinterSettingPresenter"; private class PrinterServiceConnection implements ServiceConnection{ @Override public void onServiceConnected(ComponentName name, IBinder service) { printerService = ((PrinterService.PrintServiceBinder)service).getService(); } @Override public void onServiceDisconnected(ComponentName name) { printerService = null; } } public PrinterSettingPresenter(Context context, PrinterSettingContract.View view){ this.view = view; this.context = context; connection = new PrinterServiceConnection(); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); } @Override public void start() { registerPrinterBroadcast(); context.startService(new Intent(context,PrinterService.class)); context.bindService(new Intent(context,PrinterService.class),connection,Context.BIND_AUTO_CREATE); if(queryBluetoothStatus()){ view.onBluetoothEnabled(); view.onPairedDeviceDiscovered(queryPairedDevices()); discoverNewDevices(); if(Preferences.getInstance().isPrinterConnected()){ view.onPrinterStatusFetched(context.getString(R.string.printer_is_connected)); }else{ view.onPrinterStatusFetched(context.getString(R.string.click_to_query)); } }else{ view.onBluetoothDisabled(); view.showToast(context.getString(R.string.bt_is_disabled)); } } @Override public void stop() { cancelDiscovery(); context.unregisterReceiver(PrinterStatusBroadcastReceiver); if(connection!=null){ context.unbindService(connection); } } @Override public void queryPrinterStatus() { if(printerService==null){ view.showToast(context.getString(R.string.printer_status_query_fail)); return; } view.onPrinterStatusFetched(printerService.queryPrinterStatus()); } @Override public void printQR(String qrCodeStr) { if(printerService==null){ view.showToast(context.getString(R.string.printer_service_boot_fail)); return; } if(TextUtils.isEmpty(Preferences.getInstance().getPrinterMac())){ view.showToast(App.getAppContext().getString(R.string.not_set_printer_yet)); return; } int code = printerService.printQR(qrCodeStr); if(code == PrinterService.ERROR_CODE_PRINTER_SERVICE_EXCEPTION){ view.showToast(context.getString(R.string.go_check_printer)); }else if(code == PrinterService.ERROR_CODE_PRINTER_SERVICE_OFF){ view.showToast(context.getString(R.string.go_check_printer)); }else if( GpCom.ERROR_CODE.values()[code]!= GpCom.ERROR_CODE.SUCCESS){ view.showToast( GpCom.getErrorText(GpCom.ERROR_CODE.values()[code])); } } @Override public boolean queryBluetoothStatus() { if(bluetoothAdapter==null){ return false; } return bluetoothAdapter.isEnabled(); } @Override public List<BluetoothDevice> queryPairedDevices() { ArrayList<BluetoothDevice> pairedDevices = new ArrayList<>(); Set<BluetoothDevice> deviceSet = bluetoothAdapter.getBondedDevices(); for(BluetoothDevice device: deviceSet){ pairedDevices.add(device); } return pairedDevices; } @Override public void discoverNewDevices() { // Register for broadcasts when a device is discovered IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); context.registerReceiver(mFindBlueToothReceiver, filter); // Register for broadcasts when discovery has finished filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); context.registerReceiver(mFindBlueToothReceiver, filter); bluetoothAdapter.startDiscovery(); } @Override public void connectPrinter(BluetoothDevice device) { if(printerService==null){ view.showToast(context.getString(R.string.printer_service_boot_fail)); return; } int code = printerService.connectPrinter(device); if(code==0){ Preferences.getInstance().setPrinterMac(device.getAddress()); Preferences.getInstance().setPrinterConnected(true); }else{ view.showToast(context.getString(R.string.printer_port_open_fail)); Preferences.getInstance().setPrinterConnected(false); } } @Override public void cancelDiscovery() { try{ bluetoothAdapter.cancelDiscovery(); context.unregisterReceiver(mFindBlueToothReceiver); }catch (Exception e){ e.printStackTrace(); } } // changes the title when discovery is finished private final BroadcastReceiver mFindBlueToothReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); // When discovery finds a device if (BluetoothDevice.ACTION_FOUND.equals(action)) { // Get the BluetoothDevice object from the Intent BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); // If it's already paired, skip it, because it's been listed // already if (device.getBondState() != BluetoothDevice.BOND_BONDED) { view.onNewDeviceDiscovered(device); } // When discovery is finished, change the Activity title } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED .equals(action)) { view.showToast(context.getString(R.string.bt_discover_complete)); } } }; private void registerPrinterBroadcast() { IntentFilter filter = new IntentFilter(); filter.addAction(GpCom.ACTION_CONNECT_STATUS); context.registerReceiver(PrinterStatusBroadcastReceiver, filter); } private BroadcastReceiver PrinterStatusBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (GpCom.ACTION_CONNECT_STATUS.equals(intent.getAction())) { int type = intent.getIntExtra(GpPrintService.CONNECT_STATUS, 0); Log.d(TAG, "connect status " + type); if (type == GpDevice.STATE_CONNECTING) { view.onPrinterStatusFetched(context.getString(R.string.connecting)); } else if (type == GpDevice.STATE_NONE) { view.onPrinterStatusFetched(context.getString(R.string.connecting)); } else if (type == GpDevice.STATE_VALID_PRINTER) { view.onPrinterStatusFetched(context.getString(R.string.printer_is_connected)); } else if (type == GpDevice.STATE_INVALID_PRINTER) { view.onPrinterStatusFetched(context.getString(R.string.printer_is_disconnected)); } } } }; }
kodo - Gogs: Go Git Service

Geen omschrijving

huangqimin001: 77224d884a :art: Support maintenance_tracking_info_subscribe 5 jaren geleden
..
__init__.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
autonumber.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
billparcels.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
maptrack.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
sms.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
subscribe.py 77224d884a :art: Support maintenance_tracking_info_subscribe 5 jaren geleden
synquery.py fe160a49f1 :art: Kuaidi100 5 jaren geleden
快递100快递公司标准编码-20210922162915.xls 22a8246c88 :art: init_express_company 5 jaren geleden