30017 Commits

Author SHA1 Message Date
Svetoslav Ganov
4213804541 Accessibility focus - framework
Usefulness: Keep track of the current user location in the screen when
            traversing the it. Enabling structural and directional
            navigation over all elements on the screen. This enables
            blind users that know the application layout to efficiently
            locate desired elements as opposed to try touch exploring the
            region where the the element should be - very tedious.

Rationale: There are two ways to implement accessibility focus One is
           to let accessibility services keep track of it since they
           have access to the screen content, and another to let the view
           hierarchy keep track of it. While the first approach would
           require almost no work on our part it poses several challenges
           which make it a sub-optimal choice. Having the accessibility focus
           in the accessibility service would require that service to scrape
           the window content every time it changes to sync the view tree
           state and the accessibility focus location. Pretty much the service
           will have to keep an off screen model of the screen content. This
           could be quite challenging to get right and would incur performance
           cost for the multiple IPCs to repeatedly fetch the screen content.
           Further, keeping virtual accessibility focus (i.e. in the service)
           would require sync of the input and accessibility focus. This could
           be challenging to implement right as well. Also, having an unlimited
           number of accessibility services we cannot guarantee that they will
           have a proper implementation, if any, to allow users to perform structural
           navigation of the screen content. Assuming two accessibility
           services implement structural navigation via accessibility focus,
           there is not guarantee that they will behave similarly by default,
           i.e. provide some standard way to navigate the screen content.
           Also feedback from experienced accessibility researchers, specifically
           T.V Raman, provides evidence that having virtual accessibility focus
           creates many issues and it is very hard to get right.
           Therefore, keeping accessibility focus in the system will avoid
           keeping an off-screen model in accessibility services, it will always
           be in sync with the state of the view hierarchy and the input focus.
           Also this will allow having a default behavior for traversing the
           screen via this accessibility focus that is consistent in all
           accessibility services. We provide accessibility services with APIs to
           override this behavior but all of them will perform screen traversal
           in a consistent way by default.

Behavior:  If accessibility is enabled the accessibility focus is the leading one
           and the input follows it. Putting accessibility focus on a view moves
           the input focus there. Clearing the accessibility focus of a view, clears
           the input focus of this view. If accessibility focus is on a view that
           cannot take input focus, then no other view should have input focus.
           In accessibility mode we initially give accessibility focus to the topmost
           view and no view has input focus. This ensures consistent behavior accross
           all apps. Note that accessibility focus can move hierarchically in the
           view tree and having it at the root is better than putting it where the
           input focus would be - at the first input focusable which could be at
           an arbitrary depth in the view tree. By default not all views are reported
           for accessibility, only the important ones. A view may be explicitly labeled
           as important or not for accessibility, or the system determines which one
           is such - default. Important views for accessibility are all views that are
           not dumb layout managers used only to arrange their chidren. Since the same
           content arrangement can be obtained via different combintation of layout
           managers, such managers cannot be used to reliably determine the application
           structure. For example, a user should see a list as a list view with several
           list items and each list item as a text view and a button as opposed to seeing
           all the layout managers used to arrange the list item's content.
           By default only important for accessibility views are regared for accessibility
           purposes. View not regarded for accessibility neither fire accessibility events,
           nor are reported being on the screen. An accessibility service may request the
           system to regard all views. If the target SDK of an accessibility services is
           less than JellyBean, then all views are regarded for accessibility.
           Note that an accessibility service that requires all view to be ragarded for
           accessibility may put accessibility focus on any view. Hence, it may implement
           any navigational paradigm if desired. Especially considering the fact that
           the system is detecting some standard gestures and delegates their processing
           to an accessibility service. The default implementation of an accessibility
           services performs the defualt navigation.

bug:5932640
bug:5605641

Change-Id: Ieac461d480579d706a847b9325720cb254736ebe
2012-04-13 19:05:24 -07:00
Jamie Gennis
33efb231cb Unhide new SurfaceTexture & TextureView APIs
This change unhides the new SurfaceTexture and TextureView APIs that were added
to allow transferring ownership of the SurfaceTexture from the UI framework to
the application.

