Merge branch 'dev'
This commit is contained in:
@@ -135,7 +135,7 @@ fun AppDetailsScreen(
|
|||||||
exodusReport = exodusReport,
|
exodusReport = exodusReport,
|
||||||
onNavigateUp = onNavigateUp,
|
onNavigateUp = onNavigateUp,
|
||||||
onNavigateToAppDetails = onNavigateToAppDetails,
|
onNavigateToAppDetails = onNavigateToAppDetails,
|
||||||
onDownload = { viewModel.enqueueDownload(app!!) },
|
onDownload = { requestedApp -> viewModel.enqueueDownload(requestedApp) },
|
||||||
onFavorite = { viewModel.toggleFavourite(app!!) },
|
onFavorite = { viewModel.toggleFavourite(app!!) },
|
||||||
onCancelDownload = { viewModel.cancelDownload(app!!) },
|
onCancelDownload = { viewModel.cancelDownload(app!!) },
|
||||||
onUninstall = { AppInstaller.uninstall(context, packageName) },
|
onUninstall = { AppInstaller.uninstall(context, packageName) },
|
||||||
@@ -201,7 +201,7 @@ private fun ScreenContentApp(
|
|||||||
exodusReport: Report? = null,
|
exodusReport: Report? = null,
|
||||||
onNavigateUp: () -> Unit = {},
|
onNavigateUp: () -> Unit = {},
|
||||||
onNavigateToAppDetails: (packageName: String) -> Unit = {},
|
onNavigateToAppDetails: (packageName: String) -> Unit = {},
|
||||||
onDownload: () -> Unit = {},
|
onDownload: (requestedApp: App) -> Unit = {},
|
||||||
onFavorite: () -> Unit = {},
|
onFavorite: () -> Unit = {},
|
||||||
onCancelDownload: () -> Unit = {},
|
onCancelDownload: () -> Unit = {},
|
||||||
onUninstall: () -> Unit = {},
|
onUninstall: () -> Unit = {},
|
||||||
@@ -239,9 +239,9 @@ private fun ScreenContentApp(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onInstall() {
|
fun onInstall(requestedApp: App = app) {
|
||||||
if (isPermittedToInstall(context, app)) {
|
if (isPermittedToInstall(context, app)) {
|
||||||
onDownload()
|
onDownload(requestedApp)
|
||||||
onNavigateBack()
|
onNavigateBack()
|
||||||
} else {
|
} else {
|
||||||
val requiredPermissions = setOfNotNull(
|
val requiredPermissions = setOfNotNull(
|
||||||
@@ -255,7 +255,11 @@ private fun ScreenContentApp(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SetupMenu() {
|
fun SetupMenu() {
|
||||||
AppDetailsMenu(isInstalled = app.isInstalled, isFavorite = isFavorite) { menuItem ->
|
AppDetailsMenu(
|
||||||
|
isInstalled = app.isInstalled,
|
||||||
|
isFavorite = isFavorite,
|
||||||
|
state = state
|
||||||
|
) { menuItem ->
|
||||||
when (menuItem) {
|
when (menuItem) {
|
||||||
MenuItem.FAVORITE -> onFavorite()
|
MenuItem.FAVORITE -> onFavorite()
|
||||||
MenuItem.MANUAL_DOWNLOAD -> {
|
MenuItem.MANUAL_DOWNLOAD -> {
|
||||||
@@ -482,7 +486,8 @@ private fun ScreenContentApp(
|
|||||||
|
|
||||||
is ExtraScreen.ManualDownload -> ManualDownloadScreen(
|
is ExtraScreen.ManualDownload -> ManualDownloadScreen(
|
||||||
packageName = app.packageName,
|
packageName = app.packageName,
|
||||||
onNavigateUp = ::onNavigateBack
|
onNavigateUp = ::onNavigateBack,
|
||||||
|
onRequestInstall = { requestedApp -> onInstall(requestedApp) }
|
||||||
)
|
)
|
||||||
|
|
||||||
is Screen.DevProfile -> DevProfileScreen(
|
is Screen.DevProfile -> DevProfileScreen(
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ import kotlinx.coroutines.launch
|
|||||||
fun ManualDownloadScreen(
|
fun ManualDownloadScreen(
|
||||||
packageName: String,
|
packageName: String,
|
||||||
onNavigateUp: () -> Unit,
|
onNavigateUp: () -> Unit,
|
||||||
|
onRequestInstall: (requestedApp: App) -> Unit,
|
||||||
viewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
|
viewModel: AppDetailsViewModel = hiltViewModel(key = packageName),
|
||||||
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
|
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
|
||||||
) {
|
) {
|
||||||
@@ -76,18 +77,12 @@ fun ManualDownloadScreen(
|
|||||||
else -> stringResource(R.string.title_manual_download)
|
else -> stringResource(R.string.title_manual_download)
|
||||||
}
|
}
|
||||||
|
|
||||||
LaunchedEffect(key1 = state) {
|
|
||||||
if (state is AppState.Downloading) {
|
|
||||||
onNavigateUp()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ScreenContent(
|
ScreenContent(
|
||||||
state = state,
|
state = state,
|
||||||
topAppBarTitle = topAppBarTitle,
|
topAppBarTitle = topAppBarTitle,
|
||||||
currentVersionCode = app!!.versionCode,
|
currentVersionCode = app!!.versionCode,
|
||||||
onNavigateUp = onNavigateUp,
|
onNavigateUp = onNavigateUp,
|
||||||
onDownload = { versionCode ->
|
onRequestInstall = { versionCode ->
|
||||||
val requestedApp = app!!.copy(
|
val requestedApp = app!!.copy(
|
||||||
versionCode = versionCode,
|
versionCode = versionCode,
|
||||||
dependencies = app!!.dependencies.copy(
|
dependencies = app!!.dependencies.copy(
|
||||||
@@ -96,7 +91,7 @@ fun ManualDownloadScreen(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
viewModel.enqueueDownload(requestedApp)
|
onRequestInstall(requestedApp)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -107,7 +102,7 @@ private fun ScreenContent(
|
|||||||
topAppBarTitle: String? = null,
|
topAppBarTitle: String? = null,
|
||||||
currentVersionCode: Long = 0L,
|
currentVersionCode: Long = 0L,
|
||||||
onNavigateUp: () -> Unit = {},
|
onNavigateUp: () -> Unit = {},
|
||||||
onDownload: (versionCode: Long) -> Unit = {},
|
onRequestInstall: (versionCode: Long) -> Unit = {},
|
||||||
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
|
windowAdaptiveInfo: WindowAdaptiveInfo = currentWindowAdaptiveInfo()
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@@ -200,7 +195,7 @@ private fun ScreenContent(
|
|||||||
modifier = Modifier.weight(1F),
|
modifier = Modifier.weight(1F),
|
||||||
enabled = !state.inProgress(),
|
enabled = !state.inProgress(),
|
||||||
onClick = {
|
onClick = {
|
||||||
onDownload(versionCode.text.toLong())
|
onRequestInstall(versionCode.text.toLong())
|
||||||
focusManager.clearFocus()
|
focusManager.clearFocus()
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.aurora.gplayapi.data.models.App
|
|||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.compose.composables.TopAppBarComposable
|
import com.aurora.store.compose.composables.TopAppBarComposable
|
||||||
import com.aurora.store.compose.preview.AppPreviewProvider
|
import com.aurora.store.compose.preview.AppPreviewProvider
|
||||||
|
import com.aurora.store.data.model.AppState
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Menu for the app details screen
|
* Menu for the app details screen
|
||||||
@@ -36,6 +37,7 @@ import com.aurora.store.compose.preview.AppPreviewProvider
|
|||||||
@Composable
|
@Composable
|
||||||
fun AppDetailsMenu(
|
fun AppDetailsMenu(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
|
state: AppState = AppState.Unavailable,
|
||||||
isInstalled: Boolean = false,
|
isInstalled: Boolean = false,
|
||||||
isFavorite: Boolean = false,
|
isFavorite: Boolean = false,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
@@ -75,7 +77,8 @@ fun AppDetailsMenu(
|
|||||||
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.title_manual_download)) },
|
text = { Text(text = stringResource(R.string.title_manual_download)) },
|
||||||
onClick = { onClick(MenuItem.MANUAL_DOWNLOAD) }
|
onClick = { onClick(MenuItem.MANUAL_DOWNLOAD) },
|
||||||
|
enabled = !state.inProgress()
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.title_download_playstore)) },
|
text = { Text(text = stringResource(R.string.title_download_playstore)) },
|
||||||
|
|||||||
Reference in New Issue
Block a user