From 282b1090ba897e5ebf9e0cf9d2bdd3b45ff8e9d7 Mon Sep 17 00:00:00 2001 From: Rodrigo Damazio Date: Sun, 28 Nov 2010 03:00:51 -0800 Subject: [PATCH] Merging from head --- MyTracks/AndroidManifest.xml | 4 +-- .../android/apps/mytracks/MyTracks.java | 26 ++++++++++++---- .../services/TrackRecordingService.java | 30 +++++++++++++++++-- 3 files changed, 50 insertions(+), 10 deletions(-) diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index fea420b11..318a6e1ed 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -17,8 +17,8 @@ limitations under the License. + android:versionCode="22" + android:versionName="1.0.21"> diff --git a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java index 951234d9e..ae5d9ab5e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java @@ -62,7 +62,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; -import android.os.RemoteException; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -228,7 +227,9 @@ public class MyTracks extends TabActivity implements OnTouchListener, } try { return trackRecordingService.isRecording(); - } catch (RemoteException e) { + // TODO: We catch Exception, because after eliminating the service process + // all exceptions it may throw are no longer wrapped in a RemoteException. + } catch (Exception e) { Log.e(MyTracksConstants.TAG, "MyTracks: Remote exception.", e); // Fall back to alternative check method. @@ -405,6 +406,11 @@ public class MyTracks extends TabActivity implements OnTouchListener, return dialogManager.onCreateDialog(id, args); } + @Override + protected Dialog onCreateDialog(int id) { + return dialogManager.onCreateDialog(id, null); + } + @Override protected void onPrepareDialog(int id, Dialog dialog) { super.onPrepareDialog(id, dialog); @@ -908,7 +914,9 @@ public class MyTracks extends TabActivity implements OnTouchListener, Log.e(MyTracksConstants.TAG, "Cannot insert waypoint marker?"); return -4; } - } catch (RemoteException e) { + // TODO: We catch Exception, because after eliminating the service process + // all exceptions it may throw are no longer wrapped in a RemoteException. + } catch (Exception e) { Toast.makeText(this, R.string.error_unable_to_insert_marker, Toast.LENGTH_LONG).show(); Log.e(MyTracksConstants.TAG, "Cannot insert waypoint marker.", e); @@ -948,7 +956,9 @@ public class MyTracks extends TabActivity implements OnTouchListener, Log.e(MyTracksConstants.TAG, "Cannot insert statistics marker?"); return -4; } - } catch (RemoteException e) { + // TODO: We catch Exception, because after eliminating the service process + // all exceptions it may throw are no longer wrapped in a RemoteException. + } catch (Exception e) { Toast.makeText(this, R.string.error_unable_to_insert_marker, Toast.LENGTH_LONG).show(); Log.e(MyTracksConstants.TAG, "Cannot insert statistics marker?", e); @@ -1016,7 +1026,9 @@ public class MyTracks extends TabActivity implements OnTouchListener, setSelectedTrackId(recordingTrackId); Toast.makeText(this, getString(R.string.status_now_recording), Toast.LENGTH_SHORT).show(); - } catch (RemoteException e) { + // TODO: We catch Exception, because after eliminating the service process + // all exceptions it may throw are no longer wrapped in a RemoteException. + } catch (Exception e) { Toast.makeText(this, getString(R.string.error_unable_to_start_recording), Toast.LENGTH_SHORT).show(); @@ -1049,7 +1061,9 @@ public class MyTracks extends TabActivity implements OnTouchListener, long currentTrackId = recordingTrackId; try { trackRecordingService.endCurrentTrack(); - } catch (RemoteException e) { + // TODO: We catch Exception, because after eliminating the service process + // all exceptions it may throw are no longer wrapped in a RemoteException. + } catch (Exception e) { Log.e(MyTracksConstants.TAG, "Unable to stop recording.", e); } Intent intent = new Intent(MyTracks.this, MyTracksDetails.class); diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java index d619f7b49..e97ddc73c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -936,21 +936,33 @@ public class TrackRecordingService extends Service implements LocationListener { @Override public boolean isRecording() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.isRecording(); } @Override public long getRecordingTrackId() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.recordingTrackId; } @Override public boolean hasRecorded() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.providerUtils.getLastTrackId() >= 0; } @Override public long startNewTrack() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.startNewTrack(); } @@ -963,6 +975,9 @@ public class TrackRecordingService extends Service implements LocationListener { */ @Override public long insertWaypointMarker(Waypoint waypoint) { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.insertWaypointMarker(waypoint); } @@ -975,25 +990,36 @@ public class TrackRecordingService extends Service implements LocationListener { */ @Override public long insertStatisticsMarker(Location location) { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } return service.insertStatisticsMarker(location); } @Override public void endCurrentTrack() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } service.endCurrentTrack(); } @Override public void deleteAllTracks() { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } if (isRecording()) { - throw new IllegalStateException( - "Cannot delete all tracks while recording!"); + throw new IllegalStateException("Cannot delete all tracks while recording!"); } service.providerUtils.deleteAllTracks(); } @Override public void recordLocation(Location loc) { + if (service == null) { + throw new IllegalStateException("The service has been already detached!"); + } service.onLocationChanged(loc); } }