Change-Id: Ic4b781d907a59e99ff1a5974009305c1f9aee36a
2012-04-13 18:33:38 -07:00
Jamie Gennis
dbed083ff0 Merge "SurfaceTexture: update API docs" 2012-04-13 18:02:28 -07:00
Jeff Brown
90aba7caac Merge "Add support for input devices that have vibrators." 2012-04-13 17:34:20 -07:00
Eric Fischer
bc6aa58d43 Merge "Import translations. DO NOT MERGE" 2012-04-13 17:06:32 -07:00
Jeff Brown
75e0dcbca1 Merge "Extract Vibrator implementation from interface." 2012-04-13 17:03:05 -07:00
Jeff Brown
a47425a13c Add support for input devices that have vibrators.
Added a getVibrator() method to InputDevice which returns a Vibrator
associated with that input device.  Its uses the same API as the
system vibrator which makes it easy for applications to be modified
to use one or the other.

Bug: 6334179
Change-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e
2012-04-13 17:01:15 -07:00
Dianne Hackborn
8b2dd9c870 Merge "Improve lock screen hide animation." 2012-04-13 16:55:00 -07:00
Wink Saville
48a7bf24e3 Merge "Enhance the debug output for StateMachines." 2012-04-13 16:52:04 -07:00
Dianne Hackborn
2a07308ed2 Merge "Add direct support for HTML formatted text in ClipData etc." 2012-04-13 16:47:38 -07:00
Philip Milne
1557fd7809 Fix for bug 6110465.
Add layout bound metadata to 9-patch files and make layouts take them into account.

This CL contains a proposed API for dealing with layout bounds.

This solution exposes:

1. Class: Insets - for storing layout Insets (and later possibly padding).
2. Methods: View:(get/set)LayoutInsets() - for storing layoutBounds.
3. Methods: ViewGroup:(get/set)LayoutMode() - for controlling layoutMode.

It also iuncudes the changes to GridLayout to support layout bounds.

Change-Id: I60c836b6530b61c5abf37f93ee9c44aad73573f1
2012-04-13 16:25:08 -07:00
Wink Saville
583eaaa57c Enhance the debug output for StateMachines.
Allow some messages to be ignored and allow the subclass to
add additional information. In particular, the information
can be used to decode the msg.what to a string.

Change-Id: I4f53becc6f0cb77399f99702084efef9d8785d67
2012-04-13 16:11:20 -07:00
Jamie Gennis
2b4bfa5efe SurfaceTexture: update API docs
This change updates the SurfaceTexture API docs and modifies the behavior of
the updateTexImage to produce an IllegalStateException when not attached to a
GLES context.

Change-Id: I5a0875927785108960985c567d571d5f7033256a
2012-04-13 16:04:15 -07:00
Dianne Hackborn
acb69bb909 Add direct support for HTML formatted text in ClipData etc.
When using the clipboard, ACTION_SEND, etc., you can now supply
HTML formatted text as one of the representations.  This is exposed
as a set of methods on ClipData for building items with HTML
formatted text, and retrieving and coercing to HTML (and styled)
text.  In addtion, there is a new EXTRA_HTML_TEXT for interoperating
with the old ACTION_SEND protocol.

Change-Id: I8846520a480c8a5f829ec1e693aeebd425ac170d
2012-04-13 15:36:06 -07:00
Martijn Coenen
a94afeb5b3 Merge "Unhide new Beam push APIs." 2012-04-13 15:22:11 -07:00
Makoto Onuki
e64d187553 Merge "Introduce new URI to clear data usage information" 2012-04-13 15:22:05 -07:00
Jeff Sharkey
c58a6d2da4 Merge "Mapping from DownloadManager status to string." 2012-04-13 14:47:23 -07:00
Jeff Sharkey
58d9fb6220 Mapping from DownloadManager status to string.
Change-Id: I159aa5f9c7289d6935436d78523b0628482bdc91
2012-04-13 14:42:50 -07:00
Daniel Lehmann
58ab2bcca9 Merge "Depcrecate increment function (should have been done back in ICS)" 2012-04-13 13:36:22 -07:00
Daniel Lehmann
a1620dc521 Depcrecate increment function (should have been done back in ICS)
Change-Id: I5c7d4d80a5d10b6ed2460f6dac30e53cc2714521
2012-04-13 13:29:49 -07:00
John Reck
a12e1fe16f Merge "Set initial focus" 2012-04-13 13:25:41 -07:00
Makoto Onuki
7ebbfd0f0c Introduce new URI to clear data usage information
We were going to piggyback existing DataUsageFeedback.FEEDBACK_URI,
but decided to introduce a new URI for this.

