package im.actor.sdk.controllers.pickers.file.util; import android.os.Environment; import im.actor.sdk.controllers.pickers.file.items.ExplorerItem; import im.actor.sdk.controllers.pickers.file.items.FileItem; import im.actor.sdk.controllers.pickers.file.items.FolderItem; import im.actor.sdk.controllers.pickers.file.items.PictureItem; import java.io.File; import im.actor.sdk.R; public class Converter { public static FileItem getFileItem(File file, boolean selected) { if (!file.exists()) { return null; } String fileName = file.getName(); String fileType = ""; String[] fileNameSplit = fileName.split("\\."); if (fileNameSplit.length > 1) { fileType = fileNameSplit[fileNameSplit.length - 1]; } else { return new FileItem(file, selected, "?", R.drawable.picker_unknown); } int imageId = 0;// R.drawable.file; switch (FileTypes.getType(fileType)) { case FileTypes.TYPE_PICTURE: return new PictureItem(file, selected, fileType); case FileTypes.TYPE_MUSIC: imageId = R.drawable.picker_music; break; case FileTypes.TYPE_DOC: imageId = R.drawable.picker_doc; break; case FileTypes.TYPE_PDF: imageId = R.drawable.picker_pdf; break; case FileTypes.TYPE_RAR: imageId = R.drawable.picker_rar; break; case FileTypes.TYPE_APK: imageId = R.drawable.picker_apk; break; case FileTypes.TYPE_VIDEO: imageId = R.drawable.picker_video; break; case FileTypes.TYPE_CSV: imageId = R.drawable.picker_csv; break; case FileTypes.TYPE_HTM: imageId = R.drawable.picker_htm; break; case FileTypes.TYPE_HTML: imageId = R.drawable.picker_html; break; case FileTypes.TYPE_PPT: imageId = R.drawable.picker_ppt; break; case FileTypes.TYPE_XLS: imageId = R.drawable.picker_xls; break; case FileTypes.TYPE_ZIP: imageId = R.drawable.picker_zip; break; } return new FileItem(file, selected, fileType, imageId); } public static FolderItem getFolderItem(File file) { int imageId = R.drawable.picker_folder; if (file.list() == null || file.getName().toCharArray()[0] == '.') { return null; /*if (file.getName().toCharArray()[0] == '.') { // imageId = R.drawable.folder_locked; return null; } else return new FolderItem(file, R.drawable.picker_system_folder, true);*/ } else if (file.list().length == 0) { // return new FolderItem(file, R.drawable.picker_folder, true);// picker_folder_empty } String folderPath = file.getPath(); if (folderPath.equals(Environment.getExternalStorageDirectory().getPath())) { // return new ExternalStorageItem("External memory"); // imageId = R.drawable.folder_external; } else if (folderPath.contains(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath())) { imageId = R.drawable.picker_folder_music; } else if (folderPath.contains(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath())) { imageId = R.drawable.picker_folder_pictures; } else if (folderPath.contains(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath())) { imageId = R.drawable.picker_folder_download; } else //if (Build.VERSION.SDK_INT >= 19 && folderPath.equals(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getPath())) { // imageId = R.drawable.folder_docs; //} else if (folderPath.contains(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath())) { imageId = R.drawable.picker_folder_video; } else if (folderPath.contains(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath())) { imageId = R.drawable.picker_folder_camera; } else { folderPath = folderPath.toLowerCase(); if (folderPath.contains("music")) { imageId = R.drawable.picker_folder_music; } else if (folderPath.contains("picture") || folderPath.contains("image") || folderPath.contains("photo")) { imageId = R.drawable.picker_folder_pictures; } else if (folderPath.contains("download")) { imageId = R.drawable.picker_folder_download; } else if (folderPath.contains("doc")) { // todo imageId = R.drawable.folder_docs; } else if (folderPath.contains("movie") || folderPath.contains("video")) { imageId = R.drawable.picker_folder_video; } } return new FolderItem(file, imageId); } public static ExplorerItem getItem(File file, boolean selected) { return file.isDirectory() ? getFolderItem(file) : getFileItem(file, selected); } }