85463 Commits

Author SHA1 Message Date
Jim Miller
e3e5032e59 am c71d4060: Merge "Better layout for Face Unlock on 600dp tablet" into jb-mr1-dev
* commit 'c71d4060609ee64939ad5369d33b86d44baa17a9':
  Better layout for Face Unlock on 600dp tablet
2012-09-06 18:58:00 -07:00
Svetoslav Ganov
6da5827193 Merge "Screen magnification - feature - framework." into jb-mr1-dev 2012-09-06 18:57:43 -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
Jim Miller
c71d406060 Merge "Better layout for Face Unlock on 600dp tablet" into jb-mr1-dev 2012-09-06 18:56:03 -07:00
Jim Miller
8e040cdb4e am cdc490d3: am a56f8f7c: Merge "Fix EmergencyDialer button on devices without telephony hardware" into jb-mr1-dev
* commit 'cdc490d3e9b570b6111a841cb0125634eb57cd9f':
  Fix EmergencyDialer button on devices without telephony hardware
2012-09-06 18:50:14 -07:00
Jim Miller
cdc490d3e9 am a56f8f7c: Merge "Fix EmergencyDialer button on devices without telephony hardware" into jb-mr1-dev
* commit 'a56f8f7ca2298f1516115be60e07a8193737293e':
  Fix EmergencyDialer button on devices without telephony hardware
2012-09-06 18:48:01 -07:00
Jim Miller
a56f8f7ca2 Merge "Fix EmergencyDialer button on devices without telephony hardware" into jb-mr1-dev 2012-09-06 18:45:18 -07:00
Jeff Sharkey
a31250d700 am 1bd551f6: am 2b0442f3: Merge "Event logging for lockdown VPN state changes." into jb-mr1-dev
* commit '1bd551f65f19dd7010f3059133793c281bbd175b':
  Event logging for lockdown VPN state changes.
2012-09-06 18:39:52 -07:00
Jeff Sharkey
1bd551f65f am 2b0442f3: Merge "Event logging for lockdown VPN state changes." into jb-mr1-dev
* commit '2b0442f33029c6b6cf1247a1633a97f5908d6cab':
  Event logging for lockdown VPN state changes.
2012-09-06 18:37:40 -07:00
Jeff Sharkey
2b0442f330 Merge "Event logging for lockdown VPN state changes." into jb-mr1-dev 2012-09-06 18:34:17 -07:00
Jeff Sharkey
91c6a64a04 Event logging for lockdown VPN state changes.
Bug: 7079350
Change-Id: I3670efe7f09c0fca55552b6a04a2be159b9beb3c
2012-09-06 18:33:14 -07:00
Jeff Sharkey
f1c56da158 am 52781414: am fa8d83d9: Merge "Restrict lockdown and firewall to AID_SYSTEM." into jb-mr1-dev
* commit '527814142037fe08934b4e9ef3961742ffbd5a20':
  Restrict lockdown and firewall to AID_SYSTEM.
2012-09-06 18:07:27 -07:00
Brian Muramatsu
8c1460c592 am 01f8f7e3: am b75111df: Merge "Add wireless to KeyguardUpdateMonitor isPluggedIn" into jb-mr1-dev
* commit '01f8f7e3b3ea2958f7df0538a71d3d1c5af7f1b1':
  Add wireless to KeyguardUpdateMonitor isPluggedIn
2012-09-06 18:05:42 -07:00
Jeff Sharkey
5278141420 am fa8d83d9: Merge "Restrict lockdown and firewall to AID_SYSTEM." into jb-mr1-dev
* commit 'fa8d83d90444354e8eca6ca0e080bc917e5a1f32':
  Restrict lockdown and firewall to AID_SYSTEM.
2012-09-06 18:05:39 -07:00
Brian Muramatsu
01f8f7e3b3 am b75111df: Merge "Add wireless to KeyguardUpdateMonitor isPluggedIn" into jb-mr1-dev
* commit 'b75111df9bf22496bacb7a6f9d9412e4a7b6827f':
  Add wireless to KeyguardUpdateMonitor isPluggedIn
2012-09-06 18:02:45 -07:00
Jeff Sharkey
fa8d83d904 Merge "Restrict lockdown and firewall to AID_SYSTEM." into jb-mr1-dev 2012-09-06 18:02:44 -07:00
Brian Muramatsu
b75111df9b Merge "Add wireless to KeyguardUpdateMonitor isPluggedIn" into jb-mr1-dev 2012-09-06 17:59:36 -07:00
Irfan Sheriff
17db9e02d4 am e307c795: am bf4d55cb: Merge "Add connection broadcast on group creation failure" into jb-mr1-dev
* commit 'e307c795eb17aa803448a454ad9cf235e2e1ab96':
  Add connection broadcast on group creation failure
2012-09-06 17:59:30 -07:00
Jeff Sharkey
f56e2435b6 Restrict lockdown and firewall to AID_SYSTEM.
Bug: 7076289
Change-Id: Iafa3054335e8b1c3c8c3b8db2a4191d4ed4c8c41
2012-09-06 17:59:14 -07:00
Irfan Sheriff
e307c795eb am bf4d55cb: Merge "Add connection broadcast on group creation failure" into jb-mr1-dev
* commit 'bf4d55cb65da9e6205f4d33921d7e51340f47d46':
  Add connection broadcast on group creation failure
