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" />
+
+