Coder Social home page Coder Social logo

material-components / material-components-android-compose-theme-adapter Goto Github PK

View Code? Open in Web Editor NEW
415.0 415.0 44.0 4.09 MB

A library that enables reuse of Material themes defined in XML for theming in Jetpack Compose.

Home Page: https://material-components.github.io/material-components-android-compose-theme-adapter/

License: Apache License 2.0

Kotlin 99.25% Shell 0.75%

material-components-android-compose-theme-adapter's Introduction

Material Components: Shared Documentation and Policies

Material Components for Android, iOS, web and Flutter help developers execute Material Design with modular and customizable UI components. Developed by a core team of engineers and UX designers at Google, these components enable a reliable development workflow to build beautiful and functional user experiences.

This repo contains all common documentation for Material Components projects across the different platforms.

Repos

Useful Links

material-components-android-compose-theme-adapter's People

Contributors

aasitnikov avatar chrisbanes avatar dsn5ft avatar gurupreet avatar jossiwolf avatar jreehuis avatar material-admin avatar numeroanddev avatar ricknout avatar yrezgui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

material-components-android-compose-theme-adapter's Issues

Cannot create Typeface from ResourceFont

We added a compose based screen to our regular view based app and wanted to use the MdcTheme but are getting a "Cannot create Typeface from ResourceFont(resId=17040217, weight=FontWeight(weight=400), style=Normal)" exception.

No custom / downloadable font ist being used in this project. We tried and removed any item from any custom text style (which all inherit from TextAppearance.AppCompat or TextAppearance.MaterialComponents.* styles) but that didn't help either.

We were not able to find the issue and have to set readTypography to false for now.

We used compose / theme adapter version v1.0.0-alpha06 and material theme version 1.2.1 (we also tried 1.3.0-alpha03).

Exception:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: XXX, PID: 23474
    java.lang.IllegalStateException: Cannot create Typeface from ResourceFont(resId=17040217, weight=FontWeight(weight=400), style=Normal)
        at androidx.compose.ui.text.platform.TypefaceAdapter.create(SourceFile:245)
        at androidx.compose.ui.text.platform.TypefaceAdapter.create(SourceFile:145)
        at androidx.compose.ui.text.platform.extensions.TextPaintExtensionsKt.createTypeface(SourceFile:131)
        at androidx.compose.ui.text.platform.extensions.TextPaintExtensionsKt.applySpanStyle(SourceFile:53)
        at androidx.compose.ui.text.platform.AndroidParagraphIntrinsics.<init>(SourceFile:66)
        at androidx.compose.ui.text.platform.AndroidParagraphIntrinsicsKt.ActualParagraphIntrinsics(SourceFile:128)
        at androidx.compose.ui.text.ParagraphIntrinsicsKt.ParagraphIntrinsics(SourceFile:54)
        at androidx.compose.ui.text.MultiParagraphIntrinsics.<init>(SourceFile:76)
        at androidx.compose.ui.text.TextDelegate.layoutIntrinsics(SourceFile:117)
        at androidx.compose.ui.text.TextDelegate.layoutText(SourceFile:139)
        at androidx.compose.ui.text.TextDelegate.layout-BAnaFRY(SourceFile:197)
        at androidx.compose.foundation.text.TextController$measure$1.invoke(SourceFile:268)
        at androidx.compose.foundation.text.TextController$measure$1.invoke(Unknown Source:13)
        at androidx.compose.ui.LayoutKt$measureBlocksOf$1.measure-2MWCACw(SourceFile:147)
        at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(SourceFile:47)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(SourceFile:67)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(SourceFile:91)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(Unknown Source:0)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SourceFile:133)
        at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(SourceFile:473)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(SourceFile:90)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(SourceFile:63)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(SourceFile:1228)
        at androidx.compose.foundation.layout.Measurer.measure(SourceFile:1191)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measure(SourceFile:394)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measureChildren(SourceFile:105)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(SourceFile:227)
        at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(SourceFile:113)
        at androidx.compose.foundation.layout.Measurer.performMeasure-f8GzS1k(SourceFile:1342)
        at androidx.compose.foundation.layout.ConstraintLayoutKt$ConstraintLayout$2.invoke(SourceFile:94)
        at androidx.compose.foundation.layout.ConstraintLayoutKt$ConstraintLayout$2.invoke(Unknown Source:13)
        at androidx.compose.ui.LayoutKt$MeasuringIntrinsicsMeasureBlocks$1.measure-2MWCACw(SourceFile:386)
