Commit Graph

24873 Commits

Author SHA1 Message Date
Svetoslav Ganov
01fa888903 Merge "Adding FEEDBACK_BRAILLE to AccessibilityServiceInfo." into jb-mr1-dev 2012-09-06 19:43:54 -07:00
Svetoslav Ganov
eb9862fd4c Adding FEEDBACK_BRAILLE to AccessibilityServiceInfo.
1. The feedback type provided by braille devices differs from all
   already predefined types and this change defines braille
   feedback type. Braille does not fit in the already predefined
   categories.

bug:6998945

Change-Id: Ide6043bed03fdecd6d2ee45a08762f5bd07a2118
2012-09-06 19:40:34 -07:00
Svetoslav Ganov
52832e0c4f Merge "Granular navigation not possible in edit text if the view has content description." into jb-mr1-dev 2012-09-06 19:14:31 -07:00
Svetoslav Ganov
2f4bf52d2c Granular navigation not possible in edit text if the view has content description.
1. We were giving precedence of content description over text and this is
   what content description is supposed to do - override the text. However,
   putting content description on an EditText by mistake would render the
   text view not navigable which is pretty much unusable. Now we are giving
   precedence to the text and use the content description as a fall back if
   text is empty.

bug:7078382

Change-Id: I00882ace149344478b127124bd5e641903e1b756
2012-09-06 19:08:26 -07:00
Svetoslav Ganov
3540f1f28b Merge "Granular navigation uses mContentDescription instead of getCpontentDescription()s" into jb-mr1-dev 2012-09-06 19:06:37 -07:00
Svetoslav Ganov
05282aa43e Granular navigation uses mContentDescription instead of getCpontentDescription()s
1. Getting the value of the content description via the method since
   there is nothing preventing developers to override the method to
   return a desired value (they should not do that but it is feasible).

bug:7079008

Change-Id: Iaf5848e9b065454ebfefccf685415fbf034ae475
2012-09-06 19:06:12 -07:00
Svetoslav Ganov
1cf70bbf96 Screen magnification - feature - framework.
This change is the initial check in of the screen magnification
feature. This feature enables magnification of the screen via
global gestures (assuming it has been enabled from settings)
to allow a low vision user to efficiently use an Android device.

Interaction model:

1. Triple tap toggles permanent screen magnification which is magnifying
   the area around the location of the triple tap. One can think of the
   location of the triple tap as the center of the magnified viewport.
   For example, a triple tap when not magnified would magnify the screen
   and leave it in a magnified state. A triple tapping when magnified would
   clear magnification and leave the screen in a not magnified state.

2. Triple tap and hold would magnify the screen if not magnified and enable
   viewport dragging mode until the finger goes up. One can think of this
   mode as a way to move the magnified viewport since the area around the
   moving finger will be magnified to fit the screen. For example, if the
   screen was not magnified and the user triple taps and holds the screen
   would magnify and the viewport will follow the user's finger. When the
   finger goes up the screen will clear zoom out. If the same user interaction
   is performed when the screen is magnified, the viewport movement will
   be the same but when the finger goes up the screen will stay magnified.
   In other words, the initial magnified state is sticky.

3. Pinching with any number of additional fingers when viewport dragging
   is enabled, i.e. the user triple tapped and holds, would adjust the
   magnification scale which will become the current default magnification
   scale. The next time the user magnifies the same magnification scale
   would be used.

4. When in a permanent magnified state the user can use two or more fingers
   to pan the viewport. Note that in this mode the content is panned as
   opposed to the viewport dragging mode in which the viewport is moved.

5. When in a permanent magnified state the user can use three or more
   fingers to change the magnification scale which will become the current
   default magnification scale. The next time the user magnifies the same
   magnification scale would be used.

6. The magnification scale will be persisted in settings and in the cloud.

Note: Since two fingers are used to pan the content in a permanently magnified
   state no other two finger gestures in touch exploration or applications
   will work unless the uses zooms out to normal state where all gestures
   works as expected. This is an intentional tradeoff to allow efficient
   panning since in a permanently magnified state this would be the dominant
   action to be performed.

Design:

1. The window manager exposes APIs for setting accessibility transformation
   which is a scale and offsets for X and Y axis. The window manager queries
   the window policy for which windows will not be magnified. For example,
   the IME windows and the navigation bar are not magnified including windows
   that are attached to them.

2. The accessibility features such a screen magnification and touch
   exploration are now impemented as a sequence of transformations on the
   event stream. The accessibility manager service may request each
   of these features or both. The behavior of the features is not changed
   based on the fact that another one is enabled.

