31407 Commits

Author SHA1 Message Date
Jeff Brown
265f1ccc51 Improve ANR diagnostics.
When an ANR occurs, log the associated reason.

When an event takes too long to process (currently more than 2 seconds)
log basic information about the event including how long it actually
took.

Dump the contents of the inbound, outbound and wait queues as part
of dumpsys input.

Bug: 6574842
Change-Id: I9ab754c320f609cb86fe266c469a61e7032dfed6
2012-06-11 18:05:31 -07:00
Gilles Debunne
2fba3387c3 Prevent a crash when maxLines is set to 0
Bug 6642222

Using setMaxLines(0) and setMinHeight(30) causes a crash
because Layout#getLineRangeForDraw() returns a [0,0] interval
in that case.

Accessing the Direction in draw causes a NPE.

Change-Id: If50f9b554e3cdc598a721b623992e9196982838c
2012-06-11 17:46:26 -07:00
Dianne Hackborn
f9d80b6b94 Merge "Rework media router to be per-context with global process state." into jb-dev 2012-06-11 16:31:55 -07:00
Jeff Brown
519e91ef84 Merge "Detect bad behavior earlier in Choreographer." into jb-dev 2012-06-11 15:59:48 -07:00
Dianne Hackborn
b58b8f832d Rework media router to be per-context with global process state.
Change-Id: Ic1cb6f13e691d22783bcdafae85b7c75aec0a66f
2012-06-11 15:41:08 -07:00
Jeff Brown
4fdf9c6e2a Detect bad behavior earlier in Choreographer.
Detect wonky vsync timestamps (should they occur) and
warn loudly about them.

Warn when too many frames are skipped.  The threshold is pretty
conservative right now (only warn if at least 30 frames are skipped)
but it can be adjusted using system property.  Even skipping just a
couple of frames is enough to generate noticeable jank.
The threshold is currently intended to help track down bigger problems
such when an app does too much work on the UI thread.

Bug: 6574842
Change-Id: I4aac7e5e17d1fb51adb0510e318a72a28b3775ed
2012-06-11 15:25:48 -07:00
Victoria Lease
72b8fc7e6d Merge "Revert "Fix fake bold for fallback fonts in frameworks."" into jb-dev 2012-06-11 15:21:39 -07:00
Adam Powell
fbce66cb25 Merge "Further work on MediaRouter" into jb-dev 2012-06-11 15:00:57 -07:00
Victoria Lease
aa0980afab Revert "Fix fake bold for fallback fonts in frameworks."
This reverts commit b26fa0ce68d3311b2fdffb930b27d897e481dd5a
2012-06-11 14:46:04 -07:00
Romain Guy
6b5caee490 Merge "Prevent crash in WebView when disabling the hw renderer Bug #6596807" into jb-dev 2012-06-11 14:15:40 -07:00
Svetoslav Ganov
f372e331e4 Merge "NPE when iterating by character and word in Launcher widgets." into jb-dev 2012-06-11 14:06:29 -07:00
Romain Guy
527ee91b60 Prevent crash in WebView when disabling the hw renderer
Bug #6596807

A crash would occur in the following situation:
- WebView registers a functor with the hardware renderer
- The hardware renderer gets disabled
- WebView attemps to unregister its functor

Unregistering the functor fails because the hardware renderer is now disabled.
When the renderer becomes enabled again, the functor is invoked, which leads
to a native crash.

This change simply allows functors to always be unregistered, even when the
renderer is disabled. A disabled renderer only means that it will not be used
for rendering; as such, unregistering a functor is a valid operation and
should be allowed.

Change-Id: I0ff897a0cca7e048c609033215cd0f7f5c940bcc
2012-06-11 13:24:30 -07:00
Adam Powell
d0d2cda9d4 Further work on MediaRouter
Remove volume control and tracking. This will be handled by extensions
to existing audio and media APIs for now.

