From a13ddbdd87a98c5a865ac429852f3465f7caa0f4 Mon Sep 17 00:00:00 2001 From: acite <1498045907@qq.com> Date: Mon, 6 Oct 2025 22:54:08 +0800 Subject: [PATCH] [feat] Live framework. --- .../kotlin-compiler-9235144448024609414.salive | 0 .../java/com/acitelight/aether/MainActivity.kt | 15 ++++++++++++++- .../acitelight/aether/view/pages/LiveScreen.kt | 13 +++++++++++++ .../aether/viewModel/LiveScreenViewModel.kt | 14 ++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) delete mode 100644 .kotlin/sessions/kotlin-compiler-9235144448024609414.salive create mode 100644 app/src/main/java/com/acitelight/aether/view/pages/LiveScreen.kt create mode 100644 app/src/main/java/com/acitelight/aether/viewModel/LiveScreenViewModel.kt diff --git a/.kotlin/sessions/kotlin-compiler-9235144448024609414.salive b/.kotlin/sessions/kotlin-compiler-9235144448024609414.salive deleted file mode 100644 index e69de29..0000000 diff --git a/app/src/main/java/com/acitelight/aether/MainActivity.kt b/app/src/main/java/com/acitelight/aether/MainActivity.kt index 398e455..87f45a4 100644 --- a/app/src/main/java/com/acitelight/aether/MainActivity.kt +++ b/app/src/main/java/com/acitelight/aether/MainActivity.kt @@ -56,6 +56,7 @@ import com.acitelight.aether.view.pages.ComicGridView import com.acitelight.aether.view.pages.ComicPageView import com.acitelight.aether.view.pages.ComicScreen import com.acitelight.aether.view.pages.HomeScreen +import com.acitelight.aether.view.pages.LiveScreen import com.acitelight.aether.view.pages.MeScreen import com.acitelight.aether.view.pages.TransmissionScreen import com.acitelight.aether.view.pages.VideoPlayer @@ -179,12 +180,21 @@ fun AppNavigation() { TransmissionScreen(navigator = navController) } } + + composable(Screen.Live.route, + enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Start, animationSpec = tween(200)) }, + exitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Start, animationSpec = tween(200)) }, + popEnterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.End, animationSpec = tween(200)) }, + popExitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.End, animationSpec = tween(200)) }) { + LiveScreen() + } + composable(Screen.Me.route, enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Start, animationSpec = tween(200)) }, exitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Start, animationSpec = tween(200)) }, popEnterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.End, animationSpec = tween(200)) }, popExitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.End, animationSpec = tween(200)) }) { - MeScreen(); + MeScreen() } composable( @@ -246,6 +256,7 @@ fun BottomNavigationBar(navController: NavController) { Screen.Video, Screen.Comic, Screen.Transmission, + Screen.Live, Screen.Me ) else listOf( Screen.Video, @@ -310,6 +321,8 @@ sealed class Screen(val route: String, val icon: ImageVector, val title: String) data object Comic : Screen("comic_route", Icons.Filled.Image, "Comic") data object Transmission : Screen("transmission_route", Icons.AutoMirrored.Filled.CompareArrows, "Transmission") + data object Live : Screen("live_route", + Icons.Filled.LiveTv, "Live") data object Me : Screen("me_route", Icons.Filled.AccountCircle, "me") data object VideoPlayer : Screen("video_player_route/{videoId}", Icons.Filled.PlayArrow, "VideoPlayer") data object ComicGrid : Screen("comic_grid_route/{comicId}", Icons.Filled.PlayArrow, "ComicGrid") diff --git a/app/src/main/java/com/acitelight/aether/view/pages/LiveScreen.kt b/app/src/main/java/com/acitelight/aether/view/pages/LiveScreen.kt new file mode 100644 index 0000000..e8ad433 --- /dev/null +++ b/app/src/main/java/com/acitelight/aether/view/pages/LiveScreen.kt @@ -0,0 +1,13 @@ +package com.acitelight.aether.view.pages + +import androidx.compose.runtime.Composable +import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel +import com.acitelight.aether.viewModel.LiveScreenViewModel + +@Composable +fun LiveScreen( + liveScreenViewModel: LiveScreenViewModel = hiltViewModel() +) +{ + +} \ No newline at end of file diff --git a/app/src/main/java/com/acitelight/aether/viewModel/LiveScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/LiveScreenViewModel.kt new file mode 100644 index 0000000..1e06bd4 --- /dev/null +++ b/app/src/main/java/com/acitelight/aether/viewModel/LiveScreenViewModel.kt @@ -0,0 +1,14 @@ +package com.acitelight.aether.viewModel + +import androidx.lifecycle.ViewModel +import com.acitelight.aether.service.ApiClient +import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject + + +@HiltViewModel +class LiveScreenViewModel @Inject constructor( + val apiClient: ApiClient +) : ViewModel(){ + +} \ No newline at end of file