64404 Commits

Author SHA1 Message Date
Christopher Tate
ecce05fac6 am 89620c5d: am 2cf18d28: Merge "Streamline package-installed handling by the Backup Manager" into ics-mr1
* commit '89620c5d982858f590f3740169c9f69ee380be3e':
  Streamline package-installed handling by the Backup Manager
2012-01-13 12:18:55 -08:00
Romain Guy
60c6b082ea Merge "Remove unused parameter" 2012-01-13 12:13:52 -08:00
Romain Guy
44d79747b5 Remove unused parameter
Change-Id: I0896b2cdb9f1fa9c5e191e4ea425e22ac6f10f29
2012-01-13 12:12:09 -08:00
Christopher Tate
89620c5d98 am 2cf18d28: Merge "Streamline package-installed handling by the Backup Manager" into ics-mr1
* commit '2cf18d28785fdd188641867503586627cb212302':
  Streamline package-installed handling by the Backup Manager
2012-01-13 12:08:09 -08:00
Christopher Tate
2cf18d2878 Merge "Streamline package-installed handling by the Backup Manager" into ics-mr1 2012-01-13 11:49:20 -08:00
John Huang
70f52e6d79 am e6572304: am 2753e826: Merge "Fix teardown of secondary connections on CDMA" into ics-mr1
* commit 'e65723044d6ad7fb2ff1bb760100a3cf40c6c5f2':
  Fix teardown of secondary connections on CDMA
2012-01-13 11:41:01 -08:00
John Huang
e65723044d am 2753e826: Merge "Fix teardown of secondary connections on CDMA" into ics-mr1
* commit '2753e826b2d0e7a4c5f80c3e825afa4aa579942b':
  Fix teardown of secondary connections on CDMA
2012-01-13 11:39:03 -08:00
John Huang
2753e826b2 Merge "Fix teardown of secondary connections on CDMA" into ics-mr1 2012-01-13 11:37:15 -08:00
Jean-Baptiste Queru
134a683565 am c0ef548c: am d75961ee: am b4cee0f8: Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace"
* commit 'c0ef548c748f0c3bc917eff7b50941f9cbe1df86':
  stagefright aacenc/amrwbenc: Remove trailing whitespace
2012-01-13 11:28:09 -08:00
Jean-Baptiste Queru
c0ef548c74 am d75961ee: am b4cee0f8: Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace"
* commit 'd75961eecbfeb3f7e027a2a1f6011a26dd7d2d2d':
  stagefright aacenc/amrwbenc: Remove trailing whitespace
2012-01-13 11:25:09 -08:00
Jean-Baptiste Queru
d75961eecb am b4cee0f8: Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace"
* commit 'b4cee0f871e0f5a2abd6c6f05b65710b69423f2c':
  stagefright aacenc/amrwbenc: Remove trailing whitespace
2012-01-13 11:22:08 -08:00
Robert Ly
3e9aa56e56 am 7da0abc5: am 62472581: Merge "cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62" into ics-mr1
* commit '7da0abc52e3cbdeeb7fae0d22895710254ef9ec4':
  cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62
2012-01-13 11:20:43 -08:00
Robert Ly
7da0abc52e am 62472581: Merge "cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62" into ics-mr1
* commit '62472581c30a3202b7bbd86e644b4346d5a4e65c':
  cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62
