package com.ideabag.playtunes.adapter; import com.ideabag.playtunes.database.MediaQuery; import com.ideabag.playtunes.database.MediaQuery.OnQueryCompletedListener; import android.content.Context; import android.database.Cursor; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; public class AsyncQueryAdapter extends BaseAdapter implements MediaQuery.OnQueryCompletedListener { protected Context mContext; protected Cursor mCursor = null; protected MediaQuery mQuery = null; protected MediaQuery.OnQueryCompletedListener mListener = null; public AsyncQueryAdapter( Context context ) { mContext = context; } public MediaQuery getQuery() { return mQuery; } public void setOnQueryCompletedListener( OnQueryCompletedListener listener ) { mListener = listener; } protected void setMediaQuery( MediaQuery query ) { mQuery = query; requery(); } // // // public void requery() { MediaQuery.executeAsync( mContext, mQuery, this ); } @Override public void onQueryCompleted( MediaQuery mQuery, Cursor mResult ) { if ( null != mCursor && !mCursor.isClosed() ) { mCursor.close(); } mCursor = mResult; notifyDataSetChanged(); if ( null != mListener ) { try { mListener.onQueryCompleted( mQuery, mResult ); } catch( Exception e) { } } } @Override public int getCount() { return ( null != mCursor && !mCursor.isClosed() ? mCursor.getCount() : 0 ); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { return null; } }