auto import from //branches/cupcake/...@137197
diff --git a/src/com/android/music/TrackBrowserActivity.java b/src/com/android/music/TrackBrowserActivity.java
index 58f556c..dd3da3e 100644
--- a/src/com/android/music/TrackBrowserActivity.java
+++ b/src/com/android/music/TrackBrowserActivity.java
@@ -225,9 +225,9 @@
MusicUtils.unbindFromService(this);
try {
if ("nowplaying".equals(mPlaylist)) {
- unregisterReceiver(mNowPlayingListener);
+ unregisterReceiverSafe(mNowPlayingListener);
} else {
- unregisterReceiver(mTrackListListener);
+ unregisterReceiverSafe(mTrackListListener);
}
} catch (IllegalArgumentException ex) {
// we end up here in case we never registered the listeners
@@ -241,9 +241,23 @@
c.close();
}
}
- unregisterReceiver(mScanListener);
+ unregisterReceiverSafe(mScanListener);
super.onDestroy();
- }
+ }
+
+ /**
+ * Unregister a receiver, but eat the exception that is thrown if the
+ * receiver was never registered to begin with. This is a little easier
+ * than keeping track of whether the receivers have actually been
+ * registered by the time onDestroy() is called.
+ */
+ private void unregisterReceiverSafe(BroadcastReceiver receiver) {
+ try {
+ unregisterReceiver(receiver);
+ } catch (IllegalArgumentException e) {
+ // ignore
+ }
+ }
@Override
public void onResume() {
@@ -372,7 +386,7 @@
}
cursor.deactivate();
}
- if (fancyName.equals(MediaFile.UNKNOWN_STRING)) {
+ if (fancyName == null || fancyName.equals(MediaFile.UNKNOWN_STRING)) {
fancyName = getString(R.string.unknown_album_name);
}
}