2012-01-13 11:09:27 -08:00
Alon Albert
ade3289bee Merge "New command to request a sync" 2012-01-13 10:35:53 -08:00
Alon Albert
e1c4a0b31b New command to request a sync
Change-Id: I523e8ff4814940197d0b9a362a3920e69feae6fd
2012-01-13 10:19:24 -08:00
Robert Ly
62472581c3 Merge "cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62" into ics-mr1 2012-01-13 10:13:14 -08:00
Robert Ly
0272f1dfd7 cherrypick from master - add overview description for RS API reference Change-Id: Id5554c607ad4c435f92bfa939e4ce4833a638f62
Change-Id: Iff4b4bd171818208bb3be46dd3ef7e91b6cbd80f
2012-01-13 10:07:20 -08:00
Jean-Baptiste Queru
b4cee0f871 Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace" 2012-01-13 07:48:56 -08:00
Guang Zhu
6a78cd8586 Merge "Move where prop dev.bootcomplete is set" 2012-01-12 21:00:15 -08:00
Bart Sears
73f22cd430 Merge "Add glyphs for Vertical Text" 2012-01-12 19:20:05 -08:00
Mathias Agopian
a8f75fe9a9 Merge "fix a bug with vsync management" 2012-01-12 18:49:07 -08:00
Ken Wakasa
5a5b84c3e1 Merge "Bring LatinIME's privateImeOptions "forceAscii" to a formal public API" 2012-01-12 18:15:42 -08:00
Guang Zhu
191713a51f Move where prop dev.bootcomplete is set
Currently test harnesses depends on this flag to determine when
the system is fully booted, and start dismissing keyguard, launch
tests etc. However, the flag is usually set when the boot animation
is still running, and typically about 5 seconds before keyguard is
up etc. Moving to to when BOOT_COMPLETE broadcast is sent makes it
work more reliable.

We also discussed about using sys.boot_completed instead,
unfortunately this flag is not in all platform and we still have
backwards compatibility to maintain in order to drive unbundled
tests.

Change-Id: I99b084cd70d8e4bcfe490ddeca868136d32712e2
2012-01-12 17:39:40 -08:00
Alon Albert
cf12902719 Merge "Log global autosync on dumpsys Protect dumpsys from divide by zero" 2012-01-12 17:39:37 -08:00
Robert Greenwalt
2fceb7fec0 Fix teardown of secondary connections on CDMA
Restores functionallity from Gingerbread.  We should tear down when the
enabledcount goes to zero, but we should always notify and attempt to
switch back to default when indicated.

bug:5830081
Change-Id: Ib8469bb5369da21e8cc05fb755b2d7e24c8e02a6
2012-01-12 17:38:54 -08:00
James Dong
b5c6ff5993 Merge "Separate sniffing from session initialization" 2012-01-12 16:56:58 -08:00
Adam Cohen
dc89357810 Merge "Getting rid of hack where the wallpaper offset was being deferred" 2012-01-12 16:47:00 -08:00
Ken Wakasa
c8f4183669 Bring LatinIME's privateImeOptions "forceAscii" to a formal public API
bug: 5850605
Change-Id: I6ab6076909c735a3e0729b457de68d0b5301184d
2012-01-13 09:45:41 +09:00
Bart Sears
4b45522304 Add glyphs for Vertical Text
Adds U+FE10-U+FE19, U+2022, U+25C9, U+FE45, U+FE46

Also has an updated version of U+59A9 (this is a bug fix
unrelated to the new Vertical Text glyphs).

This is the second drop from Monotype.  The first drop was
missing U+FE11 and U+FE13 and had a few other minor issues.

Bug: 5472953
Change-Id: I270ae3c88bf8ba227de58cdce7321464ca708308
2012-01-12 16:42:32 -08:00
James Dong
d1ba6ed945 Separate sniffing from session initialization
This avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened

o The change is backward compatibile in that no update is required
  for existing drm plug-ins if they do not plan to provide separate
  sniffer/extractor

related-to-bug: 5725548

Change-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c
2012-01-12 16:25:12 -08:00
Christopher Tate
0bacfd2ba6 Streamline package-installed handling by the Backup Manager
In particular, don't do O(asec_apps * installed_apps) work during the
broadcast receiver's operation.  On devices with many installed apps
and a large number of them moved to ASECs, this was causing the system
process to become unresponsive and the watchdog to fire -- which in turn
would initiate a restart loop, as the same package-installed broadcast
would then be issued again once the package manager rescanned the ASEC
containers, ad infinitum.  With this change, the expensive call to the
package manager is only made once rather than asec_apps times.

Bug 5850283

Change-Id: I14e280ea1fa6af19cebc58869a20fbb599c92c8c
2012-01-12 16:15:09 -08:00
Mathias Agopian
87c6ea6eed fix a bug with vsync management
this bug was introduced recently. we were signaling *all* clients
regardless of the vsync rate.

