From f46c1a278c5b0e1ac428dd06cc3e24be7e3343d9 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Wed, 24 Jun 2020 08:51:29 +0200 Subject: [PATCH] Improve default apps choice algorithm - Add new apps (TikTok, Brave browser, Tor browser, S Memo, etc...) - By default, choose the apps list and settings - Now have browsers on down-swipe --- .../java/com/finnmglas/launcher/Functions.kt | 84 +++++++++---------- app/src/main/res/values/defaults.xml | 70 ++++++++++++++++ app/src/main/res/values/strings.xml | 43 ---------- 3 files changed, 108 insertions(+), 89 deletions(-) create mode 100644 app/src/main/res/values/defaults.xml diff --git a/app/src/main/java/com/finnmglas/launcher/Functions.kt b/app/src/main/java/com/finnmglas/launcher/Functions.kt index 4e934c4..f372ec2 100644 --- a/app/src/main/java/com/finnmglas/launcher/Functions.kt +++ b/app/src/main/java/com/finnmglas/launcher/Functions.kt @@ -132,6 +132,8 @@ fun View.fadeRotateOut(duration: Long = 500L) { /* Activity related */ fun isInstalled(uri: String, context: Context): Boolean { + if (uri.startsWith("launcher:")) return true // All internal actions + try { context.packageManager.getPackageInfo(uri, PackageManager.GET_ACTIVITIES) return true @@ -251,9 +253,7 @@ fun loadSettings(){ vibrantColor = launcherPreferences.getInt("custom_vibrant", 0) } -fun resetSettings(context: Context) : MutableList{ - - val defaultList :MutableList = mutableListOf() +fun resetSettings(context: Context) { val editor = launcherPreferences.edit() @@ -269,64 +269,60 @@ fun resetSettings(context: Context) : MutableList{ saveTheme("finn") - val (chosenUpName, chosenUpPackage) = pickDefaultApp( + editor.putString( "action_upApp", - context + pickDefaultApp("action_upApp", context) ) - editor.putString("action_upApp", chosenUpPackage) - defaultList.add(chosenUpName) - val (chosenDownName, chosenDownPackage) = pickDefaultApp( + editor.putString( "action_downApp", - context + pickDefaultApp("action_downApp", context) ) - editor.putString("action_downApp", chosenDownPackage) - defaultList.add(chosenDownName) - val (chosenRightName, chosenRightPackage) = pickDefaultApp( + editor.putString( "action_rightApp", - context + pickDefaultApp("action_rightApp", context) ) - editor.putString("action_rightApp", chosenRightPackage) - defaultList.add(chosenRightName) - val (chosenLeftName, chosenLeftPackage) = pickDefaultApp( + editor.putString( "action_leftApp", - context + pickDefaultApp("action_leftApp", context) ) - editor.putString("action_leftApp", chosenLeftPackage) - editor.putString("action_calendarApp", chosenLeftPackage) - defaultList.add(chosenLeftName) - val (chosenVolumeUpName, chosenVolumeUpPackage) = pickDefaultApp( + editor.putString( + "action_calendarApp", + pickDefaultApp("action_leftApp", context) + ) + + editor.putString( "action_volumeUpApp", - context + pickDefaultApp("action_volumeUpApp",context) ) - editor.putString("action_volumeUpApp", chosenVolumeUpPackage) - defaultList.add(chosenVolumeUpName) - val (chosenVolumeDownName, chosenVolumeDownPackage) = pickDefaultApp( + editor.putString( "action_volumeDownApp", - context + pickDefaultApp("action_volumeDownApp",context) ) - editor.putString("action_volumeDownApp", chosenVolumeDownPackage) - defaultList.add(chosenVolumeDownName) - editor.putString("action_doubleClickApp", "") - editor.putString("action_longClickApp", "") + editor.putString( + "action_doubleClickApp", + pickDefaultApp("action_doubleClickApp", context) + ) - val (_, chosenClockPackage) = pickDefaultApp( + editor.putString( + "action_longClickApp", + pickDefaultApp("action_longClickApp", context) + ) + + editor.putString( "action_clockApp", - context + pickDefaultApp("action_clockApp", context) ) - editor.putString("action_clockApp", chosenClockPackage) editor.apply() - - return defaultList // UP, DOWN, RIGHT, LEFT, VOLUME_UP, VOLUME_DOWN } -fun pickDefaultApp(action: String, context: Context) : Pair{ +fun pickDefaultApp(action: String, context: Context) : String { val arrayResource = when (action) { "action_upApp" -> R.array.default_up "action_downApp" -> R.array.default_down @@ -334,20 +330,16 @@ fun pickDefaultApp(action: String, context: Context) : Pair{ "action_leftApp" -> R.array.default_left "action_volumeUpApp" -> R.array.default_volume_up "action_volumeDownApp" -> R.array.default_volume_down + "action_doubleClickApp" -> R.array.default_double_click + "action_longClickApp" -> R.array.default_long_click "action_clockApp" -> R.array.default_clock - else -> return Pair(context.getString(R.string.none_found), "") // just prevent crashing on unknown input + else -> return "" // just prevent crashing on unknown input } - // 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), "") + for (packageName in list) + if (isInstalled(packageName, context)) return packageName + return "" } /* Bitmaps */ diff --git a/app/src/main/res/values/defaults.xml b/app/src/main/res/values/defaults.xml new file mode 100644 index 0000000..0cbe85e --- /dev/null +++ b/app/src/main/res/values/defaults.xml @@ -0,0 +1,70 @@ + + + + + + + + launcher:choose + + + + + org.torproject.torbrowser + org.mozilla.firefox + com.brave.browser + com.duckduckgo.mobile.android + com.sec.android.app.sbrowser + com.android.chrome + + + + + de.web.mobile.android.mail + com.samsung.android.email.provider + com.google.android.gm + + + + + com.google.android.calendar + com.samsung.android.calendar + + + + + com.whatsapp + com.facebook.orca + com.viber.voip + com.skype.raider + com.snapchat.android + com.instagram.android + com.zhiliaoapp.musically + com.samsung.android.messaging + + + + + com.sec.android.app.popupcalculator + com.github.android + com.soundbrenner.pulse + + + + + com.samsung.android.app.notes + com.sec.android.widgetapp.diotek.smemo + + + + + com.twofasapp + launcher:settings + + + + + com.sec.android.app.clockpackage + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 964cbcf..c8bd1e8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,47 +94,4 @@ You are ready to get started!\n\n I hope this provides great value to you!\n\n- Finn M Glas\n(the developer) Start Launcher - - - org.mozilla.firefox|Firefox - com.sec.android.app.sbrowser|Samsung Internet - com.android.chrome|Chrome - - - - com.samsung.android.app.galaxyfinder|GalaxyFinder - com.prometheusinteractive.voice_launcher|VoiceSearch - - - - de.web.mobile.android.mail|WebMail - com.samsung.android.email.provider|Samsung Mail - com.google.android.gm|Google Mail - - - - com.google.android.calendar|Google Calendar - com.samsung.android.calendar|Samsung Calendar - - - - com.whatsapp|WhatsApp - com.facebook.orca|Facebook Messenger - com.viber.voip|Viber - com.skype.raider|Skype - com.snapchat.android|Snapchat - com.instagram.android|Instagram - com.samsung.android.messaging|Samsung SMS - - - - com.github.android|GitHub - com.soundbrenner.pulse|Soundbrenner Metronome - com.sec.android.app.popupcalculator|Calculator - - - - com.sec.android.app.clockpackage|Android Clock - -