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.database.tables.RocketDetail;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.Dao;
import java.sql.SQLException;
/**
* Created by adam on 7/21/13.
* Dark Rock Studios
* darkrockstudios.com
*/
public class RocketDetailLoader extends AsyncTask<Integer, Void, RocketDetail>
{
private static final String TAG = RocketDetailLoader.class.getSimpleName();
private Context m_context;
private RocketDetailLoader.Listener m_listener;
private int m_rocketId;
public RocketDetailLoader( Context context, RocketDetailLoader.Listener listener )
{
m_context = context;
m_listener = listener;
}
@Override
protected RocketDetail doInBackground( Integer[] ids )
{
RocketDetail rocketDetail = null;
m_rocketId = ids[ 0 ];
if( m_context != null )
{
final DatabaseHelper databaseHelper = OpenHelperManager.getHelper( m_context, DatabaseHelper.class );
if( databaseHelper != null )
{
try
{
Dao<RocketDetail, Integer> rocketDetailDao = databaseHelper.getDao( RocketDetail.class );
rocketDetail = rocketDetailDao.queryForId( m_rocketId );
}
catch( SQLException e )
{
e.printStackTrace();
}
OpenHelperManager.releaseHelper();
}
}
return rocketDetail;
}
@Override
protected void onPostExecute( RocketDetail result )
{
if( result != null )
{
Log.d( TAG, "RocketDetail loaded." );
m_listener.rocketDetailLoaded( result );
}
else
{
m_listener.rocketDetailMissing( m_rocketId );
}
}
public static interface Listener
{
public void rocketDetailLoaded( RocketDetail rocketDetail );
public void rocketDetailMissing( int rocketId );
}
}