3. The screen magnifier keeps a viewport of the content that is magnified
   which is surrounded by a glow in a magnified state. Interactions outside
   of the viewport are delegated directly to the application without
   interpretation. For example, a triple tap on the letter 'a' of the IME
   would type three letters instead of toggling magnified state. The viewport
   is updated on screen rotation and on window transitions. For example,
   when the IME pops up the viewport shrinks.

4. The glow around the viewport is implemented as a special type of window
   that does not take input focus, cannot be touched, is laid out in the
   screen coordiates with width and height matching these of the screen.
   When the magnified region changes the root view of the window draws the
   hightlight but the size of the window does not change - unless a rotation
   happens. All changes in the viewport size or showing or hiding it are
   animated.

5. The viewport is encapsulated in a class that knows how to show,
   hide, and resize the viewport - potentially animating that.
   This class uses the new animation framework for animations.

6. The magnification is handled by a magnification controller that
   keeps track of the current trnasformation to be applied to the screen
   content and the desired such. If these two are not the same it is
   responsibility of the magnification controller to reconcile them by
   potentially animating the transition from one to the other.

7. A dipslay content observer wathces for winodw transitions, screen
   rotations, and when a rectange on the screen has been reqeusted. This
   class is responsible for handling interesting state changes such
   as changing the viewport bounds on IME pop up or screen rotation,
   panning the content to make a requested rectangle visible on the
   screen, etc.

8. To implement viewport updates the window manger was updated with APIs
   to watch for window transitions and when a rectangle has been requested
   on the screen. These APIs are protected by a signature level permission.
   Also a parcelable and poolable window info class has been added with
   APIs for getting the window info given the window token. This enables
   getting some useful information about a window. There APIs are also
   signature protected.

bug:6795382

Change-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00
2012-09-06 18:56:17 -07:00
Christopher Tate
06efb530a4 Per-user settings
Each user has its own Settings.System.* and Settings.Secure.* namespace now.  In
addition, this CL introduces the new Settings.Global.* namespace, which contains
a number of previously-elsewhere named settings entities; these Global.* entities
are common to all users.  Because these elements have been moved from their prior
existence in the other namespaces, attempts to access them under their old names
and namespaces are detected and redirected (with appropriate compile-time and
logging messages) to their new homes.

The new Global.* namespace can only be written by system-level code, just like
the existing Secure.* namespace.  If an app attempts to write a key that was
previously in the System.* namespace but has been moved to the Global.* namespace,
then a warning is logged and no write is performed; the action is a no-op.  (The
app is explicitly not crashed, to avoid breaking well-behaved apps that can't
know any better.)

There is also now a hidden API for getting/setting settings entities associated
with a user other than the caller's.  Reading/writing data for a user other than
yourself requires the signature-level INTERACT_ACROSS_USERS_FULL permission.

Manipulating data for a different user cannot be done via the ContentProvider
query() / insert() APIs; you must use the Settings.get/put APIs for that degree
of control.  In general, use of the get/set API is *strongly* preferred over
query-type access to Settings.

Bug 6985398

Change-Id: Ibee54ddff99fb847c8c2479c23b50f1e7524d724
2012-09-06 16:39:08 -07:00
Craig Mautner
9e130e70ef Merge "Limit certain actions to default Display." into jb-mr1-dev 2012-09-06 16:30:34 -07:00
Craig Mautner
5851c6e638 Merge "Convert resized() method to new parameters." into jb-mr1-dev 2012-09-06 15:07:46 -07:00
Chris Craik
a6b5eca796 Merge "Don't trigger log for empty views" into jb-mr1-dev 2012-09-06 15:07:46 -07:00
Craig Mautner
656e3af444 Convert resized() method to new parameters.
When the BaseIWindow.resized method got switched from taking (int x,
int y, ...) to taking (Rect, ...) the SurfaceView.MyWindow override
never got updated.

Fixes bug 6992324.

Change-Id: Id0b9625559ae0100336f4573f09d313138c8a6e7
2012-09-06 15:04:22 -07:00
Chris Craik
3667aa364f Don't trigger log for empty views
Change-Id: Idb2193d6dd064e5c4af1f02d0df2a83a7db0e0f8
2012-09-06 14:59:15 -07:00
rich cannings
c862d0fc05 Merge "Add secure setting for package verification" into jb-mr1-dev 2012-09-06 14:55:55 -07:00
Chris Craik
10e9d1d7ad Log if a view fails to fit in the drawing cache
Large software layers won't draw if they're larger than the size of the drawing
cache, in which case this log will be triggered.

bug:7078391
Change-Id: Ib42a060b8e3b3642417df9243a086aa15b2989b1
2012-09-06 14:45:45 -07:00
rich cannings
16e119e798 Add secure setting for package verification
Framework changes to store and read a secure setting for package verification.
Default is on/true.