Tweak/refine other aspects of the API. Pass the router to callbacks for
easier future-proofing. Add group/ungroup callback methods.

Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
2012-06-11 13:17:44 -07:00
Dianne Hackborn
0f6471ace7 Merge "Fix issue #6641368: can't launch gallery" into jb-dev 2012-06-11 13:09:22 -07:00
Dianne Hackborn
2bd8d0403b Fix issue #6641368: can't launch gallery
This is a revert of 1db36528b12395b9ed9bf8a1005a6d4ace737627,
but with comments added so I don't make this mistake again. :)

Change-Id: I053216279e3721f08f32f561bb989736ef619f82
2012-06-11 12:27:05 -07:00
Svetoslav Ganov
bbd31559f3 NPE when iterating by character and word in Launcher widgets.
1. The character and word iterators were use the application
   context to keep track of locale changes. However, for widgets
   the context from which the app context is obtained is custom
   created therefore the app context is null and the iterators
   code does not expect that. Now we are caching the locale
   and update it when the configuration changes.

bug:6642281

Change-Id: I3fd201ab9e4efd79e3bdc8afd8ee644e4354a7fb
2012-06-11 12:18:09 -07:00
Eric Fischer
1b159f66ee Merge "Import translations. DO NOT MERGE" into jb-dev 2012-06-11 11:56:22 -07:00
Chia-chi Yeh
d667aebfb3 Merge "VPN: move VpnDialogs away from system uid." into jb-dev 2012-06-11 11:49:46 -07:00
Jeff Brown
926a5c507b Merge "Remove edge slop handling from ScaleGestureDetector." into jb-dev 2012-06-11 11:46:42 -07:00
Eric Fischer
34b729d335 Import translations. DO NOT MERGE
Change-Id: I937a8a4cc8617744f4a63d72fe946b0e2d543ede
2012-06-11 11:42:43 -07:00
Dianne Hackborn
a7e3a1e0e7 Merge "Include important native processes in watchdog stacks." into jb-dev 2012-06-11 10:37:51 -07:00
Chet Haase
913bf80416 Merge "Don't allow apps to request scrolls to out-of-bounds positions" into jb-dev 2012-06-10 12:30:33 -07:00
Svetoslav Ganov
86bbf70587 Merge "Settings crash after enabling TalkBack accessibility." into jb-dev 2012-06-10 09:50:24 -07:00
Dianne Hackborn
f72467ad98 Include important native processes in watchdog stacks.
Helps us track down deadlocks involving native service processes.

Bug: 6615693
Change-Id: I580047550772e29586195a8cf440141574e3f40c
2012-06-08 18:36:48 -07:00
Victoria Lease
2e6f9be563 Merge "Fix fake bold for fallback fonts in frameworks." into jb-dev 2012-06-08 17:27:28 -07:00
Jeff Brown
076f17375b Remove edge slop handling from ScaleGestureDetector.
The edge slop code could violate invariants of ScaleGestureDetector,
such as the assumption that if an ACTION_POINTER_DOWN is observed
or if getPointerCount() >= 2, then there must be at least two
active pointers to choose from.  But due to the edge slop handling,
it was possible for findNewActiveIndex to return -1 in this
case, resulting in a crash.

Bug: 6613154
Change-Id: I4e08e38a49ab27dac1be9484e19de086bc43624a
2012-06-08 16:40:01 -07:00
Eric Fischer
d9038fd556 Import translations. DO NOT MERGE
Change-Id: I0edaecd41cef0eb158d003a3a0aafe28f49949f7
2012-06-08 16:31:51 -07:00
Svetoslav Ganov
ee33ad24cd Settings crash after enabling TalkBack accessibility.
1. AccessibilityInput filter was not checking whether the touch
   explorer instance is not null before passing it an accessibility
   event. If the accessibility event is dispatched before the input
   filter is installed but after it is created we runt into this
   case.

2. Added a missing null check in accessibility node info.

bug:6635089

Change-Id: Ia389dc1f427427eb73794f6331ccb870e0b44c55
2012-06-08 16:09:36 -07:00
Chet Haase
0061e16e53 Don't allow apps to request scrolls to out-of-bounds positions
An app was requesting smooth scrolling to a view position beyond the
number of items in the list. This caused our setup logic to execute on
every frame, waiting for the target view to be added.