E/AndroidRuntime:     at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(SourceFile:47)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.foundation.layout.PaddingModifier.measure-3Jkh9V0(SourceFile:209)
        at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(SourceFile:36)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.foundation.layout.FillModifier.measure-3Jkh9V0(SourceFile:683)
        at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(SourceFile:36)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(SourceFile:91)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(Unknown Source:0)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SourceFile:133)
        at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(SourceFile:473)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(SourceFile:90)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(SourceFile:63)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(SourceFile:1228)
        at androidx.compose.material.SurfaceKt$SurfaceLayout$1$1.invoke(SourceFile:140)
        at androidx.compose.material.SurfaceKt$SurfaceLayout$1$1.invoke(Unknown Source:13)
        at androidx.compose.ui.LayoutKt$MeasuringIntrinsicsMeasureBlocks$1.measure-2MWCACw(SourceFile:386)
        at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(SourceFile:47)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(SourceFile:67)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(SourceFile:67)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.foundation.layout.FillModifier.measure-3Jkh9V0(SourceFile:683)
        at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(SourceFile:36)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(SourceFile:91)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(Unknown Source:0)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SourceFile:133)
        at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(SourceFile:473)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(SourceFile:90)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(SourceFile:63)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(SourceFile:1228)
E/AndroidRuntime:     at androidx.compose.foundation.lazy.LazyListState.measure-5vC3nwU$foundation_release(SourceFile:310)
        at androidx.compose.foundation.lazy.LazyForKt$LazyFor$1.invoke(SourceFile:307)
        at androidx.compose.foundation.lazy.LazyForKt$LazyFor$1.invoke(Unknown Source:10)
        at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasureBlocks$1.measure-2MWCACw(SourceFile:224)
        at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(SourceFile:47)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.foundation.layout.PaddingModifier.measure-3Jkh9V0(SourceFile:209)
        at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(SourceFile:36)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(SourceFile:67)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(SourceFile:104)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(SourceFile:91)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(Unknown Source:0)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SourceFile:133)
        at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(SourceFile:473)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(SourceFile:90)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(SourceFile:63)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(SourceFile:1228)
        at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasureBlocks$1.invoke(SourceFile:87)
        at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasureBlocks$1.invoke(Unknown Source:13)
        at androidx.compose.ui.LayoutKt$measureBlocksOf$1.measure-2MWCACw(SourceFile:147)
        at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(SourceFile:47)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.foundation.layout.FillModifier.measure-3Jkh9V0(SourceFile:683)
        at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(SourceFile:36)
        at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(SourceFile:123)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(SourceFile:91)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(Unknown Source:0)
        at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(SourceFile:220)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SourceFile:128)
        at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(SourceFile:473)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(SourceFile:90)
        at androidx.compose.ui.node.LayoutNode.remeasure-BRTryo0$ui_release(SourceFile:1235)
        at androidx.compose.ui.node.LayoutNode.remeasure-BRTryo0$default(SourceFile:1233)
        at androidx.compose.ui.node.LayoutNode.onBeforeLayoutChildren(SourceFile:1041)
        at androidx.compose.ui.node.LayoutNode.layoutChildren(SourceFile:930)
        at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(SourceFile:925)
        at androidx.compose.ui.node.InnerPlaceable.placeAt--gyyYBs(SourceFile:118)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
E/AndroidRuntime:     at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$performMeasure$1.placeChildren(SourceFile:111)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt--gyyYBs(SourceFile:99)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$performMeasure$1.placeChildren(SourceFile:111)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt--gyyYBs(SourceFile:99)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$performMeasure$1.placeChildren(SourceFile:111)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt--gyyYBs(SourceFile:99)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$performMeasure$1.placeChildren(SourceFile:111)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt--gyyYBs(SourceFile:99)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$performMeasure$1.placeChildren(SourceFile:111)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt--gyyYBs(SourceFile:99)
        at androidx.compose.ui.node.LayerWrapper.placeAt--gyyYBs(SourceFile:73)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt--gyyYBs(SourceFile:115)
        at androidx.compose.ui.Placeable$PlacementScope.place-gl1q84w(SourceFile:176)
        at androidx.compose.ui.Placeable$PlacementScope.placeAutoMirrored-gl1q84w(SourceFile:180)
        at androidx.compose.ui.Placeable$PlacementScope.placeRelative(SourceFile:154)
        at androidx.compose.ui.node.LayoutNode.place(SourceFile:826)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(SourceFile:220)
        at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(SourceFile:391)
        at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(SourceFile:545)
        at android.view.View.draw(View.java:22353)
        at android.view.View.updateDisplayListIfDirty(View.java:21226)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
        at android.view.View.updateDisplayListIfDirty(View.java:21186)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473)
        at android.view.View.updateDisplayListIfDirty(View.java:21186)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at androidx.fragment.app.FragmentContainerView.drawChild(SourceFile:235)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at androidx.fragment.app.FragmentContainerView.dispatchDraw(SourceFile:223)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(SourceFile:1963)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
