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"