Fixed
Status Update
Comments
wu...@google.com <wu...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
https://android-review.googlesource.com/1360099
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
bo...@withvector.com <bo...@withvector.com> #3
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Yes, 1.3.0-alpha06, typo'd<br><br><div dir="ltr">Sent from my iPhone</div><div dir="ltr"><br><blockquote type="cite">On May 11, 2023, at 18:00, buganizer-system@google.com wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div itemscope="" itemtype="http://schema.org/EmailMessage "><div style="background-color: #fbe983; border: 1px solid #debe07; color: #594c04; font-weight: bold; padding: 5px 10px;">Replying to this email means your email address will be shared with the team that works on this product.</div><br>
<a href="https://issuetracker.google.com/issues/282025204 ">https://issuetracker.google.com/issues/282025204 </a><br>
<br>
<strong>Changed</strong><br>
<span style="color: #808080;">assignee: </span>ca...@google.com → robert.diamond@withvector.com<br>
<br>
<span itemprop="text"><strong>wu...@google.com added <a href="https://issuetracker.google.com/issues/282025204#comment2 "> comment #2 </a>:</strong><br>
<p>Hi there, thank for reporting the issue. I would like to confirm which version are you using? The above stated 1.0.0.alpha06, but it was published long long time ago. Are you using 1.3.0-alpha06?</p>
<br>
</span><br>
_______________________________<div itemprop="about" itemscope="" itemtype="http://schema.org/CreativeWork "><span itemprop="potentialAction" itemscope="" itemtype="http://schema.org/ViewAction "><meta itemprop="url" content="https://issuetracker.google.com/issues/282025204 "><meta itemprop="name" content="Open bug"></span><br>
<strong>Reference Info: 282025204 Crash in StreamConfigurationMapCompat::getHighResolutionOutputSizes</strong><br>
</div><span style="color: #808080;">component: </span><a href="https://issuetracker.google.com/components/618491 " target="_blank">Android Public Tracker > App Development > Jetpack (androidx) > Camera</a><br>
<span style="color: #808080;">status: </span>Assigned<br>
<span style="color: #808080;">reporter: </span>robert.diamond@withvector.com<br>
<span style="color: #808080;">assignee: </span>robert.diamond@withvector.com<br>
<span style="color: #808080;">cc: </span>robert.diamond@withvector.com, wu...@google.com<br>
<span style="color: #808080;">type: </span>Bug<br>
<span style="color: #808080;">priority: </span>P4<br>
<span style="color: #808080;">severity: </span>S4<br>
<span style="color: #808080;">retention: </span>Component default<br>
<br>
<br>
<br>
Generated by Google IssueTracker notification system<br>
<br>
<span style="color: #808080;">You're receiving this email because you are subscribed to updates on Google IssueTracker issue <a href="https://issuetracker.google.com/issues/282025204 ">282025204</a> where you have the roles: assignee, reporter, cc. </span><br>
<a href="https://issuetracker.google.com/issues/282025204?unsubscribe=true ">Unsubscribe from this issue.</a></div></div></blockquote></body></html>
<a href="
<br>
<strong>Changed</strong><br>
<span style="color: #808080;">assignee: </span>ca...@google.com → robert.diamond@withvector.com<br>
<br>
<span itemprop="text"><strong>wu...@google.com added <a href="
<p>Hi there, thank for reporting the issue. I would like to confirm which version are you using? The above stated 1.0.0.alpha06, but it was published long long time ago. Are you using 1.3.0-alpha06?</p>
<br>
</span><br>
_______________________________<div itemprop="about" itemscope="" itemtype="
<strong>Reference Info: 282025204 Crash in StreamConfigurationMapCompat::getHighResolutionOutputSizes</strong><br>
</div><span style="color: #808080;">component: </span><a href="
<span style="color: #808080;">status: </span>Assigned<br>
<span style="color: #808080;">reporter: </span>robert.diamond@withvector.com<br>
<span style="color: #808080;">assignee: </span>robert.diamond@withvector.com<br>
<span style="color: #808080;">cc: </span>robert.diamond@withvector.com, wu...@google.com<br>
<span style="color: #808080;">type: </span>Bug<br>
<span style="color: #808080;">priority: </span>P4<br>
<span style="color: #808080;">severity: </span>S4<br>
<span style="color: #808080;">retention: </span>Component default<br>
<br>
<br>
<br>
Generated by Google IssueTracker notification system<br>
<br>
<span style="color: #808080;">You're receiving this email because you are subscribed to updates on Google IssueTracker issue <a href="
<a href="
bo...@withvector.com <bo...@withvector.com> #4
Yes, 1.3.0-alpha06, typo'd
wu...@google.com <wu...@google.com> #5
thanks for the update! We will take a look and update the status here.
ch...@google.com <ch...@google.com>
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit ebd52aac76e1410b9361888a9efc9de6f30cc799
Author: Charcoal Chen <charcoalchen@google.com>
Date: Mon May 15 15:45:07 2023
Fix NullPointerException when the cached output sizes in StreamConfigurationMapCompat are null
Relnote: "Fixed NullPointerException when the cached output sizes in StreamConfigurationMapCompat are null."
Bug: 282025204
Test: StreamConfigurationMapCompatTest
Change-Id: Idf124b2054ca12fa58d66b53e4206ceb49493782
M camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/compat/StreamConfigurationMapCompatTest.kt
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/StreamConfigurationMapCompat.java
M camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/StreamConfigurationMapCompatTest.kt
https://android-review.googlesource.com/2588688
Branch: androidx-main
commit ebd52aac76e1410b9361888a9efc9de6f30cc799
Author: Charcoal Chen <charcoalchen@google.com>
Date: Mon May 15 15:45:07 2023
Fix NullPointerException when the cached output sizes in StreamConfigurationMapCompat are null
Relnote: "Fixed NullPointerException when the cached output sizes in StreamConfigurationMapCompat are null."
Bug: 282025204
Test: StreamConfigurationMapCompatTest
Change-Id: Idf124b2054ca12fa58d66b53e4206ceb49493782
M camera/camera-camera2-pipe-integration/src/test/java/androidx/camera/camera2/pipe/integration/compat/StreamConfigurationMapCompatTest.kt
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/StreamConfigurationMapCompat.java
M camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/StreamConfigurationMapCompatTest.kt
ch...@google.com <ch...@google.com>
ju...@google.com <ju...@google.com> #7
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-camera2:1.3.0-alpha07
Description
Please describe your issue and include details such as the version of CameraX you are using and any relevant logs related to your issue.
// If at all possible, capture an Android logcat (
CAMERAX VERSION 1.0.0.alpha06
CAMERA APPLICATION NAME AND VERSION: Vector (com.convoy.loaddoc) version 10.8.509
ANDROID OS BUILD NUMBER: OPPS27.91-99-9-15
DEVICE NAME: Motorola E5
DESCRIPTION: NullPointerException in cameraProvider.bindToLifecycle on devices that have no high resolution modes.
The problem is if `mImpl.getHighResolutionOutputSizes(format);` returns null (see code fragment below), it will still cache it, and the second invocation will retrieve the null and attempt to call clone(), crashing the app.
The `mCachedFormatHighResolutionOutputSizes.put(format, outputSizes);` line should be moved into the body of the if statement, and/or a null check should be added to the fetch before calling clone().
LIST ANY EXPERIMENTAL FEATURES: (As an example - @ExperimentalCamera2Interop)
none
STEPS TO REPRODUCE:
1. Launch app and login
2. Start a workflow by clicking the + button in the bottom right
3. Find a camera icon and click it.
4. Go through the image capture sequence.
5. Click "add image" to add a second image next to the first
6. Click the image capture (shutter) button
OBSERVED RESULTS:
The app displays a crash alert
EXPECTED RESULTS:
The app should not crash
REPRODUCIBILITY: (5 of 5, 1 of 100, etc)
ADDITIONAL INFORMATION:
CODE FRAGMENTS (this will help us troubleshoot your issues):
@Nullable
public Size[] getHighResolutionOutputSizes(int format) {
if (mCachedFormatHighResolutionOutputSizes.containsKey(format)) {
return mCachedFormatHighResolutionOutputSizes.get(format).clone();
}
Size[] outputSizes = mImpl.getHighResolutionOutputSizes(format);
// High resolution output sizes can be null.
if (outputSizes != null && outputSizes.length > 0) {
outputSizes = mOutputSizesCorrector.applyQuirks(outputSizes, format);
}
mCachedFormatHighResolutionOutputSizes.put(format, outputSizes);
return outputSizes != null ? outputSizes.clone() : null;
}