Replace locale.substring(0, 2) with a function that always
returns the first component of the locale (assumed to be the
language).
bug: 10090157
Change-Id: Ibb9eb9f65323795d139b16d76b7e7e36a4e0568c
In previous change we use setForceUse(FORCE_MEDIA, XXX) method
in order to set specific audio output type, such as LINE, HDMI_ARC,
and SPDIF. But it turns out that it conflicts with bluetooth
a2dp which uses the same setForceUse(FORCE_MEDIA, yyy).
This change is based on several conditions.
1. When other non-speaker devices are on, prevent system audio
from turing on.
2. In order to keep track of other devices' connectivity and to
turn off system audio if other device like bluetooth or
headphone preempts current output, register OnAudioPortChangeListner
to audio manager.
3. All possible system audio outputs can be merged with other
outputs without priority.
Change-Id: Id4e47d99db64b9f77a17c2c28c47787ab8980bf7
The BCP47 tag we use for selecting Simplified vs Traditional Chinese is
Hans and Hant. This patch uses those tags in fallback_fonts.xml rather
than country names, which weren't getting matched.
Change-Id: I97e1da7b86e8fe8f026365146393304a5ab74443
Add CompleteVoiceRequest to VoiceInteractor to allow apps to indicate when a voice interaction was successfully completed.
Change-Id: I1481cfe96e9e2495d88a7a4fb62263bdd1e03c54
An AudioMixingRule is a collection of AudioAttributes and match/exclude
rules.
An AudioMix is defined by its AudioMixingRule, AudioFormat and
routing flag.
An AudioPolicyConfig is a collection of AudioMix and is
parcellable.
An AudioPolicy has an AudioPolicyConfig, and
can be registered/unregistered through AudioManager.
bug 16009464
Change-Id: I01bf95d014967f48ba823648ea897779da099e5d
The current parameter name "index" in
CursorAnchorInfo.Builder#setComposingText is a bit hard
to understand.
This CL names it with "composingTextStart" to clarify its usage.
Change-Id: I504939b8d2b48875d8baa9630b5a4f04a5d66dbe
A VPN declared bypassable allows apps to use the new multinetwork APIs to
send/receive traffic directly over the underlying network, whereas without it,
traffic from those apps would be forced to go via the VPN.
Apps still need the right permissions to access the underlying network. For
example, if the underlying network is "untrusted", only apps with
CHANGE_NETWORK_STATE (or such permission) can actually use it directly.
New API with stub implementation to be filled out later.
Bug: 15347374
Change-Id: I8794715e024e08380a43f7a090613c5897611c5b
Instead of producing Ranking objects, RankingMap just populates
them now, allowing developers to re-use objects and avoid
unnecessary allocations.
Also rename isInterceptedByDnd() to meetsInterruptionFilter(),
since DND is not a concept anymore.
Bug: 15415840
Bug: 16099064
Change-Id: If9861cbdf14593e641a4d4ffd1b967647eb8e2b8