Add: onLaunchClick

This commit is contained in:
machiav3lli 2022-05-13 11:22:21 +02:00
parent 62cb204390
commit 5a648f9804
2 changed files with 13 additions and 9 deletions

View File

@ -23,6 +23,7 @@ import com.looker.droidify.utility.Utils.rootInstallerEnabled
import com.looker.droidify.utility.Utils.startUpdate import com.looker.droidify.utility.Utils.startUpdate
import com.looker.droidify.utility.extension.android.Android import com.looker.droidify.utility.extension.android.Android
import com.looker.droidify.utility.findSuggestedProduct import com.looker.droidify.utility.findSuggestedProduct
import com.looker.droidify.utility.onLaunchClick
import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.disposables.Disposable
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filter
@ -262,16 +263,8 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), AppDetailAdapter.Call
} }
Unit 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 -> { Action.LAUNCH -> {
installed?.let { requireContext().onLaunchClick(it, childFragmentManager) }
Unit Unit
} }
Action.DETAILS -> { Action.DETAILS -> {

View File

@ -18,6 +18,7 @@ import android.net.Uri
import android.provider.Settings import android.provider.Settings
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.FragmentManager
import com.looker.droidify.BuildConfig import com.looker.droidify.BuildConfig
import com.looker.droidify.PREFS_LANGUAGE_DEFAULT import com.looker.droidify.PREFS_LANGUAGE_DEFAULT
import com.looker.droidify.R import com.looker.droidify.R
@ -257,6 +258,16 @@ fun PackageManager.getLaunchActivities(packageName: String): List<Pair<String, S
} }
.toList() .toList()
fun Context.onLaunchClick(installed: Installed, fragmentManager: FragmentManager) {
if (installed.launcherActivities.size >= 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) { fun Context.startLauncherActivity(packageName: String, name: String) {
try { try {
startActivity( startActivity(