package me.devsaki.hentoid.dirpicker.observers; import org.greenrobot.eventbus.EventBus; import java.io.File; import me.devsaki.hentoid.dirpicker.events.DataSetChangedEvent; import me.devsaki.hentoid.dirpicker.events.OpFailedEvent; import me.devsaki.hentoid.dirpicker.model.DirTree; import me.devsaki.hentoid.util.LogHelper; import rx.Observer; /** * Created by avluis on 06/12/2016. * List Directory Observer */ public class ListDirObserver implements Observer<File> { private static final String TAG = LogHelper.makeLogTag(ListDirObserver.class); private final DirTree dirTree; private final EventBus bus; public ListDirObserver(DirTree dirTree, EventBus bus) { this.dirTree = dirTree; this.bus = bus; dirTree.dirList.clear(); } @Override public void onCompleted() { dirTree.dirList.sort(); if (dirTree.getParent() != null) { dirTree.dirList.add(0, dirTree.getParent()); } bus.post(new DataSetChangedEvent()); LogHelper.d(TAG, "Update directory list completed."); } @Override public void onError(Throwable e) { LogHelper.d(TAG, "onError: " + e.toString()); bus.post(new OpFailedEvent()); } @Override public void onNext(File file) { dirTree.dirList.add(file); } }