Status Update
Comments
ch...@google.com <ch...@google.com> #2
Related to
ch...@google.com <ch...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add MutableStateFlowSerializer
for serializing MutableState
Expand for full commit details
Add `MutableStateFlowSerializer` for serializing `MutableState`
- Introduced an inline `MutableStateFlowSerializer` function to infer and retrieve the appropriate `KSerializer` for `MutableStateFlow` of a serializable type.
- Added an overload of `MutableStateFlowSerializer` that accepts an explicit `KSerializer` for the wrapped type, allowing for customizing the `KSerializer`.
- Implemented `MutableStateFlowSerializerImpl`, a private class that handles the serialization and deserialization logic for `MutableStateFlow`, delegating inner value processing to the provided `KSerializer`.
- Only `KSerializer<MutableStateFlow<T>>` is exposed; the `MutableStateFlowSerializerImpl` remains private.
RelNote: "Add `MutableStateFlowSerializer` for serializing `kotlinx.coroutines.flow.MutableStateFlow`."
Test: MutableStateFlowSerializerTest.kt
Fixes: 378895070
Change-Id: I6a8925772d2f124d2db4a83bff0062c1db0eb0fb
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/build.gradle
- A
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/MutableStateFlowSerializer.kt
- A
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/serialization/MutableStateFlowSerializerTest.kt
Hash: 3f45907910984f32745d62d9846e7083a3c75e4a
Date: Mon Jan 20 12:32:07 2025
sg...@google.com <sg...@google.com>
da...@spotify.com <da...@spotify.com> #4
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.savedstate:savedstate:1.3.0-alpha07
androidx.savedstate:savedstate-android:1.3.0-alpha07
androidx.savedstate:savedstate-desktop:1.3.0-alpha07
androidx.savedstate:savedstate-iosarm64:1.3.0-alpha07
androidx.savedstate:savedstate-iossimulatorarm64:1.3.0-alpha07
androidx.savedstate:savedstate-iosx64:1.3.0-alpha07
androidx.savedstate:savedstate-linuxarm64:1.3.0-alpha07
androidx.savedstate:savedstate-linuxx64:1.3.0-alpha07
androidx.savedstate:savedstate-macosarm64:1.3.0-alpha07
androidx.savedstate:savedstate-macosx64:1.3.0-alpha07
ap...@google.com <ap...@google.com> #5
Branch: main
commit a866fef498691f5193dc923a8965c8a6f6aded10
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 14:55:28 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
da...@spotify.com <da...@spotify.com> #6
Nice! Let me know which release I can test it against. Is it going into the 3.2.x branch?
ap...@google.com <ap...@google.com> #7
Branch: 3.3
commit c0e7efd5845505e01b1ee44fb6b5d2dcd1761f6e
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:33:58 2022
Version 3.3.63
Bug:
Change-Id: I19e9380714fee56e666c05bc99b247975e77f747
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #8
Branch: 3.3
commit 03af92b0a390d7ce622e5554a7315edeb4421d1c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:32:59 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ap...@google.com <ap...@google.com> #9
Branch: 3.2
commit e63b2dac1dfd5ea22e3ec5e26fcb5534a4836c22
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:34:57 2022
Version 3.2.71
Bug:
Change-Id: Ic46f2a5a677408946de06c99e549d7f3e80f9282
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #10
Branch: 3.2
commit e55131270b332d032c15cc067718fd348784bd86
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:34:20 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ap...@google.com <ap...@google.com> #11
Branch: 3.1
commit 659ad95323dcda252c852b47817ec946d379c625
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:35:52 2022
Version 3.1.80
Bug:
Change-Id: I4eff1308d96a600cb816d4b610e1e5cf17e0c5c8
M src/main/java/com/android/tools/r8/Version.java
ap...@google.com <ap...@google.com> #12
Branch: 3.1
commit 4e672f5cb21059b5bafb32f2677e06008ac45568
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:35:17 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ap...@google.com <ap...@google.com> #13
Branch: 3.3
commit 03af92b0a390d7ce622e5554a7315edeb4421d1c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:32:59 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ap...@google.com <ap...@google.com> #14
Branch: 3.2
commit e55131270b332d032c15cc067718fd348784bd86
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:34:20 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ap...@google.com <ap...@google.com> #15
Branch: 3.3
commit 03af92b0a390d7ce622e5554a7315edeb4421d1c
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:32:59 2022
Fix NPE from rewriting of missing classes contexts
Bug:
Change-Id: Ib9d194d870ba79be2f8f704666100388fc8d0db7
M src/main/java/com/android/tools/r8/shaking/MissingClasses.java
ch...@google.com <ch...@google.com> #16
The fix should now be in R8 3.1.80, 3.2.71 and 3.3.63.
You can build with any R8 release version by adding the following to settings.gradle
.
pluginManagement {
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:3.2.71")
}
}
}
da...@spotify.com <da...@spotify.com> #17
Thank you! I've verified that the fix works, but unfortunately it uncovered a secondary issue, which I'll open a separate bug report for.
ap...@google.com <ap...@google.com> #18
Branch: main
commit 9d1c3c24d90d1aefc6aa4b71a9f0733d6ccda6fe
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Wed Jun 22 15:30:42 2022
Reproduce NPE from rewriting of missing classes contexts
Bug:
Change-Id: I66df15e802f060b2c58679455eb328022f30cdb7
A src/test/java/com/android/tools/r8/missingclasses/MissingClassReferencedFromForcefullyMovedMethodTest.java
M src/test/java/com/android/tools/r8/missingclasses/MissingClassesTestBase.java
Description
When upgrading from R8 version 3.0.78 to 3.2.60, our minification starts failing with the following stack trace. Please let us know how to provide more information, if necessary.