From 111adc917bef4dbb651a9d95d5c2d7ce373c52b8 Mon Sep 17 00:00:00 2001 From: Rodrigo Damazio Date: Tue, 31 May 2011 03:16:14 -0300 Subject: [PATCH] Getting rid of insertWaypoint singleton dependency. --- .../android/apps/mytracks/MyTracks.java | 4 +- .../android/apps/mytracks/WaypointsList.java | 37 ++++++++++++++----- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java index f84715872..98ad926ca 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java @@ -390,10 +390,12 @@ public class MyTracks extends TabActivity implements OnTouchListener { /** * Inserts a waypoint marker. * + * TODO: Merge with WaypointsList#insertWaypoint. + * * @return Id of the inserted statistics marker. * @throws RemoteException If the call on the service failed. */ - public long insertWaypoint(WaypointCreationRequest request) throws RemoteException { + private long insertWaypoint(WaypointCreationRequest request) throws RemoteException { ITrackRecordingService trackRecordingService = serviceBinder.getServiceIfBound(); if (trackRecordingService == null) { throw new IllegalStateException("The recording service is not bound."); diff --git a/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java b/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java index cbaad0481..1d7bed816 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java +++ b/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java @@ -19,6 +19,8 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.WaypointCreationRequest; import com.google.android.apps.mytracks.content.WaypointsColumns; +import com.google.android.apps.mytracks.services.ITrackRecordingService; +import com.google.android.apps.mytracks.services.TrackRecordingServiceBinder; import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.maps.mytracks.R; @@ -43,6 +45,7 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; +import android.widget.Toast; /** * Activity which shows the list of waypoints in a track. @@ -181,17 +184,10 @@ public class WaypointsList extends ListActivity default: return; } - long id; - try { - id = MyTracks.getInstance().insertWaypoint(request); - } catch (RemoteException e) { - Log.e(Constants.TAG, "Cannot insert marker.", e); - return; - } catch (IllegalStateException e) { - Log.e(Constants.TAG, "Cannot insert marker.", e); - return; - } + long id = insertWaypoint(request); if (id < 0) { + Toast.makeText(this, R.string.error_unable_to_insert_marker, + Toast.LENGTH_LONG).show(); Log.e(Constants.TAG, "Failed to insert marker."); return; } @@ -200,6 +196,27 @@ public class WaypointsList extends ListActivity startActivity(intent); } + private long insertWaypoint(WaypointCreationRequest request) { + try { + ITrackRecordingService trackRecordingService = + TrackRecordingServiceBinder.getInstance(this).getServiceIfBound(); + if (trackRecordingService != null) { + long waypointId = trackRecordingService.insertWaypoint(request); + if (waypointId >= 0) { + Toast.makeText(this, R.string.status_statistics_inserted, + Toast.LENGTH_LONG).show(); + return waypointId; + } + } + } catch (RemoteException e) { + Log.e(Constants.TAG, "Cannot insert marker.", e); + } catch (IllegalStateException e) { + Log.e(Constants.TAG, "Cannot insert marker.", e); + } + + return -1; + } + private void setListAdapter() { // Get a cursor with all tracks SimpleCursorAdapter adapter = new SimpleCursorAdapter(