Skip to content

Commit 2ef1b2a

Browse files
committed
[FEATURE] : AnalyticsHelper CompositionLocal 구현체 주입 및 암시적 전달 구현
1 parent 3eb2537 commit 2ef1b2a

File tree

2 files changed

+46
-37
lines changed

2 files changed

+46
-37
lines changed

app/build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ dependencies {
3737
implementation(project(":feature:management-survey"))
3838
implementation(project(":feature:management-event"))
3939
implementation(project(":feature:splash"))
40+
implementation(project(":core:common"))
41+
implementation(project(":core:analytics"))
4042
implementation(project(":core:designresource"))
4143
implementation(project(":core:designsystem"))
4244
implementation(project(":core:domain"))

app/src/main/java/com/wap/wapp/MainActivity.kt

+44-37
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.navigationBars
1212
import androidx.compose.foundation.layout.padding
1313
import androidx.compose.foundation.layout.windowInsetsPadding
1414
import androidx.compose.material3.Scaffold
15+
import androidx.compose.runtime.CompositionLocalProvider
1516
import androidx.compose.runtime.getValue
1617
import androidx.compose.runtime.mutableStateOf
1718
import androidx.compose.runtime.saveable.rememberSaveable
@@ -24,6 +25,8 @@ import androidx.navigation.compose.currentBackStackEntryAsState
2425
import androidx.navigation.compose.rememberNavController
2526
import com.wap.designsystem.WappTheme
2627
import com.wap.wapp.component.WappBottomBar
28+
import com.wap.wapp.core.analytics.AnalyticsHelper
29+
import com.wap.wapp.core.analytics.LocalAnalyticsHelper
2730
import com.wap.wapp.core.domain.usecase.auth.SignInUseCase
2831
import com.wap.wapp.feature.attendance.management.navigation.attendanceManagementNavigationRoute
2932
import com.wap.wapp.feature.auth.signin.navigation.signInNavigationRoute
@@ -47,50 +50,54 @@ class MainActivity : ComponentActivity() {
4750
@Inject
4851
lateinit var signInUseCase: SignInUseCase
4952

53+
@Inject
54+
lateinit var analyticsHelper: AnalyticsHelper
55+
5056
override fun onCreate(savedInstanceState: Bundle?) {
5157
setSystemBarStyle()
5258
super.onCreate(savedInstanceState)
5359
setContent {
54-
WappTheme {
55-
val navController = rememberNavController()
56-
57-
Scaffold(
58-
containerColor = WappTheme.colors.backgroundBlack,
59-
bottomBar = {
60-
val navBackStackEntry by
61-
navController.currentBackStackEntryAsState()
60+
val navController = rememberNavController()
61+
val navBackStackEntry by navController.currentBackStackEntryAsState()
62+
val currentRoute = navBackStackEntry?.destination?.route
63+
var bottomBarState by rememberSaveable { mutableStateOf(false) }
6264

63-
val currentRoute = navBackStackEntry?.destination?.route
64-
var bottomBarState by rememberSaveable { mutableStateOf(false) }
65-
66-
handleBottomBarState(
67-
currentRoute,
68-
setBottomBarState = { boolean ->
69-
bottomBarState = boolean
70-
},
71-
)
65+
CompositionLocalProvider(
66+
LocalAnalyticsHelper provides analyticsHelper,
67+
) {
68+
WappTheme {
69+
Scaffold(
70+
containerColor = WappTheme.colors.backgroundBlack,
71+
bottomBar = {
72+
handleBottomBarState(
73+
currentRoute,
74+
setBottomBarState = { boolean ->
75+
bottomBarState = boolean
76+
},
77+
)
7278

73-
WappBottomBar(
74-
currentRoute = currentRoute,
75-
bottomBarState = bottomBarState,
76-
onNavigateToDestination = { destination ->
77-
navigateToTopLevelDestination(
78-
navController,
79-
destination,
80-
)
81-
},
82-
modifier = Modifier.height(70.dp),
79+
WappBottomBar(
80+
currentRoute = currentRoute,
81+
bottomBarState = bottomBarState,
82+
onNavigateToDestination = { destination ->
83+
navigateToTopLevelDestination(
84+
navController,
85+
destination,
86+
)
87+
},
88+
modifier = Modifier.height(70.dp),
89+
)
90+
},
91+
modifier = Modifier
92+
.windowInsetsPadding(WindowInsets.navigationBars)
93+
.fillMaxSize(),
94+
) { innerPadding ->
95+
WappNavHost(
96+
signInUseCase = signInUseCase,
97+
navController = navController,
98+
modifier = Modifier.padding(innerPadding),
8399
)
84-
},
85-
modifier = Modifier
86-
.windowInsetsPadding(WindowInsets.navigationBars)
87-
.fillMaxSize(),
88-
) { innerPadding ->
89-
WappNavHost(
90-
signInUseCase = signInUseCase,
91-
navController = navController,
92-
modifier = Modifier.padding(innerPadding),
93-
)
100+
}
94101
}
95102
}
96103
}

0 commit comments

Comments
 (0)