@@ -19,16 +19,17 @@ import androidx.compose.runtime.setValue
1919import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
2020import app.revanced.manager.ui.component.AutoUpdatesDialog
2121import app.revanced.manager.ui.destination.Destination
22- import app.revanced.manager.ui.screen.AppInfoScreen
22+ import app.revanced.manager.ui.screen.InstalledAppInfoScreen
2323import app.revanced.manager.ui.screen.AppSelectorScreen
2424import app.revanced.manager.ui.screen.DashboardScreen
2525import app.revanced.manager.ui.screen.InstallerScreen
26- import app.revanced.manager.ui.screen.PatchesSelectorScreen
26+ import app.revanced.manager.ui.screen.SelectedAppInfoScreen
2727import app.revanced.manager.ui.screen.SettingsScreen
2828import app.revanced.manager.ui.screen.VersionSelectorScreen
2929import app.revanced.manager.ui.theme.ReVancedManagerTheme
3030import app.revanced.manager.ui.theme.Theme
3131import app.revanced.manager.ui.viewmodel.MainViewModel
32+ import app.revanced.manager.ui.viewmodel.SelectedAppInfoViewModel
3233import app.revanced.manager.util.tag
3334import app.revanced.manager.util.toast
3435import dev.olshevski.navigation.reimagined.AnimatedNavHost
@@ -37,9 +38,9 @@ import dev.olshevski.navigation.reimagined.navigate
3738import dev.olshevski.navigation.reimagined.pop
3839import dev.olshevski.navigation.reimagined.popUpTo
3940import dev.olshevski.navigation.reimagined.rememberNavController
40- import org.koin.androidx.compose.getViewModel
41+ import org.koin.androidx.compose.getViewModel as getComposeViewModel
42+ import org.koin.androidx.viewmodel.ext.android.getViewModel as getAndroidViewModel
4143import org.koin.core.parameter.parametersOf
42- import org.koin.androidx.viewmodel.ext.android.getViewModel as getActivityViewModel
4344
4445class MainActivity : ComponentActivity () {
4546 @ExperimentalAnimationApi
@@ -48,7 +49,7 @@ class MainActivity : ComponentActivity() {
4849
4950 installSplashScreen()
5051
51- val vm: MainViewModel = getActivityViewModel ()
52+ val vm: MainViewModel = getAndroidViewModel ()
5253
5354 setContent {
5455 val theme by vm.prefs.theme.getAsState()
@@ -102,7 +103,7 @@ class MainActivity : ComponentActivity() {
102103 }
103104
104105 legacyActivityState = LegacyActivity .LAUNCHED
105- } else if (legacyActivityState == LegacyActivity .FAILED ){
106+ } else if (legacyActivityState == LegacyActivity .FAILED ) {
106107 AutoUpdatesDialog (vm::applyAutoUpdatePrefs)
107108 }
108109 }
@@ -114,15 +115,26 @@ class MainActivity : ComponentActivity() {
114115 is Destination .Dashboard -> DashboardScreen (
115116 onSettingsClick = { navController.navigate(Destination .Settings ) },
116117 onAppSelectorClick = { navController.navigate(Destination .AppSelector ) },
117- onAppClick = { installedApp -> navController.navigate(Destination .ApplicationInfo (installedApp)) }
118+ onAppClick = { installedApp ->
119+ navController.navigate(
120+ Destination .InstalledApplicationInfo (
121+ installedApp
122+ )
123+ )
124+ }
118125 )
119126
120- is Destination .ApplicationInfo -> AppInfoScreen (
127+ is Destination .InstalledApplicationInfo -> InstalledAppInfoScreen (
121128 onPatchClick = { packageName, patchesSelection ->
122- navController.navigate(Destination .VersionSelector (packageName, patchesSelection))
129+ navController.navigate(
130+ Destination .VersionSelector (
131+ packageName,
132+ patchesSelection
133+ )
134+ )
123135 },
124136 onBackClick = { navController.pop() },
125- viewModel = getViewModel { parametersOf(destination.installedApp) }
137+ viewModel = getComposeViewModel { parametersOf(destination.installedApp) }
126138 )
127139
128140 is Destination .Settings -> SettingsScreen (
@@ -131,40 +143,56 @@ class MainActivity : ComponentActivity() {
131143
132144 is Destination .AppSelector -> AppSelectorScreen (
133145 onAppClick = { navController.navigate(Destination .VersionSelector (it)) },
134- onStorageClick = { navController.navigate(Destination .PatchesSelector (it)) },
146+ onStorageClick = {
147+ navController.navigate(
148+ Destination .SelectedApplicationInfo (
149+ it
150+ )
151+ )
152+ },
135153 onBackClick = { navController.pop() }
136154 )
137155
138156 is Destination .VersionSelector -> VersionSelectorScreen (
139157 onBackClick = { navController.pop() },
140158 onAppClick = { selectedApp ->
141159 navController.navigate(
142- Destination .PatchesSelector (
160+ Destination .SelectedApplicationInfo (
143161 selectedApp,
144- destination.patchesSelection
162+ destination.patchesSelection,
145163 )
146164 )
147165 },
148- viewModel = getViewModel { parametersOf(destination.packageName, destination.patchesSelection) }
166+ viewModel = getComposeViewModel {
167+ parametersOf(
168+ destination.packageName,
169+ destination.patchesSelection
170+ )
171+ }
149172 )
150173
151- is Destination .PatchesSelector -> PatchesSelectorScreen (
152- onBackClick = { navController.pop() },
153- onPatchClick = { patches, options ->
174+ is Destination .SelectedApplicationInfo -> SelectedAppInfoScreen (
175+ onPatchClick = { app, patches, options ->
154176 navController.navigate(
155177 Destination .Installer (
156- destination.selectedApp,
157- patches,
158- options
178+ app, patches, options
159179 )
160180 )
161181 },
162- vm = getViewModel { parametersOf(destination) }
182+ onBackClick = navController::pop,
183+ vm = getComposeViewModel {
184+ parametersOf(
185+ SelectedAppInfoViewModel .Params (
186+ destination.selectedApp,
187+ destination.patchesSelection
188+ )
189+ )
190+ }
163191 )
164192
165193 is Destination .Installer -> InstallerScreen (
166194 onBackClick = { navController.popUpTo { it is Destination .Dashboard } },
167- vm = getViewModel { parametersOf(destination) }
195+ vm = getComposeViewModel { parametersOf(destination) }
168196 )
169197 }
170198 }
0 commit comments