diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt b/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt
index cb1ba89a..8fa77a44 100644
--- a/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt
+++ b/app-shared-tests/src/main/java/com/appunite/loudius/AbsLoginScreenTest.kt
@@ -43,6 +43,7 @@ import org.hamcrest.Matchers.allOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
+import org.koin.compose.KoinContext
import org.koin.core.context.GlobalContext
import org.koin.dsl.module
import strikt.api.expectThat
@@ -81,8 +82,10 @@ abstract class AbsLoginScreenTest {
.respondWith(Instrumentation.ActivityResult(Activity.RESULT_OK, null))
composeTestRule.setContent {
- LoudiusTheme {
- LoginScreen()
+ KoinContext {
+ LoudiusTheme {
+ LoginScreen()
+ }
}
}
@@ -110,8 +113,10 @@ abstract class AbsLoginScreenTest {
.respondWith(Instrumentation.ActivityResult(Activity.RESULT_OK, null))
composeTestRule.setContent {
- LoudiusTheme {
- LoginScreen()
+ KoinContext {
+ LoudiusTheme {
+ LoginScreen()
+ }
}
}
diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/AbsPullRequestsScreenTest.kt b/app-shared-tests/src/main/java/com/appunite/loudius/AbsPullRequestsScreenTest.kt
index 36e7bad8..0f57ca4d 100644
--- a/app-shared-tests/src/main/java/com/appunite/loudius/AbsPullRequestsScreenTest.kt
+++ b/app-shared-tests/src/main/java/com/appunite/loudius/AbsPullRequestsScreenTest.kt
@@ -28,6 +28,7 @@ import com.appunite.loudius.util.Register
import com.appunite.loudius.util.waitUntilLoadingDoesNotExist
import org.junit.Rule
import org.junit.Test
+import org.koin.compose.KoinContext
import strikt.api.expectThat
import strikt.assertions.containsExactly
@@ -49,8 +50,10 @@ abstract class AbsPullRequestsScreenTest {
Register.issues(mockWebServer)
composeTestRule.setContent {
- LoudiusTheme {
- PullRequestsScreen { _, _, _, _ -> }
+ KoinContext {
+ LoudiusTheme {
+ PullRequestsScreen { _, _, _, _ -> }
+ }
}
}
diff --git a/app-shared-tests/src/main/java/com/appunite/loudius/AbsReviewersScreenTest.kt b/app-shared-tests/src/main/java/com/appunite/loudius/AbsReviewersScreenTest.kt
index 759b887f..8c4e0abc 100644
--- a/app-shared-tests/src/main/java/com/appunite/loudius/AbsReviewersScreenTest.kt
+++ b/app-shared-tests/src/main/java/com/appunite/loudius/AbsReviewersScreenTest.kt
@@ -30,6 +30,7 @@ import com.appunite.loudius.util.waitUntilLoadingDoesNotExist
import org.junit.Before
import org.junit.Rule
import org.junit.Test
+import org.koin.compose.KoinContext
import strikt.api.expectThat
import strikt.assertions.containsExactly
@@ -53,8 +54,10 @@ abstract class AbsReviewersScreenTest {
fun whenResponseIsCorrectThenReviewersAreVisible() {
with(integrationTestRule) {
composeTestRule.setContent {
- LoudiusTheme {
- ReviewersScreen { }
+ KoinContext {
+ LoudiusTheme {
+ ReviewersScreen { }
+ }
}
}
@@ -76,8 +79,10 @@ abstract class AbsReviewersScreenTest {
Register.comment(mockWebServer)
composeTestRule.setContent {
- LoudiusTheme {
- ReviewersScreen { }
+ KoinContext {
+ LoudiusTheme {
+ ReviewersScreen { }
+ }
}
}
@@ -107,8 +112,10 @@ abstract class AbsReviewersScreenTest {
fun whenClickOnNotifyAndDoNotCommentThenShowError() {
with(integrationTestRule) {
composeTestRule.setContent {
- LoudiusTheme {
- ReviewersScreen { }
+ KoinContext {
+ LoudiusTheme {
+ ReviewersScreen { }
+ }
}
}
diff --git a/app/src/main/java/com/appunite/loudius/MainActivity.kt b/app/src/main/java/com/appunite/loudius/MainActivity.kt
index 37936c33..e349ac9b 100644
--- a/app/src/main/java/com/appunite/loudius/MainActivity.kt
+++ b/app/src/main/java/com/appunite/loudius/MainActivity.kt
@@ -37,6 +37,7 @@ import com.appunite.loudius.ui.login.LoginScreen
import com.appunite.loudius.ui.pullrequests.PullRequestsScreen
import com.appunite.loudius.ui.reviewers.ReviewersScreen
import org.koin.androidx.viewmodel.ext.android.viewModel
+import org.koin.compose.KoinContext
class MainActivity : ComponentActivity() {
@@ -44,58 +45,60 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
- LoudiusTheme {
- // A surface container using the 'background' color from the theme
- Surface(
- modifier = Modifier.fillMaxSize(),
- color = MaterialTheme.colorScheme.background
- ) {
- val navController = rememberNavController()
-
- LaunchedEffect(viewModel.state.authFailureEvent) {
- navigateToLoginOnAuthFailure(navController)
- }
-
- NavHost(
- navController = navController,
- startDestination = Screen.Login.route
+ KoinContext {
+ LoudiusTheme {
+ // A surface container using the 'background' color from the theme
+ Surface(
+ modifier = Modifier.fillMaxSize(),
+ color = MaterialTheme.colorScheme.background
) {
- composable(route = Screen.Login.route) {
- LoginScreen()
+ val navController = rememberNavController()
+
+ LaunchedEffect(viewModel.state.authFailureEvent) {
+ navigateToLoginOnAuthFailure(navController)
}
- composable(
- route = Screen.Authenticating.route,
- deepLinks = Screen.Authenticating.deepLinks
+
+ NavHost(
+ navController = navController,
+ startDestination = Screen.Login.route
) {
- AuthenticatingScreen(
- onNavigateToPullRequest = {
- navController.navigate(Screen.PullRequests.route) {
- popUpTo(Screen.Login.route) { inclusive = true }
- }
- },
- onNavigateToLogin = {
- navController.navigate(Screen.Login.route) {
- popUpTo(Screen.Login.route) { inclusive = true }
+ composable(route = Screen.Login.route) {
+ LoginScreen()
+ }
+ composable(
+ route = Screen.Authenticating.route,
+ deepLinks = Screen.Authenticating.deepLinks
+ ) {
+ AuthenticatingScreen(
+ onNavigateToPullRequest = {
+ navController.navigate(Screen.PullRequests.route) {
+ popUpTo(Screen.Login.route) { inclusive = true }
+ }
+ },
+ onNavigateToLogin = {
+ navController.navigate(Screen.Login.route) {
+ popUpTo(Screen.Login.route) { inclusive = true }
+ }
}
- }
- )
- }
- composable(route = Screen.PullRequests.route) {
- PullRequestsScreen { owner, repo, pullRequestNumber, submissionTime ->
- val route = Screen.Reviewers.constructRoute(
- owner = owner,
- repo = repo,
- pullRequestNumber = pullRequestNumber,
- submissionDate = submissionTime
)
- navController.navigate(route)
}
- }
- composable(
- route = Screen.Reviewers.route,
- arguments = Screen.Reviewers.arguments
- ) {
- ReviewersScreen { navController.popBackStack() }
+ composable(route = Screen.PullRequests.route) {
+ PullRequestsScreen { owner, repo, pullRequestNumber, submissionTime ->
+ val route = Screen.Reviewers.constructRoute(
+ owner = owner,
+ repo = repo,
+ pullRequestNumber = pullRequestNumber,
+ submissionDate = submissionTime
+ )
+ navController.navigate(route)
+ }
+ }
+ composable(
+ route = Screen.Reviewers.route,
+ arguments = Screen.Reviewers.arguments
+ ) {
+ ReviewersScreen { navController.popBackStack() }
+ }
}
}
}
diff --git a/components/README.md b/components/README.md
index 4eb383eb..8d5203f2 100644
--- a/components/README.md
+++ b/components/README.md
@@ -60,4 +60,4 @@ Topbar is a component on the top of the screen.
| Variant | Snapshot |
|--------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Topbar with back navigation**
[Source Code](../components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt#L61-L70) |
|
-| **Topbar with no navigation**
[Source Code](../components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt#L72-L80) |
|
\ No newline at end of file
+| **Topbar with no navigation**
[Source Code](../components/src/main/java/com/appunite/loudius/components/components/LoudiusTopAppBar.kt#L72-L80) |
|