refactor: replace deprecated functions

This commit is contained in:
Ax333l 2024-04-05 19:09:39 +02:00
parent 634d793839
commit 0df39a1136
No known key found for this signature in database
GPG key ID: D2B4D85271127D23
24 changed files with 55 additions and 58 deletions

View file

@ -124,8 +124,9 @@ dependencies {
// Accompanist // Accompanist
implementation(libs.accompanist.drawablepainter) implementation(libs.accompanist.drawablepainter)
implementation(libs.accompanist.webview)
implementation(libs.accompanist.placeholder) // Placeholder
implementation(libs.placeholder.material3)
// HTML Scraper // HTML Scraper
implementation(libs.skrapeit.dsl) implementation(libs.skrapeit.dsl)

View file

@ -35,7 +35,7 @@ import dev.olshevski.navigation.reimagined.pop
import dev.olshevski.navigation.reimagined.popUpTo import dev.olshevski.navigation.reimagined.popUpTo
import dev.olshevski.navigation.reimagined.rememberNavController import dev.olshevski.navigation.reimagined.rememberNavController
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
import org.koin.androidx.compose.getViewModel as getComposeViewModel import org.koin.androidx.compose.koinViewModel as getComposeViewModel
import org.koin.androidx.viewmodel.ext.android.getViewModel as getAndroidViewModel import org.koin.androidx.viewmodel.ext.android.getViewModel as getAndroidViewModel
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {

View file

@ -3,7 +3,7 @@ package app.revanced.manager.data.room.apps.installed
import androidx.room.Dao import androidx.room.Dao
import androidx.room.Delete import androidx.room.Delete
import androidx.room.Insert import androidx.room.Insert
import androidx.room.MapInfo import androidx.room.MapColumn
import androidx.room.Query import androidx.room.Query
import androidx.room.Transaction import androidx.room.Transaction
import androidx.room.Upsert import androidx.room.Upsert
@ -17,12 +17,13 @@ interface InstalledAppDao {
@Query("SELECT * FROM installed_app WHERE current_package_name = :packageName") @Query("SELECT * FROM installed_app WHERE current_package_name = :packageName")
suspend fun get(packageName: String): InstalledApp? suspend fun get(packageName: String): InstalledApp?
@MapInfo(keyColumn = "bundle", valueColumn = "patch_name")
@Query( @Query(
"SELECT bundle, patch_name FROM applied_patch" + "SELECT bundle, patch_name FROM applied_patch" +
" WHERE package_name = :packageName" " WHERE package_name = :packageName"
) )
suspend fun getPatchesSelection(packageName: String): Map<Int, List<String>> suspend fun getPatchesSelection(packageName: String): Map<@MapColumn("bundle") Int, List<@MapColumn(
"patch_name"
) String>>
@Transaction @Transaction
suspend fun upsertApp(installedApp: InstalledApp, appliedPatches: List<AppliedPatch>) { suspend fun upsertApp(installedApp: InstalledApp, appliedPatches: List<AppliedPatch>) {

View file

@ -2,7 +2,7 @@ package app.revanced.manager.data.room.options
import androidx.room.Dao import androidx.room.Dao
import androidx.room.Insert import androidx.room.Insert
import androidx.room.MapInfo import androidx.room.MapColumn
import androidx.room.Query import androidx.room.Query
import androidx.room.Transaction import androidx.room.Transaction
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -10,13 +10,12 @@ import kotlinx.coroutines.flow.Flow
@Dao @Dao
abstract class OptionDao { abstract class OptionDao {
@Transaction @Transaction
@MapInfo(keyColumn = "patch_bundle")
@Query( @Query(
"SELECT patch_bundle, `group`, patch_name, `key`, value FROM option_groups" + "SELECT patch_bundle, `group`, patch_name, `key`, value FROM option_groups" +
" LEFT JOIN options ON uid = options.`group`" + " LEFT JOIN options ON uid = options.`group`" +
" WHERE package_name = :packageName" " WHERE package_name = :packageName"
) )
abstract suspend fun getOptions(packageName: String): Map<Int, List<Option>> abstract suspend fun getOptions(packageName: String): Map<@MapColumn("patch_bundle") Int, List<Option>>
@Query("SELECT uid FROM option_groups WHERE patch_bundle = :bundleUid AND package_name = :packageName") @Query("SELECT uid FROM option_groups WHERE patch_bundle = :bundleUid AND package_name = :packageName")
abstract suspend fun getGroupId(bundleUid: Int, packageName: String): Int? abstract suspend fun getGroupId(bundleUid: Int, packageName: String): Int?

View file

@ -2,29 +2,31 @@ package app.revanced.manager.data.room.selection
import androidx.room.Dao import androidx.room.Dao
import androidx.room.Insert import androidx.room.Insert
import androidx.room.MapInfo import androidx.room.MapColumn
import androidx.room.Query import androidx.room.Query
import androidx.room.Transaction import androidx.room.Transaction
@Dao @Dao
abstract class SelectionDao { abstract class SelectionDao {
@Transaction @Transaction
@MapInfo(keyColumn = "patch_bundle", valueColumn = "patch_name")
@Query( @Query(
"SELECT patch_bundle, patch_name FROM patch_selections" + "SELECT patch_bundle, patch_name FROM patch_selections" +
" LEFT JOIN selected_patches ON uid = selected_patches.selection" + " LEFT JOIN selected_patches ON uid = selected_patches.selection" +
" WHERE package_name = :packageName" " WHERE package_name = :packageName"
) )
abstract suspend fun getSelectedPatches(packageName: String): Map<Int, List<String>> abstract suspend fun getSelectedPatches(packageName: String): Map<@MapColumn("patch_bundle") Int, List<@MapColumn(
"patch_name"
) String>>
@Transaction @Transaction
@MapInfo(keyColumn = "package_name", valueColumn = "patch_name")
@Query( @Query(
"SELECT package_name, patch_name FROM patch_selections" + "SELECT package_name, patch_name FROM patch_selections" +
" LEFT JOIN selected_patches ON uid = selected_patches.selection" + " LEFT JOIN selected_patches ON uid = selected_patches.selection" +
" WHERE patch_bundle = :bundleUid" " WHERE patch_bundle = :bundleUid"
) )
abstract suspend fun exportSelection(bundleUid: Int): Map<String, List<String>> abstract suspend fun exportSelection(bundleUid: Int): Map<@MapColumn("package_name") String, List<@MapColumn(
"patch_name"
) String>>
@Query("SELECT uid FROM patch_selections WHERE patch_bundle = :bundleUid AND package_name = :packageName") @Query("SELECT uid FROM patch_selections WHERE patch_bundle = :bundleUid AND package_name = :packageName")
abstract suspend fun getSelectionId(bundleUid: Int, packageName: String): Int? abstract suspend fun getSelectionId(bundleUid: Int, packageName: String): Int?

View file

@ -16,7 +16,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.vector.rememberVectorPainter import androidx.compose.ui.graphics.vector.rememberVectorPainter
import coil.compose.AsyncImage import coil.compose.AsyncImage
import com.google.accompanist.placeholder.placeholder import io.github.fornewid.placeholder.material3.placeholder
@Composable @Composable
fun AppIcon( fun AppIcon(

View file

@ -16,7 +16,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.TextStyle
import app.revanced.manager.R import app.revanced.manager.R
import com.google.accompanist.placeholder.placeholder import io.github.fornewid.placeholder.material3.placeholder
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext

View file

@ -29,7 +29,7 @@ import app.revanced.manager.R
import app.revanced.manager.data.platform.Filesystem import app.revanced.manager.data.platform.Filesystem
import app.revanced.manager.patcher.patch.Option import app.revanced.manager.patcher.patch.Option
import app.revanced.manager.util.toast import app.revanced.manager.util.toast
import org.koin.compose.rememberKoinInject import org.koin.compose.koinInject
// Composable functions do not support function references, so we have to use composable lambdas instead. // Composable functions do not support function references, so we have to use composable lambdas instead.
private typealias OptionImpl = @Composable (Option, Any?, (Any?) -> Unit) -> Unit private typealias OptionImpl = @Composable (Option, Any?, (Any?) -> Unit) -> Unit
@ -60,7 +60,7 @@ private fun StringOptionDialog(
mutableStateOf(value.orEmpty()) mutableStateOf(value.orEmpty())
} }
val fs: Filesystem = rememberKoinInject() val fs: Filesystem = koinInject()
val (contract, permissionName) = fs.permissionContract() val (contract, permissionName) = fs.permissionContract()
val permissionLauncher = rememberLauncherForActivityResult(contract = contract) { val permissionLauncher = rememberLauncherForActivityResult(contract = contract) {
showFileDialog = it showFileDialog = it

View file

@ -33,7 +33,7 @@ import app.revanced.manager.ui.component.NonSuggestedVersionDialog
import app.revanced.manager.ui.model.SelectedApp import app.revanced.manager.ui.model.SelectedApp
import app.revanced.manager.ui.viewmodel.AppSelectorViewModel import app.revanced.manager.ui.viewmodel.AppSelectorViewModel
import app.revanced.manager.util.APK_MIMETYPE import app.revanced.manager.util.APK_MIMETYPE
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
@ -41,7 +41,7 @@ fun AppSelectorScreen(
onAppClick: (packageName: String) -> Unit, onAppClick: (packageName: String) -> Unit,
onStorageClick: (SelectedApp.Local) -> Unit, onStorageClick: (SelectedApp.Local) -> Unit,
onBackClick: () -> Unit, onBackClick: () -> Unit,
vm: AppSelectorViewModel = getViewModel() vm: AppSelectorViewModel = koinViewModel()
) { ) {
SideEffect { SideEffect {
vm.onStorageClick = onStorageClick vm.onStorageClick = onStorageClick

View file

@ -52,7 +52,7 @@ import app.revanced.manager.ui.model.BundleType
import app.revanced.manager.ui.viewmodel.DashboardViewModel import app.revanced.manager.ui.viewmodel.DashboardViewModel
import app.revanced.manager.util.toast import app.revanced.manager.util.toast
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
enum class DashboardPage( enum class DashboardPage(
val titleResId: Int, val titleResId: Int,
@ -65,7 +65,7 @@ enum class DashboardPage(
@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class) @OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class)
@Composable @Composable
fun DashboardScreen( fun DashboardScreen(
vm: DashboardViewModel = getViewModel(), vm: DashboardViewModel = koinViewModel(),
onAppSelectorClick: () -> Unit, onAppSelectorClick: () -> Unit,
onSettingsClick: () -> Unit, onSettingsClick: () -> Unit,
onAppClick: (InstalledApp) -> Unit onAppClick: (InstalledApp) -> Unit

View file

@ -27,12 +27,12 @@ import app.revanced.manager.ui.component.LazyColumnWithScrollbar
import app.revanced.manager.ui.component.LoadingIndicator import app.revanced.manager.ui.component.LoadingIndicator
import app.revanced.manager.ui.component.NotificationCard import app.revanced.manager.ui.component.NotificationCard
import app.revanced.manager.ui.viewmodel.InstalledAppsViewModel import app.revanced.manager.ui.viewmodel.InstalledAppsViewModel
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@Composable @Composable
fun InstalledAppsScreen( fun InstalledAppsScreen(
onAppClick: (InstalledApp) -> Unit, onAppClick: (InstalledApp) -> Unit,
viewModel: InstalledAppsViewModel = getViewModel() viewModel: InstalledAppsViewModel = koinViewModel()
) { ) {
val installedApps by viewModel.apps.collectAsStateWithLifecycle(initialValue = null) val installedApps by viewModel.apps.collectAsStateWithLifecycle(initialValue = null)

View file

@ -21,7 +21,6 @@ import androidx.compose.material.icons.outlined.Restore
import androidx.compose.material.icons.outlined.Save import androidx.compose.material.icons.outlined.Save
import androidx.compose.material.icons.outlined.Search import androidx.compose.material.icons.outlined.Search
import androidx.compose.material.icons.outlined.Settings import androidx.compose.material.icons.outlined.Settings
import androidx.compose.material.icons.outlined.WarningAmber
import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Checkbox import androidx.compose.material3.Checkbox
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
@ -48,11 +47,9 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
@ -73,7 +70,7 @@ import app.revanced.manager.util.Options
import app.revanced.manager.util.PatchSelection import app.revanced.manager.util.PatchSelection
import app.revanced.manager.util.isScrollingUp import app.revanced.manager.util.isScrollingUp
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.koin.compose.rememberKoinInject import org.koin.compose.koinInject
@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
@Composable @Composable
@ -390,7 +387,7 @@ fun SelectionWarningDialog(
onCancel: () -> Unit, onCancel: () -> Unit,
onConfirm: (Boolean) -> Unit onConfirm: (Boolean) -> Unit
) { ) {
val prefs: PreferencesManager = rememberKoinInject() val prefs: PreferencesManager = koinInject()
DangerousActionDialogBase( DangerousActionDialogBase(
onCancel = onCancel, onCancel = onCancel,

View file

@ -39,7 +39,7 @@ import dev.olshevski.navigation.reimagined.NavBackHandler
import dev.olshevski.navigation.reimagined.navigate import dev.olshevski.navigation.reimagined.navigate
import dev.olshevski.navigation.reimagined.pop import dev.olshevski.navigation.reimagined.pop
import dev.olshevski.navigation.reimagined.rememberNavController import dev.olshevski.navigation.reimagined.rememberNavController
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
@Composable @Composable
@ -122,7 +122,7 @@ fun SelectedAppInfoScreen(
vm.selectedApp = it vm.selectedApp = it
navController.pop() navController.pop()
}, },
viewModel = getViewModel { parametersOf(packageName) } viewModel = koinViewModel { parametersOf(packageName) }
) )
is SelectedAppInfoDestination.PatchesSelector -> PatchesSelectorScreen( is SelectedAppInfoDestination.PatchesSelector -> PatchesSelectorScreen(
@ -131,7 +131,7 @@ fun SelectedAppInfoScreen(
navController.pop() navController.pop()
}, },
onBackClick = navController::pop, onBackClick = navController::pop,
vm = getViewModel { vm = koinViewModel {
parametersOf( parametersOf(
PatchesSelectorViewModel.Params( PatchesSelectorViewModel.Params(
destination.app, destination.app,

View file

@ -34,9 +34,8 @@ import app.revanced.manager.ui.screen.settings.update.UpdateScreen
import app.revanced.manager.ui.screen.settings.update.UpdatesSettingsScreen import app.revanced.manager.ui.screen.settings.update.UpdatesSettingsScreen
import app.revanced.manager.ui.viewmodel.SettingsViewModel import app.revanced.manager.ui.viewmodel.SettingsViewModel
import dev.olshevski.navigation.reimagined.* import dev.olshevski.navigation.reimagined.*
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
import org.koin.androidx.compose.getViewModel as getComposeViewModel
@SuppressLint("BatteryLife") @SuppressLint("BatteryLife")
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@ -44,7 +43,7 @@ import org.koin.androidx.compose.getViewModel as getComposeViewModel
fun SettingsScreen( fun SettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
startDestination: SettingsDestination, startDestination: SettingsDestination,
viewModel: SettingsViewModel = getViewModel() viewModel: SettingsViewModel = koinViewModel()
) { ) {
val navController = rememberNavController(startDestination) val navController = rememberNavController(startDestination)
@ -127,7 +126,7 @@ fun SettingsScreen(
is SettingsDestination.Update -> UpdateScreen( is SettingsDestination.Update -> UpdateScreen(
onBackClick = backClick, onBackClick = backClick,
vm = getComposeViewModel { vm = koinViewModel {
parametersOf( parametersOf(
destination.downloadOnScreenEntry destination.downloadOnScreenEntry
) )

View file

@ -20,10 +20,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha

View file

@ -42,7 +42,7 @@ import app.revanced.manager.ui.viewmodel.AboutViewModel.Companion.getSocialIcon
import app.revanced.manager.util.isDebuggable import app.revanced.manager.util.isDebuggable
import app.revanced.manager.util.openUrl import app.revanced.manager.util.openUrl
import com.google.accompanist.drawablepainter.rememberDrawablePainter import com.google.accompanist.drawablepainter.rememberDrawablePainter
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable @Composable
@ -50,7 +50,7 @@ fun AboutSettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
onContributorsClick: () -> Unit, onContributorsClick: () -> Unit,
onLicensesClick: () -> Unit, onLicensesClick: () -> Unit,
viewModel: AboutViewModel = getViewModel() viewModel: AboutViewModel = koinViewModel()
) { ) {
val context = LocalContext.current val context = LocalContext.current
// painterResource() is broken on release builds for some reason. // painterResource() is broken on release builds for some reason.

View file

@ -38,13 +38,13 @@ import app.revanced.manager.ui.component.settings.BooleanItem
import app.revanced.manager.ui.component.settings.IntegerItem import app.revanced.manager.ui.component.settings.IntegerItem
import app.revanced.manager.ui.component.settings.SettingsListItem import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.AdvancedSettingsViewModel import app.revanced.manager.ui.viewmodel.AdvancedSettingsViewModel
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun AdvancedSettingsScreen( fun AdvancedSettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
vm: AdvancedSettingsViewModel = getViewModel() vm: AdvancedSettingsViewModel = koinViewModel()
) { ) {
val context = LocalContext.current val context = LocalContext.current
val memoryLimit = remember { val memoryLimit = remember {

View file

@ -7,7 +7,6 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.*
import androidx.compose.material3.Card import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
@ -33,13 +32,13 @@ import app.revanced.manager.ui.component.LazyColumnWithScrollbar
import app.revanced.manager.ui.component.LoadingIndicator import app.revanced.manager.ui.component.LoadingIndicator
import app.revanced.manager.ui.viewmodel.ContributorViewModel import app.revanced.manager.ui.viewmodel.ContributorViewModel
import coil.compose.AsyncImage import coil.compose.AsyncImage
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun ContributorScreen( fun ContributorScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
viewModel: ContributorViewModel = getViewModel() viewModel: ContributorViewModel = koinViewModel()
) { ) {
val repositories = viewModel.repositories val repositories = viewModel.repositories
Scaffold( Scaffold(

View file

@ -23,13 +23,13 @@ import app.revanced.manager.ui.component.GroupHeader
import app.revanced.manager.ui.component.settings.BooleanItem import app.revanced.manager.ui.component.settings.BooleanItem
import app.revanced.manager.ui.component.settings.SettingsListItem import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.DownloadsViewModel import app.revanced.manager.ui.viewmodel.DownloadsViewModel
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun DownloadsSettingsScreen( fun DownloadsSettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
viewModel: DownloadsViewModel = getViewModel() viewModel: DownloadsViewModel = koinViewModel()
) { ) {
val prefs = viewModel.prefs val prefs = viewModel.prefs

View file

@ -38,13 +38,13 @@ import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.ImportExportViewModel import app.revanced.manager.ui.viewmodel.ImportExportViewModel
import app.revanced.manager.util.toast import app.revanced.manager.util.toast
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun ImportExportSettingsScreen( fun ImportExportSettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
vm: ImportExportViewModel = getViewModel() vm: ImportExportViewModel = koinViewModel()
) { ) {
val context = LocalContext.current val context = LocalContext.current

View file

@ -25,13 +25,13 @@ import app.revanced.manager.ui.component.settings.Changelog
import app.revanced.manager.ui.viewmodel.ChangelogsViewModel import app.revanced.manager.ui.viewmodel.ChangelogsViewModel
import app.revanced.manager.util.formatNumber import app.revanced.manager.util.formatNumber
import app.revanced.manager.util.relativeTime import app.revanced.manager.util.relativeTime
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun ChangelogsScreen( fun ChangelogsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
vm: ChangelogsViewModel = getViewModel() vm: ChangelogsViewModel = koinViewModel()
) { ) {
val changelogs = vm.changelogs val changelogs = vm.changelogs

View file

@ -44,14 +44,14 @@ import com.gigamole.composefadingedges.content.FadingEdgesContentType
import com.gigamole.composefadingedges.content.scrollconfig.FadingEdgesScrollConfig import com.gigamole.composefadingedges.content.scrollconfig.FadingEdgesScrollConfig
import com.gigamole.composefadingedges.fill.FadingEdgesFillType import com.gigamole.composefadingedges.fill.FadingEdgesFillType
import com.gigamole.composefadingedges.verticalFadingEdges import com.gigamole.composefadingedges.verticalFadingEdges
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
@Stable @Stable
fun UpdateScreen( fun UpdateScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
vm: UpdateViewModel = getViewModel() vm: UpdateViewModel = koinViewModel()
) { ) {
Scaffold( Scaffold(
topBar = { topBar = {

View file

@ -16,7 +16,7 @@ import app.revanced.manager.ui.component.settings.BooleanItem
import app.revanced.manager.ui.component.settings.SettingsListItem import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.UpdatesSettingsViewModel import app.revanced.manager.ui.viewmodel.UpdatesSettingsViewModel
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.koin.androidx.compose.getViewModel import org.koin.androidx.compose.koinViewModel
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
@ -24,7 +24,7 @@ fun UpdatesSettingsScreen(
onBackClick: () -> Unit, onBackClick: () -> Unit,
onChangelogClick: () -> Unit, onChangelogClick: () -> Unit,
onUpdateClick: () -> Unit, onUpdateClick: () -> Unit,
vm: UpdatesSettingsViewModel = getViewModel(), vm: UpdatesSettingsViewModel = koinViewModel(),
) { ) {
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()

View file

@ -10,6 +10,7 @@ preferences-datastore = "1.0.0"
work-runtime = "2.9.0" work-runtime = "2.9.0"
compose-bom = "2024.03.00" compose-bom = "2024.03.00"
accompanist = "0.34.0" accompanist = "0.34.0"
placeholder = "1.1.2"
serialization = "1.6.3" serialization = "1.6.3"
collection = "0.3.7" collection = "0.3.7"
room-version = "2.6.1" room-version = "2.6.1"
@ -60,8 +61,9 @@ coil-appiconloader = { group = "me.zhanghai.android.appiconloader", name = "appi
# Accompanist # Accompanist
accompanist-drawablepainter = { group = "com.google.accompanist", name = "accompanist-drawablepainter", version.ref = "accompanist" } accompanist-drawablepainter = { group = "com.google.accompanist", name = "accompanist-drawablepainter", version.ref = "accompanist" }
accompanist-webview = { group = "com.google.accompanist", name = "accompanist-webview", version.ref = "accompanist" }
accompanist-placeholder = { group = "com.google.accompanist", name = "accompanist-placeholder-material", version.ref = "accompanist" } # Placeholder
placeholder-material3 = { group = "io.github.fornewid", name = "placeholder-material3", version.ref = "placeholder"}
# Kotlinx # Kotlinx
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" }