E/AndroidRuntime:     at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at android.view.View.updateDisplayListIfDirty(View.java:21217)
        at android.view.View.draw(View.java:22081)
        at android.view.ViewGroup.drawChild(ViewGroup.java:4516)
        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4277)
        at android.view.View.draw(View.java:22353)
        at com.android.internal.policy.DecorView.draw(DecorView.java:806)
        at android.view.View.updateDisplayListIfDirty(View.java:21226)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:4101)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3828)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3099)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
        at android.view.Choreographer.doCallbacks(Choreographer.java:796)
        at android.view.Choreographer.doFrame(Choreographer.java:731)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Issue with TextField label

Using MdcTheme we are experiencing an exception when we define a label on TextField:

java.lang.IllegalArgumentException: Cannot perform operation for Sp and Em
        at androidx.compose.ui.unit.TextUnitKt.checkArithmetic-NB67dxo(SourceFile:333)
        at androidx.compose.ui.unit.TextUnitKt.lerp-C3pnCVY(SourceFile:364)
        at androidx.compose.ui.text.SpanStyleKt.lerpTextUnitInheritable-C3pnCVY(SourceFile:229)
        at androidx.compose.ui.text.SpanStyleKt.lerp(SourceFile:280)
        at androidx.compose.ui.text.TextStyleKt.lerp(SourceFile:358)
        at androidx.compose.material.TextFieldImplKt$TextFieldImpl$1$decoratedLabel$1.invoke(SourceFile:109)
        at androidx.compose.material.TextFieldImplKt$TextFieldImpl$1$decoratedLabel$1.invoke(SourceFile:108)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:121)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:46)
        at androidx.compose.material.TextFieldKt.IconsWithTextFieldLayout-SxpAMN0(SourceFile:416)
        at androidx.compose.material.TextFieldKt.access$IconsWithTextFieldLayout-SxpAMN0(SourceFile:1)
        at androidx.compose.material.TextFieldKt$TextFieldLayout$1.invoke(SourceFile:355)
        at androidx.compose.material.TextFieldKt$TextFieldLayout$1.invoke(SourceFile:353)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:130)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:46)
        at androidx.compose.foundation.text.CoreTextFieldKt.CoreTextField(SourceFile:447)
        at androidx.compose.foundation.text.BasicTextFieldKt.BasicTextField(SourceFile:251)
        at androidx.compose.material.TextFieldKt.TextFieldLayout-uBqXD2s(SourceFile:333)
        at androidx.compose.material.TextFieldImplKt$TextFieldImpl$1.invoke-rAjV9yQ(SourceFile:137)
        at androidx.compose.material.TextFieldImplKt$TextFieldImpl$1.invoke(SourceFile:104)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:163)
        at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(SourceFile:46)
        at androidx.compose.material.TextFieldTransitionScope.Transition(SourceFile:322)
        at androidx.compose.material.TextFieldImplKt.TextFieldImpl(SourceFile:102)
        at androidx.compose.material.TextFieldKt.TextField(SourceFile:281)
        at androidx.compose.material.TextFieldKt.TextField(SourceFile:170)

Switching to MaterialTheme the issue is gone.

SmallTopAppBar not working

When I use MediumTopAppBar(), it is working perfectly but if I change it to SmallTopAppBar() my app is crashing

