Commit Graph

8288 Commits

Author SHA1 Message Date
Svetoslav Ganov
9f8b2cbec7 am b15a6363: am 6da58271: Merge "Screen magnification - feature - framework." into jb-mr1-dev
* commit 'b15a6363f7e6df41614a5f4c3d12281844deea82':
  Screen magnification - feature - framework.
2012-09-06 19:02:56 -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
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
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
Jeff Sharkey
fa8d83d904 Merge "Restrict lockdown and firewall to AID_SYSTEM." into jb-mr1-dev 2012-09-06 18:02:44 -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
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
9e130e70ef Merge "Limit certain actions to default Display." into jb-mr1-dev 2012-09-06 16:30:34 -07: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
Daniel Sandler
213a19fb31 am 56f97a9b: am fd5494b8: Merge changes I4ef284da,Ie8cc69bd into jb-mr1-dev
* commit '56f97a9b5933d20ae8c73a3f2671c3a37303c74d':
  Make the SystemUI stop the screen saver when a full-screen notification is posted.
  Do not play sounds or vibes for background users' notifications.
2012-09-05 12:44:17 -07:00
Jean-Baptiste Queru
80c235a803 am ee2175c7: am ec098efc: am 342c6bc8: am 54099555: am 380a8e3d: Merge "Am: Clean mLaunchingProviders of all providers started by the client"
* commit 'ee2175c75b18a68325db2b277b7271d4a76e60a9':
  Am: Clean mLaunchingProviders of all providers started by the client
2012-09-05 12:39:04 -07:00
Daniel Sandler
fd5494b8ef Merge changes I4ef284da,Ie8cc69bd into jb-mr1-dev
* changes:
  Make the SystemUI stop the screen saver when a full-screen notification is posted.
  Do not play sounds or vibes for background users' notifications.
2012-09-05 12:38:25 -07:00
Jean-Baptiste Queru
ec098efcb1 am 342c6bc8: am 54099555: am 380a8e3d: Merge "Am: Clean mLaunchingProviders of all providers started by the client"
* commit '342c6bc8e5edb5a0cfa2ad65162d559b7f2ad993':
  Am: Clean mLaunchingProviders of all providers started by the client
2012-09-05 12:36:04 -07:00
Jean-Baptiste Queru
5409955555 am 380a8e3d: Merge "Am: Clean mLaunchingProviders of all providers started by the client"
* commit '380a8e3d126374b0205e8452bf2b4b70779e2606':
  Am: Clean mLaunchingProviders of all providers started by the client
2012-09-05 12:10:48 -07:00
Jean-Baptiste Queru
380a8e3d12 Merge "Am: Clean mLaunchingProviders of all providers started by the client" 2012-09-05 11:40:30 -07:00
Jean-Baptiste Queru
e5c1a62f0c am 53c76f3a: am 0b5a4a15: am 11626a91: am 9eb3bd88: am 42a58ecd: Merge "Revert "Watchdog: Improvement of debuggability""
* commit '53c76f3a09b41574af802f94c73837ee87ae0230':
  Revert "Watchdog: Improvement of debuggability"
2012-09-05 11:12:23 -07:00
Jean-Baptiste Queru
0b5a4a1513 am 11626a91: am 9eb3bd88: am 42a58ecd: Merge "Revert "Watchdog: Improvement of debuggability""
* commit '11626a91b6e695e7a8fa9e9a9f1a37df11cfb4e2':
  Revert "Watchdog: Improvement of debuggability"
2012-09-05 11:07:21 -07:00
Jean-Baptiste Queru
9eb3bd88f1 am 42a58ecd: Merge "Revert "Watchdog: Improvement of debuggability""
* commit '42a58ecd27783d347242206bcffd4052cf1d5164':
  Revert "Watchdog: Improvement of debuggability"
2012-09-05 11:01:25 -07:00
Daniel Sandler
c9ce0abe29 Make the SystemUI stop the screen saver when a full-screen notification is posted.
This keeps all the fullScreenIntent logic (including
multiuser implications) in one place.

Change-Id: I4ef284daf90464f105780ade1d971e9e081fbbb5
2012-09-05 08:41:07 -04:00
Daniel Sandler
24518e466a Do not play sounds or vibes for background users' notifications.
USER_ALL notifications will still play/vibe for any user.

Change-Id: Ie8cc69bd1541193ed9c4207ef38a8d4898af0a9d
2012-09-05 08:41:07 -04:00
Brian Muramatsu
0d9bc428de am cdfd2746: am 580e9f72: Merge "Make battery shutdown temperature configurable" into jb-mr1-dev
* commit 'cdfd2746b7310e3939a8da858dc24b7c0cd106b5':
  Make battery shutdown temperature configurable
2012-09-04 22:53:47 -07:00
Brian Muramatsu
580e9f72e0 Merge "Make battery shutdown temperature configurable" into jb-mr1-dev 2012-09-04 22:48:36 -07:00
Mathias Agopian
287e081262 am 54afe6ab: am f87633f3: Merge "update to new SurfaceComposerClient API" into jb-mr1-dev
* commit '54afe6abf990162023eeaa1a029344bb221622eb':
  update to new SurfaceComposerClient API
2012-09-04 20:34:19 -07:00
Satoshi Kataoka
993ed86b99 am ea5fdf61: am 0d727c71: Merge "Add subtypeId for keeping enabled "InputMethodSubtype"s even if subtype parameters are changed" into jb-mr1-dev
* commit 'ea5fdf6171abfcad59c4d2d00dbb0783fcb94251':
  Add subtypeId for keeping enabled "InputMethodSubtype"s even if subtype parameters are changed
