There are 2 types of vibrations: simple and repeated. Simple vibrations run for
a given length of time while repeated patterns run until canceled or the calling
process dies.
If a vibration is currently running and another request is issued, the newer
request always takes precedence unless the current vibration is a simple one and
the time left is longer than the new request.
If a repeating vibration is running and a new request overrides that vibration,
the current vibration is pushed onto a stack. Once the new vibration completes,
the previous vibration resumes. IBinder tokens are used to identify Vibration
requests which means that multiple calls to Vibrator.vibrate with the same
Vibrator object will override previous vibrations on that object.
Merge commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1'
* commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1':
Add facility to run setup wizard after an update.
Merge commit 'a54755962ca7725d1e2b6cacbbaece6f1cbf5af4'
* commit 'a54755962ca7725d1e2b6cacbbaece6f1cbf5af4':
Cleanup a bunch of warnings in app widgets code.
Merge commit 'd18dc8c641cb4c89ffb205fb510e59a40ddf43fe'
* commit 'd18dc8c641cb4c89ffb205fb510e59a40ddf43fe':
resolve complex value in application context instead of system context.
Merge commit 'fef8d3e4d8f6f46c098d04b3a57409c947ec1c75'
* commit 'fef8d3e4d8f6f46c098d04b3a57409c947ec1c75':
Make search UI open up quicker to the user.
Merge commit '50d87fbd691a59759d5bbe12284d322f9fa967dd'
* commit '50d87fbd691a59759d5bbe12284d322f9fa967dd':
Represent new searchSettingsDescription attribute on searchables in
This backs up the basic system and secure settings. THe restoration doesn't
take effect immediately. You many need to restart the runtime to see all
restored values take effect.
Merge commit 'd8de2ba42679a10db2adc11995d6596a0045ab3a'
* commit 'd8de2ba42679a10db2adc11995d6596a0045ab3a':
Add a new checkin server flag for Vending Machine client server ping frequency for pending downloads.
The system now keeps a tag of the last version (just an arbitrary string)
that the setup wizard was run for. If this is different than the current
one in the setup wizard, then setup is launched at boot.
This introduces a new intent action for the part of the setup wizard that
gets run for an ungrade, which the system uses to find its current version
tag for comparing against what was last stored. It is up to the launched
setup activity update the stored setting to reflect its current value,
once it is happy.
This changes the backup service to use the settings provider instead
of system properties, correspondingly making it off by default and
allowing specific devices to define the transport. Also tweaks
the permission checks to use the permission symbol instead of raw
strings.
This requires some corresponding changes in the vendor projects.
Merge commit '7a5738624fa78e328b5f36c687c20b9cf0eb5a60'
* commit '7a5738624fa78e328b5f36c687c20b9cf0eb5a60':
Fix#1876303. Even rfc2616 4.2 says that "Field names are case-insensitive.", servers including Google internal uses case-sensitive checking for "Cookie". So change it.
Merge commit 'aa4f1f9edc94851a5892ba94af94002018821ddc'
* commit 'aa4f1f9edc94851a5892ba94af94002018821ddc':
Adding in TTS service support for language query and level of support.
On invoking the search UI, the drop down list box with past queries and shortcut items
appears after a few hundreds of milliseconds on screen. This was because we were
displaying the drop down within the onFilterCompleted callback after the list box filtered
the items based on the given query text. While that code path is necessary, for the first
invocation of the search dialog with an empty query we can show the list box before the
text stuff happens. This change does that, issuing an async request to show the drop
down after pending events have been processed.
Without this change, on an average it took 350ms for the code to show the drop down.
With this change, on an average it takes 150ms.
When the focused node is a textfield, but the WebView has focus
(for example if the page had an initial focus) and the cursor
is not over a plugin or textfield, rebuild the WebTextView
to handle the keys. Also, remove mScrollToAccommodateCursor,
since now the WebTextView is only showing when we want to
scroll.
Merge commit '3a608f829b54a7653c9cc2b3bdbda0641cca37bb'
* commit '3a608f829b54a7653c9cc2b3bdbda0641cca37bb':
Fixes#1940605. MeasureSpec's mode and height were inverted in RelativeLayout.
Apparently it can sometimes miss a touch release, which would prevent
the longpress menu from appearing if the location of the new touch was
too far from the location of the previous touch.
Bug 1673223
This is a little hacky -- we just assume that if adb is enabled and power
is connected through usb, then it is active.
The icons and text are temporary until final design is provided.