package com.turhanoz.android.reactivedirectorychooser.observer; import android.util.Log; import com.turhanoz.android.reactivedirectorychooser.event.OperationFailedEvent; import com.turhanoz.android.reactivedirectorychooser.event.UpdateDirectoryTreeEvent; import com.turhanoz.android.reactivedirectorychooser.model.DirectoryTree; import java.io.File; import de.greenrobot.event.EventBus; import rx.Observer; public class MakeDirectoryObserver implements Observer<File> { DirectoryTree dataSet; EventBus bus; File createdDirectory; public MakeDirectoryObserver(DirectoryTree dataSet, EventBus bus) { this.dataSet = dataSet; this.bus = bus; } @Override public void onCompleted() { if(isCreatedDirectoryInCurrentRootDirectory()){ bus.post(new UpdateDirectoryTreeEvent(dataSet.getRoot())); } Log.d("TAG", "onCompleted MakeDirectoryObserver"); } private boolean isCreatedDirectoryInCurrentRootDirectory(){ if(createdDirectory == null){ return false; } File rootDirectory = dataSet.getRoot(); File parentDirectoryOfCreatedDirectory = createdDirectory.getParentFile(); return rootDirectory.getAbsolutePath().equals(parentDirectoryOfCreatedDirectory.getAbsolutePath()); } @Override public void onError(Throwable e) { Log.d("TAG", "onError : " + e.toString()); bus.post(new OperationFailedEvent()); } @Override public void onNext(File file) { createdDirectory = file; } }