22919 Commits

Author SHA1 Message Date
Adam Powell
b35c445f34 MediaRouter work
Fix a bug where MediaRouter would crash on creation

Add click listener for app-supplied extended settings on the route
selection dialog.

Change-Id: I2991db1720b5c574148e250526984592f4dc3c44
2012-06-12 11:26:39 -07:00
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
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
Jeff Brown
926a5c507b Merge "Remove edge slop handling from ScaleGestureDetector." into jb-dev 2012-06-11 11:46:42 -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
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
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
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
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
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
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
Chet Haase
a1723d1866 Merge "Revert "Remove ViewTreeObserver allocations"" into jb-dev 2012-06-07 11:27:26 -07:00
Gilles Debunne
857c341dfe Fixed cast exception with selectable text.
Bug 6550358

The EditText constructor now calls setTextIsSelectable, which uses
getText where the cast exception happens because the EditText is not
yet fully built and its text does not have the right type.

Fixed by using mText directly instead of getText().

Change-Id: I52a2720ae99475881f210ac74464728cab92147e
2012-06-07 10:51:06 -07:00
Martijn Coenen
fefd48965c Merge "Small NFC API docs addition." into jb-dev 2012-06-07 10:35:15 -07:00
Chet Haase
0f8ffd8374 Revert "Remove ViewTreeObserver allocations"
This reverts commit b999cc118fe430699e9a67d5dab355125b873abb.

There was an assumption in this earlier change that observer dispatching could not be
recursive - we could only ever have one iteration on the observer listener list. This
assumption broke down in a specific app, and maybe in more, so reverting the change for now.
We should probably find a way to accomplish the same allocation-minimizing goal without
causing exceptions when violating our assumptions.

Issue #6620795 [Application compatibility] Lufthansa app crashes

Change-Id: I1c1f9ad329c14398feb0e74ce77e1a07111f7d1f
2012-06-07 08:00:49 -07:00
Chet Haase
44b2fe3fc1 Track canvas clearing for swap buffers logic.
A previous fix made it necessary for a frame to render something to GL
in order to cause a call to eglSwapBuffers(). Besides the calls being
tracked as part of issuing a DisplayList, there is also a potential call
to clear the canvas (via glClear()) on non-opaque surfaces. This call is also
good to track, since a surface that gets cleared without any other drawing operations
is worth flipping to the screen (to erase old contents on that surface).

This fix tracks the status of the pre-draw operations to find out whether
glClear() was called and then sets the drawing status appropriately.

Issue #6606422 QuickContact dismissal is janky again (Tracking)

Change-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf
2012-06-07 06:25:04 -07:00
Adam Powell
28048d011c Protect against bogus input for ListViews
Guard against cases where ListView might receive touch events while
detached.

Update ListMenuPresenter to dispatch a data set change when the
backing menu is changed.

Bug 6543282

Change-Id: If2fb9b6aa3cf4a1b7070a7cd0de0edf0fc2f4cca
2012-06-06 22:47:56 -07:00
Martijn Coenen
3b6ecf0ec1 Small NFC API docs addition.
Indicate that if the device does not support Bluetooth or WiFI,
calling the API is a no-op.

Bug: 6620788
Change-Id: Ib261e0e7855d0914e97803b3b808015b72f3a186
2012-06-06 17:05:37 -07:00
Chris Craik
37e0c3681e Merge "Revert "Add temporary functor detach logging"" into jb-dev 2012-06-06 16:59:01 -07:00
Chris Craik
aa3b7d88ef Revert "Add temporary functor detach logging"
bug:6608646

This reverts commit f98851ab37c07b243c485168cca201b07a22e6c7
2012-06-06 16:45:53 -07:00
Chris Craik
8f1f714f83 Merge "Revert "Add more temporary logging for investigating detachFunctor"" into jb-dev 2012-06-06 16:45:04 -07:00