package com.darkrockstudios.apps.tminus.loaders; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import com.darkrockstudios.apps.tminus.database.DatabaseHelper; import com.darkrockstudios.apps.tminus.launchlibrary.Launch; import com.j256.ormlite.android.apptools.OpenHelperManager; import com.j256.ormlite.dao.Dao; import java.sql.SQLException; /** * Created by adam on 7/8/13. */ public class LaunchLoader extends AsyncTask<Integer, Void, Launch> { public static interface Listener { public void launchLoaded( Launch launch ); } private static final String TAG = LaunchLoader.class.getSimpleName(); private Context m_context; private LaunchLoader.Listener m_listener; public LaunchLoader( final Context context, final LaunchLoader.Listener listener ) { m_context = context; m_listener = listener; } @Override protected Launch doInBackground( final Integer... ids ) { Launch launch = null; if( m_context != null ) { final DatabaseHelper databaseHelper = OpenHelperManager.getHelper( m_context, DatabaseHelper.class ); if( databaseHelper != null ) { try { Dao<Launch, Integer> launchDao = databaseHelper.getDao( Launch.class ); launch = launchDao.queryForId( ids[ 0 ] ); } catch( final SQLException e ) { e.printStackTrace(); } OpenHelperManager.releaseHelper(); } } return launch; } @Override protected void onPostExecute( final Launch result ) { Log.d( TAG, "Launch details loaded." ); m_listener.launchLoaded( result ); } }