From 971da4b9d295a2fee82ef53fc2d7ec61e634c701 Mon Sep 17 00:00:00 2001 From: amazing-username Date: Sat, 9 Mar 2019 14:13:19 -0500 Subject: [PATCH] Improve the Mp3 song search functionality to search throughout the external storage device and excluding Notification, Android, and Notifications directories #29 --- .../com/example/mear/management/MusicFiles.kt | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/mear/management/MusicFiles.kt b/app/src/main/java/com/example/mear/management/MusicFiles.kt index a58f190..10583fa 100644 --- a/app/src/main/java/com/example/mear/management/MusicFiles.kt +++ b/app/src/main/java/com/example/mear/management/MusicFiles.kt @@ -3,8 +3,13 @@ package com.example.mear.management import java.io.File import java.lang.Exception +import com.example.mear.constants.DirectoryIgnore +import com.example.mear.constants.FileTypes + class MusicFiles (private val demoPath: File) { + fun demoSearch() { + } fun loadAllMusicPaths() { try { @@ -41,6 +46,53 @@ class MusicFiles (private val demoPath: File) { } + fun searchForMp3Songs() { + try { + var pathList: MutableList? = null + pathList = mutableListOf() + + var fileSearch = File(demoPath.absolutePath) + fileSearch.walkTopDown().forEach { + println(it.absolutePath) + if (!ignoreThisDirectory(it.absolutePath)) { + if (it.isFile) { + if (it.endsWith(FileTypes.Mp3)) { + pathList.add(it.absolutePath) + } + if (it.extension.toString().equals(FileTypes.Mp3)) { + pathList.add(it.absolutePath) + } + } + } + } + allSongs = pathList + } + catch (ex: Exception) { + val exMsg = ex.message + } + } + + private fun ignoreThisDirectory(path: String): Boolean { + var ignoreDirectory = false + try { + if (path.contains(DirectoryIgnore.Android_Root)) { + ignoreDirectory = true + } + if (path.contains(DirectoryIgnore.Notifications)) { + ignoreDirectory = true + } + if (path.contains(DirectoryIgnore.Ringtones)) { + ignoreDirectory = true + } + return ignoreDirectory + } + catch (ex: Exception) { + val exMsg = ex.message + } + return ignoreDirectory + } + var allSongs: MutableList?= null - val musicSongLimit = Int.MAX_VALUE + + private val musicSongLimit = Int.MAX_VALUE } \ No newline at end of file