Status Update
Comments
mg...@google.com <mg...@google.com>
ca...@gmail.com <ca...@gmail.com> #2
ap...@google.com <ap...@google.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
ap...@google.com <ap...@google.com> #4
-
Second crash in the description is from a real device. Experienced it myself on two different Xiaomi phones, plus lots of crashes from users in the Google Play console.
-
Dynamic features are not used in the application.
As a wild guess, I have downgraded build tools from 31.0.0 to 30.0.3, compileSdk from 31 to 30, and moved all work with Language ID to the service in a separate process (just to be sure that crash can kill secondary process instead of main). This combination is in beta for 2 days by now and I don't see any SIGSEGV crashes.
ap...@google.com <ap...@google.com> #5
Hmm, I feel the crash might be something related to separate/secondary process.
I also changed compileSdk and targetSDK to 31 but still cannot repro this issue.
ap...@google.com <ap...@google.com> #6
On the contrary, there was no separate process before, when crashes started.
In the new build (with the aforementioned changes) I can see SIGSEGV crash, but only one instead of dozens and it has a bit different backtrace:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
liblanguage_id_jni.so (offset 0x11e000)
backtrace:
#00 pc 000000000003c7c0 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003b960 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003bb48 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003bafc /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000036c98 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000032714 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000031cac /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000057438 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/oat/arm64/base.odex (offset 0x57000)
ap...@google.com <ap...@google.com> #7
FYI, ML Kit launched a new language ID SDK in the latest release, which uses a new language ID model.
Could you try the new SDK version(17.0.0) to check if you can still repro this native crash? Thanks!
ap...@google.com <ap...@google.com> #8
Thank you, I'll try it and check.
ap...@google.com <ap...@google.com> #9
Hello. I have similar experience.
- I'm using mlkit-language 16.1.1
- I didnot meet this error until using AGP 4.2
- I can get this error since using AGP 7.0
- This error raised on Release build only(minimized by R8)
- This error raised without obfuscation.
ap...@google.com <ap...@google.com> #11
I created reproducible project.
$ git clone https://github.com/ganadist/VersionCodeDemo -b mlkit_agp7 mlkit_agp7
$ cd mlkit_agp7
$ ./gradlew :app:pPRUA
$ adb install app/build/outputs/universal_apk/productionRelease/app-production-release-universal.apk
$ adb shell am start -n com.example.myapplication/.MainActivity
$ adb logcat -b crash -d
10-19 19:41:49.844 17810 17810 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7acf9d733c in tid 17810 (e.myapplication), pid 17810 (e.myapplication)
10-19 19:41:50.473 17849 17849 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-19 19:41:50.473 17849 17849 F DEBUG : Build fingerprint: 'google/crosshatch/crosshatch:12/SPB5.210812.002/7671067:user/release-keys'
10-19 19:41:50.473 17849 17849 F DEBUG : Revision: 'MP1.0'
10-19 19:41:50.473 17849 17849 F DEBUG : ABI: 'arm64'
10-19 19:41:50.473 17849 17849 F DEBUG : Timestamp: 2021-10-19 19:41:49.903736988+0900
10-19 19:41:50.473 17849 17849 F DEBUG : Process uptime: 0s
10-19 19:41:50.473 17849 17849 F DEBUG : Cmdline: com.example.myapplication
10-19 19:41:50.474 17849 17849 F DEBUG : pid: 17810, tid: 17810, name: e.myapplication >>> com.example.myapplication <<<
10-19 19:41:50.474 17849 17849 F DEBUG : uid: 10240
10-19 19:41:50.474 17849 17849 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7acf9d733c
10-19 19:41:50.474 17849 17849 F DEBUG : x0 0000000000000000 x1 00000000000008fc x2 0000007a76760c71 x3 0000000000000000
10-19 19:41:50.474 17849 17849 F DEBUG : x4 0000000000000010 x5 0000007ba4db49d0 x6 0000007b34dc3680 x7 3de38e3900000608
10-19 19:41:50.474 17849 17849 F DEBUG : x8 0000007bb4dbedf0 x9 0000007acf9db2aa x10 0000000000000000 x11 0000007acf9d6640
10-19 19:41:50.474 17849 17849 F DEBUG : x12 0000000000000009 x13 0000000000000000 x14 0000000000000061 x15 00000000ebad6a89
10-19 19:41:50.474 17849 17849 F DEBUG : x16 0000007a767cfef8 x17 0000007d9a564b40 x18 0000007da3830000 x19 0000007feaf56a08
10-19 19:41:50.474 17849 17849 F DEBUG : x20 0000000000000000 x21 0000007ba4da50b0 x22 0000007bb4dbedf0 x23 0000007ba4da50b8
10-19 19:41:50.474 17849 17849 F DEBUG : x24 0000000000000009 x25 000000000000067e x26 0000000000000012 x27 0000000000000008
10-19 19:41:50.474 17849 17849 F DEBUG : x28 0000007b64dc8440 x29 0000000000000000
10-19 19:41:50.474 17849 17849 F DEBUG : lr 0000007a7678a964 sp 0000007feaf56810 pc 0000007a7678b7c0 pst 0000000060000000
10-19 19:41:50.474 17849 17849 F DEBUG : backtrace:
10-19 19:41:50.474 17849 17849 F DEBUG : #00 pc 000000000003c7c0 /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #01 pc 000000000003b960 /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #02 pc 000000000003bb48 /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #03 pc 000000000003bafc /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #04 pc 0000000000036c98 /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #05 pc 00000000000324a4 /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
10-19 19:41:50.474 17849 17849 F DEBUG : #06 pc 0000000000031b5c /data/app/~~mHaMq-e9ocbm9UfYnkCGkQ==/com.example.myapplication-HgG9vkluwDDO1K78-Vzr0A==/lib/arm64/liblanguage_id_jni.so (Java_com_google_mlkit_nl_languageid_internal_LanguageIdentificationJni_nativeIdentifyLanguage+100) (BuildId: 859ec0ec2000a39e6ae8ed42e1704f46)
But after downgrade to AGP 4.2, crash is not reproducible.
$ git clone https://github.com/ganadist/VersionCodeDemo -b mlkit_agp42 mlkit_agp42
$ cd mlkit_agp42
$ ./gradlew :app:pPRUA
$ adb install app/build/outputs/universal_apk/productionRelease/app-production-release-universal.apk
$ adb shell am start -n com.example.myapplication/.MainActivity
Also, I tried to disable
$ git clone https://github.com/ganadist/VersionCodeDemo -b mlkit_agp7_r8_disable_inline_optimizer mlkit_agp7_r8
$ cd mlkit_agp7_r8
$ ./gradlew :app:pPRUA
$ adb install app/build/outputs/universal_apk/productionRelease/app-production-release-universal.apk
$ adb shell am start -n com.example.myapplication/.MainActivity
ap...@google.com <ap...@google.com> #12
I tried the repro steps but got a NPE when I run ./gradlew :app:pPRUA
FAILURE: Build failed with an exception.
* What went wrong:
java.lang.NullPointerException
> java.lang.NullPointerException (no error message)
Could you also check if this is reproducible on 17.0.0
or 17.0.1
? If yes, could you attach the full log that I can take a look? Thanks!
ap...@google.com <ap...@google.com> #13
Here are gradle build scan logs for each branches.
All builds were clean build, and disabled build cache.
- mlkit_agp7 :
https://scans.gradle.com/s/qrymdqfzwokbq - mlkit_agp42 :
https://scans.gradle.com/s/b6644hzfyfhaw - mlkit_agp7_r8_disable_inline_optimizer :
https://scans.gradle.com/s/c6h5hy2nxod4u
Also, I pushed to update MLKit Language Id version 17.0.1 on
And here is crash log after apply 17.0.1
You can see that BuildId
of liblanguage_id_l2c_jni.so
was changed from 859ec0ec2000a39e6ae8ed42e1704f46
to be6e59455cc10135330c93acdebfc121
10-20 03:07:24.522 24587 24628 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7acf995426 in tid 24628 (pool-3-thread-3), pid 24587 (e.myapplication)
10-20 03:07:25.190 24710 24710 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-20 03:07:25.190 24710 24710 F DEBUG : Build fingerprint: 'google/crosshatch/crosshatch:12/SPB5.210812.002/7671067:user/release-keys'
10-20 03:07:25.190 24710 24710 F DEBUG : Revision: 'MP1.0'
10-20 03:07:25.190 24710 24710 F DEBUG : ABI: 'arm64'
10-20 03:07:25.190 24710 24710 F DEBUG : Timestamp: 2021-10-20 03:07:24.583346246+0900
10-20 03:07:25.190 24710 24710 F DEBUG : Process uptime: 0s
10-20 03:07:25.190 24710 24710 F DEBUG : Cmdline: com.example.myapplication
10-20 03:07:25.190 24710 24710 F DEBUG : pid: 24587, tid: 24628, name: pool-3-thread-3 >>> com.example.myapplication <<<
10-20 03:07:25.190 24710 24710 F DEBUG : uid: 10240
10-20 03:07:25.190 24710 24710 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7acf995426
10-20 03:07:25.190 24710 24710 F DEBUG : x0 0000007b54da9d30 x1 0000007d9a5fe7cc x2 0000000000000000 x3 0000000000000010
10-20 03:07:25.190 24710 24710 F DEBUG : x4 0000000000000000 x5 0000007c34dbc79c x6 0000002f0000083b x7 000003c300002dd5
10-20 03:07:25.190 24710 24710 F DEBUG : x8 0000000000000001 x9 0000000000000004 x10 0000000000000010 x11 0000000000000000
10-20 03:07:25.190 24710 24710 F DEBUG : x12 0000000000000000 x13 000000000000217e x14 0000007acf9932a8 x15 000000000000217e
10-20 03:07:25.190 24710 24710 F DEBUG : x16 0000000000000000 x17 0000007d9a564c78 x18 0000007a6ef18000 x19 0000007c34dbc580
10-20 03:07:25.190 24710 24710 F DEBUG : x20 0000007ca4dc7170 x21 0000007ca4dc7800 x22 0000007ca4dc71e0 x23 0000000000000000
10-20 03:07:25.190 24710 24710 F DEBUG : x24 0000000000000018 x25 0000000000000007 x26 0000000000000006 x27 0000000000000004
10-20 03:07:25.190 24710 24710 F DEBUG : x28 0000007ca4dc7090 x29 0000007cb4da9940
10-20 03:07:25.190 24710 24710 F DEBUG : lr 0000007a770a9624 sp 0000007a6f7de9c0 pc 0000007a770a96a8 pst 0000000020000000
10-20 03:07:25.190 24710 24710 F DEBUG : backtrace:
10-20 03:07:25.190 24710 24710 F DEBUG : #00 pc 00000000000386a8 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #01 pc 00000000000388a0 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #02 pc 00000000000844a0 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #03 pc 000000000008783c /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #04 pc 0000000000035fc4 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #05 pc 0000000000034954 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.190 24710 24710 F DEBUG : #06 pc 00000000000340e8 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/lib/arm64/liblanguage_id_l2c_jni.so (Java_com_google_mlkit_nl_languageid_internal_ThickLanguageIdentifier_nativeIdentifyPossibleLanguages+108) (BuildId: be6e59455cc10135330c93acdebfc121)
10-20 03:07:25.191 24710 24710 F DEBUG : #07 pc 00000000002d9a44 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #08 pc 000000000020a700 /apex/com.android.art/lib64/libart.so (nterp_helper+5648) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #09 pc 00000000000cd0dc /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #10 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #11 pc 00000000000ccfa8 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #12 pc 0000000000557cb4 /system/framework/arm64/boot-framework.oat (android.os.Binder.transact+148) (BuildId: 43a571a0ad85d6451b47016336a541ecb0eb12bb)
10-20 03:07:25.191 24710 24710 F DEBUG : #13 pc 000000000020b53c /apex/com.android.art/lib64/libart.so (nterp_helper+9292) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #14 pc 00000000000b7aba /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #15 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #16 pc 00000000000a7496 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #17 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #18 pc 00000000000a7360 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #19 pc 000000000020ae64 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #20 pc 000000000009e46c /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #21 pc 000000000020ae64 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #22 pc 00000000000d33d6 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #23 pc 000000000020ae64 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #24 pc 000000000009df0a /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #25 pc 0000000000209124 /apex/com.android.art/lib64/libart.so (nterp_helper+52) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #26 pc 000000000009e350 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #27 pc 000000000037b9ac /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+988) (BuildId: ab2bf4ec264efdb6c452a238be38fe624de826b8)
10-20 03:07:25.191 24710 24710 F DEBUG : #28 pc 00000000003751d4 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+68) (BuildId: ab2bf4ec264efdb6c452a238be38fe624de826b8)
10-20 03:07:25.191 24710 24710 F DEBUG : #29 pc 000000000020aec4 /apex/com.android.art/lib64/libart.so (nterp_helper+7636) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #30 pc 000000000009e370 /data/app/~~KjjULZV48O7KSOgOP1wYNQ==/com.example.myapplication-vFUidUPTjaGg4oo3SRAYJw==/oat/arm64/base.vdex
10-20 03:07:25.191 24710 24710 F DEBUG : #31 pc 00000000001bf35c /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+76) (BuildId: ab2bf4ec264efdb6c452a238be38fe624de826b8)
10-20 03:07:25.191 24710 24710 F DEBUG : #32 pc 00000000002d0164 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #33 pc 000000000031ccac /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #34 pc 00000000003cf8a0 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #35 pc 0000000000460894 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992) (BuildId: cdecb8dde1264c9871695c29854aa3b1)
10-20 03:07:25.191 24710 24710 F DEBUG : #36 pc 00000000000b1910 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: ba489d4985c0cf173209da67405662f9)
10-20 03:07:25.191 24710 24710 F DEBUG : #37 pc 00000000000513f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: ba489d4985c0cf173209da67405662f9)
ap...@google.com <ap...@google.com> #14
Cross-posted on R8 issue tracker.
ap...@google.com <ap...@google.com> #15
Hi,
Looks like we figured out the root cause in
For temporary workarounds for the existing SDKs, you need to add this rule
-keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
for language-id 16.1.1
, and add this rule
-keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
for version language-id 17.0.0+
for the newer model.
We'll fix this issue in the upcoming release so that you'll not need these workarounds in the future release.
Thanks a lot for reporting this issue!
ap...@google.com <ap...@google.com> #16
Added workarounds in
ap...@google.com <ap...@google.com> #17
ap...@google.com <ap...@google.com> #18
Branch: androidx-main
commit c5c7f78edc095ca6f789b455c6cb6eb61fd89905
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Mon Sep 16 16:32:56 2024
Disable experimental Android Lint K2 UAST
* The `useK2Uast` flag in Android Lint is causing `IllegalArgumentExceptionWithAttachments` errors when analyzing `SavedState` classes that have been converted to KMP.
* Instead of suppressing these warnings, the Android Lint team has recommended disabling the experimental K2 UAST integration entirely. This change disables the `useK2Uast` flag and adds a comment referencing the related bug (
Test: N/A
Bug: 334076622
Change-Id: Iba2ab0f64f7a5418e78f017a949de47d244cb161
M savedstate/savedstate/build.gradle
ap...@google.com <ap...@google.com> #19
Branch: androidx-main
commit 1cc768070d5a75812e335581109a42ad9a7b9427
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 20:29:18 2024
Extract common logic to `SavedStataRegistryImpl`
* By extracting a shared `SavedStateRegistryImpl`, that enable us to migrate `SavedStateRegistry` and `Controller` to `commonMain` with different `expect` and `actual` per platform, reducing duplication and the CL diff.
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: Id064dec964ee278438909f6099a16b158d9b769f
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
A savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/internal/SavedStateRegistryImpl.kt
ap...@google.com <ap...@google.com> #20
Branch: androidx-main
commit 79a1767e2fe38493991d583c84b02c4524fc8e31
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 13 20:34:36 2024
Move `SavedStateRegistry` and `Controller` to `commonMain`
RelNote: "SavedStateRegistry and SavedStateRegistryController are now KMP compatible."
Test: SavedStateRegistryTest
Bug: 334076622
Change-Id: Id7bb8064cc8bf19faade95636dd1436943056ce6
M savedstate/savedstate/bcv/native/current.txt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
M savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistry.kt
A savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistryController.kt
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistryOwner.kt
M savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateRegistryImpl.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistry.nonAndroid.kt
A savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistryController.nonAndroid.kt
ap...@google.com <ap...@google.com> #21
Branch: androidx-main
commit 3a82f00a1255b352441328eb85c936e33ea56843
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 11:59:40 2024
Add `android` suffix to all files from `androidMain` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ia5911896f02a81c45c6e79b9a33da44bc937e417
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/AbstractSavedStateViewModelFactory.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/LegacySavedStateHandleController.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandle.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleController.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.android.kt
ap...@google.com <ap...@google.com> #22
Branch: androidx-main
commit 7a5ebf9d0c904e240e92e0df38dcc774798c1541
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 11:20:32 2024
Dump native ABI in `viewmodel-savedstate`
RelNote: "ViewModel SavedState is now configured to be KMP compatible."
Test: N/A
Bug: 334076622
Change-Id: I48764a7a611bc102a08a6caf941d609e7576a350
A lifecycle/lifecycle-viewmodel-savedstate/bcv/native/current.txt
ap...@google.com <ap...@google.com> #23
Branch: androidx-main
commit 08b27e88a631e57e640a73dbdf0a2587d7b50c43
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 12:43:54 2024
Disable experimental Android Lint K2 UAST in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I07875a07c1d3d645824a2156641bbb610cc7b8eb
M lifecycle/lifecycle-viewmodel-savedstate/build.gradle
ap...@google.com <ap...@google.com> #24
Branch: androidx-main
commit fa2c57837b54211c436a252e2a19842efebfe146
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 11:57:47 2024
Rename `main` to `androidMain` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I4e3227aaf1be3b78e7b5b6d7cd97df82b216e605
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/AbstractSavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/LegacySavedStateHandleController.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandle.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleController.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.kt
ap...@google.com <ap...@google.com> #25
Branch: androidx-main
commit f97adace59c8d317769ef5e7d4a194c01076d9e8
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 11:54:36 2024
Rename `androidTest` to `androidInstrumentedTest` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I7f8a411058d0e2d89e87a8ded59d67a9c83d0184
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/SavedStateHandleParcelingTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/SavedStateHandleProviderTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateFactoryTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateHandleSupportTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateHandleTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/TestComponent.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/ViewModelsWithStateTest.kt
ap...@google.com <ap...@google.com> #26
Branch: androidx-main
commit 0d0a80faba7b22908f1e76f5eeeb4b9cca19061c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 12:42:24 2024
Use `kmpDocs` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: If4af4f7c1eb9f38048e77f5d5d16770439ca823e
M docs-tip-of-tree/build.gradle
ap...@google.com <ap...@google.com> #27
Branch: androidx-main
commit 5ead08cbe81ea0f294d32a8f376a10f48cb9621c
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 10:48:58 2024
Set-up `BuildType.KMP` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ibf62bfaf1a1fc1516e8b43afd668383b508184a7
M settings.gradle
ap...@google.com <ap...@google.com> #28
Branch: androidx-main
commit ba34f18aea459660d5693696167c31b6ddbbfdc1
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Thu Sep 19 10:47:47 2024
Set-up KMP configurations in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I948d7db5234af0f0c76bd4abc30c82b34f29328b
M lifecycle/lifecycle-viewmodel-savedstate/build.gradle
ap...@google.com <ap...@google.com> #29
Branch: androidx-main
commit 261ed3f7932a933693fade67651e3ef1b52d41b4
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Rename `main` to `androidMain` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I6584efb8fe73e52108c75cf4cddf0e0319baac09
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/AbstractSavedStateViewModelFactory.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/LegacySavedStateHandleController.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandle.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleController.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.kt
ap...@google.com <ap...@google.com> #30
Branch: androidx-main
commit 795e7b8af8818d85f3fd63a9ce4f979f26451b11
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Add `android` suffix to all files from `androidMain` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ic90439c1a5d99a949d4bf4944d3fe558dae32abf
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/AbstractSavedStateViewModelFactory.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/LegacySavedStateHandleController.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandle.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleController.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.android.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.android.kt
ap...@google.com <ap...@google.com> #31
Branch: androidx-main
commit 167b22b90fa6eeeb3758f0677555e2ac5884b4d4
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 15:21:03 2024
Move SavedStateHandleSupport internal keys to `commonMain` in `viewmodel-savedstate`
* Due to KT-52344, an empty `commonMain` source set with our current KMP configuration causes a build breakage. Moving the internal keys (`VIEWMODEL_KEY` and `SAVED_STATE_KEY`) are easy to do proactively and ensures the build does not fail.
* Please note we will convert the rest of the module in multiple follow-up CLs.
* Reference:
Test: N/A
Bug: 334076622
Change-Id: I34825bafb1195af7d333d95f46ad6290feebcec2
M lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.android.kt
A lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.kt
ap...@google.com <ap...@google.com> #32
Branch: androidx-main
commit ffdc23a5b5a562ebc37cdd283caca0637a034ddd
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Disable experimental Android Lint K2 UAST in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I7f1e66e50d54807d9c637a95a797684066993957
M lifecycle/lifecycle-viewmodel-savedstate/build.gradle
ap...@google.com <ap...@google.com> #33
Branch: androidx-main
commit a9b5cba2f3005bd311cfaace946ad3d64c55b094
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Use `kmpDocs` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Icd9cfeee9a7b603b187e6c597271339d2a444c07
M docs-tip-of-tree/build.gradle
ap...@google.com <ap...@google.com> #34
Branch: androidx-main
commit c9f50467a2eea8726582b428769eb26d376bd3a4
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Rename `androidTest` to `androidInstrumentedTest` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ie0b617397b023f9cf8c067271f6827741e8ca6d4
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/AndroidManifest.xml
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/SavedStateHandleParcelingTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/SavedStateHandleProviderTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateFactoryTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateHandleSupportTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/SavedStateHandleTest.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/TestComponent.kt
M lifecycle/lifecycle-viewmodel-savedstate/src/androidInstrumentedTest/kotlin/androidx/lifecycle/viewmodel/savedstate/ViewModelsWithStateTest.kt
ap...@google.com <ap...@google.com> #35
Branch: androidx-main
commit 736ec1d65d3ff6898719a33432b83f845bef2e64
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Set-up KMP configurations in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: I57c860fe40aa9ff6ff6e321ee9881e57faea7840
M lifecycle/lifecycle-viewmodel-savedstate/build.gradle
ap...@google.com <ap...@google.com> #36
Branch: androidx-main
commit 0caa028d83f488d0c7b845565f5366ee662aa522
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Dump native ABI in `viewmodel-savedstate`
RelNote: "ViewModel SavedState is now configured to be KMP compatible."
Test: N/A
Bug: 334076622
Change-Id: I503edb3551108b6c4877c17767a787dda4aaaf4c
A lifecycle/lifecycle-viewmodel-savedstate/bcv/native/current.txt
ap...@google.com <ap...@google.com> #37
Branch: androidx-main
commit b82c31c48b26e66c66b60925e2a26813a6b161db
Author: Marcello Galhardo <mgalhardo@google.com>
Date: Fri Sep 20 08:51:52 2024
Set-up `BuildType.KMP` in `viewmodel-savedstate`
Test: N/A
Bug: 334076622
Change-Id: Ibe243694a50542c7977018cf4183c8ecde6075f4
M settings.gradle
ap...@google.com <ap...@google.com> #38
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Disable Metalava K2's UAST in savedstate
Expand for full commit details
Disable Metalava K2's UAST in `savedstate`
* Currently, resolving JVM annotations from the common source set in K2 is not functioning correctly. This is due to the absence of a common source JAR containing the necessary annotations. Disabling UAST allows Metalava to continue operating while we address the underlying issue with annotation resolution in Metalava.
Test: N/A
Bug: 334076622
Change-Id: I61396dcb8b28fb545ea625c7d4408969e7259039
Files:
- M
lifecycle/lifecycle-viewmodel-savedstate/build.gradle
Hash: e01363eb9b9866ece101e46e1d9bb122e5d25ebe
Date: Fri Oct 04 22:13:59 2024
mg...@google.com <mg...@google.com> #39
We have created
ap...@google.com <ap...@google.com> #40
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add Long
support to Saved State KMP
Expand for full commit details
Add `Long` support to Saved State KMP
RelNote: "SavedState KMP now supports Long."
Test: SavedStateTest
Bug: 334076622
Change-Id: I4c180e12c8259436628e5b6b62a0dfa38f003be6
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateUtils.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: cce3e22b1e9d5b3932236e96bc882b2fb056a10e
Date: Thu Oct 17 14:49:13 2024
ap...@google.com <ap...@google.com> #41
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Fix SavedStateReader.get*OrElse
not returning defaultValue
for primitives
Expand for full commit details
Fix `SavedStateReader.get*OrElse` not returning `defaultValue` for primitives
Test: SavedStateTest
Bug: 334076622
Change-Id: Ic1d74cda55075f87718a0e4315fd6f64465276ca
Files:
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/ParcelableSavedStateTest.android.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
Hash: 792010e1704764e91abb256be96d340587d38bd6
Date: Mon Oct 21 19:47:27 2024
ap...@google.com <ap...@google.com> #42
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add contentDeepEquals
to Saved State
Expand for full commit details
Add `contentDeepEquals` to Saved State
RelNote: "SavedState KMP now supports `contentDeepEquals` comparison."
Test: SavedStateTest
Bug: 334076622
Change-Id: Ia515c97b16e17bcb8a20dafbc043cf2d971c4405
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
Hash: a080e2c245d7b896f5f0a45f12b87b9f07858a75
Date: Thu Oct 17 15:53:34 2024
ap...@google.com <ap...@google.com> #43
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add additional savedState
factory functions
Expand for full commit details
Add additional `savedState` factory functions
RelNote: "Add additional `savedState` factory parameters supporting an initial `Map<String, Any>`"
Test: SavedStateTest
Bug: 334076622
Change-Id: I9b37da20978bc549e1ab5c354985aa4ca450f6be
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedState.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
Hash: d5bd36accebb332017f303381c21502b14766d67
Date: Tue Oct 22 19:15:28 2024
ap...@google.com <ap...@google.com> #44
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add support for marking a key as a null
reference in SavedState
Expand for full commit details
Add support for marking a key as a `null` reference in `SavedState`
* When encoding/decoding data that contains properties that are both nullable and has default values, we need a way to identify both.
RelNote: "Add `putNull` and `isNull` to SavedState KMP."
Test: SavedStateTest
Bug: 334076622
Change-Id: Iea71d9d8652c9cbd45e701d5b4785579acd73969
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedState.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 906259e5143e561e6babe52542348d8e929bf72e
Date: Wed Oct 23 16:01:37 2024
ap...@google.com <ap...@google.com> #45
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add Char
support to Saved State KMP
Expand for full commit details
Add `Char` support to Saved State KMP
RelNote: "SavedState KMP now supports Char."
Test: SavedStateTest
Bug: 334076622
Change-Id: I9ac2ff6589371bd4bc79b1910334ce24710cd176
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateUtils.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 13fd10604738a3af38ba1ac99d11343a071a8e75
Date: Fri Oct 18 17:41:54 2024
ap...@google.com <ap...@google.com> #46
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Remove unused Writer.read
/Reader.write
methods from SavedState to avoid confusion
Expand for full commit details
Remove unused `Writer.read`/`Reader.write` methods from SavedState to avoid confusion
RelNote: "Remove unused methods."
Test: SavedStateTest
Bug: 334076622
Change-Id: Ib63477d99028dd517b070af089409b7a3e433ac6
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
Hash: bd92701e50e46ef3486ce5b4e27c0426958c3ca7
Date: Wed Oct 23 21:40:46 2024
ap...@google.com <ap...@google.com> #47
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Remove unused reader()
/writer()
methods from SavedState to avoid confusion
Expand for full commit details
Remove unused `reader()`/`writer()` methods from SavedState to avoid confusion
* Keeping a reference to a writer or reader, can force Kotlin to box the `SavedState`.
* Include a warning making sure holding the reference is not recommended/supported.
RelNote: "Remove unused methods."
Test: SavedStateTest
Bug: 334076622
Change-Id: I1b49071b8db2500379e753713dbfc02f48f06d53
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
Hash: c31394126331102a173864757bca3be9360fd6d0
Date: Wed Oct 23 21:34:13 2024
ap...@google.com <ap...@google.com> #48
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add Array
support to Saved State KMP
Expand for full commit details
Add `Array` support to Saved State KMP
RelNote: "SavedState KMP now supports Arrays."
Test: SavedStateTest
Bug: 334076622
Change-Id: Ic0552cac5744d8422524d8219438a6571f70c476
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 1c48caff1cf283d29de06a80c0924975e4d2851b
Date: Thu Oct 24 16:22:38 2024
ap...@google.com <ap...@google.com> #49
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add toMap
to SavedState
Expand for full commit details
Add `toMap` to `SavedState`
* Allows a `SavedState` to be converted into a map.
* Deep copy: any nested `SavedState` will be converted into a map too.
RelNote: "Add `toMap` to SavedState."
Test: N/A
Bug: 334076622
Change-Id: I487b901051ad68a3e27f9a5550fd7336734abbb1
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
Hash: cd3236939c7139539e19f7b7c043b93c8f7446e4
Date: Thu Oct 24 16:12:28 2024
ap...@google.com <ap...@google.com> #50
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Commonize SavedStateHandle
Expand for full commit details
Commonize `SavedStateHandle`
Test: SavedStateHandleTest
Bug: 334076622
Change-Id: I80f3a7bb79ae4e4eb239076c3ff2da219ab43e38
Files:
- M
lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandle.android.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/SavedStateHandle.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/nonAndroidMain/kotlin/androidx/lifecycle/SavedStateHandle.nonAndroid.kt
Hash: 89b9ba6bc6aaa6958bd5d5ee4fa42e475b0168e2
Date: Thu Oct 10 16:50:45 2024
ap...@google.com <ap...@google.com> #51
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Commonize SavedStateHandleController
Expand for full commit details
Commonize `SavedStateHandleController`
Test: N/A
Bug: 334076622
Change-Id: Ic0c6c091cd72ec0faf8fc56a6f19caf77911f088
Files:
- M
lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/SavedStateHandleController.kt
Hash: eb03b9169ce0c387cb8e63f8239247da1b7237c4
Date: Thu Oct 10 18:43:02 2024
ap...@google.com <ap...@google.com> #52
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Remove recursive behaviour from toMap
in SavedState
Expand for full commit details
Remove recursive behaviour from `toMap` in `SavedState`
RelNote: "N/A"
Test: N/A
Bug: 334076622
Change-Id: Ic5b39c79119de5337dd478fdf1a30975d5520287
Files:
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
Hash: 549d78495308320863ed7332b668b0edf1c3e9c1
Date: Fri Oct 25 15:41:13 2024
ap...@google.com <ap...@google.com> #53
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Commonize SavedStateViewModelFactory
Expand for full commit details
Commonize `SavedStateViewModelFactory`
Test: N/A
Bug: 334076622
Change-Id: I9d2f206705523cb5c73a09f11a2522e9bae36150
Files:
- M
lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.android.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/nonAndroidMain/kotlin/androidx/lifecycle/SavedStateViewModelFactory.nonAndroid.kt
Hash: 73c35c37407f120469a46a16d068f55fd8f6966e
Date: Thu Oct 10 18:43:56 2024
ap...@google.com <ap...@google.com> #54
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Commonize SavedStateHandleSupport
Expand for full commit details
Commonize `SavedStateHandleSupport`
Test: SavedStateHandleSupportTest
Bug: 334076622
Change-Id: I8b85f3fde27969950304823c376d09bf0de43843
Files:
- D
lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.android.kt
- M
lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/SavedStateHandleSupport.kt
Hash: aa7c9debe2caacd582e3db8004fdda5e37b0fdcd
Date: Wed Oct 16 17:42:16 2024
ap...@google.com <ap...@google.com> #55
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add SavedStateHandleImpl
Expand for full commit details
Add `SavedStateHandleImpl`
* The new class will hold the data and logic from `SavedStateHandle`, and will be used by all platforms to share code.
Test: N/A
Bug: 334076622
Change-Id: I9c384017a701a3ffe9491f2619dd3d13b41398f6
Files:
- A
lifecycle/lifecycle-viewmodel-savedstate/src/androidMain/kotlin/androidx/lifecycle/internal/SavedStateHandleImpl.android.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/commonMain/kotlin/androidx/lifecycle/internal/SavedStateHandleImpl.kt
- A
lifecycle/lifecycle-viewmodel-savedstate/src/nonAndroidMain/kotlin/androidx/lifecycle/internal/SavedStateHandleImpl.nonAndroid.kt
Hash: adee1372b3a047fec3677de18952352af612c409
Date: Mon Oct 14 15:50:44 2024
ap...@google.com <ap...@google.com> #56
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Bump ViewModel SavedState ABI
Expand for full commit details
Bump ViewModel SavedState ABI
RelNote: "Lifecycle ViewModel SavedState is now KMP compatible"
Test: N/A
Bug: 334076622
Change-Id: Ib63947f53600724de5ebf6c0e64c17c305592b2f
Files:
- M
lifecycle/lifecycle-viewmodel-savedstate/bcv/native/current.txt
Hash: ad0f2909d0413719c1dcd53403aa7d52e36fc3d8
Date: Thu Oct 10 18:46:15 2024
mg...@google.com <mg...@google.com>
ap...@google.com <ap...@google.com> #57
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Clean up SavedState KMP Implementation
Expand for full commit details
Clean up SavedState KMP Implementation
* Annotate constructors from `SavedStateWriter` and `SavedStateReader` in `common`, `android` and `nonAndroid` with `@PublishedApi`. Kotlin 1.9 introduces a warning if the expect and actual methods aren't annotated with `@PublishedApi`
* All methods and constants in the `SavedState` are `@Published internal`, which are tracked by our tooling as a public API. By reducing the number of `@Published`, there is less APIs to maintain.
* As everything is flag as `inline`, I have moved the suppression to `file:Suppress`.
* For Android and JVM, included a `file:JvmName`, as class were inconsistent due to `.android` and `.nonAndroid` suffix.
* The original `getSingleResultOrThrow` function was created to share behavior between platforms. However, due to how default values work for primitives in `Bundle`, the original abstraction wasn't that useful for sharing code and created multiple levels of calls that was difficult to debug.
* The original `getSingleResultOrElse` function was designed to handle generic lists. Since we've decided not to support generic lists and instead use typed lists (e.g., `List<Int>` instead of `List<T>`), this function became redundant with `getSingleResultOrThrow`.
* The `SavedStateUtils` class was only used in the `SavedStateReader`. Its contents have been moved directly into the reader, and the class deleted.
* The `keyNotFoundError` function now throws an `IllegalArgumentException` as it's caused by an invalid key provided by the caller.
* The `valueNotFoundError` function throws an `IllegalStateException` as it indicates an inconsistency between the key and the internal state.
* The error messages for `keyNotFoundError` and `valueNotFoundError` have been improved for clarity.
RelNote: "N/A"
Test: SavedStateTest
Bug: 334076622
Change-Id: I55971ae2560300408153eea5eef7ec96fb70c7ce
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedState.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/ParcelableSavedStateTest.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedState.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- D
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/internal/SavedStateUtils.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 422d9d54c4c3cd79b2f380ae4b90412d53c6b2d2
Date: Mon Oct 28 16:30:02 2024
pr...@google.com <pr...@google.com> #58
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.savedstate:savedstate:1.3.0-alpha04
androidx.savedstate:savedstate-android:1.3.0-alpha04
androidx.savedstate:savedstate-desktop:1.3.0-alpha04
androidx.savedstate:savedstate-iosarm64:1.3.0-alpha04
androidx.savedstate:savedstate-iossimulatorarm64:1.3.0-alpha04
androidx.savedstate:savedstate-iosx64:1.3.0-alpha04
androidx.savedstate:savedstate-linuxarm64:1.3.0-alpha04
androidx.savedstate:savedstate-linuxx64:1.3.0-alpha04
androidx.savedstate:savedstate-macosarm64:1.3.0-alpha04
androidx.savedstate:savedstate-macosx64:1.3.0-alpha04
ap...@google.com <ap...@google.com> #59
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add contentDeepHashCode
to Saved State
Expand for full commit details
Add `contentDeepHashCode` to Saved State
RelNote: "SavedState KMP now supports `contentDeepHashCode`."
Test: SavedStateTest
Bug: 334076622
Change-Id: I4d9f7de7d26b78c592660e2ab137c593667b7675
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
Hash: a253a5a1f79b8d2b382cbc7deaa2bc35caa1156b
Date: Fri Nov 08 16:38:22 2024
na...@google.com <na...@google.com> #60
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-desktop:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-iosarm64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-iossimulatorarm64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-iosx64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-linuxarm64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-linuxx64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-macosarm64:2.9.0-alpha07
androidx.lifecycle:lifecycle-viewmodel-savedstate-macosx64:2.9.0-alpha07
androidx.savedstate:savedstate:1.3.0-alpha05
androidx.savedstate:savedstate-android:1.3.0-alpha05
androidx.savedstate:savedstate-desktop:1.3.0-alpha05
androidx.savedstate:savedstate-iosarm64:1.3.0-alpha05
androidx.savedstate:savedstate-iossimulatorarm64:1.3.0-alpha05
androidx.savedstate:savedstate-iosx64:1.3.0-alpha05
androidx.savedstate:savedstate-linuxarm64:1.3.0-alpha05
androidx.savedstate:savedstate-linuxx64:1.3.0-alpha05
androidx.savedstate:savedstate-macosarm64:1.3.0-alpha05
androidx.savedstate:savedstate-macosx64:1.3.0-alpha05
ap...@google.com <ap...@google.com> #61
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Add Android specific types to SavedState
reader and writer
Expand for full commit details
Add Android specific types to `SavedState` reader and writer
* Include support to Android specific types: Binder, Size, SizeF,
ParcelableArray and SparseParcelableArray.
* Include support to JVM specific type: Serializable.
* Include support to common type: CharSequence.
* Note that Serializable is currently only available on Android.
RelNote: "SavedState KMP now supports: IBinder, Size, SizeF,
Array<Parcelable>, SparseArray<Parcelable> and Serializable (Android)."
Test: SavedStateAndroidTest.android.kt
Bug: 334076622
Change-Id: I1ba9446ed4dad6e018cbf17feaef1f5fcdeb6c3f
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/bcv/native/current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- D
savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/ParcelableSavedStateTest.android.kt
- A
savedstate/savedstate/src/androidUnitTest/kotlin/androidx/savedstate/SavedStateAndroidTest.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 9ee8e41f9514ff07ee88a6e56cb14dcea5e3087d
Date: Mon Nov 11 11:46:22 2024
ap...@google.com <ap...@google.com> #62
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Fix KDocs throws
in SavedStateReader
Expand for full commit details
Fix KDocs `throws` in `SavedStateReader`
RelNote: "N/A"
Test: SavedStateTest.android.kt
Bug: 334076622
Change-Id: I359ae160033f1cd50412ac9974fc0e8fa2816059
Files:
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateReader.kt
Hash: 5d429c768e391200c9b698e7fd59e68e61b274d2
Date: Fri Nov 15 15:13:12 2024
ap...@google.com <ap...@google.com> #63
Project: platform/frameworks/support
Branch: androidx-main
Author: Marcello Galhardo <
Link:
Rename values
to value
in SavedStateWriter
Expand for full commit details
Rename `values` to `value` in `SavedStateWriter`
* Rename `values` argument to `value` in `SavedStateWriter` to match naming used by `Bundle`.
* Rename `values` to `from` in `putAll` to match naming convention from `Map` interface.
RelNote: "N/A"
Test: SavedStateTest.android.kt
Bug: 334076622
Change-Id: Icc4665ded332b2a9e128f2d55d0c032e1aa1898b
Files:
- M
savedstate/savedstate/api/current.txt
- M
savedstate/savedstate/api/restricted_current.txt
- M
savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
- M
savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateWriter.kt
- M
savedstate/savedstate/src/commonTest/kotlin/androidx/savedstate/SavedStateTest.kt
- M
savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
Hash: 83e439f7919c35bcb000d6468afe53c187ab4dc5
Date: Fri Nov 15 14:45:38 2024
pr...@google.com <pr...@google.com> #64
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.savedstate:savedstate:1.3.0-alpha06
androidx.savedstate:savedstate-android:1.3.0-alpha06
androidx.savedstate:savedstate-desktop:1.3.0-alpha06
androidx.savedstate:savedstate-iosarm64:1.3.0-alpha06
androidx.savedstate:savedstate-iossimulatorarm64:1.3.0-alpha06
androidx.savedstate:savedstate-iosx64:1.3.0-alpha06
androidx.savedstate:savedstate-linuxarm64:1.3.0-alpha06
androidx.savedstate:savedstate-linuxx64:1.3.0-alpha06
androidx.savedstate:savedstate-macosarm64:1.3.0-alpha06
androidx.savedstate:savedstate-macosx64:1.3.0-alpha06
Description
Our goal is to convert
androidx.savedstate
to Kotlin Multiplatform without portingandroid.os.Bundle
(which should be an internal implementation detail). We plan to leverage the existingrememberSaveable
andSaver
API as a foundation and extend its availability beyond Compose. To ensure backward compatibility, we'll try to redirect the currentrememberSaveable
API to our newly extracted implementation.Further investigation is needed to assess the full viability of these ideas.