Fixed
Status Update
Comments
cu...@google.com <cu...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
https://android-review.googlesource.com/3151736
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
Description
While this version and 1.1.0-alpha01 solved many issues using ViewModels and LiveData, leaks are still happening.
In particular, the culprit seems to be FingerprintManager which holds a strong reference to the activity context.
Tested on BUILD INFO
STEPS TO REPRODUCE
NUMBER OF TIMES YOU WERE ABLE TO REPRODUCE - 10/10
Tracking the references to the context (LoginActivity) i found that FingerprintManager eventually receives the value through the BiometricManager.from(Context) method when BiometricManager.canAuthenticate(Int) is invoked, so i tried to use applicationContext to try and resolve the leak, but it happened anyway (file: LoginActivity.kt:190).
Eventually I found out that the possible cause may be the BiometricFragment class, specifically the BiometricFragment.authenticate(BiometricPromp.PromptInfo, BiometricPrompt.CryptoObject) method. The BiometricFragment instance uses the same method in the authenticate function, which gets the parent activity using getActivity() and then passes the value that will eventually reach FingerprintManager.
I don't believe there are any other places in the code where i pass an activity context, and I know that the value passed to create the BiometricPrompt object (file: LoginActivity.kt:195) is only used to get a BiometricViewModel instance and the FragmentActivity is never used again.
Leak results: