11package li.songe.gkd.ui
22
3+ import androidx.activity.compose.LocalActivity
34import androidx.compose.animation.graphics.res.animatedVectorResource
45import androidx.compose.animation.graphics.res.rememberAnimatedVectorPainter
56import androidx.compose.animation.graphics.vector.AnimatedImageVector
@@ -42,7 +43,6 @@ import androidx.compose.runtime.setValue
4243import androidx.compose.ui.Alignment
4344import androidx.compose.ui.Modifier
4445import androidx.compose.ui.input.nestedscroll.nestedScroll
45- import androidx.compose.ui.platform.LocalContext
4646import androidx.compose.ui.res.colorResource
4747import androidx.compose.ui.text.style.TextDecoration
4848import androidx.compose.ui.unit.dp
@@ -64,6 +64,7 @@ import li.songe.gkd.ui.style.EmptyHeight
6464import li.songe.gkd.ui.style.itemPadding
6565import li.songe.gkd.ui.style.titleItemPadding
6666import li.songe.gkd.util.ISSUES_URL
67+ import li.songe.gkd.util.LocalMainViewModel
6768import li.songe.gkd.util.LocalNavController
6869import li.songe.gkd.util.ProfileTransitions
6970import li.songe.gkd.util.REPOSITORY_URL
@@ -87,7 +88,8 @@ import li.songe.gkd.util.toast
8788@Composable
8889fun AboutPage () {
8990 val navController = LocalNavController .current
90- val context = LocalContext .current as MainActivity
91+ val context = LocalActivity .current as MainActivity
92+ val mainVm = LocalMainViewModel .current
9193 val store by storeFlow.collectAsState()
9294
9395 var showInfoDlg by remember { mutableStateOf(false ) }
@@ -151,7 +153,7 @@ fun AboutPage() {
151153 text = " 分享到其他应用" , modifier = Modifier
152154 .clickable(onClick = throttle {
153155 showShareLogDlg = false
154- context. mainVm.viewModelScope.launchTry(Dispatchers .IO ) {
156+ mainVm.viewModelScope.launchTry(Dispatchers .IO ) {
155157 val logZipFile = buildLogFile()
156158 context.shareFile(logZipFile, " 分享日志文件" )
157159 }
@@ -162,7 +164,7 @@ fun AboutPage() {
162164 text = " 保存到下载" , modifier = Modifier
163165 .clickable(onClick = throttle {
164166 showShareLogDlg = false
165- context. mainVm.viewModelScope.launchTry(Dispatchers .IO ) {
167+ mainVm.viewModelScope.launchTry(Dispatchers .IO ) {
166168 val logZipFile = buildLogFile()
167169 context.saveFileToDownloads(logZipFile)
168170 }
@@ -174,7 +176,7 @@ fun AboutPage() {
174176 modifier = Modifier
175177 .clickable(onClick = throttle {
176178 showShareLogDlg = false
177- context. mainVm.uploadOptions.startTask(
179+ mainVm.uploadOptions.startTask(
178180 getFile = { buildLogFile() }
179181 )
180182 })
@@ -278,7 +280,7 @@ fun AboutPage() {
278280 )
279281 }
280282 if (META .updateEnabled) {
281- val checkUpdating by context. mainVm.updateStatus.checkUpdatingFlow.collectAsState()
283+ val checkUpdating by mainVm.updateStatus.checkUpdatingFlow.collectAsState()
282284 Text (
283285 text = " 更新" ,
284286 modifier = Modifier .titleItemPadding(),
@@ -299,10 +301,10 @@ fun AboutPage() {
299301 title = " 更新渠道" ,
300302 option = UpdateChannelOption .allSubObject.findOption(store.updateChannel)
301303 ) {
302- if (context. mainVm.updateStatus.checkUpdatingFlow.value) return @TextMenu
304+ if (mainVm.updateStatus.checkUpdatingFlow.value) return @TextMenu
303305 if (it.value == UpdateChannelOption .Beta .value) {
304- context. mainVm.viewModelScope.launchTry {
305- context. mainVm.dialogFlow.waitResult(
306+ mainVm.viewModelScope.launchTry {
307+ mainVm.dialogFlow.waitResult(
306308 title = " 版本渠道" ,
307309 text = " 测试版本渠道更新快\n 但不稳定可能存在较多BUG\n 请谨慎使用" ,
308310 )
@@ -316,9 +318,9 @@ fun AboutPage() {
316318 Row (
317319 modifier = Modifier
318320 .clickable(
319- onClick = throttle(fn = context. mainVm.viewModelScope.launchAsFn {
320- if (context. mainVm.updateStatus.checkUpdatingFlow.value) return @launchAsFn
321- val newVersion = context. mainVm.updateStatus.checkUpdate()
321+ onClick = throttle(fn = mainVm.viewModelScope.launchAsFn {
322+ if (mainVm.updateStatus.checkUpdatingFlow.value) return @launchAsFn
323+ val newVersion = mainVm.updateStatus.checkUpdate()
322324 if (newVersion == null ) {
323325 toast(" 暂无更新" )
324326 }
@@ -372,8 +374,8 @@ fun AboutPage() {
372374private fun AnimatedLogoIcon (
373375 modifier : Modifier = Modifier
374376) {
375- val context = LocalContext .current as MainActivity
376- val enableDarkTheme by context. mainVm.enableDarkThemeFlow.collectAsState()
377+ val mainVm = LocalMainViewModel .current
378+ val enableDarkTheme by mainVm.enableDarkThemeFlow.collectAsState()
377379 val darkTheme = enableDarkTheme ? : isSystemInDarkTheme()
378380 var atEnd by remember { mutableStateOf(false ) }
379381 val animation = AnimatedImageVector .animatedVectorResource(id = SafeR .ic_logo_animation)
0 commit comments