private final MainActivityBuildHooks mabh = new MainActivityBuildHooksImpl();
private MainService.LocalBinder mSrvBinder; // set once connection completed
+ private MainService.MqttServerEvent mLastMSE;
private final MainService.Observer mSrvObs = new MainService.Observer() {
@Override
public void onMqttServerChanged(MainService.LocalBinder b, final String sURL) {
@Override
public void onMqttServerEvent(MainService.LocalBinder b, MainService.MqttServerEvent mse) {
+ mLastMSE = mse;
+ if (mMenuReconn != null) {
+ setMenuReconnVis(mse);
+ }
switch(mse) {
- case MSE_CONN: setServerStateText(R.string.mqtt_conn); break;
- case MSE_DISCONN: setServerStateText(R.string.mqtt_disconn); break;
+ case MSE_CONN:
+ setServerStateText(R.string.mqtt_conn);
+ break;
+ case MSE_DISCONN:
+ setServerStateText(R.string.mqtt_disconn);
+ break;
case MSE_SUB: {
long lstde = b.getLastServerTimeDeltaEstimate();
if (Math.abs(lstde) <= 5) {
}
};
+ private MenuItem mMenuReconn;
+
private CtFwSDisplayLocal mCdl; // set in onStart
private TextView mTvSU; // set in onStart
private TextView mTvSS; // set in onStart
@Override
public void onServiceDisconnected(ComponentName name) {
mSrvBinder = null;
+ mLastMSE = MainService.MqttServerEvent.MSE_DISCONN; /* sort of, anyway */
}
};
@Override
public boolean onOptionsItemSelected(MenuItem mi) {
switch(mi.getItemId()) {
- case R.id.menu_hand:
+ case R.id.mainmenu_hand:
startActivity(new Intent(this, HandbookActivity.class));
return true;
- case R.id.menu_reconn:
+ case R.id.mainmenu_reconn:
if (mSrvBinder != null) {
mSrvBinder.connect(true);
}
return true;
- case R.id.menu_prf :
+ case R.id.mainmenu_prf :
startActivity(new Intent(this, SettingsActivity.class));
return true;
- case R.id.menu_about :
+ case R.id.mainmenu_about :
startActivity(new Intent(this, AboutActivity.class));
return true;
- case R.id.menu_quit:
+ case R.id.mainmenu_quit:
if (mSrvBinder != null) {
mSrvBinder.exit();
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.mainmenu, menu);
+
+ mMenuReconn = menu.findItem(R.id.mainmenu_reconn);
+ if (mLastMSE != null) {
+ setMenuReconnVis(mLastMSE);
+ }
+
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;
+ }
+ }
}
--- /dev/null
+<vector android:height="24dp" android:tint="#FFFFFF"
+ android:viewportHeight="24.0" android:viewportWidth="24.0"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM19,11L9,11L9,9h10v2zM15,15L9,15v-2h6v2zM19,7L9,7L9,5h10v2z"/>
+</vector>
xmlns:android="http://schemas.android.com/apk/res/android">
<item
- android:id="@+id/menu_hand"
- android:icon="@android:drawable/ic_menu_directions"
+ android:id="@+id/mainmenu_hand"
+ android:icon="@drawable/ic_library_books_24dp"
android:title="@string/menutext_handbook"
android:visible="true"
app:showAsAction="ifRoom" />
<item
- android:id="@+id/menu_reconn"
+ android:id="@+id/mainmenu_prf"
android:checkable="false"
android:enabled="true"
- android:icon="@android:drawable/stat_sys_download"
- android:title="@string/menutext_reconn"
- android:visible="true"
- app:showAsAction="ifRoom" />
+ android:icon="@android:drawable/ic_menu_manage"
+ android:title="@string/menutext_prf"
+ android:visible="true" />
<item
- android:id="@+id/menu_prf"
+ android:id="@+id/mainmenu_reconn"
android:checkable="false"
android:enabled="true"
- android:icon="@android:drawable/ic_menu_manage"
- android:title="@string/menutext_prf"
+ android:icon="@android:drawable/ic_popup_sync"
+ android:title="@string/menutext_reconn"
android:visible="true"
app:showAsAction="never" />
<item
- android:id="@+id/menu_about"
+ android:id="@+id/mainmenu_about"
android:checkable="false"
android:enabled="true"
android:icon="@android:drawable/ic_menu_help"
android:title="@string/menutext_about"
android:visible="true" />
<item
- android:id="@+id/menu_quit"
+ android:id="@+id/mainmenu_quit"
android:enabled="true"
+ android:icon="@android:drawable/ic_menu_close_clear_cancel"
android:title="@string/menutext_quit"
android:visible="true" />
</menu>
\ No newline at end of file
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="server_default">tcp://ctfws-mqtt.cmukgb.org:1883</string>
- <string name="app_name">CMUKGB CtFwS Timer</string>
+ <string name="app_name">CtFwS Timer</string>
<string name="app_name_hand">CtFwS Handbook</string>
<string name="app_name_hand_title">Handbook</string>