This fix clamps the requested target position to the number of items
actually in the list.

Issue #6572175 Messaging: Sometimes conversation doesn't scroll when focus is brought to the compose field

Change-Id: I23707aeb213e67af4297713a03c2f5b446c8e2b6
2012-06-08 15:01:56 -07:00
Victoria Lease
b26fa0ce68 Fix fake bold for fallback fonts in frameworks.
This change is analogous to Ic0e9f1bbd8cae9fdd3a6d1d015bb9224c8be545c
in WebView, and depends upon the same Skia change that that CL makes
use of.

This flips the "fake bold" flag on for bold fonts in
TextView.setTypeface(), with the expectation that Skia will ignore
the flag if the final typeface used to render the glyphs is already
bold. It also does the same for StyleSpans, TextAppearanceSpans,
TypefaceSpans, and the Switch widget.

With this, fake bold should work uniformly across all scripts - if
fake bold works for a primary typeface, it should also work for all
fallback typefaces.

Bug: 6629786
Change-Id: Id3b8639ab0df83052ffd82809cb12adaacc1d46b
2012-06-08 13:52:17 -07:00
Daniel Sandler
6cf0c3365a Merge "Various notification template cleanups." into jb-dev 2012-06-08 13:38:02 -07:00
Chia-chi Yeh
dadc857d9d VPN: move VpnDialogs away from system uid.
Bug: 6632536
Change-Id: Iece647c077caf5298ccfe7d7aba5f0911a4ed0d1
2012-06-08 13:05:58 -07:00
Dianne Hackborn
0876ab0ac1 Merge "Fix issue #6295373: "Package com.google.android.apps.authenticator2 has..." into jb-dev 2012-06-08 11:01:42 -07:00
Adam Powell
f242758073 Merge "Progress bar assets - once more, with feeling!" into jb-dev 2012-06-08 10:11:40 -07:00
Kenny Root
af95137a9f Merge "Whoops, this version number wasn't updated when JB was introduced!" into jb-dev 2012-06-08 09:51:04 -07:00
Daniel Sandler
619738c9e7 Various notification template cleanups.
Bug: 6597693 // hide line3 in InboxStyle
Bug: 6593691 // vertical centering inconsistencies
Bug: 6592116 // no left action gutter in BigPicture
Bug: 6622757 // missing subtext in BigText expanded
Change-Id: I941af99d0a905b6e0aa6fb74ad4eff29c17d9fc2
2012-06-08 11:41:37 -04:00
Adam Powell
39987ceb72 Progress bar assets - once more, with feeling!
Bug 6628236

Change-Id: I06369f37caf3db8b00047822f5fda44ce380e01b
2012-06-07 19:23:36 -07:00
Dianne Hackborn
1db36528b1 Whoops, this version number wasn't updated when JB was introduced!
Change-Id: I9c9cd658cc1cba99b84059c8873c22b21b9f3c19
2012-06-07 18:20:55 -07:00
Dianne Hackborn
d0c5f515c0 Fix issue #6295373: "Package com.google.android.apps.authenticator2 has...
...mismatched uid: X on disk, Y in settings" errors on Froyo and Gingerbread

Deal more gracefully with the uid changing in three ways:

1. If the uid on disk has become root, then have installd change it to
   the application's uid.  This is to correct a potential case where
   installd was interrupted while linking or unlinking the libs dir,
   during which it temporarily changes the owner of the dir to root
   so that a malicious app can not get in its way.  So if the uid on
   disk has become root, we assume we can safely just change it back
   to the correct uid.

2. When scaning packages at boot, use the same "delete and rebuild data
   directory" code for third party applications as we have for system
   applications.  This allows us to at least end up in a state where the
   app will run, even if its data is lost.

3. But we really don't want to get in to case 2, so if an application
   update is being installed and we find that the uid we now have for
   the app is different than the one on disk, fail the update.  This will
   protect against for example a developer changing the sharedUserId of
   their app and getting into this bad state.

