Fixed
Status Update
Comments
ma...@google.com <ma...@google.com> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
lp...@google.com <lp...@google.com>
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.
Description
Material recommends a touch target minimum of 48 x 48 dp for accessibility purposes:
Currently the size of components / their touch target is decided per component. For example, Button sets a min height of 36.dp, but there is no extra touch target affordance here. This means that this component is not accessible.
From a technical side, given that Ripple currently needs to be outside Clickable, it is also currently impossible to increase the touch target size for a bounded ripple, without also increasing the ripple size to no longer be bounded to the component.
We should:
a) Remove this technical limitation, presumably by waiting for ripple / input to become modifiers
b) Extract this touch target requirement into a re-usable component / modifier, such that all components (ours and external) can compose together this functionality, and automatically increase the touch target to the minimum
c) Expose global (ambient) configuration for this minimum, to allow for customization. For example, for pointer input (such as a Chromebook running an Android Compose app), the minimum should be 44 x 44 dp instead, and so the size of components should be adjusted on such a platform.