From f5a78a8e38cf94a094c5d1ccb071547c6726ae71 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Wed, 20 May 2020 05:31:52 +0200 Subject: [PATCH] Improve default app choice Parsing it into a HashMap messed up the order. Now it is parsed into a Array. --- .../java/com/finnmglas/launcher/Functions.kt | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/Functions.kt b/app/src/main/java/com/finnmglas/launcher/Functions.kt index f7d9780..278aa29 100644 --- a/app/src/main/java/com/finnmglas/launcher/Functions.kt +++ b/app/src/main/java/com/finnmglas/launcher/Functions.kt @@ -12,20 +12,6 @@ import android.os.Bundle import android.provider.Settings import android.widget.Toast -/** Parsing functions */ - -// Related question: https://stackoverflow.com/q/3013655/12787264 -fun parseStringMap(stringArrayResourceId: Int, context: Context): HashMap? { - val stringArray: Array = - context.resources.getStringArray(stringArrayResourceId) - val outputArray = HashMap(stringArray.size) - for (entry in stringArray) { - val splitResult = entry.split("|").toTypedArray() - outputArray.put(splitResult[0], splitResult[1]) - } - return outputArray -} - /** Activity related */ fun isInstalled(uri: String, context: Context): Boolean { @@ -150,7 +136,14 @@ fun pickDefaultApp(action: String, context: Context) : Pair{ else -> return Pair(context.getString(R.string.none_found), "") // just prevent crashing on unknown input } - val defaultAppsMap = parseStringMap(arrayResource, context) - for (item in defaultAppsMap!!) if (isInstalled(item.key, context)) return Pair(item.value, item.key) + // Related question: https://stackoverflow.com/q/3013655/12787264 (Adjusted) + val list = context.resources.getStringArray(arrayResource) + for (entry in list!!){ + val splitResult = entry.split("|").toTypedArray() + val pkgname = splitResult[0] + val name = splitResult[1] + + if (isInstalled(pkgname, context)) return Pair(name, pkgname) + } return Pair(context.getString(R.string.none_found), "") }