diff --git a/org.envirocar.app/AndroidManifest.xml b/org.envirocar.app/AndroidManifest.xml index 5cf72d4ed..80932e9ec 100644 --- a/org.envirocar.app/AndroidManifest.xml +++ b/org.envirocar.app/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="22" + android:versionName="0.9.1"> - \ No newline at end of file + diff --git a/org.envirocar.app/src/org/envirocar/app/activity/DashboardFragment.java b/org.envirocar.app/src/org/envirocar/app/activity/DashboardFragment.java index a8ad96be8..8ef196bab 100644 --- a/org.envirocar.app/src/org/envirocar/app/activity/DashboardFragment.java +++ b/org.envirocar.app/src/org/envirocar/app/activity/DashboardFragment.java @@ -262,7 +262,13 @@ public void onDestroy() { logger.info("onDestroy. hash="+System.identityHashCode(this)); super.onDestroy(); - getActivity().unregisterReceiver(receiver); + try { + getActivity().unregisterReceiver(receiver); + } + catch (IllegalArgumentException e) { + logger.warn(e.getMessage(), e); + logger.warn("Reconsider the Receiver registration lifecycle!"); + } if (preferences != null) { preferences.unregisterOnSharedPreferenceChangeListener(preferenceListener); } diff --git a/org.envirocar.app/src/org/envirocar/app/activity/ListTracksFragment.java b/org.envirocar.app/src/org/envirocar/app/activity/ListTracksFragment.java index 381bb75c6..d1d8ebd61 100644 --- a/org.envirocar.app/src/org/envirocar/app/activity/ListTracksFragment.java +++ b/org.envirocar.app/src/org/envirocar/app/activity/ListTracksFragment.java @@ -212,14 +212,27 @@ private void updateUsabilityOfMenuItems() { @Override public void run() { + Menu theMenu = menu; + + if (theMenu == null) { + return; + } + if (dbAdapter.getAllLocalTracks().size() > 0) { - menu.findItem(R.id.menu_delete_all).setEnabled(true); - menu.findItem(R.id.menu_upload).setEnabled(UserManager.instance().isLoggedIn()); + setItemEnabled(theMenu.findItem(R.id.menu_delete_all), true); + setItemEnabled(theMenu.findItem(R.id.menu_upload), UserManager.instance().isLoggedIn()); } else { - menu.findItem(R.id.menu_upload).setEnabled(false); - menu.findItem(R.id.menu_delete_all).setEnabled(false); + setItemEnabled(theMenu.findItem(R.id.menu_upload), false); + setItemEnabled(theMenu.findItem(R.id.menu_delete_all), false); } } + + private void setItemEnabled(com.actionbarsherlock.view.MenuItem item, + boolean b) { + if (item != null) { + item.setEnabled(b); + } + } }); } diff --git a/org.envirocar.app/src/org/envirocar/app/activity/MainActivity.java b/org.envirocar.app/src/org/envirocar/app/activity/MainActivity.java index 66de22913..26a32d8b9 100644 --- a/org.envirocar.app/src/org/envirocar/app/activity/MainActivity.java +++ b/org.envirocar.app/src/org/envirocar/app/activity/MainActivity.java @@ -681,9 +681,11 @@ protected void onDestroy() { this.unregisterReceiver(bluetoothStateReceiver); this.unregisterReceiver(deviceDiscoveryStateReceiver); - this.unregisterReceiver(errorInformationReceiver); + this.unregisterReceiver(serviceStateReceiver); + this.unregisterReceiver(errorInformationReceiver); + if (remainingTimeHandler != null) { remainingTimeHandler.removeCallbacks(remainingTimeThread); discoveryTargetTime = 0; diff --git a/org.envirocar.app/src/org/envirocar/app/bluetooth/BluetoothConnection.java b/org.envirocar.app/src/org/envirocar/app/bluetooth/BluetoothConnection.java index 60748ae1a..fc10cdfc1 100644 --- a/org.envirocar.app/src/org/envirocar/app/bluetooth/BluetoothConnection.java +++ b/org.envirocar.app/src/org/envirocar/app/bluetooth/BluetoothConnection.java @@ -176,6 +176,7 @@ public void run() { break; } catch (IOException e) { + logger.warn("Exception on bluetooth connection. Trying the fallback... : "+e.getMessage(), e); //try the fallback try { if (running) { @@ -186,7 +187,7 @@ public void run() { break; } } catch (FallbackException e1) { - logger.warn("Could not initialize FallbackBluetoothSocket classes.", e); + logger.warn("Could not initialize FallbackBluetoothSocket classes: "+e1.getMessage(), e1); } catch (InterruptedException e1) { logger.warn(e1.getMessage(), e1); } catch (IOException e1) { @@ -224,7 +225,7 @@ private boolean selectSocket() { bluetoothSocket = new NativeBluetoothSocket(tmp); return true; } catch (IOException e) { - logger.warn(e.getMessage() ,e); + logger.warn(e.getMessage(), e); } return false; diff --git a/org.envirocar.app/src/org/envirocar/app/protocol/drivedeck/DriveDeckSportConnector.java b/org.envirocar.app/src/org/envirocar/app/protocol/drivedeck/DriveDeckSportConnector.java index c063faf37..dc7030693 100644 --- a/org.envirocar.app/src/org/envirocar/app/protocol/drivedeck/DriveDeckSportConnector.java +++ b/org.envirocar.app/src/org/envirocar/app/protocol/drivedeck/DriveDeckSportConnector.java @@ -144,7 +144,19 @@ private void updateConnectionState() { } private void determineProtocol(String protocolInt) { - int prot = Integer.parseInt(protocolInt); + if (protocolInt == null || protocolInt.trim().isEmpty()) { + return; + } + + int prot; + try { + prot = Integer.parseInt(protocolInt); + } + catch (NumberFormatException e) { + logger.warn("NFE: "+e.getMessage()); + return; + } + switch (prot) { case 1: protocol = Protocol.CAN11500;