Status Update
Comments
pl...@gmail.com <pl...@gmail.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
pl...@gmail.com <pl...@gmail.com> #3
Correction: Adjusting the value of VideoCapture.setTargetRotation( +1)
after bindToLifecycle()
, rotates the orientation but not in a helpful way.
For example with a portrait Device, and a landscape Preview: the capture (correctly) has a landscape format but the contents (incorrectly) is a crop of portrait contents.
pl...@gmail.com <pl...@gmail.com> #4
Issue confirmed as not implemented (yet?).
le...@google.com <le...@google.com>
wu...@google.com <wu...@google.com>
le...@google.com <le...@google.com> #5
From the discussion and attachment in the link in
le...@google.com <le...@google.com> #6
Hi Robert,
Sorry for late reply, I am wondering what CameraX APIs do you use to achieve WYSIWYG feature?
pl...@gmail.com <pl...@gmail.com> #7
Reading prior entries here, I'd answer yes, this would mean video cropping
is requested. And this cropping would be independent of device orientation.
Device orientation was useful for describing the use case that gives rise
to the issue.
The CameraX code is
And yes I know there is a newer CameraX video api that I need to look at
some time.
Code Context: The preview image is not displayed on an Android view class,
it is displayed on a "widget" in a Python GUI package called Kivy, and
Python is 'compiled' for Android and can call Java as needed. From the
point of view of CameraX this is just a different surface provider, but
still a texture. There are a couple of odd looking Callback classes, these
are related to calling Python from Java. None of this is significant for
the issue, but you might find the case unusual - so this paragraph is for
context. The whole thing works really well (this issue aside).
Anyway, type if you have questions, comments....
On Wed, Oct 5, 2022 at 5:18 PM <buganizer-system@google.com> wrote:
le...@google.com <le...@google.com> #8
Thanks for the information! Looks like the code use the ViewPort
API to achieve WYSIWYG.
New CameraX Video API will support cropping via ViewPort
soon. I will update the release version here once it is done.
le...@google.com <le...@google.com>
le...@google.com <le...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
commit ddbb478b53a2c0922598c245f770459e686444d5
Author: leo huang <
Date: Tue Sep 6 10:18:58 2022 +0800
[Video] Enable video cropping
Video cropping will be enabled when ViewPort or CameraController API is used.
Relnote: "Support video cropping (WYSIWYG feature) when ViewPort or CameraController API is used."
Bug: 191678894
Bug: 201085351
Test: ./gradlew camera:camera-video:connectedAndroidTest
Change-Id: Ifbba8358a6cdf8562621e67eb96360cc1b567e3f
M camera/camera-video/src/androidTest/java/androidx/camera/video/VideoRecordingTest.kt
M camera/camera-video/src/main/java/androidx/camera/video/VideoCapture.java
M camera/camera-video/src/test/java/androidx/camera/video/VideoCaptureTest.kt
le...@google.com <le...@google.com> #10
The feature will be released on 1.3.0-alpha01
na...@google.com <na...@google.com> #11
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-video:1.3.0-alpha01
Description
[FEATURE/USE CASE]
VideoCapture
orientation is inconsistent withImageCapture
in the case wherePreview
orientation is not the same as Device orientation.For example: if the Device has portrait orientation and the
Preview
has landscape orientation,VideoCapture
(incorrectly) captures a portrait orientation whereasImageCapture
(correctly) captures a landscape orientation.The same is true if the Device is landscape and the
Preview
portrait. The behavior is correct and identical for bothImageCapture
andVideoCapture
if the Device orientation is the same as thePreview
orientation.[NON-SDK INTERFACES USED]
Custom Preview viewer whose configuration depends only on
Preview.getResolutionInfo().getCropRect()
,Preview.getResolutionInfo().getResolution()
,Preview.getResolutionInfo().getRotationDegrees()
, and front or back camera.[ALTERNATIVES CONSIDERED]
Adjusting the value of
VideoCapture.setTargetRotation()
afterbindToLifecycle()
has no effect.[OTHER INFORMATION] Any other relevant information?