@@ -57,7 +57,9 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
5757
5858 private val TYPE_FILE_DIR = 1
5959 private val TYPE_SECTION = 2
60+ private lateinit var fileDrawable: Drawable
6061 private lateinit var folderDrawable: Drawable
62+ private var fileDrawables = HashMap <String , Drawable >()
6163 private var currentItemsHash = listItems.hashCode()
6264 private var textToHighlight = " "
6365 private val hasOTGConnected = activity.hasOTGConnected()
@@ -151,11 +153,6 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
151153
152154 private fun getItemWithKey (key : Int ): FileDirItem ? = listItems.firstOrNull { it.path.hashCode() == key }
153155
154- fun initDrawables () {
155- folderDrawable = activity.resources.getColoredDrawableWithColor(R .drawable.ic_folder_vector, textColor)
156- folderDrawable.alpha = 180
157- }
158-
159156 private fun isOneFileSelected () = isOneItemSelected() && getItemWithKey(selectedKeys.first())?.isDirectory == false
160157
161158 private fun checkHideBtnVisibility (menu : Menu ) {
@@ -707,10 +704,11 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
707704 item_date.beVisible()
708705 item_date.text = listItem.modified.formatDate(activity)
709706
707+ val drawable = fileDrawables.getOrElse(fileName.substringAfterLast(" ." ).toLowerCase(), { fileDrawable })
710708 val options = RequestOptions ()
711709 .signature(listItem.mPath.getFileSignature())
712710 .diskCacheStrategy(DiskCacheStrategy .RESOURCE )
713- .error(getFileIcon(fileName.substringAfterLast( " . " ).toLowerCase()) )
711+ .error(drawable )
714712 .centerCrop()
715713
716714 val itemToLoad = getImagePathToLoad(listItem.path)
@@ -751,47 +749,53 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
751749 return itemToLoad
752750 }
753751
754- private fun getFileIcon (extension : String ): Drawable {
755- val id = when (extension) {
756- " aep" -> R .drawable.ic_file_aep
757- " ai" -> R .drawable.ic_file_ai
758- " avi" -> R .drawable.ic_file_avi
759- " css" -> R .drawable.ic_file_css
760- " csv" -> R .drawable.ic_file_csv
761- " dbf" -> R .drawable.ic_file_dbf
762- " doc" , " docx" -> R .drawable.ic_file_doc
763- " dwg" -> R .drawable.ic_file_dwg
764- " exe" -> R .drawable.ic_file_exe
765- " fla" -> R .drawable.ic_file_fla
766- " flv" -> R .drawable.ic_file_flv
767- " htm" , " html" -> R .drawable.ic_file_html
768- " ics" -> R .drawable.ic_file_ics
769- " indd" -> R .drawable.ic_file_indd
770- " iso" -> R .drawable.ic_file_iso
771- " jpg" , " jpeg" -> R .drawable.ic_file_jpg
772- " js" -> R .drawable.ic_file_js
773- " json" -> R .drawable.ic_file_json
774- " m4a" -> R .drawable.ic_file_m4a
775- " mp3" -> R .drawable.ic_file_mp3
776- " mp4" -> R .drawable.ic_file_mp4
777- " ogg" -> R .drawable.ic_file_ogg
778- " pdf" -> R .drawable.ic_file_pdf
779- " plproj" -> R .drawable.ic_file_plproj
780- " prproj" -> R .drawable.ic_file_prproj
781- " psd" -> R .drawable.ic_file_psd
782- " rtf" -> R .drawable.ic_file_rtf
783- " sesx" -> R .drawable.ic_file_sesx
784- " svg" -> R .drawable.ic_file_svg
785- " txt" -> R .drawable.ic_file_txt
786- " vcf" -> R .drawable.ic_file_vcf
787- " wav" -> R .drawable.ic_file_wav
788- " wmv" -> R .drawable.ic_file_wmv
789- " xls" -> R .drawable.ic_file_xls
790- " xml" -> R .drawable.ic_file_xml
791- " zip" -> R .drawable.ic_file_zip
792- else -> R .drawable.ic_file_generic
793- }
794-
795- return resources.getDrawable(id)
752+ fun initDrawables () {
753+ folderDrawable = resources.getColoredDrawableWithColor(R .drawable.ic_folder_vector, textColor)
754+ folderDrawable.alpha = 180
755+ fileDrawable = resources.getDrawable(R .drawable.ic_file_generic)
756+
757+ hashMapOf<String , Int >().apply {
758+ put(" aep" , R .drawable.ic_file_aep)
759+ put(" ai" , R .drawable.ic_file_ai)
760+ put(" avi" , R .drawable.ic_file_avi)
761+ put(" css" , R .drawable.ic_file_css)
762+ put(" csv" , R .drawable.ic_file_csv)
763+ put(" dbf" , R .drawable.ic_file_dbf)
764+ put(" doc" , R .drawable.ic_file_doc)
765+ put(" docx" , R .drawable.ic_file_doc)
766+ put(" dwg" , R .drawable.ic_file_dwg)
767+ put(" exe" , R .drawable.ic_file_exe)
768+ put(" fla" , R .drawable.ic_file_fla)
769+ put(" flv" , R .drawable.ic_file_flv)
770+ put(" htm" , R .drawable.ic_file_html)
771+ put(" html" , R .drawable.ic_file_html)
772+ put(" ics" , R .drawable.ic_file_ics)
773+ put(" indd" , R .drawable.ic_file_indd)
774+ put(" iso" , R .drawable.ic_file_iso)
775+ put(" jpg" , R .drawable.ic_file_jpg)
776+ put(" jpeg" , R .drawable.ic_file_jpg)
777+ put(" js" , R .drawable.ic_file_js)
778+ put(" json" , R .drawable.ic_file_json)
779+ put(" m4a" , R .drawable.ic_file_m4a)
780+ put(" mp3" , R .drawable.ic_file_mp3)
781+ put(" mp4" , R .drawable.ic_file_mp4)
782+ put(" ogg" , R .drawable.ic_file_ogg)
783+ put(" pdf" , R .drawable.ic_file_pdf)
784+ put(" plproj" , R .drawable.ic_file_plproj)
785+ put(" prproj" , R .drawable.ic_file_prproj)
786+ put(" psd" , R .drawable.ic_file_psd)
787+ put(" rtf" , R .drawable.ic_file_rtf)
788+ put(" sesx" , R .drawable.ic_file_sesx)
789+ put(" svg" , R .drawable.ic_file_svg)
790+ put(" txt" , R .drawable.ic_file_txt)
791+ put(" vcf" , R .drawable.ic_file_vcf)
792+ put(" wav" , R .drawable.ic_file_wav)
793+ put(" wmv" , R .drawable.ic_file_wmv)
794+ put(" xls" , R .drawable.ic_file_xls)
795+ put(" xml" , R .drawable.ic_file_xml)
796+ put(" zip" , R .drawable.ic_file_zip)
797+ }.forEach { (key, value) ->
798+ fileDrawables.put(key, resources.getDrawable(value))
799+ }
796800 }
797801}
0 commit comments