Commit Graph

20241 Commits

Author SHA1 Message Date
John Reck
c83a666fe6 Merge "Expand WebKitHitTest and do some preliminary caching" 2012-01-17 09:00:49 -08:00
Glenn Kasten
a7f6562065 Merge "Add android.os.Process.setThreadScheduler" 2012-01-17 07:20:47 -08:00
Dianne Hackborn
dda932005b am d4d68fe2: am cc7bd5ab: Merge "Update notification documentation to follow current guidelines." into ics-mr1
* commit 'd4d68fe20259e2d6aaae8bc4a38b360aa0b57081':
  Update notification documentation to follow current guidelines.
2012-01-13 18:25:31 -08:00
Dianne Hackborn
d4d68fe202 am cc7bd5ab: Merge "Update notification documentation to follow current guidelines." into ics-mr1
* commit 'cc7bd5ab550855c14c76701709b35d12a9677eb2':
  Update notification documentation to follow current guidelines.
2012-01-13 18:23:34 -08:00
John Reck
06e09f6928 Expand WebKitHitTest and do some preliminary caching
Change-Id: Id9e9cc11f1482f434133e70b14970d7248a39008
2012-01-13 17:56:49 -08:00
Dianne Hackborn
cc7bd5ab55 Merge "Update notification documentation to follow current guidelines." into ics-mr1 2012-01-13 16:36:05 -08:00
Michael Kolb
ba82e0675e Merge "fix layer scrollbar updates" 2012-01-13 16:25:14 -08:00
Michael Kolb
4695e20aa5 fix layer scrollbar updates
Bug: 5868791

tell webkit the layer has been scrolled

Change-Id: Ib12963340d950be992fbe5f9520c9a33c04404e8
2012-01-13 16:15:11 -08:00
Gilles Debunne
893eace609 Merge "Sub display list in TextView" 2012-01-13 14:53:54 -08:00
Dianne Hackborn
f88d1493aa am 10065177: am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '100651779fde99f7ae2a10719d688b51115f08e9':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 13:01:48 -08:00
Dianne Hackborn
100651779f am 2e282f35: Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit '2e282f35b009fe4c23daca35592dae2032641643':
  Fix issue #5823276: home repaints after full-screen app is exited
2012-01-13 12:58:45 -08:00
Dianne Hackborn
2e282f35b0 Merge "Fix issue #5823276: home repaints after full-screen app is exited" into ics-mr1 2012-01-13 12:56:40 -08:00
Romain Guy
44d79747b5 Remove unused parameter
Change-Id: I0896b2cdb9f1fa9c5e191e4ea425e22ac6f10f29
2012-01-13 12:12:09 -08:00
Ken Wakasa
5a5b84c3e1 Merge "Bring LatinIME's privateImeOptions "forceAscii" to a formal public API" 2012-01-12 18:15:42 -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
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
Gilles Debunne
b35ab7b729 Sub display list in TextView
TextView uses a sub-display list to 'cache' the rendering of its
text. This saves time when drawing an editable text, where the blinking
cursor forces a re-draw twice per second, which creates pauses during
scrolling.

Added a sub-display list invalidation when an appearance span is
modified/added/removed.

Also added an invalidation of the display list when selection range
is changed.

Change-Id: I41e8068a12902b8a745c5bb77de8c77def76a270
2012-01-12 15:56:37 -08:00
Dianne Hackborn
6ceca588a2 Update notification documentation to follow current guidelines.
The documentation is now consistent with the current UI guidelines
for handling notifications, and includes complete sample code showing
the correct way to do this.

Change-Id: I68f0afc62c2af164c3205535e62093679e2a256a
2012-01-12 15:48:20 -08:00
Svetoslav Ganov
bd2ff3666b Merge "AccessibilityService description not internationalized." 2012-01-12 15:36:58 -08:00
Jeff Brown
986f00faf4 Merge "Rewrite SQLite database wrappers." 2012-01-12 15:03:26 -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
5a05c23f3d Clean up database tests a little bit.
Change-Id: Ib05c699bf59187cb51627b5f352c2a15ad2c28bb
2012-01-12 14:37:57 -08:00
Dianne Hackborn
01b02a734d Fix issue #5823276: home repaints after full-screen app is exited
Don't consider a window as a candidate for the top fullscreen window
if it is not going to be a candiate for layout.

Also don't consider windows a candidate for layout if their app token
is hidden.  This fixes a transient state where we are preparing to
unhide the window but have not done so yet.

Change-Id: Ife5299ffa003c1df1a4f787b7a2809cbf614ec16
2012-01-12 14:05:03 -08:00
Matthew Xie
cf5cecd854 am 1890fa82: am 79d84930: Merge "Set Bluetooth adapter to PowerOff mode when turnoff with airplane on" into ics-mr1
* commit '1890fa822091ea700b7409ac79a57cf650b55003':
  Set Bluetooth adapter to PowerOff mode when turnoff with airplane on
2012-01-12 11:29:39 -08:00
Matthew Xie
1890fa8220 am 79d84930: Merge "Set Bluetooth adapter to PowerOff mode when turnoff with airplane on" into ics-mr1
* commit '79d84930cd776c7173330eeb13b3282b6034fc37':
  Set Bluetooth adapter to PowerOff mode when turnoff with airplane on
2012-01-12 11:27:10 -08:00
Matthew Xie
79d84930cd Merge "Set Bluetooth adapter to PowerOff mode when turnoff with airplane on" into ics-mr1 2012-01-12 11:24:06 -08:00
John Reck
6b9a41c55e am baaf136c: am 0a3fcc3e: Fix Apache stack
* commit 'baaf136cd279e22a7ae4b551ebd5fad23b84996d':
  Fix Apache stack