Change-Id: I2ae8a6c820a390f602382596ba75e8ed737fb2ef
2012-01-12 16:13:54 -08:00
Scott Main
c8ac86ba6b am cea3892b: am 722c8c02: Merge "docs: make AD logo clickable on home page" into ics-mr1
* commit 'cea3892bd7fdf605d51a7f99aa0d20dfbea80dd3':
  docs: make AD logo clickable on home page
2012-01-12 15:49:34 -08:00
Scott Main
cea3892bd7 am 722c8c02: Merge "docs: make AD logo clickable on home page" into ics-mr1
* commit '722c8c02f1e17c232b041440ea97a2fda336a6e8':
  docs: make AD logo clickable on home page
2012-01-12 15:47:15 -08:00
Scott Main
722c8c02f1 Merge "docs: make AD logo clickable on home page" into ics-mr1 2012-01-12 15:44:53 -08:00
Svetoslav Ganov
bd2ff3666b Merge "AccessibilityService description not internationalized." 2012-01-12 15:36:58 -08:00
Scott Main
8b56d20e30 docs: make AD logo clickable on home page
Change-Id: Ib8a94280d4183b82bcbc5969f2dff1a67c1ecc53
2012-01-12 15:33:38 -08:00
Jeff Brown
986f00faf4 Merge "Rewrite SQLite database wrappers." 2012-01-12 15:03:26 -08:00
Jeff Brown
156936975d Merge "Fix indentation and whitespace." 2012-01-12 14:59:30 -08:00
Jeff Brown
18c415c3c8 Merge "Clean up database tests a little bit." 2012-01-12 14:59:11 -08:00
Jeff Brown
e5360fbf3e Rewrite SQLite database wrappers.
The main theme of this change is encapsulation.  This change
preserves all existing functionality but the implementation
is now much cleaner.

Instead of a "database lock", access to the database is treated
as a resource acquisition problem.  If a thread's owns a database
connection, then it can access the database; otherwise, it must
acquire a database connection first, and potentially wait for other
threads to give up theirs.  The SQLiteConnectionPool encapsulates
the details of how connections are created, configured, acquired,
released and disposed.

One new feature is that SQLiteConnectionPool can make scheduling
decisions about which thread should next acquire a database
connection when there is contention among threads.  The factors
considered include wait queue ordering (fairness among peers),
whether the connection is needed for an interactive operation
(unfairness on behalf of the UI), and whether the primary connection
is needed or if any old connection will do.  Thus one goal of the
new SQLiteConnectionPool is to improve the utilization of
database connections.

To emulate some quirks of the old "database lock," we introduce
the concept of the primary database connection.  The primary
database connection is the one that is typically used to perform
write operations to the database.  When a thread holds the primary
database connection, it effectively prevents other threads from
modifying the database (although they can still read).  What's
more, those threads will block when they try to acquire the primary
connection, which provides the same kind of mutual exclusion
features that the old "database lock" had.  (In truth, we
probably don't need to be requiring use of the primary database
connection in as many places as we do now, but we can seek to refine
that behavior in future patches.)

Another significant change is that native sqlite3_stmt objects
(prepared statements) are fully encapsulated by the SQLiteConnection
object that owns them.  This ensures that the connection can
finalize (destroy) all extant statements that belong to a database
connection when the connection is closed.  (In the original code,
this was very complicated because the sqlite3_stmt objects were
managed by SQLiteCompiledSql objects which had different lifetime
from the original SQLiteDatabase that created them.  Worse, the
SQLiteCompiledSql finalizer method couldn't actually destroy the
sqlite3_stmt objects because it ran on the finalizer thread and
therefore could not guarantee that it could acquire the database
lock in order to do the work.  This resulted in some rather
tortured logic involving a list of pending finalizable statements
and a high change of deadlocks or leaks.)

Because sqlite3_stmt objects never escape the confines of the
SQLiteConnection that owns them, we can also greatly simplify
the design of the SQLiteProgram, SQLiteQuery and SQLiteStatement
objects.  They no longer have to wrangle a native sqlite3_stmt
object pointer and manage its lifecycle.  So now all they do
is hold bind arguments and provide a fancy API.

All of the JNI glue related to managing database connections
and performing transactions is now bound to SQLiteConnection
(rather than being scattered everywhere).  This makes sense because
SQLiteConnection owns the native sqlite3 object, so it is the
only class in the system that can interact with the native
SQLite database directly.  Encapsulation for the win.

One particularly tricky part of this change is managing the
ownership of SQLiteConnection objects.  At any given time,
a SQLiteConnection is either owned by a SQLiteConnectionPool
or by a SQLiteSession.  SQLiteConnections should never be leaked,
but we handle that case too (and yell about it with CloseGuard).

A SQLiteSession object is responsible for acquiring and releasing
a SQLiteConnection object on behalf of a single thread as needed.
For example, the session acquires a connection when a transaction
begins and releases it when finished.  If the session cannot
acquire a connection immediately, then the requested operation
blocks until a connection becomes available.

SQLiteSessions are thread-local.  A SQLiteDatabase assigns a
distinct session to each thread that performs database operations.
This is very very important.  First, it prevents two threads
from trying to use the same SQLiteConnection at the same time
(because two threads can't share the same session).
Second, it prevents a single thread from trying to acquire two
SQLiteConnections simultaneously from the same database (because
a single thread can't have two sessions for the same database which,
in addition to being greedy, could result in a deadlock).

There is strict layering between the various database objects,
objects at lower layers are not aware of objects at higher layers.
Moreover, objects at higher layers generally own objects at lower
layers and are responsible for ensuring they are properly disposed
when no longer needed (good for the environment).

API layer: SQLiteDatabase, SQLiteProgram, SQLiteQuery, SQLiteStatement.
Session layer: SQLiteSession.
Connection layer: SQLiteConnectionPool, SQLiteConnection.
Native layer: JNI glue.

By avoiding cyclic dependencies between layers, we make the
architecture much more intelligible, maintainable and robust.

Finally, this change adds a great deal of new debugging information.
It is now possible to view a list of the most recent database
operations including how long they took to run using
"adb shell dumpsys dbinfo".  (Because most of the interesting
work happens in SQLiteConnection, it is easy to add debugging
instrumentation to track all database operations in one place.)

Change-Id: Iffb4ce72d8bcf20b4e087d911da6aa84d2f15297
2012-01-12 14:56:18 -08:00
Adam Cohen
791a6331e3 Getting rid of hack where the wallpaper offset was being deferred
-> This was a hack, and with all the work going into vsync etc, it
   really shouldn't be needed.

Change-Id: I59005e2644e0ba08846a6c661e8c4e22640d8e02
2012-01-12 14:38:38 -08:00
Jeff Brown
3f11f302c7 Fix indentation and whitespace.
Change-Id: Iccb954fb77f21b230eecb3f06328e11b14611f17
2012-01-12 14:37:58 -08:00
Jeff Brown
5a05c23f3d Clean up database tests a little bit.
Change-Id: Ib05c699bf59187cb51627b5f352c2a15ad2c28bb
2012-01-12 14:37:57 -08:00
Chia-chi Yeh
5d134343ca am 1e9e7f76: am ff321d49: Merge "VPN: silence VPN notifications." into ics-mr1
* commit '1e9e7f76d5e6187befaf96eece258c27fd08bdc5':
  VPN: silence VPN notifications.
2012-01-12 14:30:44 -08:00
Chia-chi Yeh
1e9e7f76d5 am ff321d49: Merge "VPN: silence VPN notifications." into ics-mr1
* commit 'ff321d496a6a07fc667112ecfe4d9a107d44147b':
  VPN: silence VPN notifications.
2012-01-12 14:26:43 -08:00
Chia-chi Yeh
ff321d496a Merge "VPN: silence VPN notifications." into ics-mr1 2012-01-12 14:24:30 -08:00
Gilles Debunne
e340527eab Merge "Fixed fadingEdge documentation" 2012-01-12 14:21:58 -08:00
Roman Nurik
842bb08fb9 am 4ecb2633: am aaaafca8: docs: Android design CSS/JS fixes
* commit '4ecb2633981d0d58421562ca379a5c79adb413a0':
  docs: Android design CSS/JS fixes
2012-01-12 14:11:01 -08:00
Roman Nurik
4ecb263398 am aaaafca8: docs: Android design CSS/JS fixes
* commit 'aaaafca8543eaa75f1865d70c801c9b62caa56e2':
  docs: Android design CSS/JS fixes
2012-01-12 14:07:51 -08:00