This setting will be turned on/off via the Settings app.

Bug: 7082362
Change-Id: I6f93d3136add8af0dbbdc664f0473c5f5b7e3fee
2012-09-06 14:37:44 -07:00
Dianne Hackborn
fae0d66275 Merge "Nested fragments." into jb-mr1-dev 2012-09-06 11:41:48 -07:00
Dianne Hackborn
62bea2f171 Nested fragments.
Change-Id: I79acc19b391352c16b06afee2ca543223c38e364
2012-09-06 11:05:53 -07:00
Martijn Coenen
32ac1e142c Fix NPE in NdefRecord parser.
Malformed Uri tags could cause this crash.

Bug: 7116323
Change-Id: I979d1512058f351df32dbd972b6ec5c108202da5
2012-09-06 17:13:38 +02:00
Craig Mautner
69b0818179 Limit certain actions to default Display.
Stop messing up PhoneWindowManager state when passing in windows
from non-default Display.

Change-Id: I472f7a13c5e2241fbf1f79ae1c8045fd92af016c
2012-09-05 19:54:32 -07:00
Selim Gurun
18e8768067 Merge "remove defunct javascript interface" into jb-mr1-dev 2012-09-05 15:04:07 -07:00
Jean-Baptiste Queru
f389f2820c resolved conflicts for merge of 7749a1c5 to jb-mr1-dev
Change-Id: If30a6a4ded996749b34f6a975481a97006cbcf97
2012-09-05 12:21:50 -07:00
Jean-Baptiste Queru
7749a1c5ec am b4ac801c: am 1ca2fee9: Merge "Make default value of auto-sync in SyncStorageEngine configurable"
* commit 'b4ac801c477c0a0de18da89744d9a78e79d2ff51':
  Make default value of auto-sync in SyncStorageEngine configurable
2012-09-05 12:12:52 -07:00
Jean-Baptiste Queru
b4ac801c47 am 1ca2fee9: Merge "Make default value of auto-sync in SyncStorageEngine configurable"
* commit '1ca2fee9547dbdd7008211ac318b1f8f40ce1e35':
  Make default value of auto-sync in SyncStorageEngine configurable
2012-09-05 12:10:44 -07:00
Fabrice Di Meglio
5575e97cea Merge "Fix bug #7023040 android.widget.cts.TextViewTest#testResetTextAlignment failures" into jb-mr1-dev 2012-09-05 12:03:32 -07:00
Selim Gurun
d773ca8ff2 remove defunct javascript interface
Bug: 7073422

The feature that is using search box implementation was removed from
browser after Honeycomb. This is to remove the js interface that
is added for this feature.

Change-Id: I9441d461caf189467e4ad45de958c13b81f4ff17
2012-09-05 11:53:44 -07:00
Jean-Baptiste Queru
1ca2fee954 Merge "Make default value of auto-sync in SyncStorageEngine configurable" 2012-09-05 11:03:13 -07:00
Mathias Agopian
f87633f38c Merge "update to new SurfaceComposerClient API" into jb-mr1-dev 2012-09-04 20:30:02 -07:00
Satoshi Kataoka
0d727c714b Merge "Add subtypeId for keeping enabled "InputMethodSubtype"s even if subtype parameters are changed" into jb-mr1-dev 2012-09-04 20:27:50 -07:00
Mathias Agopian
63f1c43fbe update to new SurfaceComposerClient API
Change-Id: I8f2c96df56fe3a851b8ec03bb8734db0b6bea3d5
2012-09-04 20:23:23 -07:00
Adam Powell
4289b49dd5 am 9f3b0bfd: DO NOT MERGE - Make WebView track focal points more accurately
* commit '9f3b0bfd0b1d8876c96036a303b3ff72df0e8ad0':
  DO NOT MERGE - Make WebView track focal points more accurately
2012-09-04 19:49:13 -07:00
Adam Powell
52da9fa7b5 am c4ce0da2: DO NOT MERGE - Delay starting scale gesture events until a touch slop threshold
* commit 'c4ce0da255df07e3d8a799aa4e9af2f1949ef4f4':
  DO NOT MERGE - Delay starting scale gesture events until a touch slop threshold
2012-09-04 19:49:07 -07:00
Fabrice Di Meglio
fa1babd221 Fix bug #7023040 android.widget.cts.TextViewTest#testResetTextAlignment failures
- cache the text aligment as we cannot resolve the text alignment during reset of the text direction

