diff --git a/android/app/src/main/java/io/github/kichikuou/system3/Launcher.kt b/android/app/src/main/java/io/github/kichikuou/system3/Launcher.kt index 26b46b1..2085232 100644 --- a/android/app/src/main/java/io/github/kichikuou/system3/Launcher.kt +++ b/android/app/src/main/java/io/github/kichikuou/system3/Launcher.kt @@ -60,7 +60,7 @@ class Launcher private constructor(private val rootDir: File) { } } - data class Entry(val path: File, val title: String) + data class Entry(val path: File, val title: String, val timestamp: Long) val games = arrayListOf() val titles: List get() = games.map(Entry::title) @@ -109,6 +109,7 @@ class Launcher private constructor(private val rootDir: File) { private fun updateGameList() { var saveDirFound = false + games.clear() for (path in rootDir.listFiles()) { if (!path.isDirectory) continue @@ -117,13 +118,15 @@ class Launcher private constructor(private val rootDir: File) { continue } try { - val title = File(path, TITLE_FILE).readText() - games.add(Entry(path, title)) + val titleFile = File(path, TITLE_FILE) + val title = titleFile.readText() + games.add(Entry(path, title, titleFile.lastModified())) } catch (e: IOException) { // Incomplete game installation. Delete it. path.deleteRecursively() } } + games.sortByDescending(Entry::timestamp) if (!saveDirFound) { saveDir.mkdir() }