diff --git a/app/src/main/java/com/vanced/manager/adapter/AppListAdapter.kt b/app/src/main/java/com/vanced/manager/adapter/AppListAdapter.kt index 65bd9067..d35ee656 100644 --- a/app/src/main/java/com/vanced/manager/adapter/AppListAdapter.kt +++ b/app/src/main/java/com/vanced/manager/adapter/AppListAdapter.kt @@ -45,9 +45,16 @@ class AppListAdapter( appUninstall.setOnClickListener { dataModel?.appPkg?.let { it1 -> viewModel.uninstallPackage(it1) } } - appUninstall.isVisible = dataModel?.isAppInstalled?.value == true + appLaunch.setOnClickListener { + viewModel.launchApp(apps[position], isRoot) + } + with(dataModel?.isAppInstalled?.value) { + appUninstall.isVisible = this == true + appLaunch.isVisible = this == true + } dataModel?.isAppInstalled?.observe(lifecycleOwner) { appUninstall.isVisible = it + appLaunch.isVisible = it } appRemoteVersion.text = dataModel?.versionName?.value dataModel?.versionName?.observe(lifecycleOwner) { diff --git a/app/src/main/java/com/vanced/manager/ui/viewmodels/HomeViewModel.kt b/app/src/main/java/com/vanced/manager/ui/viewmodels/HomeViewModel.kt index 2c8a4a47..bef5bc9b 100644 --- a/app/src/main/java/com/vanced/manager/ui/viewmodels/HomeViewModel.kt +++ b/app/src/main/java/com/vanced/manager/ui/viewmodels/HomeViewModel.kt @@ -1,5 +1,9 @@ package com.vanced.manager.ui.viewmodels +import android.content.ActivityNotFoundException +import android.content.ComponentName +import android.content.Intent +import android.util.Log import android.view.View import android.widget.Toast import androidx.appcompat.content.res.AppCompatResources @@ -71,6 +75,21 @@ open class HomeViewModel(private val activity: FragmentActivity): ViewModel() { InternetTools.openUrl(url, color, activity) } + fun launchApp(app: String, isRoot: Boolean) { + val componentName = when (app) { + activity.getString(R.string.vanced) -> if (isRoot) ComponentName(vancedRootPkg, "$vancedRootPkg.HomeActivity") else ComponentName(vancedPkg, "$vancedRootPkg.HomeActivity") + activity.getString(R.string.music) -> if (isRoot) ComponentName(musicRootPkg, "$musicRootPkg.activities.MusicActivity") else ComponentName(musicPkg, "$musicRootPkg.activities.MusicActivity") + activity.getString(R.string.microg) -> ComponentName(microgPkg, "org.microg.gms.ui.SettingsActivity") + else -> throw IllegalArgumentException("Can't open this app") + } + try { + activity.startActivity(Intent().setComponent(componentName)) + } catch (e: ActivityNotFoundException) { + Log.d("VMHMV", e.toString()) + } + + } + fun openInstallDialog(view: View, app: String) { val variant = prefs.getString("vanced_variant", "nonroot") if (variant == "nonroot" && app != activity.getString(R.string.microg) && !microg.value?.isAppInstalled?.value!!) { diff --git a/app/src/main/res/drawable/ic_baseline_launch_24.xml b/app/src/main/res/drawable/ic_baseline_launch_24.xml new file mode 100644 index 00000000..455b503a --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_launch_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/view_app.xml b/app/src/main/res/layout/view_app.xml index bde7a81c..c021d32b 100644 --- a/app/src/main/res/layout/view_app.xml +++ b/app/src/main/res/layout/view_app.xml @@ -48,6 +48,18 @@ app:layout_constraintTop_toBottomOf="@id/app_install_button" app:tint="?colorLinkImage" /> + +