2012-09-06 17:57:57 -07:00
Irfan Sheriff
bf4d55cb65 Merge "Add connection broadcast on group creation failure" into jb-mr1-dev 2012-09-06 17:56:16 -07:00
Jim Miller
85ab8e82e9 Better layout for Face Unlock on 600dp tablet
Change-Id: I1deac516253e8ea7c5138344353b41daac1f5eab
2012-09-06 17:55:04 -07:00
Jim Miller
47df44aad7 Fix EmergencyDialer button on devices without telephony hardware
This fixes showing the emergency dialer on devices without telephony.
Two fixes were required: 1. Move emergency dialer code to the view
that contains it (KeyguardSelectorView).  2. Always call onPause()
or onResume() in onScreenTurnedOff() and onScreenTurnedOn(), respectively.

Fixes bug 7117895

Change-Id: I96769fdda8478b6b60f46f7470bed2279ea2de72
2012-09-06 17:54:13 -07:00
Irfan Sheriff
0a66763744 Add connection broadcast on group creation failure
Change-Id: I8075a53997d968e6926e5ca78c9aadc60d8fcb2a
2012-09-06 17:36:59 -07:00
Chris Craik
a80a830c50 am ebd4be01: am 65476e6b: Merge "Fix m11 to be Y scale instead of X" into jb-mr1-dev
* commit 'ebd4be019b34263bbdba88b8a024bd7c011c7917':
  Fix m11 to be Y scale instead of X
2012-09-06 17:04:35 -07:00
Chris Craik
ebd4be019b am 65476e6b: Merge "Fix m11 to be Y scale instead of X" into jb-mr1-dev
* commit '65476e6bd41208cba48386c9bf23c00b6e1560c6':
  Fix m11 to be Y scale instead of X
2012-09-06 17:02:42 -07:00
Chris Craik
65476e6bd4 Merge "Fix m11 to be Y scale instead of X" into jb-mr1-dev 2012-09-06 17:00:59 -07:00
Mike Dodd
f330d19a17 Add context support to backdropper filter.
Part of b/7028438

Change-Id: Idcae38b452abc847c7b869a5568d1c5d831411b7
2012-09-06 17:00:38 -07:00
Chris Craik
9147cd4ac5 Fix m11 to be Y scale instead of X
bug:7114630

Fixes different X and Y values resulting in blurry lines/rects.

Change-Id: I3eb244e0cf769efa6b38d08741cf37d0bf62b786
2012-09-06 16:44:51 -07:00
Christopher Tate
38ce498bcb am 399928df: am 06efb530: Per-user settings
* commit '399928df01def71f6da5eaa0ed5eaae6a963b79b':
  Per-user settings
2012-09-06 16:43:50 -07:00
Christopher Tate
399928df01 am 06efb530: Per-user settings
* commit '06efb530a479ea12398c1b3ee4b80e2ac85a1680':
  Per-user settings
2012-09-06 16:41:38 -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
42ba280f79 am 2d2c761e: am 9e130e70: Merge "Limit certain actions to default Display." into jb-mr1-dev
* commit '2d2c761e59d0e21a51afa090c4c747bdba993099':
  Limit certain actions to default Display.
2012-09-06 16:33:52 -07:00
Craig Mautner
2d2c761e59 am 9e130e70: Merge "Limit certain actions to default Display." into jb-mr1-dev
* commit '9e130e70eff57d15c0888f51c4f1a7cc4cd62573':
  Limit certain actions to default Display.
2012-09-06 16:32:34 -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
ca00a396af am b19e273d: am 5851c6e6: Merge "Convert resized() method to new parameters." into jb-mr1-dev
* commit 'b19e273dd2eab159ad8b8c4d05a94a032685c4da':
  Convert resized() method to new parameters.
2012-09-06 15:13:36 -07:00
Chris Craik
e037167446 am 8387b4d8: am a6b5eca7: Merge "Don\'t trigger log for empty views" into jb-mr1-dev
* commit '8387b4d86f447f7bfa5dbefb357f49041dbee42c':
  Don't trigger log for empty views
2012-09-06 15:13:32 -07:00
Craig Mautner
b19e273dd2 am 5851c6e6: Merge "Convert resized() method to new parameters." into jb-mr1-dev
* commit '5851c6e63879ce7c08d345e80db9a2872657a59f':
  Convert resized() method to new parameters.
2012-09-06 15:11:43 -07:00
Chris Craik
8387b4d86f am a6b5eca7: Merge "Don\'t trigger log for empty views" into jb-mr1-dev
* commit 'a6b5eca796e3d70f29a42b32d742807f5b38aad9':
  Don't trigger log for empty views
2012-09-06 15:11:39 -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
rich cannings
3e057216e9 am c376537d: am c862d0fc: Merge "Add secure setting for package verification" into jb-mr1-dev
* commit 'c376537dde3026a0c86cc406d5c42ede6e0c9a1a':
  Add secure setting for package verification
2012-09-06 15:00:26 -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
c376537dde am c862d0fc: Merge "Add secure setting for package verification" into jb-mr1-dev
* commit 'c862d0fc0574de74bf1758f69c98ccbf8e506532':
  Add secure setting for package verification
2012-09-06 14:58:52 -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
d4078443b8 am 263f27c2: am 776dafa8: Merge "Log if a view fails to fit in the drawing cache" into jb-mr1-dev
* commit '263f27c22c0a10832d821759920f231d11009cf6':
  Log if a view fails to fit in the drawing cache
2012-09-06 14:53:10 -07:00
Chris Craik
263f27c22c am 776dafa8: Merge "Log if a view fails to fit in the drawing cache" into jb-mr1-dev
* commit '776dafa8fe359df77de30b72ffc82d1d99e111c9':
  Log if a view fails to fit in the drawing cache
2012-09-06 14:51:37 -07:00
Chris Craik
776dafa8fe Merge "Log if a view fails to fit in the drawing cache" into jb-mr1-dev 2012-09-06 14:49:18 -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