diff --git a/app/src/main/java/com/aurora/store/compose/navigation/NavDisplay.kt b/app/src/main/java/com/aurora/store/compose/navigation/NavDisplay.kt index eaf286e5b..e6a2e0ad3 100644 --- a/app/src/main/java/com/aurora/store/compose/navigation/NavDisplay.kt +++ b/app/src/main/java/com/aurora/store/compose/navigation/NavDisplay.kt @@ -15,7 +15,7 @@ import androidx.navigation3.runtime.rememberNavBackStack import androidx.navigation3.runtime.rememberSavedStateNavEntryDecorator import androidx.navigation3.ui.NavDisplay 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.dev.DevProfileScreen import com.aurora.store.compose.ui.commons.PermissionRationaleScreen diff --git a/app/src/main/java/com/aurora/store/compose/ui/commons/BlacklistScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/blacklist/BlacklistScreen.kt similarity index 95% rename from app/src/main/java/com/aurora/store/compose/ui/commons/BlacklistScreen.kt rename to app/src/main/java/com/aurora/store/compose/ui/blacklist/BlacklistScreen.kt index b821de681..731240896 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/commons/BlacklistScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/blacklist/BlacklistScreen.kt @@ -3,7 +3,7 @@ * 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.net.Uri @@ -46,10 +46,10 @@ import com.aurora.Constants import com.aurora.extensions.toast import com.aurora.store.R import com.aurora.store.compose.composables.BlackListComposable -import com.aurora.store.compose.menu.BlacklistMenu -import com.aurora.store.compose.menu.items.BlacklistMenuItem +import com.aurora.store.compose.ui.blacklist.menu.BlacklistMenu +import com.aurora.store.compose.ui.blacklist.menu.MenuItem 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.launch import java.util.Calendar @@ -130,13 +130,13 @@ private fun ScreenContent( fun SetupMenu() { BlacklistMenu { menuItem -> when (menuItem) { - BlacklistMenuItem.SELECT_ALL -> onBlacklistAll() - BlacklistMenuItem.REMOVE_ALL -> onWhitelistAll() - BlacklistMenuItem.IMPORT -> { + MenuItem.SELECT_ALL -> onBlacklistAll() + MenuItem.REMOVE_ALL -> onWhitelistAll() + MenuItem.IMPORT -> { docImportLauncher.launch(arrayOf(Constants.JSON_MIME_TYPE)) } - BlacklistMenuItem.EXPORT -> { + MenuItem.EXPORT -> { docExportLauncher.launch( "aurora_store_apps_${Calendar.getInstance().time.time}.json" ) diff --git a/app/src/main/java/com/aurora/store/compose/menu/BlacklistMenu.kt b/app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/BlacklistMenu.kt similarity index 79% rename from app/src/main/java/com/aurora/store/compose/menu/BlacklistMenu.kt rename to app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/BlacklistMenu.kt index c43e37760..6baf247e6 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/BlacklistMenu.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/BlacklistMenu.kt @@ -3,7 +3,7 @@ * 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.material3.DropdownMenu @@ -21,23 +21,22 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.aurora.store.R -import com.aurora.store.compose.menu.items.BlacklistMenuItem /** * Menu for the blacklist screen * @param modifier The modifier to be applied to the composable * @param onMenuItemClicked Callback when a menu item has been clicked - * @see BlacklistMenuItem + * @see MenuItem */ @Composable fun BlacklistMenu( modifier: Modifier = Modifier, isExpanded: Boolean = false, - onMenuItemClicked: (blacklistMenuItem: BlacklistMenuItem) -> Unit = {} + onMenuItemClicked: (menuItem: MenuItem) -> Unit = {} ) { var expanded by remember { mutableStateOf(isExpanded) } - fun onClick(blacklistMenuItem: BlacklistMenuItem) { - onMenuItemClicked(blacklistMenuItem) + fun onClick(menuItem: MenuItem) { + onMenuItemClicked(menuItem) expanded = false } @@ -51,19 +50,19 @@ fun BlacklistMenu( DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) { DropdownMenuItem( text = { Text(text = stringResource(R.string.action_select_all)) }, - onClick = { onClick(BlacklistMenuItem.SELECT_ALL) } + onClick = { onClick(MenuItem.SELECT_ALL) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.action_remove_all)) }, - onClick = { onClick(BlacklistMenuItem.REMOVE_ALL) } + onClick = { onClick(MenuItem.REMOVE_ALL) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.action_import)) }, - onClick = { onClick(BlacklistMenuItem.IMPORT) } + onClick = { onClick(MenuItem.IMPORT) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.action_export)) }, - onClick = { onClick(BlacklistMenuItem.EXPORT) } + onClick = { onClick(MenuItem.EXPORT) } ) } } diff --git a/app/src/main/java/com/aurora/store/compose/menu/items/BlacklistMenuItem.kt b/app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/MenuItem.kt similarity index 75% rename from app/src/main/java/com/aurora/store/compose/menu/items/BlacklistMenuItem.kt rename to app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/MenuItem.kt index 59f8b79bd..49d313d12 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/items/BlacklistMenuItem.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/blacklist/menu/MenuItem.kt @@ -3,12 +3,12 @@ * 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 */ -enum class BlacklistMenuItem { +enum class MenuItem { SELECT_ALL, REMOVE_ALL, IMPORT, 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 fa3bb0b0d..35874a88c 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 @@ -62,8 +62,8 @@ import com.aurora.store.compose.composables.ProgressComposable import com.aurora.store.compose.composables.ErrorComposable import com.aurora.store.compose.preview.AppPreviewProvider import com.aurora.store.compose.preview.coilPreviewProvider -import com.aurora.store.compose.menu.AppDetailsMenu -import com.aurora.store.compose.menu.items.AppDetailsMenuItem +import com.aurora.store.compose.ui.details.menu.AppDetailsMenu +import com.aurora.store.compose.ui.details.menu.MenuItem import com.aurora.store.compose.navigation.Screen import com.aurora.store.compose.ui.details.components.Actions import com.aurora.store.compose.ui.details.components.Changelog @@ -259,14 +259,14 @@ private fun ScreenContentApp( fun SetupMenu() { AppDetailsMenu(isInstalled = app.isInstalled, isFavorite = isFavorite) { menuItem -> when (menuItem) { - AppDetailsMenuItem.FAVORITE -> onFavorite() - AppDetailsMenuItem.MANUAL_DOWNLOAD -> { + MenuItem.FAVORITE -> onFavorite() + MenuItem.MANUAL_DOWNLOAD -> { showExtraPane(ExtraScreen.ManualDownload) } - AppDetailsMenuItem.SHARE -> context.share(app.displayName, app.packageName) - AppDetailsMenuItem.APP_INFO -> context.appInfo(app.packageName) - AppDetailsMenuItem.PLAY_STORE -> context.browse("$SHARE_URL${app.packageName}") - AppDetailsMenuItem.ADD_TO_HOME -> { + MenuItem.SHARE -> context.share(app.displayName, app.packageName) + MenuItem.APP_INFO -> context.appInfo(app.packageName) + MenuItem.PLAY_STORE -> context.browse("$SHARE_URL${app.packageName}") + MenuItem.ADD_TO_HOME -> { ShortcutManagerUtil.requestPinShortcut(context, app.packageName) } } diff --git a/app/src/main/java/com/aurora/store/compose/menu/AppDetailsMenu.kt b/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt similarity index 82% rename from app/src/main/java/com/aurora/store/compose/menu/AppDetailsMenu.kt rename to app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt index b598108da..f15bef65d 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/AppDetailsMenu.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/details/menu/AppDetailsMenu.kt @@ -3,7 +3,7 @@ * 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.material3.DropdownMenu @@ -25,14 +25,13 @@ import com.aurora.gplayapi.data.models.App import com.aurora.store.R import com.aurora.store.compose.composables.TopAppBarComposable import com.aurora.store.compose.preview.AppPreviewProvider -import com.aurora.store.compose.menu.items.AppDetailsMenuItem /** * Menu for the app details screen * @param app App for which this menu should be inflated * @param modifier The modifier to be applied to the composable * @param onMenuItemClicked Callback when a menu item has been clicked - * @see AppDetailsMenuItem + * @see MenuItem */ @Composable fun AppDetailsMenu( @@ -40,15 +39,15 @@ fun AppDetailsMenu( isInstalled: Boolean = false, isFavorite: Boolean = false, isExpanded: Boolean = false, - onMenuItemClicked: (appDetailsMenuItem: AppDetailsMenuItem) -> Unit = {} + onMenuItemClicked: (menuItem: MenuItem) -> Unit = {} ) { var expanded by remember { mutableStateOf(isExpanded) } - fun onClick(appDetailsMenuItem: AppDetailsMenuItem) { - onMenuItemClicked(appDetailsMenuItem) + fun onClick(menuItem: MenuItem) { + onMenuItemClicked(menuItem) expanded = false } - IconButton(onClick = { onClick(AppDetailsMenuItem.FAVORITE) }) { + IconButton(onClick = { onClick(MenuItem.FAVORITE) }) { Icon( painter = if (isFavorite) { painterResource(R.drawable.ic_favorite_checked) @@ -59,7 +58,7 @@ fun AppDetailsMenu( ) } - IconButton(onClick = { onClick(AppDetailsMenuItem.SHARE) }) { + IconButton(onClick = { onClick(MenuItem.SHARE) }) { Icon( painter = painterResource(R.drawable.ic_share), contentDescription = stringResource(R.string.action_share) @@ -76,11 +75,11 @@ fun AppDetailsMenu( DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) { DropdownMenuItem( text = { Text(text = stringResource(R.string.title_manual_download)) }, - onClick = { onClick(AppDetailsMenuItem.MANUAL_DOWNLOAD) } + onClick = { onClick(MenuItem.MANUAL_DOWNLOAD) } ) DropdownMenuItem( 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 @@ -88,11 +87,11 @@ fun AppDetailsMenu( DropdownMenuItem( text = { Text(text = stringResource(R.string.action_info)) }, - onClick = { onClick(AppDetailsMenuItem.APP_INFO) } + onClick = { onClick(MenuItem.APP_INFO) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.action_home_screen)) }, - onClick = { onClick(AppDetailsMenuItem.ADD_TO_HOME) } + onClick = { onClick(MenuItem.ADD_TO_HOME) } ) } } diff --git a/app/src/main/java/com/aurora/store/compose/menu/items/AppDetailsMenuItem.kt b/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt similarity index 78% rename from app/src/main/java/com/aurora/store/compose/menu/items/AppDetailsMenuItem.kt rename to app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt index f66c89a70..f6df76646 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/items/AppDetailsMenuItem.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/details/menu/MenuItem.kt @@ -3,12 +3,12 @@ * 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 */ -enum class AppDetailsMenuItem { +enum class MenuItem { FAVORITE, SHARE, MANUAL_DOWNLOAD, diff --git a/app/src/main/java/com/aurora/store/compose/ui/downloads/DownloadsScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/downloads/DownloadsScreen.kt index 6044737a5..8b1f305c4 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/downloads/DownloadsScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/downloads/DownloadsScreen.kt @@ -36,8 +36,8 @@ import com.aurora.store.compose.composables.DownloadComposable import com.aurora.store.compose.composables.ErrorComposable import com.aurora.store.compose.composables.ProgressComposable import com.aurora.store.compose.composables.TopAppBarComposable -import com.aurora.store.compose.menu.DownloadsMenu -import com.aurora.store.compose.menu.items.DownloadsMenuItem +import com.aurora.store.compose.ui.downloads.menu.DownloadsMenu +import com.aurora.store.compose.ui.downloads.menu.MenuItem import com.aurora.store.data.room.download.Download import com.aurora.store.viewmodel.downloads.DownloadsViewModel import kotlinx.coroutines.flow.flowOf @@ -111,9 +111,9 @@ private fun ScreenContent( fun SetupMenu() { DownloadsMenu { menuItem -> when (menuItem) { - DownloadsMenuItem.CANCEL_ALL -> onCancelAll() - DownloadsMenuItem.FORCE_CLEAR_ALL -> onForceClearAll() - DownloadsMenuItem.CLEAR_FINISHED -> onClearFinished() + MenuItem.CANCEL_ALL -> onCancelAll() + MenuItem.FORCE_CLEAR_ALL -> onForceClearAll() + MenuItem.CLEAR_FINISHED -> onClearFinished() } } } diff --git a/app/src/main/java/com/aurora/store/compose/menu/DownloadsMenu.kt b/app/src/main/java/com/aurora/store/compose/ui/downloads/menu/DownloadsMenu.kt similarity index 82% rename from app/src/main/java/com/aurora/store/compose/menu/DownloadsMenu.kt rename to app/src/main/java/com/aurora/store/compose/ui/downloads/menu/DownloadsMenu.kt index 1ccccddae..ffef5ed54 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/DownloadsMenu.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/downloads/menu/DownloadsMenu.kt @@ -3,7 +3,7 @@ * 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.material3.DropdownMenu @@ -21,22 +21,22 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview 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 * @param modifier The modifier to be applied to the composable * @param onMenuItemClicked Callback when a menu item has been clicked - * @see DownloadsMenuItem + * @see MenuItem */ @Composable fun DownloadsMenu( modifier: Modifier = Modifier, isExpanded: Boolean = false, - onMenuItemClicked: (menuItem: DownloadsMenuItem) -> Unit = {} + onMenuItemClicked: (menuItem: MenuItem) -> Unit = {} ) { var expanded by remember { mutableStateOf(isExpanded) } - fun onClick(menuItem: DownloadsMenuItem) { + fun onClick(menuItem: MenuItem) { onMenuItemClicked(menuItem) expanded = false } @@ -51,15 +51,15 @@ fun DownloadsMenu( DropdownMenu(expanded = expanded, onDismissRequest = { expanded = false }) { DropdownMenuItem( text = { Text(text = stringResource(R.string.download_cancel_all)) }, - onClick = { onClick(DownloadsMenuItem.CANCEL_ALL) } + onClick = { onClick(MenuItem.CANCEL_ALL) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.download_clear_finished)) }, - onClick = { onClick(DownloadsMenuItem.CLEAR_FINISHED) } + onClick = { onClick(MenuItem.CLEAR_FINISHED) } ) DropdownMenuItem( text = { Text(text = stringResource(R.string.download_force_clear_all)) }, - onClick = { onClick(DownloadsMenuItem.FORCE_CLEAR_ALL) } + onClick = { onClick(MenuItem.FORCE_CLEAR_ALL) } ) } } diff --git a/app/src/main/java/com/aurora/store/compose/menu/items/DownloadsMenuItem.kt b/app/src/main/java/com/aurora/store/compose/ui/downloads/menu/MenuItem.kt similarity index 75% rename from app/src/main/java/com/aurora/store/compose/menu/items/DownloadsMenuItem.kt rename to app/src/main/java/com/aurora/store/compose/ui/downloads/menu/MenuItem.kt index d7ea5a420..05517e934 100644 --- a/app/src/main/java/com/aurora/store/compose/menu/items/DownloadsMenuItem.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/downloads/menu/MenuItem.kt @@ -3,12 +3,12 @@ * 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 */ -enum class DownloadsMenuItem { +enum class MenuItem { CANCEL_ALL, FORCE_CLEAR_ALL, CLEAR_FINISHED diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/blacklist/BlacklistViewModel.kt similarity index 85% rename from app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt rename to app/src/main/java/com/aurora/store/viewmodel/blacklist/BlacklistViewModel.kt index 857073388..9cb10b43d 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/blacklist/BlacklistViewModel.kt @@ -1,23 +1,9 @@ /* - * Aurora Store - * Copyright (C) 2021, Rahul Kumar Patel - * - * 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 . - * + * SPDX-FileCopyrightText: 2025 The Calyx Institute + * SPDX-License-Identifier: GPL-3.0-or-later */ -package com.aurora.store.viewmodel.all +package com.aurora.store.viewmodel.blacklist import android.content.Context import android.content.pm.PackageInfo @@ -105,7 +91,7 @@ class BlacklistViewModel @Inject constructor( fun blacklist(packageName: String) { blacklist.add(packageName) blacklistProvider.blacklist(packageName) - AuroraApp.events.send(BusEvent.Blacklisted(packageName)) + AuroraApp.Companion.events.send(BusEvent.Blacklisted(packageName)) } fun blacklistAll() {