Adds the new interface to the user dictionary, which includes
a clean way of inserting words in any locale and support for
shortcuts.
Change Ib318c047 implements the provider part of this.
Bug: 4646172
Change-Id: Id3ca792f2555fac46728f9d404ab0199971f6503
This fixes a bug where the device fails to lock when DevicePolicyManagerService
requests the device to be locked and the screen was off because the user hit
the power button.
The change allows DPMS to directly invoke screen lock, bypasssing the screen state.
Change-Id: Iecdda6fc61e9c519119de495be23c69c3b983921
1. Except as otherwise indicated, orientation change happens once
the predicted rotation has been stable for 40ms. Noise is
suppressed by a low-pass filter with a 200ms time constant which
seems to be about as small as is practical given the quality
of the sensor data.
2. If the magnitude exceeds a threshold (excessive noise or freefall),
resets the predicted orientation.
Doesn't happen very often even when shaking the device.
This heuristic mainly protects the detector from spurious tilt due
to inaccurate determination of the gravity vector.
3. If the device was previously in a flat posture (on a table for at
least 1000ms), then it must move out of that posture for at least
500ms before the next orientation change will happen.
This heuristic suppresses most spurious rotations that happen while
picking up the device.
4. If the device is tilted away from the user by 20 degrees within
a span of 300ms, the device is said to be swinging and at least
300ms must elapse after the device stops swinging before the
next orientation change will happen.
This heuristic suppresses some but not all spurious rotations that
happen while putting down a device. Unfortunately, this heuristic
sometimes triggers a false positive when turning the device very
rapidly due to accelerometer noise. The 300ms pause is a compromise
so that occasional mispredicted swings don't significantly delay
the rotation.
Bug: 5796249
Change-Id: Id7b36c4c563e35b70d6a7ac36d04f3c3d6ea5811
Always read and write track volumes atomically. In most places this was
already being done, but there were a couple places where the left and
right channels were read independently.
Changed constant MAX_GAIN_INT to be a uint32_t instead of a float.
It is always used as a uint32_t in comparisons and assignments.
Use MAX_GAIN_INT in more places.
Now that volume is always accessed atomically, removed the union
and alias for uint16_t volume[2], and kept only volumeLR.
Removed volatile as it's meaningless.
In AudioFlinger, clamp the track volumes read from shared memory
before applying master and stream volume.
Change-Id: If65e2b27e5bc3db5bf75540479843041b58433f0
Use the AUDIO_STREAM_* constants defined in <system/audio.h> instead of
dynamically looking up stream types from AudioManager.
Replace a series of "if" statements by a switch.
Change-Id: I6d015bc151c9ab97a02492e84c63298b1f6f31ac
When javascript request exit full screen, WebViewCore need to handle the
message from webkit thread and hide the custom view.
Webkit part:
https://android-git.corp.google.com/g/#/c/158652/
Change-Id: I9edbb5a4059f330fb29df116ae076ec52f81a1af
-> This prevents collection widgets from flashing loading
views when they are updated with new content
Change-Id: I1241ff9a09edfd990ad03f76449d18b9359246b4
Improve volume management by keeping track of volume for each type
of device independently.
Volume for each stream (MUSIC, RINGTONE, VOICE_CALL...) is now maintained
per device.
The main changes are:
- AudioService now keeps tracks of stream volumes per device:
volume indexes are kept in a HashMap < device , index>.
active device is queried from policy manager when a volume change request
is received
initalization, mute and unmute happen on all device simultaneously
- Settings: suffixes is added to volume keys to store each device
volume independently.
- AudioSystem/AudioPolicyService/AudioPolicyInterface: added a device argument
to setStreamVolumeIndex() and getStreamVolumeIndex() to address each
device independently.
- AudioPolicyManagerBase: keep track of stream volumes for each device
and apply volume according to current device selection.
Change-Id: I61ef1c45caadca04d16363bca4140e0f81901b3f
AccessibilityEvent and AccessibilityNodeInfo have a property className which is set to the source
Java class. This is problematic since leads to leaking private classes which would allow an
accessibility service to load classes from other packages. This is strongly undesirable since
not trusted code can be loaded, and hence executed, in the accessibility service. To address
that the class name is set to the most concrete framework class extended by the info/event
source.
bug:5878943
Change-Id: I7b3114ece8772ea2773f5151e21b8a6f2006882a
incorrectly specified.
This affected search bars and alert dialogs spawned from activities
using Theme.DeviceDefault.Light as a base.
Change-Id: I219d38d486498db5b4b283560256afd7d6051535
Solving the issue that setting preferred APN from GDCT triggers
back APN change event and force unnecessary data call disconnects
and setups.
The new URI is added in Telephony Provider so ContentObserver
callback (results in onApnChanged) will not be triggered.
Bug:5448858
Change-Id: I4c0bcf32cec69cf1d0a0430f7a27495b89e93625
Remove UnsupportedOperationException
Add primitive support for clipPath/clipRegion
Add support for quickReject(Path, EdgeType)
Change-Id: Ie7a80df7f380f488710bac31103772a9eab21612
A bad parameter to AudioFlinger::createTrack could cause mediaserver to crash.
Other AudioFlinger stream type cleanup:
- Simplify range check for audio_stream_type_t
- Add comment about mStreamTypes array initialization.
Change-Id: Ia33aa1cce0fdd694b08d9288816ffc097a9543d0