compose: menu: Encapsulate menu with screens
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -15,7 +15,7 @@ import androidx.navigation3.runtime.rememberNavBackStack
|
|||||||
import androidx.navigation3.runtime.rememberSavedStateNavEntryDecorator
|
import androidx.navigation3.runtime.rememberSavedStateNavEntryDecorator
|
||||||
import androidx.navigation3.ui.NavDisplay
|
import androidx.navigation3.ui.NavDisplay
|
||||||
import androidx.navigation3.ui.rememberSceneSetupNavEntryDecorator
|
import androidx.navigation3.ui.rememberSceneSetupNavEntryDecorator
|
||||||
import com.aurora.store.compose.ui.commons.BlacklistScreen
|
import com.aurora.store.compose.ui.blacklist.BlacklistScreen
|
||||||
import com.aurora.store.compose.ui.details.AppDetailsScreen
|
import com.aurora.store.compose.ui.details.AppDetailsScreen
|
||||||
import com.aurora.store.compose.ui.dev.DevProfileScreen
|
import com.aurora.store.compose.ui.dev.DevProfileScreen
|
||||||
import com.aurora.store.compose.ui.commons.PermissionRationaleScreen
|
import com.aurora.store.compose.ui.commons.PermissionRationaleScreen
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.ui.commons
|
package com.aurora.store.compose.ui.blacklist
|
||||||
|
|
||||||
import android.content.pm.PackageInfo
|
import android.content.pm.PackageInfo
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
@@ -46,10 +46,10 @@ import com.aurora.Constants
|
|||||||
import com.aurora.extensions.toast
|
import com.aurora.extensions.toast
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.compose.composables.BlackListComposable
|
import com.aurora.store.compose.composables.BlackListComposable
|
||||||
import com.aurora.store.compose.menu.BlacklistMenu
|
import com.aurora.store.compose.ui.blacklist.menu.BlacklistMenu
|
||||||
import com.aurora.store.compose.menu.items.BlacklistMenuItem
|
import com.aurora.store.compose.ui.blacklist.menu.MenuItem
|
||||||
import com.aurora.store.util.PackageUtil
|
import com.aurora.store.util.PackageUtil
|
||||||
import com.aurora.store.viewmodel.all.BlacklistViewModel
|
import com.aurora.store.viewmodel.blacklist.BlacklistViewModel
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
@@ -130,13 +130,13 @@ private fun ScreenContent(
|
|||||||
fun SetupMenu() {
|
fun SetupMenu() {
|
||||||
BlacklistMenu { menuItem ->
|
BlacklistMenu { menuItem ->
|
||||||
when (menuItem) {
|
when (menuItem) {
|
||||||
BlacklistMenuItem.SELECT_ALL -> onBlacklistAll()
|
MenuItem.SELECT_ALL -> onBlacklistAll()
|
||||||
BlacklistMenuItem.REMOVE_ALL -> onWhitelistAll()
|
MenuItem.REMOVE_ALL -> onWhitelistAll()
|
||||||
BlacklistMenuItem.IMPORT -> {
|
MenuItem.IMPORT -> {
|
||||||
docImportLauncher.launch(arrayOf(Constants.JSON_MIME_TYPE))
|
docImportLauncher.launch(arrayOf(Constants.JSON_MIME_TYPE))
|
||||||
}
|
}
|
||||||
|
|
||||||
BlacklistMenuItem.EXPORT -> {
|
MenuItem.EXPORT -> {
|
||||||
docExportLauncher.launch(
|
docExportLauncher.launch(
|
||||||
"aurora_store_apps_${Calendar.getInstance().time.time}.json"
|
"aurora_store_apps_${Calendar.getInstance().time.time}.json"
|
||||||
)
|
)
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu
|
package com.aurora.store.compose.ui.blacklist.menu
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
@@ -21,23 +21,22 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.compose.menu.items.BlacklistMenuItem
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Menu for the blacklist screen
|
* Menu for the blacklist screen
|
||||||
* @param modifier The modifier to be applied to the composable
|
* @param modifier The modifier to be applied to the composable
|
||||||
* @param onMenuItemClicked Callback when a menu item has been clicked
|
* @param onMenuItemClicked Callback when a menu item has been clicked
|
||||||
* @see BlacklistMenuItem
|
* @see MenuItem
|
||||||
*/
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun BlacklistMenu(
|
fun BlacklistMenu(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onMenuItemClicked: (blacklistMenuItem: BlacklistMenuItem) -> Unit = {}
|
onMenuItemClicked: (menuItem: MenuItem) -> Unit = {}
|
||||||
) {
|
) {
|
||||||
var expanded by remember { mutableStateOf(isExpanded) }
|
var expanded by remember { mutableStateOf(isExpanded) }
|
||||||
fun onClick(blacklistMenuItem: BlacklistMenuItem) {
|
fun onClick(menuItem: MenuItem) {
|
||||||
onMenuItemClicked(blacklistMenuItem)
|
onMenuItemClicked(menuItem)
|
||||||
expanded = false
|
expanded = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,19 +50,19 @@ fun BlacklistMenu(
|
|||||||
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_select_all)) },
|
text = { Text(text = stringResource(R.string.action_select_all)) },
|
||||||
onClick = { onClick(BlacklistMenuItem.SELECT_ALL) }
|
onClick = { onClick(MenuItem.SELECT_ALL) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_remove_all)) },
|
text = { Text(text = stringResource(R.string.action_remove_all)) },
|
||||||
onClick = { onClick(BlacklistMenuItem.REMOVE_ALL) }
|
onClick = { onClick(MenuItem.REMOVE_ALL) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_import)) },
|
text = { Text(text = stringResource(R.string.action_import)) },
|
||||||
onClick = { onClick(BlacklistMenuItem.IMPORT) }
|
onClick = { onClick(MenuItem.IMPORT) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_export)) },
|
text = { Text(text = stringResource(R.string.action_export)) },
|
||||||
onClick = { onClick(BlacklistMenuItem.EXPORT) }
|
onClick = { onClick(MenuItem.EXPORT) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu.items
|
package com.aurora.store.compose.ui.blacklist.menu
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Valid menu items for the purpose of handling clicks
|
* Valid menu items for the purpose of handling clicks
|
||||||
*/
|
*/
|
||||||
enum class BlacklistMenuItem {
|
enum class MenuItem {
|
||||||
SELECT_ALL,
|
SELECT_ALL,
|
||||||
REMOVE_ALL,
|
REMOVE_ALL,
|
||||||
IMPORT,
|
IMPORT,
|
||||||
@@ -62,8 +62,8 @@ import com.aurora.store.compose.composables.ProgressComposable
|
|||||||
import com.aurora.store.compose.composables.ErrorComposable
|
import com.aurora.store.compose.composables.ErrorComposable
|
||||||
import com.aurora.store.compose.preview.AppPreviewProvider
|
import com.aurora.store.compose.preview.AppPreviewProvider
|
||||||
import com.aurora.store.compose.preview.coilPreviewProvider
|
import com.aurora.store.compose.preview.coilPreviewProvider
|
||||||
import com.aurora.store.compose.menu.AppDetailsMenu
|
import com.aurora.store.compose.ui.details.menu.AppDetailsMenu
|
||||||
import com.aurora.store.compose.menu.items.AppDetailsMenuItem
|
import com.aurora.store.compose.ui.details.menu.MenuItem
|
||||||
import com.aurora.store.compose.navigation.Screen
|
import com.aurora.store.compose.navigation.Screen
|
||||||
import com.aurora.store.compose.ui.details.components.Actions
|
import com.aurora.store.compose.ui.details.components.Actions
|
||||||
import com.aurora.store.compose.ui.details.components.Changelog
|
import com.aurora.store.compose.ui.details.components.Changelog
|
||||||
@@ -259,14 +259,14 @@ private fun ScreenContentApp(
|
|||||||
fun SetupMenu() {
|
fun SetupMenu() {
|
||||||
AppDetailsMenu(isInstalled = app.isInstalled, isFavorite = isFavorite) { menuItem ->
|
AppDetailsMenu(isInstalled = app.isInstalled, isFavorite = isFavorite) { menuItem ->
|
||||||
when (menuItem) {
|
when (menuItem) {
|
||||||
AppDetailsMenuItem.FAVORITE -> onFavorite()
|
MenuItem.FAVORITE -> onFavorite()
|
||||||
AppDetailsMenuItem.MANUAL_DOWNLOAD -> {
|
MenuItem.MANUAL_DOWNLOAD -> {
|
||||||
showExtraPane(ExtraScreen.ManualDownload)
|
showExtraPane(ExtraScreen.ManualDownload)
|
||||||
}
|
}
|
||||||
AppDetailsMenuItem.SHARE -> context.share(app.displayName, app.packageName)
|
MenuItem.SHARE -> context.share(app.displayName, app.packageName)
|
||||||
AppDetailsMenuItem.APP_INFO -> context.appInfo(app.packageName)
|
MenuItem.APP_INFO -> context.appInfo(app.packageName)
|
||||||
AppDetailsMenuItem.PLAY_STORE -> context.browse("$SHARE_URL${app.packageName}")
|
MenuItem.PLAY_STORE -> context.browse("$SHARE_URL${app.packageName}")
|
||||||
AppDetailsMenuItem.ADD_TO_HOME -> {
|
MenuItem.ADD_TO_HOME -> {
|
||||||
ShortcutManagerUtil.requestPinShortcut(context, app.packageName)
|
ShortcutManagerUtil.requestPinShortcut(context, app.packageName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu
|
package com.aurora.store.compose.ui.details.menu
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
@@ -25,14 +25,13 @@ 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.compose.menu.items.AppDetailsMenuItem
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Menu for the app details screen
|
* Menu for the app details screen
|
||||||
* @param app App for which this menu should be inflated
|
* @param app App for which this menu should be inflated
|
||||||
* @param modifier The modifier to be applied to the composable
|
* @param modifier The modifier to be applied to the composable
|
||||||
* @param onMenuItemClicked Callback when a menu item has been clicked
|
* @param onMenuItemClicked Callback when a menu item has been clicked
|
||||||
* @see AppDetailsMenuItem
|
* @see MenuItem
|
||||||
*/
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun AppDetailsMenu(
|
fun AppDetailsMenu(
|
||||||
@@ -40,15 +39,15 @@ fun AppDetailsMenu(
|
|||||||
isInstalled: Boolean = false,
|
isInstalled: Boolean = false,
|
||||||
isFavorite: Boolean = false,
|
isFavorite: Boolean = false,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onMenuItemClicked: (appDetailsMenuItem: AppDetailsMenuItem) -> Unit = {}
|
onMenuItemClicked: (menuItem: MenuItem) -> Unit = {}
|
||||||
) {
|
) {
|
||||||
var expanded by remember { mutableStateOf(isExpanded) }
|
var expanded by remember { mutableStateOf(isExpanded) }
|
||||||
fun onClick(appDetailsMenuItem: AppDetailsMenuItem) {
|
fun onClick(menuItem: MenuItem) {
|
||||||
onMenuItemClicked(appDetailsMenuItem)
|
onMenuItemClicked(menuItem)
|
||||||
expanded = false
|
expanded = false
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton(onClick = { onClick(AppDetailsMenuItem.FAVORITE) }) {
|
IconButton(onClick = { onClick(MenuItem.FAVORITE) }) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = if (isFavorite) {
|
painter = if (isFavorite) {
|
||||||
painterResource(R.drawable.ic_favorite_checked)
|
painterResource(R.drawable.ic_favorite_checked)
|
||||||
@@ -59,7 +58,7 @@ fun AppDetailsMenu(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
IconButton(onClick = { onClick(AppDetailsMenuItem.SHARE) }) {
|
IconButton(onClick = { onClick(MenuItem.SHARE) }) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(R.drawable.ic_share),
|
painter = painterResource(R.drawable.ic_share),
|
||||||
contentDescription = stringResource(R.string.action_share)
|
contentDescription = stringResource(R.string.action_share)
|
||||||
@@ -76,11 +75,11 @@ 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(AppDetailsMenuItem.MANUAL_DOWNLOAD) }
|
onClick = { onClick(MenuItem.MANUAL_DOWNLOAD) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.title_download_playstore)) },
|
text = { Text(text = stringResource(R.string.title_download_playstore)) },
|
||||||
onClick = { onClick(AppDetailsMenuItem.PLAY_STORE) }
|
onClick = { onClick(MenuItem.PLAY_STORE) }
|
||||||
)
|
)
|
||||||
|
|
||||||
// Inflate actions available only when app is installed below
|
// Inflate actions available only when app is installed below
|
||||||
@@ -88,11 +87,11 @@ fun AppDetailsMenu(
|
|||||||
|
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_info)) },
|
text = { Text(text = stringResource(R.string.action_info)) },
|
||||||
onClick = { onClick(AppDetailsMenuItem.APP_INFO) }
|
onClick = { onClick(MenuItem.APP_INFO) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.action_home_screen)) },
|
text = { Text(text = stringResource(R.string.action_home_screen)) },
|
||||||
onClick = { onClick(AppDetailsMenuItem.ADD_TO_HOME) }
|
onClick = { onClick(MenuItem.ADD_TO_HOME) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu.items
|
package com.aurora.store.compose.ui.details.menu
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Valid menu items for app details screen for handling clicks
|
* Valid menu items for app details screen for handling clicks
|
||||||
*/
|
*/
|
||||||
enum class AppDetailsMenuItem {
|
enum class MenuItem {
|
||||||
FAVORITE,
|
FAVORITE,
|
||||||
SHARE,
|
SHARE,
|
||||||
MANUAL_DOWNLOAD,
|
MANUAL_DOWNLOAD,
|
||||||
@@ -36,8 +36,8 @@ import com.aurora.store.compose.composables.DownloadComposable
|
|||||||
import com.aurora.store.compose.composables.ErrorComposable
|
import com.aurora.store.compose.composables.ErrorComposable
|
||||||
import com.aurora.store.compose.composables.ProgressComposable
|
import com.aurora.store.compose.composables.ProgressComposable
|
||||||
import com.aurora.store.compose.composables.TopAppBarComposable
|
import com.aurora.store.compose.composables.TopAppBarComposable
|
||||||
import com.aurora.store.compose.menu.DownloadsMenu
|
import com.aurora.store.compose.ui.downloads.menu.DownloadsMenu
|
||||||
import com.aurora.store.compose.menu.items.DownloadsMenuItem
|
import com.aurora.store.compose.ui.downloads.menu.MenuItem
|
||||||
import com.aurora.store.data.room.download.Download
|
import com.aurora.store.data.room.download.Download
|
||||||
import com.aurora.store.viewmodel.downloads.DownloadsViewModel
|
import com.aurora.store.viewmodel.downloads.DownloadsViewModel
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
@@ -111,9 +111,9 @@ private fun ScreenContent(
|
|||||||
fun SetupMenu() {
|
fun SetupMenu() {
|
||||||
DownloadsMenu { menuItem ->
|
DownloadsMenu { menuItem ->
|
||||||
when (menuItem) {
|
when (menuItem) {
|
||||||
DownloadsMenuItem.CANCEL_ALL -> onCancelAll()
|
MenuItem.CANCEL_ALL -> onCancelAll()
|
||||||
DownloadsMenuItem.FORCE_CLEAR_ALL -> onForceClearAll()
|
MenuItem.FORCE_CLEAR_ALL -> onForceClearAll()
|
||||||
DownloadsMenuItem.CLEAR_FINISHED -> onClearFinished()
|
MenuItem.CLEAR_FINISHED -> onClearFinished()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu
|
package com.aurora.store.compose.ui.downloads.menu
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.material3.DropdownMenu
|
import androidx.compose.material3.DropdownMenu
|
||||||
@@ -21,22 +21,22 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.compose.menu.items.DownloadsMenuItem
|
import com.aurora.store.compose.ui.downloads.menu.MenuItem
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Menu for the blacklist screen
|
* Menu for the blacklist screen
|
||||||
* @param modifier The modifier to be applied to the composable
|
* @param modifier The modifier to be applied to the composable
|
||||||
* @param onMenuItemClicked Callback when a menu item has been clicked
|
* @param onMenuItemClicked Callback when a menu item has been clicked
|
||||||
* @see DownloadsMenuItem
|
* @see MenuItem
|
||||||
*/
|
*/
|
||||||
@Composable
|
@Composable
|
||||||
fun DownloadsMenu(
|
fun DownloadsMenu(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onMenuItemClicked: (menuItem: DownloadsMenuItem) -> Unit = {}
|
onMenuItemClicked: (menuItem: MenuItem) -> Unit = {}
|
||||||
) {
|
) {
|
||||||
var expanded by remember { mutableStateOf(isExpanded) }
|
var expanded by remember { mutableStateOf(isExpanded) }
|
||||||
fun onClick(menuItem: DownloadsMenuItem) {
|
fun onClick(menuItem: MenuItem) {
|
||||||
onMenuItemClicked(menuItem)
|
onMenuItemClicked(menuItem)
|
||||||
expanded = false
|
expanded = false
|
||||||
}
|
}
|
||||||
@@ -51,15 +51,15 @@ fun DownloadsMenu(
|
|||||||
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.download_cancel_all)) },
|
text = { Text(text = stringResource(R.string.download_cancel_all)) },
|
||||||
onClick = { onClick(DownloadsMenuItem.CANCEL_ALL) }
|
onClick = { onClick(MenuItem.CANCEL_ALL) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.download_clear_finished)) },
|
text = { Text(text = stringResource(R.string.download_clear_finished)) },
|
||||||
onClick = { onClick(DownloadsMenuItem.CLEAR_FINISHED) }
|
onClick = { onClick(MenuItem.CLEAR_FINISHED) }
|
||||||
)
|
)
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
text = { Text(text = stringResource(R.string.download_force_clear_all)) },
|
text = { Text(text = stringResource(R.string.download_force_clear_all)) },
|
||||||
onClick = { onClick(DownloadsMenuItem.FORCE_CLEAR_ALL) }
|
onClick = { onClick(MenuItem.FORCE_CLEAR_ALL) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.compose.menu.items
|
package com.aurora.store.compose.ui.downloads.menu
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Valid menu items for the purpose of handling clicks
|
* Valid menu items for the purpose of handling clicks
|
||||||
*/
|
*/
|
||||||
enum class DownloadsMenuItem {
|
enum class MenuItem {
|
||||||
CANCEL_ALL,
|
CANCEL_ALL,
|
||||||
FORCE_CLEAR_ALL,
|
FORCE_CLEAR_ALL,
|
||||||
CLEAR_FINISHED
|
CLEAR_FINISHED
|
||||||
@@ -1,23 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Aurora Store
|
* SPDX-FileCopyrightText: 2025 The Calyx Institute
|
||||||
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
*
|
|
||||||
* Aurora Store is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Aurora Store is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.aurora.store.viewmodel.all
|
package com.aurora.store.viewmodel.blacklist
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.pm.PackageInfo
|
import android.content.pm.PackageInfo
|
||||||
@@ -105,7 +91,7 @@ class BlacklistViewModel @Inject constructor(
|
|||||||
fun blacklist(packageName: String) {
|
fun blacklist(packageName: String) {
|
||||||
blacklist.add(packageName)
|
blacklist.add(packageName)
|
||||||
blacklistProvider.blacklist(packageName)
|
blacklistProvider.blacklist(packageName)
|
||||||
AuroraApp.events.send(BusEvent.Blacklisted(packageName))
|
AuroraApp.Companion.events.send(BusEvent.Blacklisted(packageName))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun blacklistAll() {
|
fun blacklistAll() {
|
||||||
Reference in New Issue
Block a user