Add the dialog behavior for MediaRouteActionProvider/MediaRouteButton.
Still TODO:
* Switch audio icon based on source; speaker/bt/user
* Rig up volume slider
* Rig up item icons
* Rig up group button for groupable categories
* Make grouping work
Change-Id: I3f992516b184d5ae940ddb7bbb7f94ff58914589
Bug: 6656538
Due to the WebView/WebViewClassic refactor we need to call
WebView.performLongClick instead of performLongClick directly
to allow subclasses to override performLongClick
Change-Id: I9b580217fbafc82d03e63eabfdda9f5bad98db0f
Fix a bug where MediaRouter would crash on creation
Add click listener for app-supplied extended settings on the route
selection dialog.
Change-Id: I2991db1720b5c574148e250526984592f4dc3c44
...MediaPlayer.setScreenOnWhilePlaying seem broken
We need to correctly clear the keep screen on flag when the view
hierarchy request is gone... and to do that, we need to keep the
actual state of the flag requested by the app. Also when the app
changes its state, we need to compute the proper value based on
both the app request and any requests in the view hierarchy.
Bug: 6634325
Change-Id: I060e9a34a10faffbaa77c06098cf21298bb4969f
When an ANR occurs, log the associated reason.
When an event takes too long to process (currently more than 2 seconds)
log basic information about the event including how long it actually
took.
Dump the contents of the inbound, outbound and wait queues as part
of dumpsys input.
Bug: 6574842
Change-Id: I9ab754c320f609cb86fe266c469a61e7032dfed6
Bug 6642222
Using setMaxLines(0) and setMinHeight(30) causes a crash
because Layout#getLineRangeForDraw() returns a [0,0] interval
in that case.
Accessing the Direction in draw causes a NPE.
Change-Id: If50f9b554e3cdc598a721b623992e9196982838c
Detect wonky vsync timestamps (should they occur) and
warn loudly about them.
Warn when too many frames are skipped. The threshold is pretty
conservative right now (only warn if at least 30 frames are skipped)
but it can be adjusted using system property. Even skipping just a
couple of frames is enough to generate noticeable jank.
The threshold is currently intended to help track down bigger problems
such when an app does too much work on the UI thread.
Bug: 6574842
Change-Id: I4aac7e5e17d1fb51adb0510e318a72a28b3775ed
Bug #6596807
A crash would occur in the following situation:
- WebView registers a functor with the hardware renderer
- The hardware renderer gets disabled
- WebView attemps to unregister its functor
Unregistering the functor fails because the hardware renderer is now disabled.
When the renderer becomes enabled again, the functor is invoked, which leads
to a native crash.
This change simply allows functors to always be unregistered, even when the
renderer is disabled. A disabled renderer only means that it will not be used
for rendering; as such, unregistering a functor is a valid operation and
should be allowed.
Change-Id: I0ff897a0cca7e048c609033215cd0f7f5c940bcc
Remove volume control and tracking. This will be handled by extensions
to existing audio and media APIs for now.
Tweak/refine other aspects of the API. Pass the router to callbacks for
easier future-proofing. Add group/ungroup callback methods.
Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
This is a revert of 1db36528b12395b9ed9bf8a1005a6d4ace737627,
but with comments added so I don't make this mistake again. :)
Change-Id: I053216279e3721f08f32f561bb989736ef619f82
1. The character and word iterators were use the application
context to keep track of locale changes. However, for widgets
the context from which the app context is obtained is custom
created therefore the app context is null and the iterators
code does not expect that. Now we are caching the locale
and update it when the configuration changes.
bug:6642281
Change-Id: I3fd201ab9e4efd79e3bdc8afd8ee644e4354a7fb
The edge slop code could violate invariants of ScaleGestureDetector,
such as the assumption that if an ACTION_POINTER_DOWN is observed
or if getPointerCount() >= 2, then there must be at least two
active pointers to choose from. But due to the edge slop handling,
it was possible for findNewActiveIndex to return -1 in this
case, resulting in a crash.
Bug: 6613154
Change-Id: I4e08e38a49ab27dac1be9484e19de086bc43624a
1. AccessibilityInput filter was not checking whether the touch
explorer instance is not null before passing it an accessibility
event. If the accessibility event is dispatched before the input
filter is installed but after it is created we runt into this
case.
2. Added a missing null check in accessibility node info.
bug:6635089
Change-Id: Ia389dc1f427427eb73794f6331ccb870e0b44c55
An app was requesting smooth scrolling to a view position beyond the
number of items in the list. This caused our setup logic to execute on
every frame, waiting for the target view to be added.
This fix clamps the requested target position to the number of items
actually in the list.
Issue #6572175 Messaging: Sometimes conversation doesn't scroll when focus is brought to the compose field
Change-Id: I23707aeb213e67af4297713a03c2f5b446c8e2b6
This change is analogous to Ic0e9f1bbd8cae9fdd3a6d1d015bb9224c8be545c
in WebView, and depends upon the same Skia change that that CL makes
use of.
This flips the "fake bold" flag on for bold fonts in
TextView.setTypeface(), with the expectation that Skia will ignore
the flag if the final typeface used to render the glyphs is already
bold. It also does the same for StyleSpans, TextAppearanceSpans,
TypefaceSpans, and the Switch widget.
With this, fake bold should work uniformly across all scripts - if
fake bold works for a primary typeface, it should also work for all
fallback typefaces.
Bug: 6629786
Change-Id: Id3b8639ab0df83052ffd82809cb12adaacc1d46b
...mismatched uid: X on disk, Y in settings" errors on Froyo and Gingerbread
Deal more gracefully with the uid changing in three ways:
1. If the uid on disk has become root, then have installd change it to
the application's uid. This is to correct a potential case where
installd was interrupted while linking or unlinking the libs dir,
during which it temporarily changes the owner of the dir to root
so that a malicious app can not get in its way. So if the uid on
disk has become root, we assume we can safely just change it back
to the correct uid.
2. When scaning packages at boot, use the same "delete and rebuild data
directory" code for third party applications as we have for system
applications. This allows us to at least end up in a state where the
app will run, even if its data is lost.
3. But we really don't want to get in to case 2, so if an application
update is being installed and we find that the uid we now have for
the app is different than the one on disk, fail the update. This will
protect against for example a developer changing the sharedUserId of
their app and getting into this bad state.
Bug: 6295373
Change-Id: Ic802fdd818ac62449ff3c61d1fff1aa4d4942f39