From fc76e6995fa9caf67f9ac1cb1b7bc2b3efa7649d Mon Sep 17 00:00:00 2001 From: acite <1498045907@qq.com> Date: Wed, 27 Aug 2025 00:43:02 +0800 Subject: [PATCH] [fix] Prevent mixed video lists when switching tabs quickly& Not confirming server information when updating accounts --- app/src/main/java/com/acitelight/aether/view/MeScreen.kt | 3 ++- .../com/acitelight/aether/viewModel/MeScreenViewModel.kt | 7 +++++-- .../acitelight/aether/viewModel/VideoScreenViewModel.kt | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/acitelight/aether/view/MeScreen.kt b/app/src/main/java/com/acitelight/aether/view/MeScreen.kt index 70709b5..98f43a5 100644 --- a/app/src/main/java/com/acitelight/aether/view/MeScreen.kt +++ b/app/src/main/java/com/acitelight/aether/view/MeScreen.kt @@ -106,7 +106,8 @@ fun MeScreen(meScreenViewModel: MeScreenViewModel = viewModel()) { onClick = { meScreenViewModel.updateAccount(username, privateKey, context) }, - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth(), + enabled = privateKey != "******" ) { Text("Save") } diff --git a/app/src/main/java/com/acitelight/aether/viewModel/MeScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/MeScreenViewModel.kt index 0df5c66..d79dd82 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/MeScreenViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/MeScreenViewModel.kt @@ -73,7 +73,7 @@ class MeScreenViewModel(application: Application) : AndroidViewModel(application val c = certFlow.first() val p = privateKeyFlow.first() - if (u == "" || c == "" || p == "") return@launch + if (u == "" || c == "" || p == "" || us == "") return@launch try { ApiClient.apply(u, c) @@ -105,7 +105,10 @@ class MeScreenViewModel(application: Application) : AndroidViewModel(application val u = userNameFlow.first() val p = privateKeyFlow.first() - if (u == "" || p == "") return@launch + val ur = urlFlow.first() + val c = certFlow.first() + + if (u == "" || p == "" || ur == "" || c == "") return@launch try { MediaManager.token = AuthManager.fetchToken( diff --git a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt index 6e21392..567afc1 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt @@ -63,8 +63,9 @@ class VideoScreenViewModel(application: Application) : AndroidViewModel(applicat suspend fun init() { _klasses.value = MediaManager.listVideoKlasses() + MediaManager.listVideos(_klasses.value.first()){ - v -> videos.add(videos.size, v) + v -> if(0 == tabIndex.value && !videos.contains(v)) videos.add(videos.size, v) } } @@ -73,10 +74,11 @@ class VideoScreenViewModel(application: Application) : AndroidViewModel(applicat viewModelScope.launch() { _tabIndex.intValue = index; + videos.clear() MediaManager.listVideos(_klasses.value[index]) { - v -> videos.add(videos.size, v) + v -> if(index == tabIndex.value) videos.add(videos.size, v) } } }