Vedroid36
3/18/2014 - 1:17 PM

gistfile1.java

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) {

    }

}