package com.aditya.filebrowser.fileoperations; import com.aditya.filebrowser.Constants; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; import java.util.List; import java.util.Set; /** * Created by Aditya on 4/17/2017. */ public class FileNavigator { private static FileNavigator mNavigator; private File mCurrentNode = Constants.internalStorageRoot; private File mRootNode = Constants.internalStorageRoot; private Set<String> mAllowedFileExtensionFilter; public static FileNavigator getInstance() { if(mNavigator==null) { mNavigator = new FileNavigator(); } return mNavigator; } public File [] getFilesInCurrentDirectory() { if(mAllowedFileExtensionFilter!=null) { FilenameFilter fileNameFilter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { File absolutePath = new File(dir, name); if (absolutePath.isDirectory()) { return true; } String fileExtension = FilenameUtils.getExtension(name); if(mAllowedFileExtensionFilter.contains(fileExtension)) { return true; } return false; } }; return mCurrentNode.listFiles(fileNameFilter); } return mCurrentNode.listFiles(); } private FileNavigator() { } public File getmCurrentNode() { return mCurrentNode; } public void setmCurrentNode(File mCurrentNode) { if(mCurrentNode!=null) this.mCurrentNode = mCurrentNode; } public void setAllowedFileExtensionFilter(Set<String> allowedFileExtensions) { this.mAllowedFileExtensionFilter = allowedFileExtensions; } public File getmRootNode() { return mRootNode; } }