diff --git a/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt
index 267d69eef..9b19680ea 100644
--- a/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt
+++ b/app/src/main/java/com/aurora/store/compose/ui/details/AppDetailsScreen.kt
@@ -51,9 +51,11 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewScreenSizes
import androidx.compose.ui.tooling.preview.PreviewWrapper
import androidx.compose.ui.unit.dp
+import androidx.core.net.toUri
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation3.runtime.NavKey
+import com.aurora.Constants
import com.aurora.extensions.appInfo
import com.aurora.extensions.requiresGMS
import com.aurora.extensions.requiresObbDir
@@ -316,6 +318,21 @@ private fun ScreenContentApp(
MenuItem.ADD_TO_HOME -> {
ShortcutManagerUtil.requestPinShortcut(context, app.packageName)
}
+
+ MenuItem.PLAY_STORE -> {
+ val uri = "${Constants.SHARE_URL}${app.packageName}".toUri()
+ val intent = Intent(Intent.ACTION_VIEW).apply { data = uri }
+
+ if (intent.resolveActivity(context.packageManager) != null) {
+ context.startActivity(
+ intent.apply {
+ setPackage(Constants.PACKAGE_NAME_PLAY_STORE)
+ }
+ )
+ } else {
+ context.startActivity(intent)
+ }
+ }
}
}
}
diff --git a/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt b/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt
index 067705246..fbc801f4d 100644
--- a/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt
+++ b/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt
@@ -17,14 +17,17 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewWrapper
+import com.aurora.Constants
import com.aurora.store.R
import com.aurora.store.compose.composable.TopAppBar
import com.aurora.store.compose.preview.ThemePreviewProvider
import com.aurora.store.data.model.AppState
+import com.aurora.store.util.PackageUtil
/**
* Menu for the app details screen
@@ -40,6 +43,7 @@ fun AppDetailsMenu(
isExpanded: Boolean = false,
onMenuItemClicked: (menuItem: MenuItem) -> Unit = {}
) {
+ val context = LocalContext.current
var expanded by remember { mutableStateOf(isExpanded) }
fun onClick(menuItem: MenuItem) {
onMenuItemClicked(menuItem)
@@ -87,6 +91,11 @@ fun AppDetailsMenu(
onClick = { onClick(MenuItem.ADD_TO_HOME) },
enabled = state is AppState.Installed || state is AppState.Updatable
)
+ DropdownMenuItem(
+ text = { Text(text = stringResource(R.string.action_view_on_play)) },
+ onClick = { onClick(MenuItem.PLAY_STORE) },
+ enabled = PackageUtil.isInstalled(context, Constants.PACKAGE_NAME_PLAY_STORE)
+ )
}
}
}
diff --git a/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt b/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt
index a9e65355b..d0f064acc 100644
--- a/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt
+++ b/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt
@@ -13,5 +13,6 @@ enum class MenuItem {
SHARE,
MANUAL_DOWNLOAD,
APP_INFO,
- ADD_TO_HOME
+ ADD_TO_HOME,
+ PLAY_STORE
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 417f4208b..0513cc8c0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -102,6 +102,7 @@
"App info"
"Update"
"Update all"
+ "View on Play Store"
"Whitelist"
"Beta program"
"You're a beta tester"