Bug 5475575

Change-Id: I6d467e5342f551142f047aa1b0b3503c5bf9b7fd
2012-04-13 13:18:22 -07:00
George Mount
07c9e296e6 Check for null mWebViewCore in selectText
Bug 6306770

Change-Id: I83e70aef45ff6519e4e9eb70edae44efcecf6de8
2012-04-13 13:16:15 -07:00
George Mount
8b0d90ee57 Wait for zoom manager to update before sending new picture event.
Bug 6315070

Change-Id: I80be7680499705f7865abc8ef753db1bb63ef44f
2012-04-13 13:16:15 -07:00
Eric Fischer
5ffc3bd2b6 Import translations. DO NOT MERGE
Change-Id: I6c9944f6c0968d076210839b415dca80722cd80d
2012-04-13 12:46:16 -07:00
John Reck
a4eddb577c Set initial focus
Bug: 6108927

Change-Id: I8f9356c41700b05ca36d106b1db34e3a7630b125
2012-04-13 12:42:32 -07:00
Svetoslav Ganov
c6afc7a7e0 Merge "Ignore the result of the on share callback in ShareActionProvider." 2012-04-13 12:35:31 -07:00
Svetoslav Ganov
b33eacdb79 Ignore the result of the on share callback in ShareActionProvider.
1. The reason for having this callback on the ShareActionProvider
   is to notify the client that a share happened so he can update
   the UI.

Change-Id: I65e8a8db8d4add0cd23d53be0286b14b4b4640b4
2012-04-13 12:32:23 -07:00
Dianne Hackborn
9adeb6b98d Improve lock screen hide animation.
Fade the alpha quicker, to reduce the amount of dimming to
black we see in the middle.  Also start scaled a little
farther back; since in this case the lock screen is fully
opaque, we won't see the early part of the window animation
behind.

Change-Id: I65fcfbf2f27860abf6a1b225a44428d8a20cfb34
2012-04-13 12:24:05 -07:00
Jeff Sharkey
cedb16ea03 Merge "Add simple method to dump key/value pairs." 2012-04-13 12:19:00 -07:00
Jeff Sharkey
2f036c55c0 Add simple method to dump key/value pairs.
Change-Id: I26ebf7e1a1667298c6deca742c104685c52955f7
2012-04-13 12:18:13 -07:00
Svetoslav Ganov
8431f89827 Merge "Accessibility query APIs report invisible views." 2012-04-13 12:07:09 -07:00
Svetoslav Ganov
067b091d46 Accessibility query APIs report invisible views.
1. The accessibility querying APIs failed to check whether
   all predecessors of a view are visible before reporting it.

bug:6291855

Change-Id: I364a6f08e8d02c7105c00c9fdff0fec033829554
2012-04-13 12:05:55 -07:00
Jake Hamby
b4bc99e847 Add user confirmation dialog before sending SMS to short code.
Non-system apps now require user confirmation before sending an SMS
to a short code that may potentially cost the user money. The number
is tested against regex patterns for short codes for the country
matching the user's SIM card or network. The user is warned if the
phone number is potentially or definitely a premium SMS number.

The regex patterns are loaded from core/res/res/xml/sms_short_codes.xml.
If the user's country is not found, then phone numbers of 5 digits or less
(excluding known emergency phone numbers) are considered to be potential
SMS short codes.

Command to run test cases:
$ runtest -c com.android.internal.telephony.SmsUsageMonitorShortCodeTest frameworks-telephony

Bug: 5513975
Change-Id: Ic0b483153390e974c632302f3061300bc2a2274a
2012-04-13 11:50:10 -07:00
Pannag Sanketi
497db8bfda Making the setSurface non-static
The setSurface method can be used to set a java Surface object from a
native Surface object. Making it non-static so that it can be accessed
from other units as well.

