refactor lister
This commit is contained in:
parent
9d724496c0
commit
be15a90b82
7 changed files with 54 additions and 48 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -13,3 +13,4 @@
|
||||||
.externalNativeBuild
|
.externalNativeBuild
|
||||||
.cxx
|
.cxx
|
||||||
local.properties
|
local.properties
|
||||||
|
/.idea/runConfigurations.xml
|
||||||
|
|
|
@ -7,7 +7,7 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class DocumentLister : Lister() {
|
class DocumentLister : Lister {
|
||||||
companion object {
|
companion object {
|
||||||
val instance by lazy { DocumentLister() }
|
val instance by lazy { DocumentLister() }
|
||||||
val directories = listOf("Documents", "Download")
|
val directories = listOf("Documents", "Download")
|
||||||
|
@ -31,7 +31,7 @@ class DocumentLister : Lister() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dateOrderedList(): List<String> {
|
override fun dateOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.lastModifiedTime }
|
wrappedFileList.sortBy { it.lastModifiedTime }
|
||||||
|
@ -40,7 +40,7 @@ class DocumentLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sizeOrderedList(): List<String> {
|
override fun sizeOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.size }
|
wrappedFileList.sortBy { it.size }
|
||||||
|
@ -49,7 +49,7 @@ class DocumentLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFullSize(): ULong {
|
override fun getFullSize(): ULong {
|
||||||
var size = 0UL
|
var size = 0UL
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
documentList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
|
@ -7,14 +7,14 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class ImageLister private constructor() : Lister() {
|
class ImageLister private constructor() : Lister {
|
||||||
companion object {
|
companion object {
|
||||||
val instance by lazy { ImageLister() }
|
val instance by lazy { ImageLister() }
|
||||||
val directories = listOf("DCIM", "Pictures", "Download")
|
val directories = listOf("DCIM", "Pictures", "Download")
|
||||||
val regex = "\\.(jpg|png|jpeg|webp)".toRegex()
|
val regex = "\\.(jpg|png|jpeg|webp)$".toRegex()
|
||||||
}
|
}
|
||||||
|
|
||||||
val imageList = mutableListOf<String>()
|
private val imageList = mutableListOf<String>()
|
||||||
|
|
||||||
fun initialize(onFinished: (() -> Unit)? = null) {
|
fun initialize(onFinished: (() -> Unit)? = null) {
|
||||||
imageList.clear()
|
imageList.clear()
|
||||||
|
@ -31,7 +31,7 @@ class ImageLister private constructor() : Lister() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dateOrderedList(): List<String> {
|
override fun dateOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.lastModifiedTime }
|
wrappedFileList.sortBy { it.lastModifiedTime }
|
||||||
|
@ -40,7 +40,7 @@ class ImageLister private constructor() : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sizeOrderedList(): List<String> {
|
override fun sizeOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.size }
|
wrappedFileList.sortBy { it.size }
|
||||||
|
@ -49,7 +49,7 @@ class ImageLister private constructor() : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFullSize(): ULong {
|
override fun getFullSize(): ULong {
|
||||||
var size = 0UL
|
var size = 0UL
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
imageList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
|
|
|
@ -1,4 +1,34 @@
|
||||||
package com.example.myapplication.fileSystem.byTypeFileLister
|
package com.example.myapplication.fileSystem.byTypeFileLister
|
||||||
|
|
||||||
abstract class Lister {
|
import java.io.File
|
||||||
}
|
|
||||||
|
interface Lister {
|
||||||
|
fun dateOrderedList(): List<String>
|
||||||
|
|
||||||
|
fun sizeOrderedList(): List<String>
|
||||||
|
|
||||||
|
fun getFullSize(): ULong
|
||||||
|
|
||||||
|
fun walkDir(
|
||||||
|
directory: File,
|
||||||
|
list: MutableList<String>,
|
||||||
|
pattern: Regex,
|
||||||
|
ignoreDotFile: Boolean = true
|
||||||
|
) {
|
||||||
|
if (!directory.exists() || !directory.isDirectory) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
directory.listFiles()?.forEach {
|
||||||
|
if (ignoreDotFile && !it.name.startsWith(".")) {
|
||||||
|
if (it.isDirectory) {
|
||||||
|
walkDir(it, list, pattern)
|
||||||
|
} else if (it.isFile) {
|
||||||
|
if (it.name.contains(pattern)) {
|
||||||
|
list.add(it.path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -7,15 +7,15 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class MusicLister : Lister() {
|
class MusicLister : Lister {
|
||||||
companion object {
|
companion object {
|
||||||
val instance by lazy { MusicLister() }
|
val instance by lazy { MusicLister() }
|
||||||
val directories =
|
val directories =
|
||||||
listOf("Recordings", "Download", "Audiobooks", "Music", "Podcasts", "Ringtones")
|
listOf("Recordings", "Download", "Audiobooks", "Music", "Podcasts", "Ringtones")
|
||||||
val regex = "\\.(mp3|ogg|aac|wav)".toRegex()
|
val regex = "\\.(mp3|ogg|aac|wav)$".toRegex()
|
||||||
}
|
}
|
||||||
|
|
||||||
val musicList = mutableListOf<String>()
|
private val musicList = mutableListOf<String>()
|
||||||
|
|
||||||
fun initialize(onFinished: (() -> Unit)? = null) {
|
fun initialize(onFinished: (() -> Unit)? = null) {
|
||||||
musicList.clear()
|
musicList.clear()
|
||||||
|
@ -32,7 +32,7 @@ class MusicLister : Lister() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dateOrderedList(): List<String> {
|
override fun dateOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.lastModifiedTime }
|
wrappedFileList.sortBy { it.lastModifiedTime }
|
||||||
|
@ -41,7 +41,7 @@ class MusicLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sizeOrderedList(): List<String> {
|
override fun sizeOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.size }
|
wrappedFileList.sortBy { it.size }
|
||||||
|
@ -50,7 +50,7 @@ class MusicLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFullSize(): ULong {
|
override fun getFullSize(): ULong {
|
||||||
var size = 0UL
|
var size = 0UL
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
musicList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
|
|
|
@ -7,11 +7,11 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class VideoLister : Lister() {
|
class VideoLister : Lister {
|
||||||
companion object {
|
companion object {
|
||||||
val instance by lazy { VideoLister() }
|
val instance by lazy { VideoLister() }
|
||||||
val directories = listOf("DCIM", "Download", "Movies")
|
val directories = listOf("DCIM", "Download", "Movies")
|
||||||
val regex = "\\.(mp4|avi|video|webm)".toRegex()
|
val regex = "\\.(mp4|avi|video|webm)$".toRegex()
|
||||||
}
|
}
|
||||||
|
|
||||||
val videoList = mutableListOf<String>()
|
val videoList = mutableListOf<String>()
|
||||||
|
@ -31,7 +31,7 @@ class VideoLister : Lister() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dateOrderedList(): List<String> {
|
override fun dateOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.lastModifiedTime }
|
wrappedFileList.sortBy { it.lastModifiedTime }
|
||||||
|
@ -40,7 +40,7 @@ class VideoLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sizeOrderedList(): List<String> {
|
override fun sizeOrderedList(): List<String> {
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
wrappedFileList.sortBy { it.size }
|
wrappedFileList.sortBy { it.size }
|
||||||
|
@ -49,7 +49,7 @@ class VideoLister : Lister() {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFullSize(): ULong {
|
override fun getFullSize(): ULong {
|
||||||
var size = 0UL
|
var size = 0UL
|
||||||
val wrappedFileList = mutableListOf<WrappedFile>()
|
val wrappedFileList = mutableListOf<WrappedFile>()
|
||||||
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
videoList.forEach { wrappedFileList.add(WrappedFile(File(it))) }
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package com.example.myapplication.fileSystem.byTypeFileLister
|
|
||||||
|
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
fun Lister.walkDir(
|
|
||||||
directory: File,
|
|
||||||
list: MutableList<String>,
|
|
||||||
pattern: Regex,
|
|
||||||
ignoreDotFile: Boolean = true
|
|
||||||
) {
|
|
||||||
if (!directory.exists() || !directory.isDirectory) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
directory.listFiles()?.forEach {
|
|
||||||
if (ignoreDotFile && !it.name.startsWith(".")) {
|
|
||||||
if (it.isDirectory) {
|
|
||||||
walkDir(it, list, pattern)
|
|
||||||
} else if (it.isFile) {
|
|
||||||
if (it.name.contains(pattern)) {
|
|
||||||
list.add(it.path)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in a new issue