From 7e2fa82f3ceb6f4199d4341ea1461184b00d403d Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 19 Sep 2012 17:56:30 -0700 Subject: [PATCH] Fix issue 1153. In TrackListActivity, unregister listener in onPause. --- .../com/google/android/apps/mytracks/TrackListActivity.java | 1 + .../android/apps/mytracks/content/TrackDataManager.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 3e5b9d12f..828d4f809 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -419,6 +419,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac protected void onPause() { super.onPause(); trackController.stop(); + trackDataHub.unregisterTrackDataListener(trackDataListener); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataManager.java b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataManager.java index e816d2408..4d585d993 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataManager.java +++ b/MyTracks/src/com/google/android/apps/mytracks/content/TrackDataManager.java @@ -58,7 +58,8 @@ public class TrackDataManager { public void registerListener( TrackDataListener listener, EnumSet trackDataTypes) { if (listenerToTypesMap.containsKey(listener)) { - throw new IllegalStateException("Listener is already registered"); + Log.w(TAG, "Tried to register a listener that is already registered. Ignore."); + return; } listenerToTypesMap.put(listener, trackDataTypes); for (TrackDataType trackDataType : trackDataTypes) { @@ -74,7 +75,7 @@ public class TrackDataManager { public void unregisterListener(TrackDataListener listener) { EnumSet removedTypes = listenerToTypesMap.remove(listener); if (removedTypes == null) { - Log.w(TAG, "Tried to unregister a listener that is not registered."); + Log.w(TAG, "Tried to unregister a listener that is not registered. Ignore."); return; }