Guy Bieber
04/28/2020, 7:05 PMsetContent {
MaterialTheme {
//for some reason this gets an error
//pageData.page()
// moved to a switch statement
when (page) {
Pages.SPLASH_PAGE -> {
SplashPage()
}
Pages.LOGIN_PAGE -> {
LoginPage()
}
Pages.RESET_PASSWORD_PAGE -> {
ForgotPasswordPage()
Here is the error:
2020-04-28 11:55:16.113 26150-26150/com.nikolamotor.nikolamotor E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.nikolamotor.nikolamotor, PID: 26150
java.lang.IllegalArgumentException: Start/end imbalance
at androidx.compose.Composer.finalizeCompose(Composer.kt:1595)
at androidx.compose.Composer.endRoot(Composer.kt:509)
at androidx.compose.Recomposer.recompose(Recomposer.kt:79)
at androidx.compose.Recomposer.access$recompose$1(Unknown Source:0)
at androidx.compose.Recomposer$Companion.recompose$compose_runtime_release(Recomposer.kt:56)
at androidx.compose.CompositionImpl.setContent(Composition.kt:91)
at androidx.ui.core.WrappedComposition.setContent(Wrapper.kt:221)
at androidx.ui.core.WrapperKt.doSetContent(Wrapper.kt:201)
at androidx.ui.core.WrapperKt.setContent(Wrapper.kt:156)
at androidx.ui.core.WrapperKt.setContent(Wrapper.kt:129)
at com.nikolamotor.nikolamotor.MainActivity$PageControl.SwitchPage(MainActivity.kt:207)
at com.nikolamotor.nikolamotor.MainActivity$HomePage$3.invoke(MainActivity.kt:499)
at com.nikolamotor.nikolamotor.MainActivity$HomePage$3.invoke(Unknown Source:6)
at androidx.compose.internal.RestartableFunction.invoke(RestartableFunction.kt:140)
at androidx.compose.internal.RestartableFunction$invoke$1.invoke(RestartableFunction.kt:141)
at androidx.compose.internal.RestartableFunction$invoke$1.invoke(Unknown Source:3)
at androidx.compose.RecomposeScope.compose(Composer.kt:265)
at androidx.compose.Composer.composeScope(Composer.kt:1431)
at androidx.compose.Composer.recomposeComponentRange(Composer.kt:1377)
at androidx.compose.Composer.skipCurrentGroup(Composer.kt:1426)
at androidx.compose.Composer.recompose(Composer.kt:1495)
at androidx.compose.Recomposer.performRecompose(Recomposer.kt:107)
at androidx.compose.Recomposer.dispatchRecomposes(Recomposer.kt:135)
at androidx.compose.AndroidRecomposer.access$dispatchRecomposes$1(Unknown Source:0)
at androidx.compose.AndroidRecomposer$frameCallback$1.doFrame(AndroidRecomposer.kt:27)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:965)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:722)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Any thoughts?
Note I can call the same function from back and it works every time (outside a composable function)
//@Composable
override fun onBackPressed() {
pg.BackPage()
//super.onBackPressed()
}
fun BackPage () {
if (currentPage != <http://Pages.NO|Pages.NO>_PAGE) {
val pageData = pageMap[currentPage]
if (pageData != null) {
// this page has a specific back page
if (pageData.backPage != <http://Pages.NO|Pages.NO>_PAGE) {
SwitchPage(pageData.backPage)
// this go back to
} else if (priorPage != <http://Pages.NO|Pages.NO>_PAGE){
SwitchPage(priorPage)
}
}
}
}
Adam Powell
04/28/2020, 7:22 PMGuy Bieber
04/28/2020, 7:33 PMVinay Gaba
04/28/2020, 8:16 PMsetContent
calls - https://github.com/vinaygaba/Droidcon-SF-2019-Architecture-Agnostic-UI-Development/blob/master/app/src/main/java/com/droidconsf/architectureagnosticuidevelopment/ui/comicbooks/compose/ComicsApp.kt#L21Guy Bieber
04/28/2020, 9:59 PM