2012-01-12 11:03:06 -08:00
John Reck
baaf136cd2 am 0a3fcc3e: Fix Apache stack
* commit '0a3fcc3eed15ed50bcaa7808b6ccb170fb137210':
  Fix Apache stack
2012-01-12 11:00:17 -08:00
satok
11299b1b8c Make public SpellChecker utilities
Bug: 5639238
Change-Id: Id7dd2263a6305cc6ba0cf8f4d8ad8fb0d39a48ff
2012-01-12 13:54:53 +09:00
Alon Albert
27096822e2 Log global autosync on dumpsys
Protect dumpsys from divide by zero

Change-Id: I3474f2f4b41643ef1e95cbcf835c96b66b13de38
2012-01-11 18:06:41 -08:00
John Reck
b123e96059 Merge "Initial NavCache removal support" 2012-01-11 16:34:26 -08:00
Matthew Xie
f3171fb60c Set Bluetooth adapter to PowerOff mode when turnoff with airplane on
Currently, when airplane mode was on and BT was on, turning BT off
moved BT to hotoff state. This fix moves BT all the way to Poweroff
state to have better power performance.
bug 5854282

Change-Id: I7ba41797a46a81ddb3a576453f2a8303b5eed525
2012-01-11 14:46:13 -08:00
Selim Gurun
51938e2691 Merge "Do Not Merge. Move ssl callbacks to webcore thread." into ics-mr1 2012-01-11 14:18:14 -08:00
John Reck
4eda105cdb Initial NavCache removal support
Change-Id: I927005093b620a1b1b60703bc8a58de539bdf3c8
2012-01-11 13:59:41 -08:00
John Reck
0a3fcc3eed Fix Apache stack
Change-Id: Iec7d0d8bdaaa5594fa7412db79943ab0ccdf594c
2012-01-11 13:35:29 -08:00
Teng-Hui Zhu
f8f4b69a28 Merge "Query the native side to decide to play when going into full screen mode" 2012-01-11 10:31:24 -08:00
Selim Gurun
972b1a505c Do Not Merge. Move ssl callbacks to webcore thread.
Bug: 4586251

Cherry picking from master for ics-mr1.

Current ssl cert logic makes callbacks to webkit from the
UI thread. This is not right. Move the callbacks to proper thread.

Change-Id: I59affba47eca01b74e2bc33d88ef83a5850d6ce9
2012-01-11 10:18:54 -08:00
Narayan Kamath
81754949e0 Merge "Write unit tests for android.speech.tts." 2012-01-11 03:39:57 -08:00
Jeff Sharkey
2cc28deb9e Merge "Move non-monotonic reporting to interface." 2012-01-10 17:41:01 -08:00
Jeff Sharkey
5a7bcf31a4 Move non-monotonic reporting to interface.
Report non-monotonic NetworkStats through an observer interface
instead of throwing, since those events are still recoverable.

Change-Id: Ic0749f4634b0ac05dbe90e95ca490957ec8b2f23
2012-01-10 17:24:44 -08:00
Teng-Hui Zhu
e4c89e321c Query the native side to decide to play when going into full screen mode
Previously we save the state in Java side, but it is better to check with
native side since the exact state is already there.
This will help to get the updated state from javascript too.

bug:5765848

Webkit side change:
https://android-git.corp.google.com/g/#/c/157866/

Change-Id: Id0316b694c1597b50a1c3b123b31efc6b0fac706
2012-01-10 17:17:02 -08:00
Dianne Hackborn
32313b161f am d476c8b8: am d3be0a76: Merge "Unhide Resources APIs for getting resources at specific densities." into ics-mr1
* commit 'd476c8b8a8a6fadea7e72426d3e93c4e6b00e543':
  Unhide Resources APIs for getting resources at specific densities.
2012-01-09 16:51:52 -08:00
Dianne Hackborn
d3be0a76e4 Merge "Unhide Resources APIs for getting resources at specific densities." into ics-mr1 2012-01-09 16:47:35 -08:00
Mangesh Ghiware
2ddb4c8509 Merge "Fix issue with site-specific display density getting stuck." 2012-01-09 16:02:21 -08:00
Mangesh Ghiware
6f2db8e755 Fix issue with site-specific display density getting stuck.
This issue was found while investigating b/5328288.

After navigating to a page that specifies target-densitydpi in the
viewport meta tag, this density value wasn't reset to the default value
for a page that didn't.

Change-Id: I1a66dab769026367224ecf4cc28bc033ee97e475
2012-01-09 13:53:01 -08:00
Elliott Hughes
64140a0770 Fix Music import for Turkish locales.
For non-localized strings like the keywords in SQL statements, we shouldn't use
locale-specific case transformations.

(Cherry pick of 03f8f84c345e7c861a6de889d434b9d82cf04c8d.)

Bug: 4284951
Change-Id: If5b7154f70a7db22837d071d1c57e929729b7d35
2012-01-09 13:36:36 -08:00
Dianne Hackborn
613989772f Unhide Resources APIs for getting resources at specific densities.
This adds Resources.getDrawableForDensity() and
Resources.getValueForDensity().  These are needed for applications
to correctly retrieve larger icons such as in launcher when
running on a tablet.  We had already exposed the APIs to tell the
application which density to use for app icons on the current
device, but didn't unhide these APIs that allowed you to
actually retrieve them.

This is safe to do without introducing a new API level (as long
as we do it soon) because we know these APIs already exist in
Android 4.0, and there is no reason for anyone to be removing
them when building a device.

Change-Id: I5138e5dc908197b66a98d20af73c5374cb5d41d3
2012-01-09 12:00:30 -08:00