java.lang.IllegalArgumentException: maxWidth(-1080) must be >= minWidth(1080)
        at androidx.compose.ui.unit.Constraints.copy-Zbe2FdA(Constraints.kt:172)
        at androidx.compose.ui.unit.Constraints.copy-Zbe2FdA$default(Constraints.kt:163)
        at androidx.compose.material3.AppBarKt$TopAppBarLayout$2.measure-3p2s80s(AppBar.kt:988)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:306)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.constraintlayout.compose.Measurer.measure(ConstraintLayout.kt:1004)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measure(BasicMeasure.java:466)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measureChildren(BasicMeasure.java:134)
        at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:278)
        at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:120)
        at androidx.constraintlayout.compose.Measurer.performMeasure-DjhGOtQ(ConstraintLayout.kt:1235)
        at androidx.constraintlayout.compose.ConstraintLayoutKt$rememberConstraintLayoutMeasurePolicy$1$measurePolicy$1.measure-3p2s80s(ConstraintLayout.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
2022-02-26 11:54:44.970 16063-16063/uz.unical.edusystem.parent E/AndroidRuntime:     at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:96)
        at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:96)
        at androidx.compose.foundation.layout.InsetsPaddingModifier.measure-3p2s80s(WindowInsetsPadding.kt:132)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.foundation.layout.PaddingValuesModifier.measure-3p2s80s(Padding.kt:417)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.graphics.BlockGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:247)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
2022-02-26 11:54:44.972 16063-16063/uz.unical.edusystem.parent E/AndroidRuntime:     at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
        at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1280)
        at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:113)
        at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:54)
        at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:306)
        at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:40)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
        at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1918)
        at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
        at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
        at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
        at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1289)
        at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1285)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:170)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:246)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
        at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:191)
        at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt:739)
        at android.view.View.measure(View.java:27131)
        at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeView.android.kt:302)
        at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:289)
        at android.view.View.measure(View.java:27131)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7951)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at android.view.View.measure(View.java:27131)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7951)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
        at android.view.View.measure(View.java:27131)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7951)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1175)
        at android.view.View.measure(View.java:27131)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:4187)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2936)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3204)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2618)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9971)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
        at android.view.Choreographer.doCallbacks(Choreographer.java:809)
        at android.view.Choreographer.doFrame(Choreographer.java:744)
2022-02-26 11:54:44.973 16063-16063/uz.unical.edusystem.parent E/AndroidRuntime:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8595)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

MdcTheme crashes when running a preview

Running a preview on emulator that uses MdcTheme crashes with the following error:

Caused by: java.lang.IllegalArgumentException: MaterialThemeUsingMdcTheme requires the host context's theme to extend Theme.MaterialComponents
 at com.google.android.material.composethemeadapter.MdcTheme.createMdcTheme(MdcTheme.kt:134)
 at com.google.android.material.composethemeadapter.MdcTheme.createMdcTheme$default(MdcTheme.kt:125)
 at com.google.android.material.composethemeadapter.MdcTheme.MdcTheme(MdcTheme.kt:75)

How to reproduce

Open the MigrationCodelab project from the android-compose-codelabs end branch and run any of the previews in the PlantDetailDescription.kt file.

Versions

  • Compose alpha06
  • Android Studio 4.2 Canary 13

Version 1.1.22 ships with missing dependency on :core module

Thanks for providing this library! After updating compose-theme-adapter to 1.1.22, my build started to fail with the following error:

Execution failed for task ':app:mergeDebugNativeLibs'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not find material-components-android-compose-theme-adapter:core:unspecified.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
       - https://repo.maven.apache.org/maven2/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
       - https://zendesk.jfrog.io/zendesk/repo/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
       - https://jitpack.io/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
     Required by:
         project :app > project :ui-compose > com.google.android.material:compose-theme-adapter:1.1.22

While inspecting the POM of this artifact (DL link from maven.google.com), I noticed a dependency on the newly refactored :core module, but without proper group/artifact IDs. We'd need to ship that core as its own Maven artifact, or at the very least include its code into the two artifacts that are shipped. I have reverted to 1.1.21 for the time being.

<!-- Just an excerpt, the actual file is longer -->
  <dependencies>
    <dependency>
      <groupId>material-components-android-compose-theme-adapter</groupId>
      <artifactId>core</artifactId>
      <version>unspecified</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <artifactId>lifecycle-viewmodel-ktx</artifactId>
          <groupId>androidx.lifecycle</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

Including the library in a dynamic feature module changes typography themes elements

I got a weird issue when I tried to include the library in a dynamic feature module. I don't know what is happening exactly but this seems to modify some theme attributes used in the regular view system.

Here is a link to a minimal sample reproduction
https://github.com/fbarthelery/Bug-material-components-android-compose-theme-adapter

Without compose-theme-adapter dependency

With compose-theme-adapter dependency

Compose-beta09-crash

There seems to be in issue with the current version beta08 and new version of compose beta09

