Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
4253487
feat: 앱 로고 리소스 추가
moondev03 Mar 7, 2026
bf5720e
feat: 스플래시 화면 테마 추가 및 적용
moondev03 Mar 7, 2026
a2adc38
feat: SplashScreen 구현
moondev03 Mar 7, 2026
5b2c9f9
feat: SplashScreen 전환 로직 추가
moondev03 Mar 7, 2026
16ddaf5
build: Hilt Navigation Compose 의존성 추가
moondev03 Mar 7, 2026
51289d2
refactor: 앱 시작점 변경 및 SharedTransitionLayout 적용
moondev03 Mar 7, 2026
608cb97
chore: 로고 리소스 이동 및 명칭 변경
moondev03 Mar 7, 2026
7ce7805
refactor: SharedTransition 적용을 위한 구조 개선 및 SplashScreen 제거
moondev03 Mar 7, 2026
76b887c
feat: Splash 및 Login 기능 분리 및 모듈화
moondev03 Mar 7, 2026
e1213a3
refactor: Splash 및 Login 기능의 UI 상태 관리 및 로직 개선
moondev03 Mar 7, 2026
32d6931
refactor: LoginScreen 레이아웃 구조 개선 및 UI 배치 수정
moondev03 Mar 7, 2026
945d270
build: hilt-navigation-compose -> hilt-lifecycle-viewmodel-compose
moondev03 Mar 7, 2026
fd56f75
refactor: Navigator의 replaceRoot 로직 개선 및 안정성 강화
moondev03 Mar 7, 2026
96370ee
refactor: PrezelApp 내 불필요한 ExperimentalSharedTransitionApi 어노테이션 제거
moondev03 Mar 7, 2026
efd4f35
refactor: Splash 화면 진입 및 로그인 상태 체크 로직 개선
moondev03 Mar 7, 2026
9517a03
refactor: LocalSharedTransitionScope를 staticCompositionLocalOf로 변경
moondev03 Mar 7, 2026
543444b
refactor: ViewModel 내 불필요한 @Stable 어노테이션 제거 및 코드 포맷 정리
moondev03 Mar 7, 2026
96779c3
refactor: SplashScreen UI 로직 분리 및 컴포저블 추출
moondev03 Mar 7, 2026
4b7ca0c
Merge branch 'develop' into feat/#75-custom-splash
moondev03 Mar 8, 2026
4e9569f
refactor: Navigator 정책 문서화 및 LoggingDecorator 구조 개선
moondev03 Mar 8, 2026
0b96d82
refactor: 네비게이션 구조 개선 및 TopLevelNavItems 정리
moondev03 Mar 8, 2026
31cc636
feat: 커스텀 스낵바 구현 및 관련 로직 개선
moondev03 Mar 8, 2026
41e2971
feat: PrezelSnackbar ID 필드 추가 및 특정 스낵바 dismiss 기능 구현
moondev03 Mar 9, 2026
1e6064d
refactor: Navigator 최상위 스택 관리 정책 변경 및 NavigationState 개선
moondev03 Mar 9, 2026
d8e7423
feat: DoubleBackToExitHandler 구현
moondev03 Mar 9, 2026
a56515a
style: 코드 포맷팅
moondev03 Mar 9, 2026
0152beb
refactor: PrezelSnackbar 내 버튼 렌더링 로직 단순화
moondev03 Mar 9, 2026
5c00978
refactor: LoggingDecorator 로그 메시지 형식 수정
moondev03 Mar 9, 2026
aaa7bd8
refactor: NavigationState 최적화 및 코드 정리
moondev03 Mar 9, 2026
1df9ad7
Merge branch 'develop' into feat/#75-custom-splash
moondev03 Mar 15, 2026
523ac5f
feat: 앱 로고 리소스 추가
moondev03 Mar 7, 2026
6e95088
feat: 스플래시 화면 테마 추가 및 적용
moondev03 Mar 7, 2026
64d3a2b
feat: SplashScreen 구현
moondev03 Mar 7, 2026
091a857
feat: SplashScreen 전환 로직 추가
moondev03 Mar 7, 2026
94ad204
build: Hilt Navigation Compose 의존성 추가
moondev03 Mar 7, 2026
7c20540
refactor: 앱 시작점 변경 및 SharedTransitionLayout 적용
moondev03 Mar 7, 2026
55de528
chore: 로고 리소스 이동 및 명칭 변경
moondev03 Mar 7, 2026
7b43d25
refactor: SharedTransition 적용을 위한 구조 개선 및 SplashScreen 제거
moondev03 Mar 7, 2026
715e6ab
feat: Splash 및 Login 기능 분리 및 모듈화
moondev03 Mar 7, 2026
1ffd329
refactor: Splash 및 Login 기능의 UI 상태 관리 및 로직 개선
moondev03 Mar 7, 2026
8b1289b
refactor: LoginScreen 레이아웃 구조 개선 및 UI 배치 수정
moondev03 Mar 7, 2026
c01db06
build: hilt-navigation-compose -> hilt-lifecycle-viewmodel-compose
moondev03 Mar 7, 2026
2db6984
refactor: Navigator의 replaceRoot 로직 개선 및 안정성 강화
moondev03 Mar 7, 2026
85da5c4
refactor: PrezelApp 내 불필요한 ExperimentalSharedTransitionApi 어노테이션 제거
moondev03 Mar 7, 2026
a7353f3
refactor: Splash 화면 진입 및 로그인 상태 체크 로직 개선
moondev03 Mar 7, 2026
bb3f648
refactor: LocalSharedTransitionScope를 staticCompositionLocalOf로 변경
moondev03 Mar 7, 2026
6532397
refactor: ViewModel 내 불필요한 @Stable 어노테이션 제거 및 코드 포맷 정리
moondev03 Mar 7, 2026
bf9150b
refactor: SplashScreen UI 로직 분리 및 컴포저블 추출
moondev03 Mar 7, 2026
71574ff
refactor: Navigator 정책 문서화 및 LoggingDecorator 구조 개선
moondev03 Mar 8, 2026
8f08cda
refactor: 네비게이션 구조 개선 및 TopLevelNavItems 정리
moondev03 Mar 8, 2026
8c536f5
feat: 커스텀 스낵바 구현 및 관련 로직 개선
moondev03 Mar 8, 2026
ab127fc
feat: PrezelSnackbar ID 필드 추가 및 특정 스낵바 dismiss 기능 구현
moondev03 Mar 9, 2026
a0e2765
refactor: Navigator 최상위 스택 관리 정책 변경 및 NavigationState 개선
moondev03 Mar 9, 2026
82f0e2a
feat: DoubleBackToExitHandler 구현
moondev03 Mar 9, 2026
a97cf9a
style: 코드 포맷팅
moondev03 Mar 9, 2026
582620d
refactor: PrezelSnackbar 내 버튼 렌더링 로직 단순화
moondev03 Mar 9, 2026
196c075
refactor: LoggingDecorator 로그 메시지 형식 수정
moondev03 Mar 9, 2026
703e733
refactor: NavigationState 최적화 및 코드 정리
moondev03 Mar 9, 2026
8503833
refactor: NavigationState 생성 로직 개선 및 접근 제어자 수정
moondev03 Mar 15, 2026
aca853b
refactor: NavigationState 최적화 및 DoubleBackToExitHandler 의존성 개선
moondev03 Mar 15, 2026
b58937e
Merge remote-tracking branch 'origin/feat/#75-custom-splash' into fea…
moondev03 Mar 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Prezel/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
plugins {
alias(libs.plugins.prezel.android.application.compose)
alias(libs.plugins.prezel.hilt)
alias(libs.plugins.kotlinx.serialization)
}

