Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit cfe4b593 authored by Robert Shih's avatar Robert Shih
Browse files

MediaController does not check for cancelled motions in onTouchEvent, causing

nested invocations of WindowManagerGlobal.addView. Sample stack trace below.

android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:228)
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
android.widget.MediaController.show(MediaController.java:346)
android.widget.MediaController.onTouchEvent(MediaController.java:445)
android.view.View.dispatchTouchEvent(View.java:7690)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2184)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2186)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2186)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2186)
android.view.ViewGroup.cancelAndClearTouchTargets(ViewGroup.java:2049)
android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2567)
android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2836)
android.view.ViewRootImpl.doDie(ViewRootImpl.java:5259)
android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:233)
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
android.widget.MediaController.show(MediaController.java:346)

Duplicated views are consequently added to WindowManagerGlobal.mViews.
Subsequent calls to WindowManagerGlobal.removeView does not remove the
duplicated entry. Another subsequent call to WindowManagerGlobal.addView
detects the extra entry and fails.

Bug: 11399773
Change-Id: I1e07fcaf341fbae1b0f93bed0f42645801b9df2d
parent 431b4359
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment