Don't crash when song selector content changes

Run requery code on the main thread
This commit is contained in:
Christopher Eby 2010-05-08 16:16:55 -05:00
parent 56d8b31f7f
commit daafda3c75

View File

@ -28,6 +28,7 @@ import android.database.ContentObserver;
import android.graphics.Color;
import android.graphics.drawable.PaintDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
@ -417,7 +418,8 @@ public class SongSelector extends PlaybackActivity implements AdapterView.OnItem
setupView(R.id.song_list, new SongMediaAdapter(this));
ContentResolver resolver = getContentResolver();
resolver.registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, mObserver);
Observer observer = new Observer(mHandler);
resolver.registerContentObserver(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, true, observer);
break;
default:
return false;
@ -426,12 +428,22 @@ public class SongSelector extends PlaybackActivity implements AdapterView.OnItem
return true;
}
private ContentObserver mObserver = new ContentObserver(mHandler) {
private class Observer extends ContentObserver {
public Observer(Handler handler)
{
super(handler);
}
@Override
public void onChange(boolean selfChange)
{
for (int i = 0; i != 3; ++i)
getAdapter(i).requery();
runOnUiThread(new Runnable() {
public void run()
{
for (int i = 0; i != 3; ++i)
getAdapter(i).requery();
}
});
}
};