2012-09-04 20:34:15 -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
Dianne Hackborn
63ccd7c71c am 623cc6b7: am bac6c129: Merge "Fix another issue #7097984 java.lang.SecurityException: Permission Denial:" into jb-mr1-dev
* commit '623cc6b79d4b4dbfea686529e4d6c2e10fe131eb':
  Fix another issue #7097984 java.lang.SecurityException: Permission Denial:
2012-09-04 18:54:50 -07:00
Dianne Hackborn
bac6c12974 Merge "Fix another issue #7097984 java.lang.SecurityException: Permission Denial:" into jb-mr1-dev 2012-09-04 18:50:30 -07:00
Dianne Hackborn
fd8bf5c790 Fix another issue #7097984 java.lang.SecurityException: Permission Denial:
broadcast asks to run as user -1 but is calling from user 0; this requires

Dupped bug of a different problem.

Change-Id: I15f4ab08b81f5f5746ba1cd183dee4f0b1281df5
2012-09-04 18:48:37 -07:00
Brian Muramatsu
153ec426a2 am 79b25e51: am 68093520: Merge "Fix GPS settings change listener in LocManager" into jb-mr1-dev
* commit '79b25e51c284b63d86d12f1a0e13d32e4109389e':
  Fix GPS settings change listener in LocManager
2012-09-04 18:41:50 -07:00
Brian Muramatsu
bb95cb9f99 Fix GPS settings change listener in LocManager
Bug 7051185

- Register a ContentObserver to track settings changes rather than
  opening up a Cursor with a ContentQueryMap.

- Move updateProvidersLocked into init to assure that the
  ContentObserver does not miss any changes.

- Move blacklist and fudger creation before loadProvidersLocked to
  improve code readability.

Change-Id: I4d3e19fa33401c384bc2b00658d4336ea119e0e5
2012-09-04 18:16:24 -07:00
Craig Mautner
fc25e1ebf4 am bd696c05: am 7950d081: Merge "Make mLayoutNeeded per-Display." into jb-mr1-dev
* commit 'bd696c0573025fd5d424ef726b188a183895b609':
  Make mLayoutNeeded per-Display.
2012-09-04 16:39:46 -07:00
Craig Mautner
7950d081ac Merge "Make mLayoutNeeded per-Display." into jb-mr1-dev 2012-09-04 16:35:46 -07:00
Craig Mautner
19d59bc5ad Make mLayoutNeeded per-Display.
Switch from a global mLayoutNeeded to one for each Display so that
we don't run layout on Displays that haven't changed.

Change-Id: Ib65c5c667933cceacc46b94f4e6e6bd613d5cb35
2012-09-04 16:18:52 -07:00
Jim Miller
a6e7d33cab am 6627406a: am 175ae55c: Merge "Update DevicePolicyManager with ability to disable keyguard widgets" into jb-mr1-dev
* commit '6627406a5ce881d6d6b4bcdfef4b2b9804032810':
  Update DevicePolicyManager with ability to disable keyguard widgets
2012-09-04 15:25:40 -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
rich cannings
6b73398346 am e4b9584d: am 69042083: Merge "Enable package verification" into jb-mr1-dev
* commit 'e4b9584d94e2bae424fed64c243323ce56ad43bc':
  Enable package verification
2012-09-04 15:13:15 -07:00
rich cannings
690420831c Merge "Enable package verification" into jb-mr1-dev 2012-09-04 15:09:09 -07:00
Fabrice Di Meglio
949c875a05 am 81c66d65: am 035ce2ca: Merge "Add support for "-rtl" in resources" into jb-mr1-dev
* commit '81c66d6592718e9a1c57c39c1675ea13e8e769bb':
  Add support for "-rtl" in resources
2012-09-04 15:06:20 -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
Brian Muramatsu
f3c74f3499 Make battery shutdown temperature configurable
Bug 7079455

Change-Id: I448f21231bf0548ef975f99482576acb24a1a70e
2012-09-04 14:29:15 -07:00
Jim Miller
b8ec470617 Update DevicePolicyManager with ability to disable keyguard widgets
Change-Id: I5876e9e180b2a995aaa355fbbb2b67cebb86104d
2012-09-04 13:52:36 -07:00
rich cannings
68ed7e448d Enable package verification
Turn on package verification, if a verifier exists. Play app is now a verifier.

Bug: 7064853
Change-Id: I11f6b108c507ea6236038b1415eb9064ca4c3c6d
2012-09-04 13:42:32 -07:00
Jean-Baptiste Queru
784827b27c Revert "Watchdog: Improvement of debuggability"
This reverts commit 9211b13c32.
2012-09-04 13:35:12 -07:00
Dianne Hackborn
6d2e850819 am bc5b003a: am d2a8df95: Merge "Fix issue #7097984 java.lang.SecurityException: Permission Denial:" into jb-mr1-dev
* commit 'bc5b003a45a900263d565ba7bb48908e80638b7d':
  Fix issue #7097984 java.lang.SecurityException: Permission Denial:
2012-09-04 13:16:07 -07:00
Dianne Hackborn
d2a8df9541 Merge "Fix issue #7097984 java.lang.SecurityException: Permission Denial:" into jb-mr1-dev 2012-09-04 13:11:49 -07:00