element-hq / element-hq/element-android

[External keyboard] Crash when hitting "Enter" on Verification bottom sheet

Open
#8,437 1 comment 0 reactions 0 assignees View on GitHub
O-Uncommon S-Minor T-Defect Z-Crash Z-External Keyboard
Dominant language
Kotlin
Stars
3.7k
Forks
917
PR merge metrics
No merged PRs in 30d

Description

### Steps to reproduce

1. Use an external keyboard
2. Start a verification flow to verify another user
3. Once the bottom sheet is displayed, navigate with the keyboard to the item "Start verification"

image

4. Press Enter on the external keyboard

### Outcome

#### What did you expect?

The verification starts, as when the user click on the screen on "Start verification"

#### What happened instead?

The application crashes

```
2023-05-11 16:09:14.239 24281-24281 AndroidRuntime im.vector.app.nightly E FATAL EXCEPTION: main
Process: im.vector.app.nightly, PID: 24281
java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:6296)
at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:6225)
at androidx.core.widget.NestedScrollView.isWithinDeltaOfScreen(NestedScrollView.java:8)
at androidx.core.widget.NestedScrollView.onSizeChanged(NestedScrollView.java:14)
at android.view.View.sizeChange(View.java:23881)
at android.view.View.setFrame(View.java:23833)
at android.view.View.layout(View.java:23690)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:144)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:29)
at com.google.android.material.bottomsheet.BottomSheetBehavior.onLayoutChild(BottomSheetBehavior.java:111)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:43)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:799)
at android.view.View.layout(View.java:23693)
at android.view.ViewGroup.layout(ViewGroup.java:6413)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3999)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3372)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2328)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9087)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
at android.view.Choreographer.doCallbacks(Choreographer.java:899)
at android.view.Choreographer.doFrame(Choreographer.java:832)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7872)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
```

### Your phone model

Many

### Operating system version

Android 10, also observed on other devices

### Application version and app store

1.5.32 (and previous)

### Homeserver

NA

### Will you send logs?

No

### Are you willing to provide a PR?

No

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.