Change-Id: I79de625e517bf8bad6313fd5e349f1181b1eaa30
2012-09-04 19:11:25 -07:00
Adam Powell
9f3b0bfd0b DO NOT MERGE - Make WebView track focal points more accurately
Change-Id: I6683edee6933b1dd026453935d72119320ab3c81
2012-09-04 18:33:56 -07:00
Adam Powell
c4ce0da255 DO NOT MERGE - Delay starting scale gesture events until a touch slop threshold
Change-Id: I13132ce1d912b54e251f7afed5143c72a2ec2e78
2012-09-04 18:33:42 -07:00
Adam Powell
deeade34cb Merge "Make WebView track focal points more accurately" into jb-mr1-dev 2012-09-04 18:19:30 -07:00
Adam Powell
adb93889ae Merge "Delay starting scale gesture events until a touch slop threshold" into jb-mr1-dev 2012-09-04 18:17:10 -07:00
Jim Miller
175ae55c0d Merge "Update DevicePolicyManager with ability to disable keyguard widgets" into jb-mr1-dev 2012-09-04 15:20:42 -07:00
Fabrice Di Meglio
035ce2ca92 Merge "Add support for "-rtl" in resources" into jb-mr1-dev 2012-09-04 15:01:03 -07:00
Adam Powell
1027ed2aca Make WebView track focal points more accurately
Change-Id: I6683edee6933b1dd026453935d72119320ab3c81
2012-09-04 14:42:11 -07:00
Adam Powell
47ec2fb370 Delay starting scale gesture events until a touch slop threshold
Change-Id: I13132ce1d912b54e251f7afed5143c72a2ec2e78
2012-09-04 14:42:11 -07:00
Jim Miller
b8ec470617 Update DevicePolicyManager with ability to disable keyguard widgets
Change-Id: I5876e9e180b2a995aaa355fbbb2b67cebb86104d
2012-09-04 13:52:36 -07:00
Jean-Baptiste Queru
b788556bfd am ad17717e: am d3b74b91: am b307ceb4: Merge "SearchWidget: passing APP_DATA to voice intent"
* commit 'ad17717e52576a05dffd1b99c06c46a80c149722':
  SearchWidget: passing APP_DATA to voice intent
2012-09-04 11:44:00 -07:00
Jean-Baptiste Queru
ad17717e52 am d3b74b91: am b307ceb4: Merge "SearchWidget: passing APP_DATA to voice intent"
* commit 'd3b74b9124e713e291053652839a7d725ffb64d9':
  SearchWidget: passing APP_DATA to voice intent
2012-09-04 11:41:32 -07:00
Jean-Baptiste Queru
d3b74b9124 am b307ceb4: Merge "SearchWidget: passing APP_DATA to voice intent"
* commit 'b307ceb43fa96e8d54851c20278a4344469c9269':
  SearchWidget: passing APP_DATA to voice intent
2012-09-04 11:38:28 -07:00
Dianne Hackborn
7d69e8bd21 Merge "Add registering for explicit users." into jb-mr1-dev 2012-09-04 10:40:07 -07:00
Dianne Hackborn
20e809870d Add registering for explicit users.
New API to register as an explicit user, which allows you to
also select ALL to see broadcasts for all users.

New BroadcastReceiver API to find out which user the broadcast
was sent to.

Use this in app widget service to handle per-user package broadcasts
and boot completed broadcasts correctly.

Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
2012-09-04 10:39:21 -07:00
Satoshi Kataoka
e62e6d8731 Add subtypeId for keeping enabled "InputMethodSubtype"s even if subtype parameters are changed
Bug: 6752230
Change-Id: I3a2d512e395fe8645edf6ab82108948b927c629a
2012-09-04 15:29:03 +09:00
Yameng Huang
2b5d0ea5e9 Make default value of auto-sync in SyncStorageEngine configurable
This will make the default value of the automatic synchronization
in the SyncStorageEngine configurable with overlays for use by
vendors who want or have legal requirements to have the synchronization
off by default.

Change-Id: Iabdb355c4a1169fe8e254e91c43e162c5913d5e0
2012-09-03 12:49:31 +02:00
Jorge Ruesga
1bcfe84179 SearchWidget: passing APP_DATA to voice intent
SearchView uses SearchManager.APP_DATA to pass data between the origin activity
and the search activity. This works for text searches (keyboard), but it's not
implemented by voice recognition searches. The method createVoiceAppSearchIntent
initializes a empty bundle that is filled with the QUERY parameter.
This patch adds the SearchManager.APP_DATA parameter if is present, let the
search activity access to the data passed by the origin activity

Patch 2: Fix code style

Change-Id: I52dce34e1efd07a30ad74d52bfc60fbae1c4310b
2012-09-03 01:26:59 +02:00