package com.applikey.babybook.database;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import com.applikey.babybook.data.model.AlbumModel;
import com.applikey.babybook.loaders.BaseLoader;
import com.applikey.babybook.loaders.UpdateAlbumsDBTableLoader;
import com.applikey.babybook.utils.Lo;
import java.util.ArrayList;
/**
* Created by alex on 1/20/14.
*/
public class Update implements LoaderManager.LoaderCallbacks{
private final Lo lo = new Lo(Update.this);
private ArrayList<AlbumModel> albumsList = new ArrayList<AlbumModel>();
private FragmentActivity activity;
private UpdateListener updateListener = null;
private Integer deletedId;
public static interface UpdateListener {
void startUpdate ();
void stopUpdate ();
}
public Update(FragmentActivity activity) {
this.activity = activity;
}
public void setListener (UpdateListener updateListener) {
this.updateListener = updateListener;
}
public void onAlbumsChanged(ArrayList<AlbumModel> albums, Integer deletedAlbumId) {
lo.g("onAlbumsChanged, is DELETED: " + deletedAlbumId);
this.albumsList = albums;
this.deletedId = deletedAlbumId;
BaseLoader.restartTaskLoader(activity, Update.this, UpdateAlbumsDBTableLoader.class.getName());
}
@Override
public Loader onCreateLoader(int i, Bundle bundle) {
Loader loader = null;
if (updateListener != null) {
updateListener.startUpdate();
}
if (bundle.getString(BaseLoader.ARG_TASK_NAME).equals(UpdateAlbumsDBTableLoader.class.getName())) {
loader = new UpdateAlbumsDBTableLoader(activity, albumsList, deletedId);
}
return loader;
}
@Override
public void onLoadFinished(Loader loader, Object o) {
if (updateListener != null) {
updateListener.stopUpdate();
}
}
@Override
public void onLoaderReset(Loader loader) {
}
}