Fatal Exception: java.lang.NoSuchFieldError
No field Normal of type Landroidx/compose/ui/text/font/FontStyle; in class Landroidx/compose/ui/text/font/FontStyle; or its superclasses (declaration of 'androidx.compose.ui.text.font.FontStyle' appears in ...)

In app dark mode setting is ignored & missing manual dark mode override

Situation / problem:
I'm currently using Compose in conjunction with views and I'm utilizing my already defined Material Design theme via the MDC-Android Compose Theme Adapter. This works actually great, except for a dark mode applied in app via AppCompatDelegate.setDefaultNightMode(darkMode) and not system wide. The app always stays in the system wide defined theme. That makes actually sense as the ComponentActivity isn't aware of the AppCompat part.

Fix idea:
It would be great if this could "just work" somehow, but I'm unaware if this is somehow possible. As an easy fix and addition to this library it would be great to just have a switch for the MdcTheme() constructor or the createMdcTheme() method, to manually set the mode to dark or light.

Used library version: 1.0.1

createMdcTheme() is missing secondaryVariant color in dark mode

createMdcTheme() reads secondaryVariant from the applied theme, but does not set the value in darkColors(). The darkColors() function allows this because it defaults the secondaryVariant parameter to match secondary, but users of the theme adapter should have a choice.

That is, the line after this one:

should be something like:

secondaryVariant = secondaryVariant.takeIf { it != Color.Unspecified } ?: secondary,

to allow users to have a secondaryVariant value that differs from secondary in dark mode.

Thank you.

Breaking ProcessLifecycle Events

Between version 1.0.5 (working) and [1.1.0-1.1.4] ProcessLifecycle is broken for all LifecycleObserver, DefaultLifecycleObserver and LifecycleEventObserver interfaces.

From 1.1.0 it pushed lifecycle dependencies to update and causes the issue probably.

lifecycle-process:2.2.0 -> 2.4.0
lifecycle-runtime:2.0.0 -> 2.3.1

Android Studio Bumblebee 2021.1.1 Patch 1

ext.kotlin_version = '1.6.10'
ext.android_gradle_plugin = '7.1.1'
ext.dokkaVersion = '0.9.18'
ext.hiltVersion = '2.38.1'
ext.compose_version = '1.1.0'

Reproduce step:

  1. add a process lifecyle
    implement LifecycleObserver
    ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onApplicationResume() {
    ....
    }

  2. try with
    api "com.google.android.material:compose-theme-adapter:1.0.5" (be sure that life cycle event called)
    api "com.google.android.material:compose-theme-adapter:1.1.0" (life cycle event not called, deprecates lifecycle annotation and suggests use DefaultLifecycleObserver and LifecycleEventObserver interfaces instead but none of them are called.)

Fonts are not read from the XML Material Theme

As stated in the documentation, I have set the text appearances in my XML file like so for example:

<item name="textAppearanceBody1">@style/MyBody1</item>

and MyBody1 is defined as:

<style name="MyBody1" parent="TextAppearance.MaterialComponents.Body1">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/white87</item>
        <item name="android:fontFamily">@font/montserrat_medium</item>
</style>

monseratt_medium.xml is a downloadable font and defined as:

<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
        app:fontProviderAuthority="com.google.android.gms.fonts"
        app:fontProviderPackage="com.google.android.gms"
        app:fontProviderQuery="name=Montserrat&amp;weight=500"
        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>

When creating a Text in Compose:

Text(
        text = stringResource(id = R.string.time_in_states),
        style = MaterialTheme.typography.body1
)

The font is ignored and the standard font is used (Roboto I guess). The only style part set in the XML correclty used by Compose is the text style (like bold, italic...). However, in the old View system, the font is set correctly. I also tried using the .ttf font directly (not using downloadable fonts) and it's still the same issue.

What am I doing wrong?

Release versions alpha releases of Compose

Hello!

I think it would be helpful to have versions of this library all aligned with Compose, even for pre-releases like alphas.

That way, we can always share the version.

Setting LineHeight using dp instead of sp breaks vertical spacing

When I

  • set lineHeight to 44dp to for example Headline3 style
  • update the headline 3 text so it is longer then one line here

The vertical spacing completely breaks - there is a huge (cca 1000dp) line spacing instead of 44dp. Using sp instead of dp fixes the issue.

Patch