android {
Expand Down Expand Up @@ -33,6 +34,11 @@ dependencies {
implementation(projects.coreDesignsystem)
implementation(projects.coreNavigation)
implementation(projects.coreUi)

implementation(projects.featureSplashApi)
implementation(projects.featureSplashImpl)
implementation(projects.featureLoginApi)
implementation(projects.featureLoginImpl)
implementation(projects.featureHomeApi)
implementation(projects.featureHomeImpl)
implementation(projects.featureHistoryApi)
Expand Down
5 changes: 2 additions & 3 deletions Prezel/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,10 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Prezel">
android:theme="@style/Theme.PrezelSplashScreen">
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.Prezel">
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
68 changes: 38 additions & 30 deletions Prezel/app/src/main/java/com/team/prezel/ui/PrezelApp.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.team.prezel.ui

import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionLayout
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
Expand All @@ -19,6 +21,7 @@ import com.team.prezel.core.designsystem.component.PrezelNavigationScaffold
import com.team.prezel.core.designsystem.icon.IconSource
import com.team.prezel.core.navigation.LocalNavigator
import com.team.prezel.core.navigation.Navigator
import com.team.prezel.core.navigation.ProvideSharedTransitionScope
import com.team.prezel.core.navigation.toEntries
import com.team.prezel.core.ui.LocalSnackbarHostState
import com.team.prezel.navigation.TOP_LEVEL_NAV_ITEMS
Expand All @@ -42,6 +45,7 @@ fun PrezelApp(
}
}

@OptIn(ExperimentalSharedTransitionApi::class)
@Composable
private fun PrezelAppContent(
appState: PrezelAppState,
Expand All @@ -50,38 +54,42 @@ private fun PrezelAppContent(
val navigator = LocalNavigator.current
val snackbarHostState = LocalSnackbarHostState.current

val provider = remember(entryBuilders) {
entryProvider {
entryBuilders.forEach { builder -> this.builder() }
}
}
SharedTransitionLayout {
ProvideSharedTransitionScope(this@SharedTransitionLayout) {
val provider = remember(entryBuilders, navigator) {
entryProvider {
entryBuilders.forEach { builder -> this.builder() }
}
}

PrezelNavigationScaffold(
showNavigationBar = appState.shouldShowNavigationBar,
snackbarHostState = snackbarHostState,
navigationItems = {
TOP_LEVEL_NAV_ITEMS.forEach { (key, item) ->
item(
selected = key == appState.navigationState.currentTopLevelKey,
onClick = { navigator.navigate(key) },
label = stringResource(item.titleTextId),
icon = IconSource(item.iconRes),
PrezelNavigationScaffold(
showNavigationBar = appState.shouldShowNavigationBar,
snackbarHostState = snackbarHostState,
navigationItems = {
TOP_LEVEL_NAV_ITEMS.forEach { (key, item) ->
item(
selected = key == appState.navigationState.currentTopLevelKey,
onClick = { navigator.navigate(key) },
label = stringResource(item.titleTextId),
icon = IconSource(item.iconRes),
)
}
},
) { padding ->
NavDisplay(
entries = appState.navigationState.toEntries(provider),
onBack = navigator::goBack,
modifier = Modifier.padding(padding),
transitionSpec = {
fadeIn(animationSpec = tween(durationMillis = 100)) togetherWith
fadeOut(animationSpec = tween(durationMillis = 100))
},
popTransitionSpec = {
fadeIn(animationSpec = tween(durationMillis = 100)) togetherWith
fadeOut(animationSpec = tween(durationMillis = 100))
},
)
}
},
) { padding ->
NavDisplay(
entries = appState.navigationState.toEntries(provider),
onBack = navigator::goBack,
modifier = Modifier.padding(padding),
transitionSpec = {
fadeIn(animationSpec = tween(durationMillis = 100)) togetherWith
fadeOut(animationSpec = tween(durationMillis = 100))
},
popTransitionSpec = {
fadeIn(animationSpec = tween(durationMillis = 100)) togetherWith
fadeOut(animationSpec = tween(durationMillis = 100))
},
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ import androidx.compose.runtime.rememberCoroutineScope
import com.team.prezel.core.data.NetworkMonitor
import com.team.prezel.core.navigation.NavigationState
import com.team.prezel.core.navigation.rememberNavigationState
import com.team.prezel.feature.home.api.HomeNavKey
import com.team.prezel.feature.login.api.LoginNavKey
import com.team.prezel.feature.splash.api.SplashNavKey
import com.team.prezel.navigation.TOP_LEVEL_KEYS
import com.team.prezel.navigation.TOP_LEVEL_NAV_ITEMS
import kotlinx.collections.immutable.toImmutableSet
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
Expand All @@ -22,8 +23,8 @@ fun rememberPrezelAppState(
coroutineScope: CoroutineScope = rememberCoroutineScope(),
): PrezelAppState {
val navigationState = rememberNavigationState(
startKey = HomeNavKey,
topLevelKeys = TOP_LEVEL_NAV_ITEMS.keys,
startKey = SplashNavKey,
topLevelKeys = (TOP_LEVEL_KEYS.toMutableSet() + SplashNavKey + LoginNavKey).toImmutableSet(),
)

return remember(
Expand Down
6 changes: 5 additions & 1 deletion Prezel/app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.Prezel" parent="android:Theme.Material.Light.NoActionBar" />

<style name="Theme.PrezelSplashScreen" parent="Theme.Prezel">
<item name="android:windowDisablePreview">true</item>
<item name="android:windowBackground">@color/white</item>
</style>
Comment thread
moondev03 marked this conversation as resolved.
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ class AndroidFeatureImplConventionPlugin : Plugin<Project> {
"implementation"(project(":core-designsystem"))
"implementation"(project(":core-navigation"))
"implementation"(libs.findLibrary("androidx.navigation3.ui").get())
"implementation"(libs.findLibrary("androidx.hilt.navigation.compose").get())
Comment thread
moondev03 marked this conversation as resolved.
Outdated
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="1017.5dp"
android:height="437.7dp"
android:viewportWidth="1017.5"
android:viewportHeight="437.7">
<path
android:pathData="M942.9,50.5h24v260h-24z"
android:fillColor="#0069ff"/>
<path
android:pathData="M560.1,239.8h8.6c0.5,-3.9 0.8,-7.9 0.8,-12 0,-48 -39,-87 -87,-87s-87,39 -87,87 39,87 87,87c35.1,0 65.5,-20.9 79.2,-51h-27.5c-11.4,16.3 -30.3,27 -51.7,27 -30.6,0 -56.2,-22 -61.8,-51h139.4ZM482.6,164.8c30.6,0 56.2,22 61.8,51h-123.7c5.6,-29 31.2,-51 61.8,-51Z"
android:fillColor="#0069ff"/>
<path
android:pathData="M913.3,239.8h8.6c0.5,-3.9 0.8,-7.9 0.8,-12 0,-48 -39,-87 -87,-87s-87,39 -87,87 39,87 87,87c35.1,0 65.5,-20.9 79.2,-51h-27.5c-11.4,16.3 -30.3,27 -51.7,27 -30.6,0 -56.2,-22 -61.8,-51h139.4ZM835.7,164.8c30.6,0 56.2,22 61.8,51h-123.7c5.6,-29 31.2,-51 61.8,-51Z"
android:fillColor="#0069ff"/>
<path
android:pathData="M733.6,170.3l0,0l0,-24l-149,0l0,24l115.1,0l-115.1,115.1l0,0l-0,0l0,24l149,0l0,-24l-115.1,0l115.1,-115.1z"
android:fillColor="#0069ff"/>
<path
android:pathData="M218.9,197.6c-13,-35 -46.2,-56.7 -81.5,-56.7 -5,0 -10.1,0.4 -15.1,1.3 -5,0.9 -10.1,2.3 -15.1,4.1 -12.7,4.7 -23.7,12.1 -32.5,21.3v-26.8h-24v81c-0.3,3.9 -0.3,7.8 0,11.7v153.6h24v-99.3c16.3,17 39,26.8 62.7,26.8 10,0 20.2,-1.8 30.2,-5.4 45,-16.7 68,-66.7 51.3,-111.7ZM194.6,254c-7,15.3 -19.6,26.9 -35.3,32.7 -7.1,2.6 -14.4,3.9 -21.8,3.9 -12.7,0 -25,-3.8 -35.6,-11 -10.8,-7.4 -18.9,-17.8 -23.4,-30 -2,-5.5 -3.3,-11.2 -3.7,-17v-10c0.6,-7.2 2.4,-14.4 5.6,-21.2 7,-15.3 19.6,-26.9 35.3,-32.7 7.1,-2.6 14.4,-3.9 21.8,-3.9 12.7,0 25,3.8 35.6,11 10.8,7.4 18.9,17.8 23.4,30 5.8,15.8 5.2,32.8 -1.8,48.1Z"
android:fillColor="#0069ff"/>
<path
android:pathData="M292.8,314.8c-10,0 -18.5,-4.4 -24,-12.5 -4.4,-6.5 -6.6,-15.1 -6.6,-25.5 0,-18.2 6.9,-40 18.6,-59.9 -1.6,-2.9 -3.3,-5.8 -5.1,-8.6 -15.4,-24 -33.8,-37.7 -50.4,-37.7v-24c25.3,0 50.4,17.3 70.6,48.7 0,0 0,0 0,0 0.3,-0.3 0.5,-0.6 0.8,-0.9 26.1,-30.7 61.3,-47.7 99,-47.7v24c-39.2,0 -65.5,21.3 -80.7,39.2 -2.3,2.7 -4.5,5.5 -6.5,8.3 9.2,20 14.7,41.1 14.7,57.9 0,10.5 -2.1,19.1 -6.2,25.6 -5.3,8.3 -13.8,12.9 -24,12.9ZM293.3,245.5c-4.8,11.9 -7.1,23 -7.1,31.3 0,5.3 0.9,9.7 2.5,12.1 0.8,1.3 1.7,1.9 4.1,1.9s3.1,-0.8 3.8,-1.8c0.7,-1.2 2.5,-4.7 2.5,-12.7 0,-8.9 -2.1,-19.6 -5.7,-30.8Z"
android:fillColor="#0069ff"/>
</vector>
1 change: 1 addition & 0 deletions Prezel/core/navigation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ android {
dependencies {
implementation(libs.androidx.lifecycle.viewModel.navigation3)
implementation(libs.kotlinx.collections.immutable)
implementation(libs.timber)
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,26 @@
package com.team.prezel.core.navigation

import androidx.compose.animation.SharedTransitionScope
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.runtime.staticCompositionLocalOf

val LocalNavigator = staticCompositionLocalOf<Navigator> {
error("Navigator is not provided")
}

val LocalSharedTransitionScope = compositionLocalOf<SharedTransitionScope> {
error("SharedTransitionScope is not provided")
}

@Composable
fun ProvideSharedTransitionScope(
sharedTransitionScope: SharedTransitionScope,
content: @Composable () -> Unit,
) {
CompositionLocalProvider(
LocalSharedTransitionScope provides sharedTransitionScope,
content = content,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import androidx.navigation3.runtime.NavKey
import androidx.navigation3.runtime.rememberDecoratedNavEntries
import androidx.navigation3.runtime.rememberNavBackStack
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
import com.team.prezel.core.navigation.decorator.LoggingDecorator
import kotlinx.collections.immutable.ImmutableSet

/**
Expand Down Expand Up @@ -70,6 +71,7 @@ fun NavigationState.toEntries(entryProvider: (NavKey) -> NavEntry<NavKey>): Snap
val decorators = listOf(
rememberSaveableStateHolderNavEntryDecorator<NavKey>(),
rememberViewModelStoreNavEntryDecorator<NavKey>(),
LoggingDecorator(),
)

rememberDecoratedNavEntries(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,37 @@ class Navigator(
}
}

/**
* 현재 내비게이션 히스토리를 모두 지우고 목적지를 루트로 교체합니다.
Comment thread
moondev03 marked this conversation as resolved.
*/
fun replaceRoot(key: NavKey) {
state.topLevelStack.clear()
state.topLevelStack.add(key)
if (key in state.topLevelKeys) {
state.subStacks[key]?.run {
if (size > 1) subList(1, size).clear()
}
}
Comment thread
moondev03 marked this conversation as resolved.
Comment thread
moondev03 marked this conversation as resolved.
}

/**
* 뒤로 이동
*
* @return 뒤로가기 내비게이션이 처리되었으면 true를 반환합니다.
*/
fun goBack(): Boolean =
when (state.currentKey) {
state.startKey -> false
state.currentTopLevelKey -> {
state.topLevelStack.removeLastOrNull()
when {
state.currentKey != state.currentTopLevelKey -> {
state.currentSubStack.removeLastOrNull()
true
}

else -> {
state.currentSubStack.removeLastOrNull()
state.topLevelStack.size > 1 -> {
state.topLevelStack.removeLastOrNull()
true
Comment thread
moondev03 marked this conversation as resolved.
}

else -> false
}

/** 최상위가 아닌 목적지를 push합니다. */
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.team.prezel.core.navigation.decorator

import androidx.compose.runtime.DisposableEffect
import androidx.navigation3.runtime.NavEntry
import androidx.navigation3.runtime.NavEntryDecorator
import timber.log.Timber

private const val NAVIGATION_LOGGING_TAG = "Navigation"

class LoggingDecorator<T : Any>(
private val logger: Timber.Tree = Timber.tag(NAVIGATION_LOGGING_TAG),
) : NavEntryDecorator<T>(
onPop = { key ->
logger.d("[Navigation] BACKSTACK_REMOVE | screen=$key")
},
decorate = { entry ->
DisposableEffect(entry.contentKey, entry.metadata) {
logger.d(entry.enterLog())

onDispose {
logger.d(entry.exitLog())
}
}

entry.Content()
},
)

private fun <T : Any> NavEntry<T>.enterLog(): String = "[Navigation] SCREEN_ENTER | screen=$contentKey | metadata=$metadata"

private fun <T : Any> NavEntry<T>.exitLog(): String = "[Navigation] SCREEN_EXIT | screen=$contentKey | metadata=$metadata"
1 change: 1 addition & 0 deletions Prezel/feature/login/api/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
7 changes: 7 additions & 0 deletions Prezel/feature/login/api/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
plugins {
alias(libs.plugins.prezel.android.feature.api)
}

android {
namespace = "com.team.prezel.feature.login.api"
}
Empty file.
21 changes: 21 additions & 0 deletions Prezel/feature/login/api/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.team.prezel.feature.login.api

import androidx.navigation3.runtime.NavKey
import kotlinx.serialization.Serializable

@Serializable
data object LoginNavKey : NavKey

const val AUTH_LOGO_SHARED_ELEMENT_KEY = "auth_logo_shared_element"
1 change: 1 addition & 0 deletions Prezel/feature/login/impl/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
12 changes: 12 additions & 0 deletions Prezel/feature/login/impl/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
plugins {
alias(libs.plugins.prezel.android.feature.impl)
}

android {
namespace = "com.team.prezel.feature.login.impl"
}

dependencies {
implementation(projects.featureLoginApi)
implementation(projects.featureHomeApi)
}
Empty file.
Loading