Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
d627f7f
[feat]: Firebase Cloud Messaging 추가 및 설정 (#135)
rbqks529 Sep 11, 2025
381ed36
[feat]: Firebase Cloud Messaging 서비스 구현 (일단 알림을 탭하면 메인 엑티비티로 이동) (#135)
rbqks529 Sep 11, 2025
7300b20
[feat]: FCM 토큰 등록 request 구현 (#131)
rbqks529 Sep 11, 2025
0230ab9
[feat]: FCM 토큰 등록 service, repository 구현 (#135)
rbqks529 Sep 11, 2025
8db0e02
[feat]: FCM 토큰 관리 매니저 구현 (#135)
rbqks529 Sep 11, 2025
8539a5d
[feat]: FCM 토큰 관리 매니저 수정 (#135)
rbqks529 Sep 11, 2025
e8bfcc7
[feat]: FCM 토큰 관리 매니저 수정 (#135)
rbqks529 Sep 11, 2025
66e1319
[feat]: FCM 토큰 등록 API 화면 연결 (#135)
rbqks529 Sep 11, 2025
b8be3b7
[feat]: 푸시 알림 수정 페이지 날짜 로직 수정 (#135)
rbqks529 Sep 11, 2025
7bde62e
[feat]: FCM 토큰 관리 매니저 중복 로직 삭제 (#135)
rbqks529 Sep 11, 2025
8ce347d
[feat]: Firebase 서비스 위치 변경 (#135)
rbqks529 Sep 12, 2025
392b15f
[chore]: 주석 변경 및 줄 바꿈 수정 (#135)
rbqks529 Sep 12, 2025
e206951
[refactor]: 회원 탈퇴 문구 수정 (#135)
rbqks529 Sep 14, 2025
530aeba
[refactor]: 내 띱 목록이 없을때 화면 컴포넌트 패딩 수정 (#135)
rbqks529 Sep 14, 2025
513e726
[feat]: 사용자 푸시알림 수신여부 조회 API Response, Service, Repository 구현 (#135)
rbqks529 Sep 14, 2025
256fc22
[feat]: 사용자 푸시알림 수신여부 조회 API ViewModel 구현 (#135)
rbqks529 Sep 14, 2025
28404be
[feat]: 사용자 푸시알림 수신여부 조회 API 화면 연결 (#135)
rbqks529 Sep 14, 2025
bcbccd2
[refactor]: DeviceId 확장 확장 함수 구현 및 기존 코드 변경 (#135)
rbqks529 Sep 14, 2025
057ea94
[feat]: 푸시 알림 수신 여부 설정 DTO 구현 및 기존 Response와 통일 (#135)
rbqks529 Sep 14, 2025
a179a34
[feat]: 푸시 알림 수신 여부 설정 service, repository 구현 (#135)
rbqks529 Sep 14, 2025
c132fbd
[feat]: 푸시 알림 수신 여부 설정 viewModel 구현 및 API 구현 완료 (#135)
rbqks529 Sep 14, 2025
eb78a97
[feat]: 푸시 알림 화면 content로 분리 완료 (#135)
rbqks529 Sep 14, 2025
9bde90d
[feat]: 알림 권한 요청 로직 추가 (#135)
rbqks529 Sep 14, 2025
50cda6e
[feat]: Context 생성자 주입 로직 번경 (#135)
rbqks529 Sep 14, 2025
02cc000
[feat]: Firebase 토큰 가져오기 로직 수정(코드 래빗) (#135)
rbqks529 Sep 14, 2025
5a9a01b
[feat]: 피드 작성 시 이미지 올리기 로직 수정 (#135)
rbqks529 Sep 14, 2025
4cc7b3b
[refactor]: 검색 필드 수정 (#135)
rbqks529 Sep 14, 2025
9009d24
[refactor]: registerFcmToken 수정 (#135)
rbqks529 Sep 14, 2025
4cf17db
[refactor]: DeviceId를 코드 리뷰에 맞게 수정 (#135)
rbqks529 Sep 14, 2025
9f23504
[feat]: FCM 토큰 삭제 Request, Service, Repository 구현 (#135)
rbqks529 Sep 14, 2025
02fda02
[feat]: 디바이스 관련 정보 삭제 함수 추가 (#135)
rbqks529 Sep 14, 2025
f578aef
[feat]: 회원 탈퇴시 FCM 토큰 삭제 및 디바이스 정보를 삭제하도록 수정 (#135)
rbqks529 Sep 14, 2025
1dcbf42
[feat]: 회원 탈퇴시 FCM 토큰 삭제 및 디바이스 정보를 삭제하도록 수정 (#135)
rbqks529 Sep 14, 2025
f280150
Merge pull request #136 from rbqks529/feat/#135_API_Notification_FCM
Nico1eKim Sep 22, 2025
10bc152
[fix]: 진행 중 모임방 api endpoint 변경 (#138)
Nico1eKim Sep 22, 2025
fed1c73
[refactor]: 내 모임방 아직 모집중일때 deadline 보이게 수정 (#138)
Nico1eKim Sep 22, 2025
4983463
[refactor]: 완료된 모임방 추가 완료 (#138)
Nico1eKim Sep 22, 2025
5cd88cf
[refactor]: 완료된 모임방에서 댓글 관련 수정 불가하게 수정 (#138)
Nico1eKim Sep 22, 2025
d58ed6c
[ui]: 전체 모임방으로 이동하는 button 추가 (#138)
Nico1eKim Sep 22, 2025
cb9aced
[refactor]: 전체 모임방 보여주는 플로우 추가 (#138)
Nico1eKim Sep 22, 2025
c7c183b
[ui]: 검색화면 필터 버튼 위치 수정 (#138)
Nico1eKim Sep 22, 2025
b2f48e5
[refactor]: 최근 생성된 독서 모임방 추가 (#138)
Nico1eKim Sep 22, 2025
d366113
[refactor]: 최근 생성된 독서 모임방 첫번째, 캐러셀 무한으로 수정 (#138)
Nico1eKim Sep 22, 2025
f909028
[feat]: 알림센터 조회 Response 구현 (#140)
rbqks529 Sep 23, 2025
3fda293
[feat]: 알림센터 조회 Type enum class 구현 (#140)
rbqks529 Sep 23, 2025
9d1e3bc
[ui]: 알림 필터 row 수정 (#140)
rbqks529 Sep 23, 2025
18079db
[feat]: 알림센터용 UiState 구현 (#140)
rbqks529 Sep 23, 2025
d140dfb
[feat]: 알림센터 조회 API Service, Repository 구현 (#140)
rbqks529 Sep 23, 2025
bdbf183
[feat]: 알림센터 조회 viewModel 수정 (#140)
rbqks529 Sep 23, 2025
32376cd
[feat]: 알림센터 조회 Screen 구현 (#140)
rbqks529 Sep 23, 2025
0c7a691
[feat]: Common 네비게이션 수정 (#140)
rbqks529 Sep 23, 2025
c91ad6a
[feat]: 알림센터 기준으로 탑바 알림 아이콘 수정 (#140)
rbqks529 Sep 23, 2025
0eb78dd
Merge pull request #139 from Nico1eKim/refactor/#138-completed_rooms
Nico1eKim Sep 24, 2025
45f541c
[refactor]: branch 최신화 (#140)
rbqks529 Sep 24, 2025
42f0b01
[feat]: 알림 읽기 API Request, Response 구현 (#140)
rbqks529 Sep 25, 2025
7580e37
[feat]: 알림 읽기 API Notification, Service 구현 (#140)
rbqks529 Sep 25, 2025
613a333
[feat]: 알림 읽기 viewModel, UiState 수정 및 구현 (#140)
rbqks529 Sep 25, 2025
ee3788c
[feat]: 알림 Screen에 로직 연결 (#140)
rbqks529 Sep 25, 2025
cb9b2a5
[feat]: 알림 네비게이션 확장 함수 생성 (#140)
rbqks529 Sep 25, 2025
f7bd19d
[feat]: 알림 네비게이션에 맞게 기존 네비게이션 파일 수정 (#140)
rbqks529 Sep 25, 2025
28a0187
[feat]: 푸시알림 네비게이션을 위한 MainActivity와 MainScreen 수정 (#140)
rbqks529 Sep 25, 2025
4d53c6c
[feat]: 알림을 읽고 화면으로 왔을때 알림 아이콘 수정을 위한 로직 추가 (#140)
rbqks529 Sep 25, 2025
c1a877c
[feat]: 해당 포스트로 스크롤과 댓글창 열기 로직을 위한 GroupNote 수정 (#140)
rbqks529 Sep 25, 2025
e74142c
[feat]: AlarmScreen의 Navigation 콜백 함수 추가(#140)
rbqks529 Sep 25, 2025
3ed58f2
[feat]: 매니페스트 수정 (#140)
rbqks529 Sep 25, 2025
e0f2111
[feat]: 푸시알림 허용에서 알림 권한이 없다면 권한을 다시 요청하도록 수정 (#140)
rbqks529 Sep 25, 2025
2bd7010
[feat]: 알림 권한이 없어도 FCM토큰을 전송하도록 수정 (#140)
rbqks529 Sep 25, 2025
5864f8b
[refactor]: emit에서 tryEmit으로 수정 (#140)
rbqks529 Sep 25, 2025
0d9f94a
[refactor]: LaunchedEffect 키에fromNotification 포함되게 수정 (#140)
rbqks529 Sep 25, 2025
801e8ba
[refactor]: String 추출 및 PR 반영 (#140)
rbqks529 Sep 25, 2025
bf47fe1
[refactor]: 파라미터 호출 순서 문제 수정 (#140)
rbqks529 Sep 26, 2025
249c517
[refactor]: 코드래빗 리뷰에 맞게 뷰모델 수정 (#140)
rbqks529 Sep 26, 2025
c6f40f7
[chore]: 주석 수정 (#140)
rbqks529 Sep 26, 2025
687c179
[feat]: 피드, 그룹 화면 재진입시 알림 아이콘 초기화화 (#140)
rbqks529 Sep 26, 2025
89d1cfb
Merge pull request #141 from rbqks529/feat/#140_API_Notifications
Nico1eKim Sep 26, 2025
7a09605
[chore]: 배포 버전 변경
Nico1eKim Sep 26, 2025
39e9495
Merge pull request #142 from THIP-TextHip/main
Nico1eKim Sep 29, 2025
ac9ab86
[chore]: 배포 버전 변경
Nico1eKim Sep 29, 2025
c7abd71
Merge branch 'develop' of https://github.com/THIP-TextHip/THIP-Androi…
Nico1eKim Sep 29, 2025
008cd5b
[chore]: 배포 버전 변경
Nico1eKim Sep 30, 2025
5b5996f
[release]: 화면 접근 수 확인 위한 firebase analytics 연결
Nico1eKim Sep 30, 2025
e6e729d
Merge branch 'develop' of https://github.com/THIP-TextHip/THIP-Android
Nico1eKim Oct 9, 2025
513df39
[release]: ga 연결 문제 해결 (#144)
Nico1eKim Oct 9, 2025
d635718
[refactor]: 프로필 팔로워 수 오류 해결 (#144)
Nico1eKim Oct 9, 2025
31b87de
[refactor]: 회원가입 칭호 선택 스크롤 문제 해결 (#144)
Nico1eKim Oct 9, 2025
e312f69
[refactor]: 화면 전환 효과 없애기 (#144)
Nico1eKim Oct 9, 2025
d69a23e
[refactor]: 모임, 검색 상단바 높이 다름 해결 (#144)
Nico1eKim Oct 9, 2025
428dce8
[refactor]: 댓글 드롭다운 열렸을 때 뒤로가기 누르면 드롭다운 닫히게 수정 (#144)
Nico1eKim Oct 9, 2025
f6cecec
[refactor]: 내 프로필 팔로워 수 오류 해결 (#144)
Nico1eKim Oct 9, 2025
7f2c9e7
[refactor]: 모임 투표 생성 시 제목 가이드 멘트 수정 (#144)
Nico1eKim Oct 9, 2025
409dbab
[refactor]: 사용자 검색 아이콘 수정 (#144)
Nico1eKim Oct 9, 2025
7f53850
[feat]: 미확인 알림 여부 확인 api response 생성 (#145)
rbqks529 Oct 14, 2025
3553448
[feat]: 미확인 알림 여부 확인 api의 service, repository 구현 (#145)
rbqks529 Oct 14, 2025
a00d49a
[feat]: 기존의 미확인 여부 확인 로직을 api로 변경 (#145)
rbqks529 Oct 14, 2025
363c9a8
[feat]: 그룹 화면과 피드 화면에서 로직 연결 (#145)
rbqks529 Oct 14, 2025
8aedb16
Merge pull request #146 from rbqks529/refactor/#145_QA
Nico1eKim Oct 24, 2025
e7c9ea7
Merge branch 'develop' of https://github.com/THIP-TextHip/THIP-Androi…
Nico1eKim Oct 24, 2025
c2d00bb
[refactor]: 내 모임방에 완료방 추가 (#144)
Nico1eKim Oct 24, 2025
9aa6eda
[refactor]: 내 모임방에서 완료된 모임방 날짜 삭제, 클릭하면 완료된 모임방으로 이동하도록 수정 (#144)
Nico1eKim Oct 24, 2025
2864d07
[refactor]: 완료된 모임방 없애기 (#144)
Nico1eKim Oct 24, 2025
ad03330
Merge branch 'develop' of https://github.com/THIP-TextHip/THIP-Android
Nico1eKim Oct 24, 2025
fc60496
[ui]: 기록장 화면에 ai FAB 버튼, dialog 추가 (#148)
Nico1eKim Oct 26, 2025
3574a70
[fix]: 버전 관리 수정 (#144)
Nico1eKim Oct 26, 2025
e9a317b
[ui]: ai 독후감 화면 완료 (#148)
Nico1eKim Oct 26, 2025
59a21a1
[feat]: ai 독후감 화면 navigation 완료 (#148)
Nico1eKim Oct 26, 2025
f30b09c
[feat]: ai 독후감 화면 뒤로가기 누르면 dialog 뜨도록 구현 (#148)
Nico1eKim Oct 26, 2025
f271978
[feat]: ai 독후감 화면 data layer 생성 (#148)
Nico1eKim Oct 26, 2025
d2d61e4
[feat]: 사용자의 ai 이용 횟수 및 기록 작성 횟수 조회 api 연결 (#148)
Nico1eKim Oct 26, 2025
de7165d
Merge pull request #147 from Nico1eKim/refactor/#144-qa4
rbqks529 Oct 26, 2025
ad31bc3
[feat]: ai 기반 독후감 생성 data layer 생성 (#148)
Nico1eKim Oct 27, 2025
8a74b53
[feat]: ai 기반 독후감 생성 viewmodel 생성 (#148)
Nico1eKim Oct 27, 2025
9b50984
[feat]: ai 기반 독후감 생성 api 화면에 연결 (#148)
Nico1eKim Oct 27, 2025
0d57d9a
Merge branch 'develop' of https://github.com/THIP-TextHip/THIP-Androi…
Nico1eKim Oct 27, 2025
ccad3dc
[refactor]: ai 독후감 숫자 수정 (#148)
Nico1eKim Oct 29, 2025
f491719
Merge pull request #152 from Nico1eKim/feat/#148-ai_book_review
Nico1eKim Oct 29, 2025
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
7 changes: 4 additions & 3 deletions .idea/appInsightsSettings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 6 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ android {
applicationId = "com.texthip.thip"
minSdk = 29
targetSdk = 35
versionCode = 7
versionName = "1.2.1"
versionCode = 11
versionName = "1.3.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Expand Down Expand Up @@ -103,6 +103,7 @@ dependencies {
implementation(libs.foundation)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.datastore.preferences)
implementation(libs.firebase.messaging)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
Expand Down Expand Up @@ -138,6 +139,9 @@ dependencies {
implementation("androidx.credentials:credentials:1.2.2")
implementation("androidx.credentials:credentials-play-services-auth:1.2.2")

// Firebase analytics
implementation(platform("com.google.firebase:firebase-bom:34.3.0"))
implementation("com.google.firebase:firebase-analytics")
}

kapt {
Expand Down
24 changes: 23 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"
tools:ignore="AdvertisingIdPolicy" />

<application
android:name=".ThipApplication"
Expand All @@ -21,6 +24,16 @@
android:name="com.kakao.sdk.AppKey"
android:value="${NATIVE_APP_KEY}" />

<!-- FCM 기본 설정 -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_launcher" />

<!-- FCM 기본 클릭 액션 설정 -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="thip_notifications" />

<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
Expand All @@ -38,14 +51,23 @@
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustResize"
android:label="@string/app_name"
android:theme="@style/Theme.Thip">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<service
android:name=".service.MyFirebaseMessagingService"
android:exported="false"
android:directBootAware="true">
<intent-filter android:priority="1000">
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
143 changes: 138 additions & 5 deletions app/src/main/java/com/texthip/thip/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,34 @@
package com.texthip.thip

import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.navigation.NavController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import com.google.firebase.Firebase
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.analytics
import com.google.firebase.analytics.logEvent
import com.texthip.thip.data.manager.AuthStateManager
import com.texthip.thip.data.manager.TokenManager
import com.texthip.thip.ui.navigator.navigations.authNavigation
import com.texthip.thip.ui.navigator.routes.CommonRoutes
import com.texthip.thip.ui.theme.ThipTheme
import com.texthip.thip.utils.permission.NotificationPermissionUtils
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collectLatest
import javax.inject.Inject
Expand All @@ -22,24 +37,136 @@ import javax.inject.Inject
class MainActivity : ComponentActivity() {
@Inject
lateinit var tokenManager: TokenManager

@Inject
lateinit var authStateManager: AuthStateManager

private val notificationPermissionLauncher = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) {}

private var notificationData by mutableStateOf<NotificationData?>(null)

data class NotificationData(
val notificationId: String?,
val fromNotification: Boolean
)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()

// 앱 시작 시 알림 권한 요청
requestNotificationPermissionIfNeeded()

// 푸시 알림에서 온 데이터 처리
handleNotificationIntent(intent)

setContent {
ThipTheme {
RootNavHost(authStateManager)
RootNavHost(
authStateManager = authStateManager,
notificationData = notificationData
)
}
}
// getKakaoKeyHash(this)
}

override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)

// 새로운 Intent가 들어올 때 (백그라운드에서 알림 클릭 시)
handleNotificationIntent(intent)
}

private fun handleNotificationIntent(intent: Intent) {
Log.d("MainActivity", "Handling notification intent with extras: ${intent.extras?.keySet()}")

val customNotificationId = intent.getStringExtra("notification_id")
val customFromNotification = intent.getBooleanExtra("from_notification", false)

// FCM 백그라운드 알림에서 온 데이터 확인 (시스템이 자동 생성한 알림의 경우)
val fcmNotificationId = intent.getStringExtra("gcm.notification.data.notificationId")
?: intent.getStringExtra("notificationId")

var newNotificationData: NotificationData? = null

// 커스텀 알림에서 온 경우 (포그라운드에서 생성된 알림)
if (customFromNotification && customNotificationId != null) {
Log.d("MainActivity", "Processing custom notification: $customNotificationId")
newNotificationData = NotificationData(customNotificationId, customFromNotification)

// Intent extras 완전 제거
cleanupNotificationExtras(intent, listOf("notification_id", "from_notification"))
}
// FCM 백그라운드 시스템 알림에서 온 경우
else if (fcmNotificationId != null) {
Log.d("MainActivity", "Processing FCM notification: $fcmNotificationId")
newNotificationData = NotificationData(fcmNotificationId, true)

// Intent extras 완전 제거
cleanupNotificationExtras(intent, listOf(
"gcm.notification.data.notificationId",
"notificationId"
))
}

// 새로운 알림 데이터가 있고, 기존 데이터와 다른 경우에만 업데이트
if (newNotificationData != null && newNotificationData != notificationData) {
Log.d("MainActivity", "Setting new notification data: ${newNotificationData.notificationId}")
notificationData = newNotificationData
} else if (newNotificationData != null) {
Log.d("MainActivity", "Notification data unchanged, skipping update")
}
}

private fun cleanupNotificationExtras(intent: Intent, keys: List<String>) {
keys.forEach { key ->
try {
intent.removeExtra(key)
Log.v("MainActivity", "Removed extra: $key")
} catch (e: Exception) {
Log.w("MainActivity", "Failed to remove extra: $key", e)
}
}

// Intent 플래그도 정리
intent.replaceExtras(intent.extras)
}

private fun requestNotificationPermissionIfNeeded() {
if (NotificationPermissionUtils.shouldRequestNotificationPermission(this)) {
notificationPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
}
}
}

@Composable
fun RootNavHost(authStateManager: AuthStateManager) {
fun RootNavHost(
authStateManager: AuthStateManager,
notificationData: MainActivity.NotificationData? = null
) {
val navController = rememberNavController()
val firebaseAnalytics = Firebase.analytics

DisposableEffect(navController) {
val listener = NavController.OnDestinationChangedListener { _, destination, _ ->
// 목적지의 route가 null이 아닐 경우에만 이벤트를 로깅
destination.route?.let { route ->
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
param(FirebaseAnalytics.Param.SCREEN_NAME, route)
param(FirebaseAnalytics.Param.SCREEN_CLASS, route)
}
Log.d("GA_Tracker", "Screen viewed: $route")
}
}
navController.addOnDestinationChangedListener(listener)

onDispose {
navController.removeOnDestinationChangedListener(listener)
}
}

LaunchedEffect(Unit) {
authStateManager.tokenExpiredEvent.collectLatest {
Expand All @@ -48,10 +175,15 @@ fun RootNavHost(authStateManager: AuthStateManager) {
}
}
}



NavHost(
navController = navController,
startDestination = CommonRoutes.Splash
startDestination = CommonRoutes.Splash,
enterTransition = { EnterTransition.None },
exitTransition = { ExitTransition.None },
popEnterTransition = { EnterTransition.None },
popExitTransition = { ExitTransition.None }
) {
// --- 인증 관련 화면들 ---
authNavigation(
Expand Down Expand Up @@ -87,7 +219,8 @@ fun RootNavHost(authStateManager: AuthStateManager) {
inclusive = true
}
}
}
},
notificationData = notificationData
)
}
}
Expand Down
Loading