Status Update
Comments
wu...@google.com <wu...@google.com>
le...@google.com <le...@google.com> #2
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
le...@google.com <le...@google.com>
ap...@google.com <ap...@google.com> #3
Branch: androidx-main
commit 9b5feafc3c3c5efbdc04929b5a1788a647ab41fa
Author: leo huang <leohuang@google.com>
Date: Fri Aug 30 14:28:18 2024
Add insufficient storage error trigger for video recording
- A new setting has been added to specify the required free storage, defaulting to 50 MB. When available storage falls below this value, an "insufficient storage" error will be triggered.
- For efficiency and simplicity, storage size will not be periodically polled during recording. We assume storage is only consumed by the recording itself, and it will only refresh the available storage size once the recorded data exceeds the required free storage threshold.
Bug: 356399842
Test: RecorderTest
Change-Id: Iafa8251e0735b9ec1ca1f3ffb95d51889d55aba3
M camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt
M camera/camera-video/src/main/java/androidx/camera/video/Recorder.java
A camera/camera-video/src/main/java/androidx/camera/video/internal/OutputStorage.kt
A camera/camera-video/src/main/java/androidx/camera/video/internal/OutputStorageImpl.kt
A camera/camera-video/src/main/java/androidx/camera/video/internal/utils/StorageUtil.kt
ap...@google.com <ap...@google.com> #4
Branch: androidx-main
commit 731951d4fd675c17c84465af92557247e4109777
Author: leo huang <leohuang@google.com>
Date: Wed Sep 04 18:50:57 2024
Catch storage full exceptions and trigger insufficient storage error while video recording
Relnote: "Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available."
Bug: 356399842
Test: manully testing
Change-Id: Ia5b4f435e387b690fa4e7bb13e747d636a2d72b0
M camera/camera-video/src/main/java/androidx/camera/video/Recorder.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/utils/StorageUtil.kt
le...@google.com <le...@google.com> #5
The solution will be included in 1.5.0-alpha02
le...@google.com <le...@google.com>
le...@google.com <le...@google.com> #6
1.5.0-alpha02
is on the way. We will postpone this fix on 1.5.0-alpha03
.
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
Author: leo huang <
Link:
Add insufficient storage error trigger for video recording
Expand for full commit details
Add insufficient storage error trigger for video recording
- A new setting has been added to specify the required free storage, defaulting to 50 MB. When available storage falls below this value, an "insufficient storage" error will be triggered.
- For efficiency and simplicity, storage size will not be periodically polled during recording. We assume storage is only consumed by the recording itself, and it will only refresh the available storage size once the recorded data exceeds the required free storage threshold.
- See go/camerax_videocapture_insufficient_storage
Bug: 356399842
Test: RecorderTest
Change-Id: Ib5bf3a44353acf264d6e68b5574191ef72dbd8e4
Files:
- M
camera/camera-video/src/androidTest/java/androidx/camera/video/RecorderTest.kt
- M
camera/camera-video/src/main/java/androidx/camera/video/Recorder.java
- A
camera/camera-video/src/main/java/androidx/camera/video/internal/OutputStorage.kt
- A
camera/camera-video/src/main/java/androidx/camera/video/internal/OutputStorageImpl.kt
- A
camera/camera-video/src/main/java/androidx/camera/video/internal/utils/StorageUtil.kt
Hash: 5253ac2e2ec412d8ca3edcb813717dc73960134b
Date: Fri Aug 30 14:28:18 2024
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
Author: leo huang <
Link:
Catch storage full exceptions and trigger insufficient storage error while video recording
Expand for full commit details
Catch storage full exceptions and trigger insufficient storage error while video recording
See go/camerax_videocapture_insufficient_storage
Relnote: "Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available."
Bug: 356399842
Test: manully testing
Change-Id: I35779fd7edbbeaff77cdf917eea1b377dc3e2151
Files:
- M
camera/camera-video/src/main/java/androidx/camera/video/Recorder.java
- M
camera/camera-video/src/main/java/androidx/camera/video/internal/utils/StorageUtil.kt
Hash: 55bf8082aa50ebc33ff676801b9bd153ff6b638e
Date: Wed Sep 04 18:50:57 2024
le...@google.com <le...@google.com>
pr...@google.com <pr...@google.com> #9
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-video:1.5.0-alpha03
Description
But according to the androidx.camera.video.Recorder code, the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is never called. In real use, I receive VideoRecordEvent.Finalize.ERROR_INVALID_OUTPUT_OPTIONS in VideoRecordEvent with the error java.io.FileNotFoundException: /data/user/0/**/file_name.mp4: open failed: ENOSPC (No space left on device).
Also, if the space runs out during recording, then VideoRecordEvent stops receiving any events, including VideoRecordEvent.Status