Index: sample/src/main/java/com/google/android/material/composethemeadapter/sample/MaterialIntegration.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/sample/src/main/java/com/google/android/material/composethemeadapter/sample/MaterialIntegration.kt b/sample/src/main/java/com/google/android/material/composethemeadapter/sample/MaterialIntegration.kt
--- a/sample/src/main/java/com/google/android/material/composethemeadapter/sample/MaterialIntegration.kt	(revision 2f8d91620d72d4c7ff464edeb094d04d246b4270)
+++ b/sample/src/main/java/com/google/android/material/composethemeadapter/sample/MaterialIntegration.kt	(date 1640865711026)
@@ -130,7 +130,7 @@
                 style = MaterialTheme.typography.h2
             )
             Text(
-                text = "Headline 3",
+                text = "Headline 3 LONG HEADLINE",
                 style = MaterialTheme.typography.h3
             )
             Text(
Index: sample/src/main/res/values/type.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/sample/src/main/res/values/type.xml b/sample/src/main/res/values/type.xml
--- a/sample/src/main/res/values/type.xml	(revision 2f8d91620d72d4c7ff464edeb094d04d246b4270)
+++ b/sample/src/main/res/values/type.xml	(date 1640865736222)
@@ -19,6 +19,7 @@
     <style name="TextAppearance.Sample.Headline3"
         parent="TextAppearance.MaterialComponents.Headline3">
         <item name="fontFamily">@font/dancingscript</item>
+        <item name="lineHeight">44dp</item>
     </style>
 
     <!-- Use TextAppearance.AppCompat.Subhead as parent to avoid inheriting letterSpacing -->

Stable release dependency on MCD alpha

I was wondering if there are specific reasons why stable versions of this library depends on alpha version of material design? Right now the version 1.1.15 depends on MDC 1.7.0-alpha03.
Would it be and issue if I use version 1.1.15 and force downgrading to the MDC 1.6.1? Or does this library uses features from MCD alpha?

Preview dark theme

In traditional theme, you can have something like:

@Composable
fun AppTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
    val colors = if (darkTheme) darkColors else lightColors
    MaterialTheme(
        colors = colors,
        content = content
    )
}

@Preview
@Composable
fun PreviewDark() {
    AppTheme(true) {
        Button("btn")
    }
}

How does this translate to this library? Would it be possible to have a flag for that?

Can not use serif-monospace

MDC Adapter can not display serif-monospace, but works with other fontFamily like monospace and sans-serif-black.

Monospace Sans Serif Black

And here is Serif Monospace in Compose and Views XML:

Compose with MDC Views XML (how it should looks like)

The fact that it doesnt exist in google fonts make it harder to use this font manually in Compose:

image

Additional Info
Sample app to reproduce that is available here.

Text color same as surface color

I am not sure if there is something obvious that I am missing. But when enabling setTextColors = true my pure composables start putting dark text behind dark background, and white text on white background (making them completely invisible).
What is the mapping that is happening that would make this possible. I am guessing I am doing something wrong on my theme.xml, but so far I haven't faced such problems on my normal non-composable views.
Am I missing something in the purpose of the setTextColors itself? Any pointers would be appreciated

Not possible to update to 1.0.22 / 1.1.22

In two projects, one using 'com.google.android.material:compose-theme-adapter-3:1.0.22', the other using 'com.google.android.material:compose-theme-adapter:1.1.22' I get similar error message:

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:dataBindingMergeDependencyArtifactsGenericDebug'.
> Could not resolve all files for configuration ':app:genericDebugRuntimeClasspath'.
   > Could not find material-components-android-compose-theme-adapter:core:unspecified.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
       - https://repo.maven.apache.org/maven2/material-components-android-compose-theme-adapter/core/unspecified/core-unspecified.pom
     Required by:
         project :app > com.google.android.material:compose-theme-adapter-3:1.0.22

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

It seems the new core dependency is not publicly available.

Parse fontFamily in main theme as defaultFontFamily

Some folks have reported using MDC themes but are specifying fontFamily/android:fontFamily as a top-level theme attribute as opposed to within individual TextAppearance styles. It would be useful to parse this and use it as the defaultFontFamily constructor parameter for Typography.

AppCompat Compose Theme Adapter does this so we can adapt the implementation:
https://github.com/google/accompanist/blob/main/appcompat-theme/src/main/java/com/google/accompanist/appcompattheme/AppCompatTheme.kt#L220

Please provide a "product" description

We (all of us) seem to have fallen into the habit of assuming the folks have time to read and study code to figure out what is going in, we need to change that.

If one doesn't have a high-level description of what we are trying to do, how can we actually quickly and successfully "do" it.

Please provide that high level description that is missing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.