@Override public boolean handleMessage(Message msg) { if (super.handleMessage(msg)) { return true; } switch (msg.what) { case MSG_UPDATE_VIEW: if (mBdAddrBytes == null) { mEditTextBdAddr.setText(null); } else { mEditTextBdAddr.setText(CavanString.fromBdAddr(mBdAddrBytes)); } long count = JwaooBdAddr.queryAddrCount(getContentResolver()); mEditTextAddrRemain.setText(Long.toString(count)); break; case MSG_ADDR_ALLOC_COMPLETE: JwaooBdAddr addr = (JwaooBdAddr) msg.obj; if (addr == null) { CavanAndroid.showToast(this, R.string.text_no_addr); } else { byte[] bytes = addr.getBytes(); if (mBleToy.writeBdAddress(bytes)) { mBdAddrBytes = bytes; mHandler.sendEmptyMessage(MSG_UPDATE_VIEW); CavanAndroid.showToast(this, R.string.text_burn_success); } else { addr.recycle(getContentResolver()); CavanAndroid.showToast(this, R.string.text_burn_failed); } } mButtonBurn.setEnabled(true); break; case MSG_ADDR_REQUEST_COMPLETE: addr = (JwaooBdAddr) msg.obj; if (addr == null) { CavanAndroid.showToast(this, R.string.text_request_addr_failed); } else { CavanAndroid.putPreference(this, KEY_SERVER_IP, mEditTextIp.getText().toString()); CavanAndroid.putPreference(this, KEY_SERVER_PORT, mEditTextPort.getText().toString()); mHandler.sendEmptyMessage(MSG_UPDATE_VIEW); String text = getResources().getString(R.string.text_request_addr_success, addr.getCount()); CavanAndroid.showToast(this, text); } mButtonRequest.setEnabled(true); break; } return true; }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.buttonComplete: if (mBleToy != null) { mBleToy.doReboot(); mBleToy.disconnect(); } showScanActivity(); break; case R.id.buttonBurn: if (JwaooBdAddr.isValidBdAddr(mBdAddrBytes)) { CavanAndroid.showToast(this, R.string.text_already_burn); break; } mButtonBurn.setEnabled(false); new Thread() { @Override public void run() { JwaooBdAddr addr = allocBdAddr(); mHandler.obtainMessage(MSG_ADDR_ALLOC_COMPLETE, addr).sendToTarget(); } }.start(); break; case R.id.buttonRequest: mButtonRequest.setEnabled(false); new Thread() { @Override public void run() { JwaooBdAddr addr = allocFromServer(); mHandler.obtainMessage(MSG_ADDR_REQUEST_COMPLETE, addr).sendToTarget(); } }.start(); break; } }