package com.alexvasilkov.android.commons.tasks;
import android.os.Bundle;
import com.azcltd.fluffyevents.EventsBus;
@Deprecated
public abstract class EventsTask extends BackgroundTask<Void> {
private boolean mIsLoading;
private boolean mIsLoaded;
public EventsTask() {
super(null);
}
protected abstract int getLoadingEventId();
protected abstract int getLoadedEventId();
protected Bundle getLoadedEventBundle() {
return null;
}
@Override
public void exec() {
if (mIsLoading) return;
if (isTaskLoaded()) {
EventsBus.send(getLoadedEventId());
} else {
mIsLoading = true;
EventsBus.sendSticky(getLoadingEventId());
super.exec();
}
}
protected boolean isTaskLoaded() {
return mIsLoaded;
}
@Override
protected void onTaskSuccess(Void parent) {
super.onTaskSuccess(parent);
mIsLoaded = true;
}
@Override
protected void onTaskEnded(Void parent) {
super.onTaskEnded(parent);
EventsBus.removeSticky(getLoadingEventId());
mIsLoading = false;
if (isTaskLoaded()) EventsBus.send(getLoadedEventId(), getLoadedEventBundle());
}
}