Bug: 6295373
Change-Id: Ic802fdd818ac62449ff3c61d1fff1aa4d4942f39
2012-06-07 16:57:57 -07:00
John Reck
839fd4144e Merge "Eliminate gap between finalize() and destroy()" into jb-dev 2012-06-07 15:57:56 -07:00
John Reck
0e0ce11e57 Merge "Stay in layer scroll if nothing to scroll" into jb-dev 2012-06-07 15:29:46 -07:00
Jean-Michel Trivi
6a5f9f6ddb Merge "Configuration for lock and UI sound levels" into jb-dev 2012-06-07 15:28:51 -07:00
John Reck
919c89e204 Stay in layer scroll if nothing to scroll
Bug: 6628376
 The issue here is that contentX & contentY can both be 0 if we are scrolling
 slowly enough as they are adjusted by the page's scale and can thus round down.
 However, this would result in us falling out of layer drag mode even though
 we haven't tried to scroll past the edge of the layer. Detect this case, and
 stay in layer scroll mode.

Change-Id: I3c655d0d03e8f89887abbe718bd24699c133ee1a
2012-06-07 14:45:34 -07:00
Gilles Debunne
78c6aeeffa Merge "Fixed cast exception with selectable text." into jb-dev 2012-06-07 14:15:40 -07:00
Eric Fischer
0646411cbd Merge "Import translations. DO NOT MERGE" into jb-dev 2012-06-07 13:56:09 -07:00
Eric Fischer
bd646b8e1c Import translations. DO NOT MERGE
Change-Id: Ic209397930750934fe3ab136ab3a4586257c1ed3
2012-06-07 13:52:56 -07:00
Svetoslav Ganov
ddbcce81ac Merge "Cannot interact with dialogs when IME is up and on not touch explored popups." into jb-dev 2012-06-07 13:50:58 -07:00
John Reck
d5e2937933 Eliminate gap between finalize() and destroy()
Bug: 6569073
 Only nativeDestroy and nativeStopGL need to be called on the UI thread,
 so split up destroyImpl into 3 functions, and only have the native
 destroy be pushed to the UI thread if necessary. Also make the work that
 is delayed be static without references to the finalizing WebView to allow
 it to be fully deleted immediately after finalization.

Change-Id: I4e424051e69df0bc409af95ca3f3d2b9e58a6b75
2012-06-07 13:14:57 -07:00
Adam Powell
4c38fe369f Merge "Protect against bogus input for ListViews" into jb-dev 2012-06-07 12:12:00 -07:00
Svetoslav Ganov
86783474fd Cannot interact with dialogs when IME is up and on not touch explored popups.
1. If the last touch explored location is within the active window we
   used to click on exact location if it is within the accessibility
   focus otherwise in the accessibility focus center. If the last touch
   explored location is not within the active window we used to just
   click there. This breaks in the case were one has touch explored
   at a given place in the current window and now a dialog opens *not*
   covering the touch explored location. If one uses swipes to move
   accessibility focus i.e. to traverse the dialog without touching
   it one cannot activate anything because the touch explorer is using
   the last touch explored location that is outside of the active
   window e.g the dialog.

   The solution is to clear the last touch explored location when a
   window opens or accessibility focus moves. If the last touch
   explored location is null we are clicking in the accessibility
   focus location.

bug:6620911

2. There is a bug in the window manager that does not notify a
   window that its location has changed (bug:6623031). This breaks
   accessibility interaction with dialogs that have input because
   when the IME is up the dialog is moved but not notified. Now
   the accessibility layer gets incorrect location for the
   accessibility focus and the window bounds.

   The soluion is when the accessibility manager service calls
   into the remove thress to obtain some accessibility node infos
   it passes the window left and top which it gets from the
   window manager. These values are used to update the attach info
   window left and top so all accessibility node infos emitted
   from that window had correct bounds in screen coordinates.

bug:6620796

Change-Id: I18914f2095c55cfc826acf5277bd94b776bda0c8
2012-06-07 12:02:16 -07:00