package com.darkrockstudios.apps.tminus.dataupdate;
import android.app.IntentService;
import android.content.Intent;
import android.util.Log;
import com.darkrockstudios.apps.tminus.experiences.agency.browse.dataupdate.AgencyUpdateTask;
import com.darkrockstudios.apps.tminus.experiences.agency.detail.dataupdate.AgencyDetailUpdateTask;
import com.darkrockstudios.apps.tminus.experiences.location.browse.dataupdate.LocationUpdateTask;
import com.darkrockstudios.apps.tminus.experiences.rocket.browse.dataupdate.RocketUpdateTask;
import com.darkrockstudios.apps.tminus.experiences.rocket.detail.dataupdate.RocketDetailUpdateTask;
/**
* Created by Adam on 10/23/13.
*/
public class DataUpdaterService extends IntentService
{
private static final String TAG = DataUpdaterService.class.getSimpleName();
public static final String EXTRA_UPDATE_TYPE = DataUpdaterService.class.getPackage() + ".UPDATE_TYPE";
public DataUpdaterService()
{
super( TAG );
}
@Override
protected void onHandleIntent( Intent intent )
{
final UpdateTask updateTask;
final String updateType = intent.getStringExtra( EXTRA_UPDATE_TYPE );
if( updateType != null )
{
if( updateType.equals( RocketUpdateTask.UPDATE_TYPE ) )
{
updateTask = new RocketUpdateTask( this );
}
else if( updateType.equals( LocationUpdateTask.UPDATE_TYPE ) )
{
updateTask = new LocationUpdateTask( this );
}
else if( updateType.equals( RocketDetailUpdateTask.UPDATE_TYPE ) )
{
updateTask = new RocketDetailUpdateTask( this, intent.getData() );
}
else if( updateType.equals( AgencyUpdateTask.UPDATE_TYPE ) )
{
updateTask = new AgencyUpdateTask( this );
}
else if( updateType.equals( AgencyDetailUpdateTask.UPDATE_TYPE ) )
{
updateTask = new AgencyDetailUpdateTask( this, intent.getData() );
}
else
{
updateTask = null;
}
if( updateTask != null )
{
updateTask.run();
}
else
{
Log.w( TAG, "No update task registered for: " + updateType );
}
}
else
{
Log.w( TAG, "No update task type specified." );
}
}
}