Fix some issues with threads/handlers accessing the adapter for the 'old' activity after it has been handed off to the 'new' activity.
diff --git a/src/com/android/music/AlbumBrowserActivity.java b/src/com/android/music/AlbumBrowserActivity.java
index 4178021..414947a 100644
--- a/src/com/android/music/AlbumBrowserActivity.java
+++ b/src/com/android/music/AlbumBrowserActivity.java
@@ -194,7 +194,9 @@
private Handler mReScanHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
- getAlbumCursor(mAdapter.getQueryHandler(), null);
+ if (mAdapter != null) {
+ getAlbumCursor(mAdapter.getQueryHandler(), null);
+ }
}
};
@@ -207,6 +209,9 @@
public void init(Cursor c) {
+ if (mAdapter == null) {
+ return;
+ }
mAdapter.changeCursor(c); // also sets mAlbumCursor
if (mAlbumCursor == null) {
diff --git a/src/com/android/music/ArtistAlbumBrowserActivity.java b/src/com/android/music/ArtistAlbumBrowserActivity.java
index 13a2387..9aa42b4 100644
--- a/src/com/android/music/ArtistAlbumBrowserActivity.java
+++ b/src/com/android/music/ArtistAlbumBrowserActivity.java
@@ -202,7 +202,9 @@
private Handler mReScanHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
- getArtistCursor(mAdapter.getQueryHandler(), null);
+ if (mAdapter != null) {
+ getArtistCursor(mAdapter.getQueryHandler(), null);
+ }
}
};
@@ -215,6 +217,9 @@
public void init(Cursor c) {
+ if (mAdapter == null) {
+ return;
+ }
mAdapter.changeCursor(c); // also sets mArtistCursor
if (mArtistCursor == null) {
diff --git a/src/com/android/music/PlaylistBrowserActivity.java b/src/com/android/music/PlaylistBrowserActivity.java
index fb3302d..ccdb529 100644
--- a/src/com/android/music/PlaylistBrowserActivity.java
+++ b/src/com/android/music/PlaylistBrowserActivity.java
@@ -204,12 +204,18 @@
};
private Handler mReScanHandler = new Handler() {
+ @Override
public void handleMessage(Message msg) {
- getPlaylistCursor(mAdapter.getQueryHandler(), null);
+ if (mAdapter != null) {
+ getPlaylistCursor(mAdapter.getQueryHandler(), null);
+ }
}
};
public void init(Cursor cursor) {
+ if (mAdapter == null) {
+ return;
+ }
mAdapter.changeCursor(cursor);
if (mPlaylistCursor == null) {
@@ -331,7 +337,7 @@
case SCAN_DONE:
if (resultCode == RESULT_CANCELED) {
finish();
- } else {
+ } else if (mAdapter != null) {
getPlaylistCursor(mAdapter.getQueryHandler(), null);
}
break;
diff --git a/src/com/android/music/QueryBrowserActivity.java b/src/com/android/music/QueryBrowserActivity.java
index cf608a2..14d4952 100644
--- a/src/com/android/music/QueryBrowserActivity.java
+++ b/src/com/android/music/QueryBrowserActivity.java
@@ -227,7 +227,9 @@
private Handler mReScanHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
- getQueryCursor(mAdapter.getQueryHandler(), null);
+ if (mAdapter != null) {
+ getQueryCursor(mAdapter.getQueryHandler(), null);
+ }
// if the query results in a null cursor, onQueryComplete() will
// call init(), which will post a delayed message to this handler
// in order to try again.
@@ -248,7 +250,10 @@
}
public void init(Cursor c) {
-
+
+ if (mAdapter == null) {
+ return;
+ }
mAdapter.changeCursor(c);
if (mQueryCursor == null) {
diff --git a/src/com/android/music/TrackBrowserActivity.java b/src/com/android/music/TrackBrowserActivity.java
index 2ff760e..078b17c 100644
--- a/src/com/android/music/TrackBrowserActivity.java
+++ b/src/com/android/music/TrackBrowserActivity.java
@@ -297,7 +297,9 @@
private Handler mReScanHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
- getTrackCursor(mAdapter.getQueryHandler(), null, true);
+ if (mAdapter != null) {
+ getTrackCursor(mAdapter.getQueryHandler(), null, true);
+ }
// if the query results in a null cursor, onQueryComplete() will
// call init(), which will post a delayed message to this handler
// in order to try again.
@@ -319,6 +321,9 @@
public void init(Cursor newCursor) {
+ if (mAdapter == null) {
+ return;
+ }
mAdapter.changeCursor(newCursor); // also sets mTrackCursor
if (mTrackCursor == null) {