public void onMqttServerEvent(MainService.LocalBinder b, MainService.MqttServerEvent mse) {
mLastMSE = mse;
if (mMenuReconn != null) {
- setMenuReconnVis(mse);
+ updateMenuReconnVis();
}
switch(mse) {
case MSE_CONN:
mMenuReconn = menu.findItem(R.id.mainmenu_reconn);
if (mLastMSE != null) {
- setMenuReconnVis(mLastMSE);
+ updateMenuReconnVis();
}
return true;
}
- private void setMenuReconnVis(MainService.MqttServerEvent mse) {
- switch(mse) {
- case MSE_CONN:
- case MSE_SUB:
- mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
- break;
- case MSE_DISCONN:
- mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
- break;
- }
+ private void updateMenuReconnVis() {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ switch(mLastMSE) {
+ case MSE_CONN:
+ case MSE_SUB:
+ mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+ break;
+ case MSE_DISCONN:
+ mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+ break;
+ }
+ }
+ });
}
}