OSDN Git Service

Fix some issues with threads/handlers accessing the adapter for the 'old' activity...
authorMarco Nelissen <marcone@google.com>
Tue, 1 Sep 2009 20:22:19 +0000 (13:22 -0700)
committerMarco Nelissen <marcone@google.com>
Tue, 1 Sep 2009 20:22:19 +0000 (13:22 -0700)
src/com/android/music/AlbumBrowserActivity.java
src/com/android/music/ArtistAlbumBrowserActivity.java
src/com/android/music/PlaylistBrowserActivity.java
src/com/android/music/QueryBrowserActivity.java
src/com/android/music/TrackBrowserActivity.java

index 4178021..414947a 100644 (file)
@@ -194,7 +194,9 @@ public class AlbumBrowserActivity extends ListActivity
     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 class AlbumBrowserActivity extends ListActivity
 
     public void init(Cursor c) {
 
+        if (mAdapter == null) {
+            return;
+        }
         mAdapter.changeCursor(c); // also sets mAlbumCursor
 
         if (mAlbumCursor == null) {
index 13a2387..9aa42b4 100644 (file)
@@ -202,7 +202,9 @@ public class ArtistAlbumBrowserActivity extends ExpandableListActivity
     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 class ArtistAlbumBrowserActivity extends ExpandableListActivity
     
     public void init(Cursor c) {
 
+        if (mAdapter == null) {
+            return;
+        }
         mAdapter.changeCursor(c); // also sets mArtistCursor
 
         if (mArtistCursor == null) {
index fb3302d..ccdb529 100644 (file)
@@ -204,12 +204,18 @@ public class PlaylistBrowserActivity extends ListActivity
     };
     
     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 @@ public class PlaylistBrowserActivity extends ListActivity
             case SCAN_DONE:
                 if (resultCode == RESULT_CANCELED) {
                     finish();
-                } else {
+                } else if (mAdapter != null) {
                     getPlaylistCursor(mAdapter.getQueryHandler(), null);
                 }
                 break;
index cf608a2..14d4952 100644 (file)
@@ -227,7 +227,9 @@ implements MusicUtils.Defs, ServiceConnection
     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 @@ implements MusicUtils.Defs, ServiceConnection
     }
     
     public void init(Cursor c) {
-        
+
+        if (mAdapter == null) {
+            return;
+        }
         mAdapter.changeCursor(c);
 
         if (mQueryCursor == null) {
index 2ff760e..078b17c 100644 (file)
@@ -297,7 +297,9 @@ public class TrackBrowserActivity extends ListActivity
     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 class TrackBrowserActivity extends ListActivity
     
     public void init(Cursor newCursor) {
 
+        if (mAdapter == null) {
+            return;
+        }
         mAdapter.changeCursor(newCursor); // also sets mTrackCursor
         
         if (mTrackCursor == null) {