package me.devsaki.hentoid.dirpicker.observers;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import me.devsaki.hentoid.dirpicker.events.OpFailedEvent;
import me.devsaki.hentoid.dirpicker.events.UpdateDirTreeEvent;
import me.devsaki.hentoid.dirpicker.model.DirTree;
import me.devsaki.hentoid.util.LogHelper;
import rx.Observer;
/**
* Created by avluis on 06/12/2016.
* Make Directory Observer
*/
public class MakeDirObserver implements Observer<File> {
private static final String TAG = LogHelper.makeLogTag(MakeDirObserver.class);
private final DirTree dirTree;
private final EventBus bus;
private File newDir;
public MakeDirObserver(DirTree dirTree, EventBus bus) {
this.dirTree = dirTree;
this.bus = bus;
}
private boolean isNewDirInCurrentDir() {
if (newDir == null) {
return false;
}
File rootDir = dirTree.getRoot();
File parentDirOfNewDir = newDir.getParentFile();
return rootDir.getAbsolutePath().equals(parentDirOfNewDir.getAbsolutePath());
}
@Override
public void onCompleted() {
if (isNewDirInCurrentDir()) {
bus.post(new UpdateDirTreeEvent(dirTree.getRoot()));
}
LogHelper.d(TAG, "Make directory completed.");
}
@Override
public void onError(Throwable e) {
LogHelper.d(TAG, "onError: " + e.toString());
bus.post(new OpFailedEvent());
}
@Override
public void onNext(File file) {
newDir = file;
}
}