From 5a648f9804b5fa26f22e208a44b943a01178744f Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Fri, 13 May 2022 11:22:21 +0200 Subject: [PATCH] Add: onLaunchClick --- .../com/looker/droidify/ui/fragments/AppSheetX.kt | 11 ++--------- src/main/kotlin/com/looker/droidify/utility/Utils.kt | 11 +++++++++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/AppSheetX.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/AppSheetX.kt index e6bed57c..8ba710f7 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/AppSheetX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/AppSheetX.kt @@ -23,6 +23,7 @@ import com.looker.droidify.utility.Utils.rootInstallerEnabled import com.looker.droidify.utility.Utils.startUpdate import com.looker.droidify.utility.extension.android.Android import com.looker.droidify.utility.findSuggestedProduct +import com.looker.droidify.utility.onLaunchClick import io.reactivex.rxjava3.disposables.Disposable import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.filter @@ -262,16 +263,8 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), AppDetailAdapter.Call } Unit } - val launcherActivities = installed?.launcherActivities.orEmpty() - if (launcherActivities.size >= 2) { - LaunchDialog(launcherActivities).show( - childFragmentManager, - LaunchDialog::class.java.name - ) - } else { - launcherActivities.firstOrNull()?.let { startLauncherActivity(it.first) } - } Action.LAUNCH -> { + installed?.let { requireContext().onLaunchClick(it, childFragmentManager) } Unit } Action.DETAILS -> { diff --git a/src/main/kotlin/com/looker/droidify/utility/Utils.kt b/src/main/kotlin/com/looker/droidify/utility/Utils.kt index 500c244d..b8533c49 100644 --- a/src/main/kotlin/com/looker/droidify/utility/Utils.kt +++ b/src/main/kotlin/com/looker/droidify/utility/Utils.kt @@ -18,6 +18,7 @@ import android.net.Uri import android.provider.Settings import android.widget.Toast import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.FragmentManager import com.looker.droidify.BuildConfig import com.looker.droidify.PREFS_LANGUAGE_DEFAULT import com.looker.droidify.R @@ -257,6 +258,16 @@ fun PackageManager.getLaunchActivities(packageName: String): List= 2) { + LaunchDialog(installed.packageName, installed.launcherActivities) + .show(fragmentManager, LaunchDialog::class.java.name) + } else { + installed.launcherActivities.firstOrNull() + ?.let { startLauncherActivity(installed.packageName, it.first) } + } +} + fun Context.startLauncherActivity(packageName: String, name: String) { try { startActivity(