Change-Id: Id49b077ec0e7ad91cf10a4bd66938e238062408d
2012-04-13 11:44:28 -07:00
Quddus Chong
3fa98cb02c docs: Added missing comma in code snippet.
Bug: 6322757

Change-Id: I32cbd89493287cbb5d76b59647a8ddbd59209132
2012-04-13 11:17:24 -07:00
Daniel Sandler
4dfbe83e1a Unhide some new Notification APIs.
Bug: 6318391
Change-Id: Ie51f373cc84d845fa4aababab702c115fcc9e2e5
2012-04-13 14:05:25 -04:00
John Reck
92bb93eba3 Merge "Remove an unnecessary sanity check" 2012-04-13 10:42:46 -07:00
Jeff Sharkey
10b6f68d48 Merge "Enforce READ_EXTERNAL on non-user builds." 2012-04-13 10:42:33 -07:00
John Reck
3f1679cba0 Remove an unnecessary sanity check
This is causing issues with MotionEvents built by various tools such
 as DRT. The check itself doesn't seem strictly necessary, and it is
 easier to remove the check than fix all the tools and tests

Change-Id: I74bf85307956b5858042fbe23f87ed2b87132f17
2012-04-13 10:21:16 -07:00
Jonathan Dixon
939e5040b5 Two WebView API cleanups
- remove final from classes which we will need to provide subclasses
  in future: CookieManager, GeolocationPermissions, WebIconDatabase
  and WebStorage. None of these have published constructors,
  so applications cannot subclass them anyway.

- Also convert some protected members of JsResult to private, as its of
  no use to legal subclasses, and applications cannot subclass it.

Change-Id: Iaca9d2db31e25853b6c55feae41d9e7774087479
2012-04-13 16:36:16 +01:00
Ben Murdoch
f804ba131b Merge "Add support for HTML Media Capture "capture" attribute." 2012-04-13 06:06:50 -07:00
Steve Block
285ddfc8ab Clean up JavaDoc for WebStorage
Bug: 5461416
Change-Id: Ice7a2ca1e346ae80f53b477d236ff8c20032cf2f
2012-04-13 12:58:55 +01:00
Jeff Brown
c2346134bb Extract Vibrator implementation from interface.
Moved the core logic of Vibrator into SystemVibrator, potentially
allowing for the creation of other Vibrator subclasses.

Fixed several places where we were creating new Vibrator
instances unnecessarily instead of getting it from the Context.

It is safe to make Vibrator abstract because its constructor
was hidden from the SDK so it was not possible to subclass it.

Bug: 6334179
Change-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18
2012-04-13 04:05:17 -07:00
Mikhail Naganov
b533fb4eef Clarify WebSettings comments related to zooming.
1. It wasn't clear that SupportZoom doesn't affect WebView's
   zoomIn / zoomOut methods.

2. It was easy to misread that to enable "pinch to zoom" one
   needs to hide zoom controls.

Bug: 5461416

Change-Id: Ic8afd22ae0f36e53b9f4724e95ac55c766f58af5
2012-04-13 11:36:57 +01:00
Jonathan Dixon
c2401d094a Merge "Add deprecated tag and note StrictMode violation" 2012-04-13 02:35:06 -07:00
Jonathan Dixon
b36584042e Merge "Hide the public constructors for singleton classes" 2012-04-13 02:35:00 -07:00
Jonathan Dixon
f2e103623b Merge "Decouple JsResult from the WebViewClassic impl" 2012-04-13 02:33:04 -07:00
Ben Murdoch
be716920e7 Add support for HTML Media Capture "capture" attribute.
Plumb the value of the "capture" attribute through the framework
down to the embedder.

Requires a change in WebKit
(I0a921be31fda79a43c05da4fe22d9c808d92709c)

and Browser (I38dfe2df043fdba1388384dbd3b5370737eb38e5).

Bug: 5771207

Change-Id: I494adc1274ca21ce8fe52a6c7b6b758217927e66
2012-04-13 10:09:14 +01:00
Wu-cheng Li
5573ac0149 Merge "Unhide camera autofocus move callback." 2012-04-13 01:03:57 -07:00