Bug P3
Status Update
Comments
go...@jakewharton.com <go...@jakewharton.com> #2
Please fix this bug. I rely on this calendar software to track my tasks and this is causing me serious trouble.
as...@google.com <as...@google.com> #3
I'm getting reports from users of an app I developed which uses the Google Tasks API about this issue. Hoping Google will fix this one as it kind of breaks the API functionality..
al...@google.com <al...@google.com> #4
I see a little bit different issue. Once the date is "locked out" I cannot see the changes I make with third party apps whether or not I reload one or all of the apps. Everything displays correctly in the TP Apps on all sync'd devices, but never correctly displayed in the "Google Task" app on any sync'd device.
If I change the Due Date using the "Google Task" app, everything is displayed correctly in all TP Apps as well as Google Task apps on all sync'd devices.
If I change the Due Date using the "Google Task" app, everything is displayed correctly in all TP Apps as well as Google Task apps on all sync'd devices.
bu...@google.com <bu...@google.com> #5
I have been using Google Tasks with a third-party app for years, to manage personal and professional activities. This bug is making Tasks much harder to use and trust. Please prioritize and address. Thanks.
al...@google.com <al...@google.com>
go...@jakewharton.com <go...@jakewharton.com> #6
I use http://calendar.google.com on my desktop and a hhird party app on my mobile devices. I am experiencing the exact behavior described by the original poster. This makes http://calendar.google.com unreliable and not usable. Please fix this bug so that http://calendar.google.com will be usable again.
as...@google.com <as...@google.com> #7
The OP is absolutely right. After some testing, I'm 99% sure the issue here is that there are two different due date fields in the database: the one available through the Google Tasks API, and the one that Google Calendar (and the rest of GSuite) uses. As the OP and others have said, this started when the due times and task recurrence features were added. Details on how to recreate the problem:
1. Create a Task with a due date (with or without a due time) athttps://calendar.google.com/
2. Use any app to update the task's due date via the Google Tasks API, even Google's own:https://developers.google.com/tasks/v1/reference/tasks/update
3. The Google Tasks API will report the date as the one that was changed, but Google Calendar will show the date it originally set
From that point on, changing the date with Google Calendar changes both dates (API and Calendar), but changing via the API only works if the date was never set by Calendar. As soon as Calendar writes to it's other field in the database, it will copy any change it makes to the datetime field the API uses, but will only every use the value it wrote to display in Calendar.
Solving the issue seems fairly straightforward: use the same datetime field in both Google Calendar/GSuite and the Google Tasks API. This would have the added advantage that developers using the Google Tasks API could set due times. Currently the Google Tasks API date is always rounded to 0 UTC, even if you set a time in Calendar, or attempt to set one via the API.
Thanks and have a good one,
Kevin
1. Create a Task with a due date (with or without a due time) at
2. Use any app to update the task's due date via the Google Tasks API, even Google's own:
3. The Google Tasks API will report the date as the one that was changed, but Google Calendar will show the date it originally set
From that point on, changing the date with Google Calendar changes both dates (API and Calendar), but changing via the API only works if the date was never set by Calendar. As soon as Calendar writes to it's other field in the database, it will copy any change it makes to the datetime field the API uses, but will only every use the value it wrote to display in Calendar.
Solving the issue seems fairly straightforward: use the same datetime field in both Google Calendar/GSuite and the Google Tasks API. This would have the added advantage that developers using the Google Tasks API could set due times. Currently the Google Tasks API date is always rounded to 0 UTC, even if you set a time in Calendar, or attempt to set one via the API.
Thanks and have a good one,
Kevin
Description
I can reproduce this with Kotlin 2.1.10 and 2.1.20-RC3, using JetBrains Compose runtime 1.7.3.
I have a function defined as
When I change this function to
Compilation reports
This is my own UI toolkit (i.e., no Compose UI, Glance, etc.). The parameters types are:
Modifier
is a@Stable interface
Color
is a@Immutable value class
withUnspecified
being a value on itscompanion object
TextStyle
is an@Immutable value class
withUnspecified
being a value on itscompanion object
UnderlineStyle
is an@Immutable value class
withUnspecified
being a value on itscompanion object
.I did change one or two of the
value class
es to regular classes but that did not fix the problem.The full project is here:https://github.com/JakeWharton/mosaic . You can uncomment these two lines (https://github.com/JakeWharton/mosaic/blob/bedc15ea34dc51d2ad018becc631b239b9ea03dc/mosaic-runtime/src/commonMain/kotlin/com/jakewharton/mosaic/ui/Text.kt#L23-L24 ) and do
./gradlew assemble
to see the failure.This seems to be the same bug ashttps://youtrack.jetbrains.com/issue/CMP-7505 .
If I remove
@Composable
and just link to the function from another module it works correctly, so I'm assuming the problem is somehow in the Compose compiler. Additionally, the JVM variant of the final application works correctly, but the native version does not, so it's somehow specific to native (I do not have JS/Wasm support).I can pare down a minimally-reproducing project if that is needed.