diff --git a/.gitignore b/.gitignore index 47863df96..558351886 100644 --- a/.gitignore +++ b/.gitignore @@ -187,3 +187,4 @@ fabric.properties !/gradle/wrapper/gradle-wrapper.jar # End of https://www.toptal.com/developers/gitignore/api/android,androidstudio,kotlin +feature/build \ No newline at end of file diff --git a/app/src/main/java/team/aliens/dms_android/app/DmsNavHost.kt b/app/src/main/java/team/aliens/dms_android/app/DmsNavHost.kt index e14d256c7..329b93c46 100644 --- a/app/src/main/java/team/aliens/dms_android/app/DmsNavHost.kt +++ b/app/src/main/java/team/aliens/dms_android/app/DmsNavHost.kt @@ -6,7 +6,10 @@ import androidx.compose.ui.Modifier import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi import com.ramcosta.composedestinations.DestinationsNavHost import com.ramcosta.composedestinations.animations.rememberAnimatedNavHostEngine +import com.ramcosta.composedestinations.navigation.dependency +import com.ramcosta.composedestinations.utils.navGraph import team.aliens.dms_android.app.navigation.DmsNavGraph +import team.aliens.dms_android.app.navigation.DmsNavigator @OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialNavigationApi::class) @Composable @@ -15,10 +18,19 @@ fun DmsNavHost( autoSignIn: Boolean, ) { val engine = rememberAnimatedNavHostEngine() + val navController = engine.rememberNavController() DestinationsNavHost( modifier = modifier, engine = engine, navGraph = DmsNavGraph.root(autoSignIn = autoSignIn), + dependenciesContainerBuilder = { + dependency( + DmsNavigator( + navGraph = navBackStackEntry.navGraph(), + navController = navController, + ) + ) + }, ) } diff --git a/app/src/main/java/team/aliens/dms_android/app/MainActivity.kt b/app/src/main/java/team/aliens/dms_android/app/MainActivity.kt index 8db95af9e..d836cd492 100644 --- a/app/src/main/java/team/aliens/dms_android/app/MainActivity.kt +++ b/app/src/main/java/team/aliens/dms_android/app/MainActivity.kt @@ -11,6 +11,8 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle import dagger.hilt.android.AndroidEntryPoint +import team.aliens.dms_android.design_system.toast.ToastLayout +import team.aliens.dms_android.design_system.toast.rememberToastState @AndroidEntryPoint class MainActivity : ComponentActivity() { @@ -20,14 +22,20 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { val autoSignIn by viewModel.autoSignInAvailable.collectAsStateWithLifecycle() + val toast = rememberToastState() - if (autoSignIn != null) { - DmsApp( - modifier = Modifier.fillMaxSize(), - autoSignIn = autoSignIn!!, - ) - } else { - Text(text = "LOADING, SPLASH") + ToastLayout( + modifier = Modifier.fillMaxSize(), + toastState = toast, + ) { + if (autoSignIn != null) { + DmsApp( + modifier = Modifier.fillMaxSize(), + autoSignIn = autoSignIn!!, + ) + } else { + Text(text = "LOADING, SPLASH") + } } } } diff --git a/app/src/main/java/team/aliens/dms_android/app/di/navigation/NavGraphModule.kt b/app/src/main/java/team/aliens/dms_android/app/di/navigation/NavGraphModule.kt new file mode 100644 index 000000000..771b82f52 --- /dev/null +++ b/app/src/main/java/team/aliens/dms_android/app/di/navigation/NavGraphModule.kt @@ -0,0 +1,19 @@ +package team.aliens.dms_android.app.di.navigation + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import team.aliens.dms_android.feature.NavGraph +import team.aliens.dms_android.feature.NavGraphs +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object NavGraphModule { + + @Provides + @Singleton + @RootNavGraph + fun provideRootNavGraph(): NavGraph = NavGraphs.root +} diff --git a/app/src/main/java/team/aliens/dms_android/app/di/navigation/Qualifiers.kt b/app/src/main/java/team/aliens/dms_android/app/di/navigation/Qualifiers.kt new file mode 100644 index 000000000..0da0dda6a --- /dev/null +++ b/app/src/main/java/team/aliens/dms_android/app/di/navigation/Qualifiers.kt @@ -0,0 +1,8 @@ +package team.aliens.dms_android.app.di.navigation + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.BINARY) +annotation class RootNavGraph diff --git a/app/src/main/java/team/aliens/dms_android/app/navigation/DmsNavigator.kt b/app/src/main/java/team/aliens/dms_android/app/navigation/DmsNavigator.kt index 5823f7e02..036069dd0 100644 --- a/app/src/main/java/team/aliens/dms_android/app/navigation/DmsNavigator.kt +++ b/app/src/main/java/team/aliens/dms_android/app/navigation/DmsNavigator.kt @@ -1,122 +1,185 @@ package team.aliens.dms_android.app.navigation +import androidx.navigation.NavHostController +import com.ramcosta.composedestinations.dynamic.within +import com.ramcosta.composedestinations.navigation.navigate +import com.ramcosta.composedestinations.navigation.popUpTo +import com.ramcosta.composedestinations.spec.NavGraphSpec +import team.aliens.dms_android.app.navigation.authorized.AuthorizedNavGraph import team.aliens.dms_android.app.navigation.authorized.AuthorizedNavigator +import team.aliens.dms_android.app.navigation.unauthorized.UnauthorizedNavGraph import team.aliens.dms_android.app.navigation.unauthorized.UnauthorizedNavigator +import team.aliens.dms_android.feature._legacy.util.SelectImageType +import team.aliens.dms_android.feature.destinations.AnnouncementListScreenDestination +import team.aliens.dms_android.feature.destinations.ApplicationScreenDestination +import team.aliens.dms_android.feature.destinations.EditPasswordSetPasswordScreenDestination +import team.aliens.dms_android.feature.destinations.EditProfileImageScreenDestination +import team.aliens.dms_android.feature.destinations.EnterEmailScreenDestination +import team.aliens.dms_android.feature.destinations.EnterSchoolVerificationQuestionScreenDestination +import team.aliens.dms_android.feature.destinations.FindIdScreenDestination +import team.aliens.dms_android.feature.destinations.HomeScreenDestination +import team.aliens.dms_android.feature.destinations.MyPageScreenDestination +import team.aliens.dms_android.feature.destinations.NoticeDetailsScreenDestination +import team.aliens.dms_android.feature.destinations.NotificationBoxScreenDestination +import team.aliens.dms_android.feature.destinations.PointHistoryScreenDestination +import team.aliens.dms_android.feature.destinations.RemainsApplicationScreenDestination +import team.aliens.dms_android.feature.destinations.ResetPasswordEnterEmailVerificationCodeScreenDestination +import team.aliens.dms_android.feature.destinations.ResetPasswordSetPasswordScreenDestination +import team.aliens.dms_android.feature.destinations.SetIdScreenDestination +import team.aliens.dms_android.feature.destinations.SetProfileImageScreenDestination +import team.aliens.dms_android.feature.destinations.SignInScreenDestination +import team.aliens.dms_android.feature.destinations.SignUpEnterEmailVerificationCodeScreenDestination +import team.aliens.dms_android.feature.destinations.SignUpSetPasswordScreenDestination +import team.aliens.dms_android.feature.destinations.StudyRoomDetailsScreenDestination +import team.aliens.dms_android.feature.destinations.StudyRoomListScreenDestination +import team.aliens.dms_android.feature.destinations.TermsScreenDestination +import team.aliens.dms_android.feature.editpassword.navigation.EditPasswordNavGraph +import team.aliens.dms_android.feature.resetpassword.navigation.ResetPasswordNavGraph +import team.aliens.dms_android.feature.signup.navigation.SignUpNavGraph import java.util.UUID -import javax.inject.Inject -interface DmsNavigator : AuthorizedNavigator, UnauthorizedNavigator - -class DmsNavigatorImpl @Inject constructor() : DmsNavigator { - override fun openSetPassword() { - TODO("Not yet implemented") +class DmsNavigator( + private val navGraph: NavGraphSpec, + private val navController: NavHostController, +) : AuthorizedNavigator, + UnauthorizedNavigator { + override fun openEditPasswordSetPasswordNav() { + navController.navigate(EditPasswordSetPasswordScreenDestination within navGraph) } override fun openSignIn() { - TODO("Not yet implemented") + navController.navigate(SignInScreenDestination within navGraph) } override fun popBackStack() { - TODO("Not yet implemented") + navController.popBackStack() + } + + override fun navigateUp() { + navController.navigateUp() } override fun openHome() { - TODO("Not yet implemented") + navController.navigate(HomeScreenDestination within navGraph) } override fun openApplication() { - TODO("Not yet implemented") + navController.navigate(ApplicationScreenDestination within navGraph) } override fun openAnnouncementList() { - TODO("Not yet implemented") + navController.navigate(AnnouncementListScreenDestination within navGraph) } override fun openMyPage() { - TODO("Not yet implemented") + navController.navigate(MyPageScreenDestination within navGraph) } override fun openNoticeDetails(noticeId: UUID) { - TODO("Not yet implemented") + navController.navigate(NoticeDetailsScreenDestination(noticeId = noticeId) within navGraph) } override fun openStudyRoomList() { - TODO("Not yet implemented") + navController.navigate(StudyRoomListScreenDestination within navGraph) } override fun openRemainsApplication() { - TODO("Not yet implemented") + navController.navigate(RemainsApplicationScreenDestination within navGraph) } override fun openNotificationBox() { - TODO("Not yet implemented") + navController.navigate(NotificationBoxScreenDestination within navGraph) } override fun openPointHistory() { - TODO("Not yet implemented") + navController.navigate(PointHistoryScreenDestination within navGraph) } - override fun openEditPassword() { - TODO("Not yet implemented") + override fun openEditPasswordNav() { + navController.navigate(EditPasswordNavGraph) { + restoreState = true + launchSingleTop = true + } } - override fun switchNavGraphRoot() { - TODO("Not yet implemented") + override fun openEditProfileImage(selectImageType: SelectImageType) { + // TODO + navController.navigate(EditProfileImageScreenDestination(selectImageType) within navGraph) } override fun openResetPasswordEnterEmailVerificationCode() { - TODO("Not yet implemented") + navController.navigate(ResetPasswordEnterEmailVerificationCodeScreenDestination within navGraph) } override fun openResetPasswordSetPassword() { - TODO("Not yet implemented") + navController.navigate(ResetPasswordSetPasswordScreenDestination) } - override fun openMain() { - TODO("Not yet implemented") + override fun openAuthorizedNav() { + navController.navigate(AuthorizedNavGraph) { + popUpTo(UnauthorizedNavGraph) { + inclusive = true + } + } } - override fun openSignUp() { - TODO("Not yet implemented") + override fun openUnauthorizedNav() { + navController.navigate(UnauthorizedNavGraph) { + popUpTo(AuthorizedNavGraph) { + inclusive = true + } + } + } + + override fun openSignUpNav() { + navController.navigate(SignUpNavGraph) } override fun openFindId() { - TODO("Not yet implemented") + navController.navigate(FindIdScreenDestination within navGraph) } - override fun openResetPassword() { - TODO("Not yet implemented") + override fun openResetPasswordNav() { + navController.navigate(ResetPasswordNavGraph) } override fun openEnterSchoolVerificationQuestion() { - TODO("Not yet implemented") + navController.navigate(EnterSchoolVerificationQuestionScreenDestination within navGraph) } override fun openEnterEmail(clearStack: Boolean) { - TODO("Not yet implemented") + navController.navigate(EnterEmailScreenDestination within navGraph) } override fun openSignUpEnterEmailVerificationCode() { - TODO("Not yet implemented") + navController.navigate(SignUpEnterEmailVerificationCodeScreenDestination within navGraph) } override fun openSetId() { - TODO("Not yet implemented") + navController.navigate(SetIdScreenDestination within navGraph) } override fun openSignUpSetPassword() { - TODO("Not yet implemented") + navController.navigate(SignUpSetPasswordScreenDestination within navGraph) } override fun openSetProfileImage() { - TODO("Not yet implemented") + navController.navigate(SetProfileImageScreenDestination within navGraph) } override fun openTerms() { - TODO("Not yet implemented") - } - - override fun openStudyRoomDetails(studyRoomId: UUID, timeslot: UUID) { - TODO("Not yet implemented") + navController.navigate(TermsScreenDestination within navGraph) + } + + override fun openStudyRoomDetails( + studyRoomId: UUID, + timeslot: UUID, + ) { + navController.navigate( + StudyRoomDetailsScreenDestination( + studyRoomId = studyRoomId, + timeslot = timeslot, + ) within navGraph, + ) } } diff --git a/core/jwt/src/main/java/team/aliens/dms_android/core/jwt/di/Qualifier.kt b/core/jwt/src/main/java/team/aliens/dms_android/core/jwt/di/Qualifiers.kt similarity index 100% rename from core/jwt/src/main/java/team/aliens/dms_android/core/jwt/di/Qualifier.kt rename to core/jwt/src/main/java/team/aliens/dms_android/core/jwt/di/Qualifiers.kt diff --git a/core/network/src/main/java/team/aliens/dms_android/core/network/di/Qualifier.kt b/core/network/src/main/java/team/aliens/dms_android/core/network/di/Qualifiers.kt similarity index 100% rename from core/network/src/main/java/team/aliens/dms_android/core/network/di/Qualifier.kt rename to core/network/src/main/java/team/aliens/dms_android/core/network/di/Qualifiers.kt diff --git a/core/project/src/main/java/team/aliens/dms_android/core/project/di/Qualifier.kt b/core/project/src/main/java/team/aliens/dms_android/core/project/di/Qualifiers.kt similarity index 100% rename from core/project/src/main/java/team/aliens/dms_android/core/project/di/Qualifier.kt rename to core/project/src/main/java/team/aliens/dms_android/core/project/di/Qualifiers.kt diff --git a/design-system/src/main/java/team/aliens/dms_android/design_system/toast/toast.kt b/design-system/src/main/java/team/aliens/dms_android/design_system/toast/toast.kt index f19f4669b..1f6a3a6f6 100644 --- a/design-system/src/main/java/team/aliens/dms_android/design_system/toast/toast.kt +++ b/design-system/src/main/java/team/aliens/dms_android/design_system/toast/toast.kt @@ -182,7 +182,7 @@ fun rememberToastState(): ToastState { } @Composable -fun DormToastLayout( +fun ToastLayout( modifier: Modifier = Modifier, toastState: ToastState, toastHost: @Composable (ToastState) -> Unit = { DormToastHost(it) }, diff --git a/feature/.gitignore b/feature/.gitignore index dab276d59..ce62d9589 100644 --- a/feature/.gitignore +++ b/feature/.gitignore @@ -1,4 +1 @@ -build/ -build/**/main/ -build/**/main/**/*.kt -build/**/main/**/*.java +feature/build diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_Factory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_Factory.java deleted file mode 100644 index d86e1228c..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_Factory.java +++ /dev/null @@ -1,44 +0,0 @@ -package team.aliens.dms_android.feature.main.announcement; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; -import javax.inject.Provider; -import team.aliens.dms_android.domain.usecase.notice.FetchNoticesUseCase; - -@ScopeMetadata -@QualifierMetadata -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class AnnouncementsViewModel_Factory implements Factory { - private final Provider fetchNoticesUseCaseProvider; - - public AnnouncementsViewModel_Factory(Provider fetchNoticesUseCaseProvider) { - this.fetchNoticesUseCaseProvider = fetchNoticesUseCaseProvider; - } - - @Override - public AnnouncementsViewModel get() { - return newInstance(fetchNoticesUseCaseProvider.get()); - } - - public static AnnouncementsViewModel_Factory create( - Provider fetchNoticesUseCaseProvider) { - return new AnnouncementsViewModel_Factory(fetchNoticesUseCaseProvider); - } - - public static AnnouncementsViewModel newInstance(FetchNoticesUseCase fetchNoticesUseCase) { - return new AnnouncementsViewModel(fetchNoticesUseCase); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules.java deleted file mode 100644 index 11cce43eb..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules.java +++ /dev/null @@ -1,52 +0,0 @@ -package team.aliens.dms_android.feature.main.announcement; - -import androidx.lifecycle.ViewModel; -import dagger.Binds; -import dagger.Module; -import dagger.Provides; -import dagger.hilt.InstallIn; -import dagger.hilt.android.components.ActivityRetainedComponent; -import dagger.hilt.android.components.ViewModelComponent; -import dagger.hilt.android.internal.lifecycle.HiltViewModelMap; -import dagger.hilt.codegen.OriginatingElement; -import dagger.multibindings.IntoMap; -import dagger.multibindings.IntoSet; -import dagger.multibindings.StringKey; -import java.lang.String; -import javax.annotation.processing.Generated; - -@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor") -@OriginatingElement( - topLevelClass = AnnouncementsViewModel.class -) -public final class AnnouncementsViewModel_HiltModules { - private AnnouncementsViewModel_HiltModules() { - } - - @Module - @InstallIn(ViewModelComponent.class) - public abstract static class BindsModule { - private BindsModule() { - } - - @Binds - @IntoMap - @StringKey("team.aliens.dms_android.feature.main.announcements.AnnouncementsViewModel") - @HiltViewModelMap - public abstract ViewModel binds(AnnouncementsViewModel vm); - } - - @Module - @InstallIn(ActivityRetainedComponent.class) - public static final class KeyModule { - private KeyModule() { - } - - @Provides - @IntoSet - @HiltViewModelMap.KeySet - public static String provide() { - return "team.aliens.dms_android.feature.main.announcements.AnnouncementsViewModel"; - } - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory.java deleted file mode 100644 index fc0bbff4c..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/announcement/AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package team.aliens.dms_android.feature.main.announcement; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; - -@ScopeMetadata -@QualifierMetadata("dagger.hilt.android.internal.lifecycle.HiltViewModelMap.KeySet") -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory implements Factory { - @Override - public String get() { - return provide(); - } - - public static AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory create() { - return InstanceHolder.INSTANCE; - } - - public static String provide() { - return Preconditions.checkNotNullFromProvides(AnnouncementsViewModel_HiltModules.KeyModule.provide()); - } - - private static final class InstanceHolder { - private static final AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory INSTANCE = new AnnouncementsViewModel_HiltModules_KeyModule_ProvideFactory(); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_Factory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_Factory.java deleted file mode 100644 index 6cc344efe..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_Factory.java +++ /dev/null @@ -1,53 +0,0 @@ -package team.aliens.dms_android.feature.main.application; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; -import javax.inject.Provider; -import team.aliens.dms_android.domain.usecase.remain.FetchCurrentAppliedRemainsOptionUseCase; -import team.aliens.dms_android.domain.usecase.studyroom.FetchCurrentAppliedStudyRoomUseCase; - -@ScopeMetadata -@QualifierMetadata -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class ApplicationViewModel_Factory implements Factory { - private final Provider fetchCurrentAppliedStudyRoomUseCaseProvider; - - private final Provider fetchCurrentAppliedRemainsOptionUseCaseProvider; - - public ApplicationViewModel_Factory( - Provider fetchCurrentAppliedStudyRoomUseCaseProvider, - Provider fetchCurrentAppliedRemainsOptionUseCaseProvider) { - this.fetchCurrentAppliedStudyRoomUseCaseProvider = fetchCurrentAppliedStudyRoomUseCaseProvider; - this.fetchCurrentAppliedRemainsOptionUseCaseProvider = fetchCurrentAppliedRemainsOptionUseCaseProvider; - } - - @Override - public ApplicationViewModel get() { - return newInstance(fetchCurrentAppliedStudyRoomUseCaseProvider.get(), fetchCurrentAppliedRemainsOptionUseCaseProvider.get()); - } - - public static ApplicationViewModel_Factory create( - Provider fetchCurrentAppliedStudyRoomUseCaseProvider, - Provider fetchCurrentAppliedRemainsOptionUseCaseProvider) { - return new ApplicationViewModel_Factory(fetchCurrentAppliedStudyRoomUseCaseProvider, fetchCurrentAppliedRemainsOptionUseCaseProvider); - } - - public static ApplicationViewModel newInstance( - FetchCurrentAppliedStudyRoomUseCase fetchCurrentAppliedStudyRoomUseCase, - FetchCurrentAppliedRemainsOptionUseCase fetchCurrentAppliedRemainsOptionUseCase) { - return new ApplicationViewModel(fetchCurrentAppliedStudyRoomUseCase, fetchCurrentAppliedRemainsOptionUseCase); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_HiltModules.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_HiltModules.java deleted file mode 100644 index c9edf7641..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/application/ApplicationViewModel_HiltModules.java +++ /dev/null @@ -1,52 +0,0 @@ -package team.aliens.dms_android.feature.main.application; - -import androidx.lifecycle.ViewModel; -import dagger.Binds; -import dagger.Module; -import dagger.Provides; -import dagger.hilt.InstallIn; -import dagger.hilt.android.components.ActivityRetainedComponent; -import dagger.hilt.android.components.ViewModelComponent; -import dagger.hilt.android.internal.lifecycle.HiltViewModelMap; -import dagger.hilt.codegen.OriginatingElement; -import dagger.multibindings.IntoMap; -import dagger.multibindings.IntoSet; -import dagger.multibindings.StringKey; -import java.lang.String; -import javax.annotation.processing.Generated; - -@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor") -@OriginatingElement( - topLevelClass = ApplicationViewModel.class -) -public final class ApplicationViewModel_HiltModules { - private ApplicationViewModel_HiltModules() { - } - - @Module - @InstallIn(ViewModelComponent.class) - public abstract static class BindsModule { - private BindsModule() { - } - - @Binds - @IntoMap - @StringKey("team.aliens.dms_android.feature.main.application.ApplicationViewModel") - @HiltViewModelMap - public abstract ViewModel binds(ApplicationViewModel vm); - } - - @Module - @InstallIn(ActivityRetainedComponent.class) - public static final class KeyModule { - private KeyModule() { - } - - @Provides - @IntoSet - @HiltViewModelMap.KeySet - public static String provide() { - return "team.aliens.dms_android.feature.main.application.ApplicationViewModel"; - } - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_Factory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_Factory.java deleted file mode 100644 index 54015aef6..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_Factory.java +++ /dev/null @@ -1,57 +0,0 @@ -package team.aliens.dms_android.feature.main.mypage; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; -import javax.inject.Provider; -import team.aliens.dms_android.domain.usecase.auth.SignOutUseCase; -import team.aliens.dms_android.domain.usecase.student.FetchMyPageUseCase; -import team.aliens.dms_android.domain.usecase.student.WithdrawUseCase; - -@ScopeMetadata -@QualifierMetadata -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class MyPageViewModel_Factory implements Factory { - private final Provider fetchMyPageUseCaseProvider; - - private final Provider signOutUseCaseProvider; - - private final Provider withdrawUseCaseProvider; - - public MyPageViewModel_Factory(Provider fetchMyPageUseCaseProvider, - Provider signOutUseCaseProvider, - Provider withdrawUseCaseProvider) { - this.fetchMyPageUseCaseProvider = fetchMyPageUseCaseProvider; - this.signOutUseCaseProvider = signOutUseCaseProvider; - this.withdrawUseCaseProvider = withdrawUseCaseProvider; - } - - @Override - public MyPageViewModel get() { - return newInstance(fetchMyPageUseCaseProvider.get(), signOutUseCaseProvider.get(), withdrawUseCaseProvider.get()); - } - - public static MyPageViewModel_Factory create( - Provider fetchMyPageUseCaseProvider, - Provider signOutUseCaseProvider, - Provider withdrawUseCaseProvider) { - return new MyPageViewModel_Factory(fetchMyPageUseCaseProvider, signOutUseCaseProvider, withdrawUseCaseProvider); - } - - public static MyPageViewModel newInstance(FetchMyPageUseCase fetchMyPageUseCase, - SignOutUseCase signOutUseCase, WithdrawUseCase withdrawUseCase) { - return new MyPageViewModel(fetchMyPageUseCase, signOutUseCase, withdrawUseCase); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_HiltModules.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_HiltModules.java deleted file mode 100644 index 28b263d0b..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/main/mypage/MyPageViewModel_HiltModules.java +++ /dev/null @@ -1,52 +0,0 @@ -package team.aliens.dms_android.feature.main.mypage; - -import androidx.lifecycle.ViewModel; -import dagger.Binds; -import dagger.Module; -import dagger.Provides; -import dagger.hilt.InstallIn; -import dagger.hilt.android.components.ActivityRetainedComponent; -import dagger.hilt.android.components.ViewModelComponent; -import dagger.hilt.android.internal.lifecycle.HiltViewModelMap; -import dagger.hilt.codegen.OriginatingElement; -import dagger.multibindings.IntoMap; -import dagger.multibindings.IntoSet; -import dagger.multibindings.StringKey; -import java.lang.String; -import javax.annotation.processing.Generated; - -@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor") -@OriginatingElement( - topLevelClass = MyPageViewModel.class -) -public final class MyPageViewModel_HiltModules { - private MyPageViewModel_HiltModules() { - } - - @Module - @InstallIn(ViewModelComponent.class) - public abstract static class BindsModule { - private BindsModule() { - } - - @Binds - @IntoMap - @StringKey("team.aliens.dms_android.feature.main.mypage.MyPageViewModel") - @HiltViewModelMap - public abstract ViewModel binds(MyPageViewModel vm); - } - - @Module - @InstallIn(ActivityRetainedComponent.class) - public static final class KeyModule { - private KeyModule() { - } - - @Provides - @IntoSet - @HiltViewModelMap.KeySet - public static String provide() { - return "team.aliens.dms_android.feature.main.mypage.MyPageViewModel"; - } - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_Factory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_Factory.java deleted file mode 100644 index 2d76b5a8c..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_Factory.java +++ /dev/null @@ -1,46 +0,0 @@ -package team.aliens.dms_android.feature.notification; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; -import javax.inject.Provider; -import team.aliens.dms_android.domain.usecase.notification.FetchNotificationsUseCase; - -@ScopeMetadata -@QualifierMetadata -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class NotificationBoxViewModel_Factory implements Factory { - private final Provider fetchNotificationsUseCaseProvider; - - public NotificationBoxViewModel_Factory( - Provider fetchNotificationsUseCaseProvider) { - this.fetchNotificationsUseCaseProvider = fetchNotificationsUseCaseProvider; - } - - @Override - public NotificationBoxViewModel get() { - return newInstance(fetchNotificationsUseCaseProvider.get()); - } - - public static NotificationBoxViewModel_Factory create( - Provider fetchNotificationsUseCaseProvider) { - return new NotificationBoxViewModel_Factory(fetchNotificationsUseCaseProvider); - } - - public static NotificationBoxViewModel newInstance( - FetchNotificationsUseCase fetchNotificationsUseCase) { - return new NotificationBoxViewModel(fetchNotificationsUseCase); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules.java deleted file mode 100644 index eec488c01..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules.java +++ /dev/null @@ -1,52 +0,0 @@ -package team.aliens.dms_android.feature.notification; - -import androidx.lifecycle.ViewModel; -import dagger.Binds; -import dagger.Module; -import dagger.Provides; -import dagger.hilt.InstallIn; -import dagger.hilt.android.components.ActivityRetainedComponent; -import dagger.hilt.android.components.ViewModelComponent; -import dagger.hilt.android.internal.lifecycle.HiltViewModelMap; -import dagger.hilt.codegen.OriginatingElement; -import dagger.multibindings.IntoMap; -import dagger.multibindings.IntoSet; -import dagger.multibindings.StringKey; -import java.lang.String; -import javax.annotation.processing.Generated; - -@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor") -@OriginatingElement( - topLevelClass = NotificationBoxViewModel.class -) -public final class NotificationBoxViewModel_HiltModules { - private NotificationBoxViewModel_HiltModules() { - } - - @Module - @InstallIn(ViewModelComponent.class) - public abstract static class BindsModule { - private BindsModule() { - } - - @Binds - @IntoMap - @StringKey("team.aliens.dms_android.feature.notificationbox.NotificationBoxViewModel") - @HiltViewModelMap - public abstract ViewModel binds(NotificationBoxViewModel vm); - } - - @Module - @InstallIn(ActivityRetainedComponent.class) - public static final class KeyModule { - private KeyModule() { - } - - @Provides - @IntoSet - @HiltViewModelMap.KeySet - public static String provide() { - return "team.aliens.dms_android.feature.notificationbox.NotificationBoxViewModel"; - } - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory.java deleted file mode 100644 index 11482da59..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/notification/NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package team.aliens.dms_android.feature.notification; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; - -@ScopeMetadata -@QualifierMetadata("dagger.hilt.android.internal.lifecycle.HiltViewModelMap.KeySet") -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory implements Factory { - @Override - public String get() { - return provide(); - } - - public static NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory create() { - return InstanceHolder.INSTANCE; - } - - public static String provide() { - return Preconditions.checkNotNullFromProvides(NotificationBoxViewModel_HiltModules.KeyModule.provide()); - } - - private static final class InstanceHolder { - private static final NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory INSTANCE = new NotificationBoxViewModel_HiltModules_KeyModule_ProvideFactory(); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_Factory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_Factory.java deleted file mode 100644 index 1edc695b8..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_Factory.java +++ /dev/null @@ -1,44 +0,0 @@ -package team.aliens.dms_android.feature.point; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; -import javax.inject.Provider; -import team.aliens.dms_android.domain.usecase.point.FetchPointsUseCase; - -@ScopeMetadata -@QualifierMetadata -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class PointHistoryViewModel_Factory implements Factory { - private final Provider fetchPointsUseCaseProvider; - - public PointHistoryViewModel_Factory(Provider fetchPointsUseCaseProvider) { - this.fetchPointsUseCaseProvider = fetchPointsUseCaseProvider; - } - - @Override - public PointHistoryViewModel get() { - return newInstance(fetchPointsUseCaseProvider.get()); - } - - public static PointHistoryViewModel_Factory create( - Provider fetchPointsUseCaseProvider) { - return new PointHistoryViewModel_Factory(fetchPointsUseCaseProvider); - } - - public static PointHistoryViewModel newInstance(FetchPointsUseCase fetchPointsUseCase) { - return new PointHistoryViewModel(fetchPointsUseCase); - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules.java deleted file mode 100644 index d0fbea7b3..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules.java +++ /dev/null @@ -1,52 +0,0 @@ -package team.aliens.dms_android.feature.point; - -import androidx.lifecycle.ViewModel; -import dagger.Binds; -import dagger.Module; -import dagger.Provides; -import dagger.hilt.InstallIn; -import dagger.hilt.android.components.ActivityRetainedComponent; -import dagger.hilt.android.components.ViewModelComponent; -import dagger.hilt.android.internal.lifecycle.HiltViewModelMap; -import dagger.hilt.codegen.OriginatingElement; -import dagger.multibindings.IntoMap; -import dagger.multibindings.IntoSet; -import dagger.multibindings.StringKey; -import java.lang.String; -import javax.annotation.processing.Generated; - -@Generated("dagger.hilt.android.processor.internal.viewmodel.ViewModelProcessor") -@OriginatingElement( - topLevelClass = PointHistoryViewModel.class -) -public final class PointHistoryViewModel_HiltModules { - private PointHistoryViewModel_HiltModules() { - } - - @Module - @InstallIn(ViewModelComponent.class) - public abstract static class BindsModule { - private BindsModule() { - } - - @Binds - @IntoMap - @StringKey("team.aliens.dms_android.feature.pointhistory.PointHistoryViewModel") - @HiltViewModelMap - public abstract ViewModel binds(PointHistoryViewModel vm); - } - - @Module - @InstallIn(ActivityRetainedComponent.class) - public static final class KeyModule { - private KeyModule() { - } - - @Provides - @IntoSet - @HiltViewModelMap.KeySet - public static String provide() { - return "team.aliens.dms_android.feature.pointhistory.PointHistoryViewModel"; - } - } -} diff --git a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory.java b/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory.java deleted file mode 100644 index 8d76f7688..000000000 --- a/feature/build/generated/ksp/debug/java/team/aliens/dms_android/feature/point/PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -package team.aliens.dms_android.feature.point; - -import dagger.internal.DaggerGenerated; -import dagger.internal.Factory; -import dagger.internal.Preconditions; -import dagger.internal.QualifierMetadata; -import dagger.internal.ScopeMetadata; -import javax.annotation.processing.Generated; - -@ScopeMetadata -@QualifierMetadata("dagger.hilt.android.internal.lifecycle.HiltViewModelMap.KeySet") -@DaggerGenerated -@Generated( - value = "dagger.internal.codegen.ComponentProcessor", - comments = "https://dagger.dev" -) -@SuppressWarnings({ - "unchecked", - "rawtypes", - "KotlinInternal", - "KotlinInternalInJava" -}) -public final class PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory implements Factory { - @Override - public String get() { - return provide(); - } - - public static PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory create() { - return InstanceHolder.INSTANCE; - } - - public static String provide() { - return Preconditions.checkNotNullFromProvides(PointHistoryViewModel_HiltModules.KeyModule.provide()); - } - - private static final class InstanceHolder { - private static final PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory INSTANCE = new PointHistoryViewModel_HiltModules_KeyModule_ProvideFactory(); - } -} diff --git a/feature/src/main/java/team/aliens/dms_android/feature/_legacy/util/SelectImageType.kt b/feature/src/main/java/team/aliens/dms_android/feature/_legacy/util/SelectImageType.kt index 4eb1450e5..aada72222 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/_legacy/util/SelectImageType.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/_legacy/util/SelectImageType.kt @@ -2,6 +2,6 @@ package team.aliens.dms_android.feature._legacy.util // todo 적절한 장소로 이동 enum class SelectImageType { - TAKE_PHOTO, SELECT_FROM_GALLERY, + TAKE_PHOTO, SELECT_FROM_GALLERY, NONE, ; } diff --git a/feature/src/main/java/team/aliens/dms_android/feature/editpassword/1_ConfirmPasswordScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/editpassword/1_ConfirmPasswordScreen.kt index febb0ae29..672aa5c33 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/editpassword/1_ConfirmPasswordScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/editpassword/1_ConfirmPasswordScreen.kt @@ -62,7 +62,7 @@ fun ConfirmPasswordScreen( LaunchedEffect(Unit) { changePasswordViewModel.editPasswordEffect.collect { when (it) { - is ChangePasswordViewModel.Event.ComparePasswordSuccess -> navigator.openSetPassword() + is ChangePasswordViewModel.Event.ComparePasswordSuccess -> navigator.openEditPasswordSetPasswordNav() is ChangePasswordViewModel.Event.UnauthorizedException -> { isError = true diff --git a/feature/src/main/java/team/aliens/dms_android/feature/editpassword/navigation/EditPasswordNavigator.kt b/feature/src/main/java/team/aliens/dms_android/feature/editpassword/navigation/EditPasswordNavigator.kt index e0c4530bb..92b1e0c01 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/editpassword/navigation/EditPasswordNavigator.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/editpassword/navigation/EditPasswordNavigator.kt @@ -1,7 +1,7 @@ package team.aliens.dms_android.feature.editpassword.navigation interface EditPasswordNavigator { - fun openSetPassword() + fun openEditPasswordSetPasswordNav() fun openSignIn() fun popBackStack() diff --git a/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageScreen.kt index aacb87893..463300368 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageScreen.kt @@ -95,6 +95,7 @@ internal fun EditProfileImageScreen( } SelectImageType.SELECT_FROM_GALLERY -> onSelectPhoto() + else -> {} } } diff --git a/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageViewModel.kt b/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageViewModel.kt index 2c656a6e2..a1776d8bf 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageViewModel.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/editprofile/EditProfileImageViewModel.kt @@ -7,14 +7,14 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import team.aliens.dms_android.feature._legacy.base.BaseMviViewModel -import team.aliens.dms_android.feature._legacy.base.MviIntent -import team.aliens.dms_android.feature._legacy.base.MviSideEffect -import team.aliens.dms_android.feature._legacy.base.MviState import team.aliens.dms_android.domain.model.file.UploadFileInput import team.aliens.dms_android.domain.model.student.EditProfileInput import team.aliens.dms_android.domain.usecase.file.UploadFileUseCase import team.aliens.dms_android.domain.usecase.student.EditProfileUseCase +import team.aliens.dms_android.feature._legacy.base.BaseMviViewModel +import team.aliens.dms_android.feature._legacy.base.MviIntent +import team.aliens.dms_android.feature._legacy.base.MviSideEffect +import team.aliens.dms_android.feature._legacy.base.MviState import javax.inject.Inject @HiltViewModel diff --git a/feature/src/main/java/team/aliens/dms_android/feature/findid/navigator/FindIdNavigator.kt b/feature/src/main/java/team/aliens/dms_android/feature/findid/navigator/FindIdNavigator.kt index 08cf387e9..eb1a9e0d4 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/findid/navigator/FindIdNavigator.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/findid/navigator/FindIdNavigator.kt @@ -4,4 +4,5 @@ interface FindIdNavigator { fun openSignIn() fun popBackStack() + fun navigateUp() } diff --git a/feature/src/main/java/team/aliens/dms_android/feature/main/mypage/MyPageScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/main/mypage/MyPageScreen.kt index 8df17d85f..e31abe1be 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/main/mypage/MyPageScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/main/mypage/MyPageScreen.kt @@ -78,7 +78,7 @@ internal fun MyPageScreen( subBtnText = stringResource(R.string.cancel), onMainBtnClick = { myPageViewModel.postIntent(MyPageIntent.SignOut) - navigator.switchNavGraphRoot() + navigator.openUnauthorizedNav() signOutDialogState = false }, onSubBtnClick = { @@ -99,7 +99,7 @@ internal fun MyPageScreen( subBtnText = stringResource(R.string.cancel), onMainBtnClick = { myPageViewModel.postIntent(MyPageIntent.Withdraw) - navigator.switchNavGraphRoot() + navigator.openUnauthorizedNav() withdrawDialogState = false }, onSubBtnClick = { @@ -151,7 +151,7 @@ internal fun MyPageScreen( .padding(horizontal = 16.dp), // TODO onPointHistoryClicked = if (true) navigator::openPointHistory else null, - onEditPasswordClicked = navigator::openEditPassword, + onEditPasswordClicked = navigator::openEditPasswordNav, onSignOutClicked = { signOutDialogState = !signOutDialogState }, onWithdrawClicked = { withdrawDialogState = !withdrawDialogState }, ) diff --git a/feature/src/main/java/team/aliens/dms_android/feature/main/navigation/MainNavigator.kt b/feature/src/main/java/team/aliens/dms_android/feature/main/navigation/MainNavigator.kt index dd13eb702..0ef1ce26a 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/main/navigation/MainNavigator.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/main/navigation/MainNavigator.kt @@ -1,5 +1,6 @@ package team.aliens.dms_android.feature.main.navigation +import team.aliens.dms_android.feature._legacy.util.SelectImageType import java.util.UUID interface MainNavigator { @@ -12,7 +13,8 @@ interface MainNavigator { fun openRemainsApplication() fun openNotificationBox() fun openPointHistory() - fun openEditPassword() + fun openEditPasswordNav() + fun openEditProfileImage(selectImageType: SelectImageType = SelectImageType.NONE) - fun switchNavGraphRoot() + fun openUnauthorizedNav() } diff --git a/feature/src/main/java/team/aliens/dms_android/feature/notice/NoticeDetailsScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/notice/NoticeDetailsScreen.kt index 4b6dc902a..f9b31b1d9 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/notice/NoticeDetailsScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/notice/NoticeDetailsScreen.kt @@ -28,13 +28,14 @@ import team.aliens.dms_android.feature.R import team.aliens.dms_android.feature._legacy.util.TopBar import team.aliens.dms_android.feature.main.announcement.toNoticeDate import team.aliens.dms_android.feature.notice.navigation.NoticeNavigator +import java.util.UUID @Destination @Composable internal fun NoticeDetailsScreen( modifier: Modifier = Modifier, navigator: NoticeNavigator, - // noticeId: UUID, + noticeId: UUID, noticeDetailsViewModel: NoticeDetailsViewModel = hiltViewModel(), ) { val uiState by noticeDetailsViewModel.stateFlow.collectAsStateWithLifecycle() diff --git a/feature/src/main/java/team/aliens/dms_android/feature/signin/SignInScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/signin/SignInScreen.kt index 859fabffb..a3d9edfc8 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/signin/SignInScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/signin/SignInScreen.kt @@ -67,7 +67,7 @@ internal fun SignInScreen( is SignInSideEffect.SignInSuccess -> { availableFeatures.features = sideEffect.features - navigator.openMain() + navigator.openAuthorizedNav() } SignInSideEffect.DeviceTokenRegisteringFailure -> toast.showInformationToast( @@ -101,9 +101,9 @@ internal fun SignInScreen( ) Spacer(Modifier.height(12.dp)) AuthActions( - onSignUpClicked = navigator::openSignUp, + onSignUpClicked = navigator::openSignUpNav, onFindIdClicked = navigator::openFindId, - onResetPasswordClicked = navigator::openResetPassword, + onResetPasswordClicked = navigator::openResetPasswordNav, ) Spacer(Modifier.weight(1f)) DormContainedLargeButton( diff --git a/feature/src/main/java/team/aliens/dms_android/feature/signin/navigation/SignInNavigator.kt b/feature/src/main/java/team/aliens/dms_android/feature/signin/navigation/SignInNavigator.kt index 355fe29d9..667c642a9 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/signin/navigation/SignInNavigator.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/signin/navigation/SignInNavigator.kt @@ -1,8 +1,8 @@ package team.aliens.dms_android.feature.signin.navigation interface SignInNavigator { - fun openMain() - fun openSignUp() + fun openAuthorizedNav() + fun openSignUpNav() fun openFindId() - fun openResetPassword() + fun openResetPasswordNav() } diff --git a/feature/src/main/java/team/aliens/dms_android/feature/studyroom/details/StudyRoomDetailsScreen.kt b/feature/src/main/java/team/aliens/dms_android/feature/studyroom/details/StudyRoomDetailsScreen.kt index 0ec911ae2..dae09ba58 100644 --- a/feature/src/main/java/team/aliens/dms_android/feature/studyroom/details/StudyRoomDetailsScreen.kt +++ b/feature/src/main/java/team/aliens/dms_android/feature/studyroom/details/StudyRoomDetailsScreen.kt @@ -18,7 +18,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.ramcosta.composedestinations.annotation.Destination -import java.util.UUID import team.aliens.dms_android.design_system.button.DormButtonColor import team.aliens.dms_android.design_system.button.DormContainedLargeButton import team.aliens.dms_android.design_system.color.DormColor @@ -31,33 +30,34 @@ import team.aliens.dms_android.design_system.component.SeatTypeUiModel import team.aliens.dms_android.design_system.extension.Space import team.aliens.dms_android.design_system.theme.DormTheme import team.aliens.dms_android.design_system.toast.rememberToast -import team.aliens.dms_android.feature._legacy.FloatingNotice -import team.aliens.dms_android.feature._legacy.util.TopBar import team.aliens.dms_android.domain.model.studyroom.FetchSeatTypesOutput import team.aliens.dms_android.domain.model.studyroom.FetchStudyRoomDetailsOutput import team.aliens.dms_android.feature.R +import team.aliens.dms_android.feature._legacy.FloatingNotice +import team.aliens.dms_android.feature._legacy.util.TopBar +import team.aliens.dms_android.feature.studyroom.navigation.StudyRoomNavigator +import java.util.UUID + +data class StudyRoomDetailsNavArgs( + val studyRoomId: UUID, + val timeslot: UUID, +) -/** - * 자습실 상세보기 screen - * - * @param roomId 자습실 아이디 - */ -@Destination @SuppressLint("ResourceType") +@Destination(navArgsDelegate = StudyRoomDetailsNavArgs::class) @Composable fun StudyRoomDetailsScreen( - onPrevious: () -> Unit, // todo refactor to NavHostController - roomId: UUID, - timeSlot: UUID, + modifier: Modifier = Modifier, + navigator: StudyRoomNavigator, studyRoomDetailsViewModel: StudyRoomDetailsViewModel = hiltViewModel(), ) { - val availableTime = LaunchedEffect(Unit) { + /*val availableTime = LaunchedEffect(Unit) { studyRoomDetailsViewModel.initStudyRoom( roomId = roomId, // todo refactor - timeSlot = timeSlot, + timeslot = timeslot, ) - } + }*/ val context = LocalContext.current val toast = rememberToast() @@ -66,16 +66,16 @@ fun StudyRoomDetailsScreen( val currentSeat = uiState.currentSeat.collectAsState(null) val onCancel: () -> Unit = { - studyRoomDetailsViewModel.onEvent( + /*studyRoomDetailsViewModel.onEvent( event = StudyRoomDetailsViewModel.UiEvent.CancelApplySeat( seatId = currentSeat.value!!, timeSlot = timeSlot, ) - ) + )*/ } val onApply: () -> Unit = { - if (currentSeat.value == null) { + /* if (currentSeat.value == null) { toast( context.getString(R.string.study_room_please_first_select), ) @@ -86,7 +86,7 @@ fun StudyRoomDetailsScreen( timeSlot = timeSlot, ), ) - } + }*/ } LaunchedEffect(Unit) { @@ -111,7 +111,7 @@ fun StudyRoomDetailsScreen( TopBar( title = "${uiState.studyRoomDetails.startTime} ~ ${uiState.studyRoomDetails.endTime}", - onPrevious = onPrevious, + onPrevious = navigator::popBackStack, ) Column( modifier = Modifier @@ -252,7 +252,6 @@ private fun StudyRoomInformationBox( ) } - fun FetchSeatTypesOutput.SeatTypeInformation.toModel() = SeatTypeUiModel( color = this.color, text = this.name,