diff --git a/app/src/main/java/se/ajpanton/navbuttons/ForegroundAppSupport.kt b/app/src/main/java/se/ajpanton/navbuttons/ForegroundAppSupport.kt index bea1ced..1916891 100644 --- a/app/src/main/java/se/ajpanton/navbuttons/ForegroundAppSupport.kt +++ b/app/src/main/java/se/ajpanton/navbuttons/ForegroundAppSupport.kt @@ -66,14 +66,7 @@ private fun packageNameFromComponent(component: Any?): String? { } private fun packageNameFromActivityInfo(info: Any?): String? { - if (info == null) { - return null - } - return try { - findField(info.javaClass, "packageName").get(info)?.toString() - } catch (_: Throwable) { - null - } + return getFieldValue(info, "packageName")?.toString() } internal fun shouldSkipForegroundPackage(packageName: String?, defaultLauncher: String?): Boolean { diff --git a/app/src/main/java/se/ajpanton/navbuttons/InputInjectionSupport.kt b/app/src/main/java/se/ajpanton/navbuttons/InputInjectionSupport.kt index 9043992..f01f257 100644 --- a/app/src/main/java/se/ajpanton/navbuttons/InputInjectionSupport.kt +++ b/app/src/main/java/se/ajpanton/navbuttons/InputInjectionSupport.kt @@ -21,15 +21,8 @@ internal fun sendInjectedKeyPress(context: Context?, keyCode: Int, log: (String) internal fun inputManagerForInjection(context: Context?): Any? { context?.getSystemService(Context.INPUT_SERVICE)?.let { return it } - - return try { - callStaticMethod(findClass(INPUT_MANAGER_CLASS, null), "getInstance") - } catch (_: Throwable) { - try { - callStaticMethod(findClass(INPUT_MANAGER_GLOBAL_CLASS, null), "getInstance") - } catch (_: Throwable) { - null - } + return listOf(INPUT_MANAGER_CLASS, INPUT_MANAGER_GLOBAL_CLASS).firstNotNullOfOrNull { className -> + runCatching { callStaticMethod(findClass(className, null), "getInstance") }.getOrNull() } }