715 Commits

Author SHA1 Message Date
Craig Mautner
12e563fff9 Merge "Create rotation animation modes." 2013-02-22 18:51:21 +00:00
Craig Mautner
3c1743705c Create rotation animation modes.
Allow fullscreen windows to specify crossfade or jumpcut animations
that override the default rotation animation. Only if the incoming
and outgoing topmost windows are fullscreen and both specify the
same animation to use.

Fixes bug 8182773.

Change-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf
2013-02-22 10:44:52 -08:00
Craig Mautner
b44de0d910 Update histories simultaneously.
In moveTaskToBackLocked calls that used mHistory were being made
between the times that mTaskHistory and mHistory were modified. This
caused an inconsistent state that led to Windows arranged out of
order. Updating both history stacks at the same time fixes this.

Fixes bug 8244261.

Change-Id: I9669762ad39b06ab6d401122702b74969d4dc658
2013-02-21 20:00:58 -08:00
Craig Mautner
32b44d08e2 Add null check to setAppGroupId.
Fix bug 8217929.

Change-Id: I3bd54c32abcf6683c2fa75a85bf5025f47e09398
2013-02-21 08:26:06 -08:00
Craig Mautner
5161f20925 Fix crashing bug in validator.
Change-Id: I649bb7cfc2b42fbeda478edcaa3a56f3c23d4bc8
2013-02-20 16:54:05 -08:00
Craig Mautner
07aa25dab9 Merge "Switch topRunning* and moveTaskTo*" 2013-02-21 00:39:00 +00:00
Craig Mautner
11bf9a52eb Switch topRunning* and moveTaskTo*
- More of the Activity to Task changeover.
- Fix bug in validateAppTokens().
- Improved validation of changeover.
- Eliminated iterator classes.

Change-Id: I934a208eabfc9a2668e5a6162452e1406f2c8d3a
2013-02-20 16:29:07 -08:00
Daniel Sandler
fd171e43e4 Merge "Switch to system process before modifying rotation." 2013-02-20 21:35:53 +00:00
Daniel Sandler
3de830b82b Switch to system process before modifying rotation.
Bug: 8218133
Change-Id: Ib44d64d48dbdf3095182c409dd2211f6a3b726ad
2013-02-20 15:23:52 -05:00
Craig Mautner
5d9c7be84d Begin switch over to task based history.
- Introduce the task history and add to and remove from it with
verification.

Change-Id: If97e74f5a13f85acdb1521fc6d0b066a7e8584ae
2013-02-19 18:11:33 -08:00
Dianne Hackborn
c652de8141 Implement display overscan support.
The window manager now keeps track of the overscan of
each display, with an API to set it.  The overscan impacts
how it positions windows in the display.  There is a new set
of APIs for windows to say they would like to go into the
overscan region.  There is a call into the window manager to
set the overscan region for a display, and it now has a
concept of display settings that it stores presistently.

Also added a new "wm" command, moving the window manager
specific commands from the "am" command to there and adding
a new now to set the overscan region.

Change-Id: Id2c8092db64fd0a982274fedac7658d82f30f9ff
2013-02-19 12:08:58 -08:00
Mathias Agopian
29479ebe10 clean-up following Surface split
Change-Id: I853a76d92d957ee38a36fcdd280d6407ec316987
2013-02-15 12:47:40 -08:00
Craig Mautner
22ee9aad83 Merge "Reset and reuse Iterators and don't new() one." 2013-02-14 22:22:35 +00:00
Craig Mautner
343ad71d7c Reset and reuse Iterators and don't new() one.
Save time and memory by resuing permanent mTmpXxxIterator for
AllWindowsIterator and AppTokenIterator.

Change-Id: I2e5143364651d9471e9e70eee514d3f45d595468
2013-02-14 12:48:53 -08:00
Mathias Agopian
58a1ca6642 Merge "split Surface in two classes: SurfaceControl and Surface" 2013-02-14 20:25:08 +00:00
Mathias Agopian
3866f0d581 split Surface in two classes: SurfaceControl and Surface
SurfaceControl is the window manager side; it can
control the attributes of a surface but cannot push buffers
to it. Surface on the other hand is the application (producer)
side and is used to push buffers to the surface.

Change-Id: Ib6754c968924e87e8dd02a2073c7a447f729f4dd
2013-02-14 12:19:11 -08:00
Craig Mautner
496bdbba30 Remove AppWindowToken lists.
No longer necessary.

Change-Id: I0d2b96f69152fb93b6ba56f02ce9693ff1370cbc
2013-02-14 10:56:11 -08:00
Craig Mautner
534d136aa6 Merge "Remove unused App methods." 2013-02-14 18:13:26 +00:00
Craig Mautner
f0b36c5590 Merge "Refactor setAppOpVisibility implementation." 2013-02-14 06:22:32 +00:00
Craig Mautner
b0c0b1fd70 Remove unused App methods.
Now that the Task methods have replaced the App methods remove
the App methods.

Change-Id: I0e7432f2c6f99708759ed8c871d20eb5bd38c3c2
2013-02-13 15:24:14 -08:00
Craig Mautner
926f3839d8 Stop using AppToken movement and start using Task.
Change-Id: I5fbd3b2b692e0e127386051f782b1015515ba384
2013-02-13 11:58:56 -08:00
Craig Mautner
30e2d72810 Replace access to mAppTokens with AppTokenIterator
More switching from Activity-based to Task-based control.

Change-Id: Ida47d71a52b875a6a6bd77cb62911053f942da15
2013-02-12 16:03:29 -08:00
Craig Mautner
bea3b60ed1 Merge "Add AppWindowTokens to TaskList." 2013-02-12 23:57:09 +00:00
Craig Mautner
fb32c6e9e9 Refactor setAppOpVisibility implementation.
- Convert double iteration over DisplayContents and WindowLists to
single iteration over AllWindowsIterator.

- Use existing change check in show() and hide() to trigger animation
scheduling rather than propagate change state up through calling tree.

Change-Id: Ic703a9fddebacbd0785bd5a186e95f9d0b128c42
2013-02-12 15:08:44 -08:00
Craig Mautner
05d6272bad Add AppWindowTokens to TaskList.
- Add/remove/move TaskLists from ActivityStack.
- Further isolate mHistory.
- Cleanup warnings by parameterizing ArrayList.
- Fix previous bugs.

Change-Id: Ife8c7b7347479c70f10467cc384283456149ac50
2013-02-12 10:52:55 -08:00
Dianne Hackborn
b6b23ecdfc App ops: the draw on top op now actually controls what is drawn.
Change-Id: Iccfc0723a0f92108a4f7d631d74efe21dbc6f157
2013-02-12 10:40:16 -08:00
Svetoslav
981e60edc3 Merge "Refactoring of the Accessibility." 2013-02-11 21:03:37 +00:00
Svetoslav
57bf88508e Refactoring of the Accessibility.
1. The accessibility manager service updates its internal state
   based on which settings are enabled, what accessibility services
   are installed and what features are requested by the enabled
   services. It was trying to do the minimal amount of work to
   react to contextual changes like these which resulted in missed
   cases and complex code. Now there is a single method that reads
   the contextual information and single method that reacts to
   contextual changes. This makes the code much easier to maintain.

2. The accessibility manager service was not updating its internal
   state when requested features from accessibility services change.
   It was relying on changing system settings and reacting to the
   settings change. This is problematic since the internal state is
   not updated atomically which leads to race condition bugs. For
   example, if touch exploration is enabled and a service requests
   it is disabled, the internal state will not be updated but a
   request for a settings change will be made. Now while the settings
   change is propagating another request form the same service
   comes to enable touch exploration but the system incorrectly
   thinks touch exploration is enabled. At the end the feature is
   disabled even though it was requested.

3. Fixed a potential NPE if the accessibility input filter's event
   handler was nullified between processing two event batches.

4. Fixed a bug where, if magnification is enabled, it does not work
   on the settings screen since the magnified bounds are not pushed
   from the window manager to the accessibility manager.

Change-Id: Idf629a06480e12f0d88372762df6c024fe0d7856
2013-02-11 13:02:42 -08:00
Craig Mautner
2ceb081505 Merge "Migrate AppWindowToken lists into DisplayContent." 2013-02-07 18:50:52 +00:00
Dianne Hackborn
c2293025a2 App ops: track system windows, monitoring changes.
Change-Id: I273e82bdad66ada3bf0f7ec9176bc304b9ee1ee8
2013-02-06 23:59:56 -08:00
Craig Mautner
b1fd65c0ff Migrate AppWindowToken lists into DisplayContent.
In preparation for converting ActivityManager control to a task-based
interface the AppWindowTokens are being stored per-display.

Change-Id: Ie5e355219554523f5e56eaef138d382975cf1682
2013-02-05 17:08:10 -08:00
Dianne Hackborn
f265ea9d83 App ops: vibration, neighboring cells, dialing, etc.
Improve handling of vibration op, so that apps are
better blamed (there is now a hidden vibrator API that
supplies the app to blame, and the system now uses this
when vibrating on behalf of an app).

Add operation for retrieving neighboring cell information.

Add a new op for calling a phone number.  This required
plumbing information about the launching package name through
the activity manager, which required changing the internal
startActivity class, which required hitting a ton of code that
uses those internal APIs.

Change-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07
2013-02-01 15:14:29 -08:00
Svetoslav
cb9a61bdc4 Display magnifier does not release its surface on destroy.
Change-Id: I0b9448c8859b0167632652060b08072dc8c9c0a5
2013-01-22 18:11:42 -08:00
Svetoslav Ganov
80943d8daa Adding UI test automation APIs.
This change adds APIs support for implementing UI tests. Such tests do
not rely on internal application structure and can span across application
boundaries. UI automation APIs are encapsulated in the UiAutomation object
that is provided by an Instrumentation object. It is initialized by the
system and can be used for both introspecting the screen and performing
interactions simulating a user. UI test are normal instrumentation tests
and are executed on the device.

UiAutomation uses the accessibility APIs to introspect the screen and
a special delegate object to perform privileged operations such as
injecting input events. Since instrumentation tests are invoked by a shell
command, the shell program launching the tests creates a delegate object and
passes it as an argument to started instrumentation. This delegate
allows the APK that runs the tests to access some privileged operations
protected by a signature level permissions which are explicitly granted
to the shell user.

The UiAutomation object also supports running tests in the legacy way
where the tests are run as a Java shell program. This enables existing
UiAutomator tests to keep working while the new ones should be implemented
using the new APIs. The UiAutomation object exposes lower level APIs which
allow simulation of arbitrary user interactions and writing complete UI test
cases. Clients, such as UiAutomator, are encouraged to implement higher-
level APIs which minimize development effort and can be used as a helper
library by the test developer.

The benefit of this change is decoupling UiAutomator from the system
since the former was calling hidden APIs which required that it is
bundled in the system image. This prevented UiAutomator from being
evolved separately from the system. Also UiAutomator was creating
additional API surface in the system image. Another benefit of the new
design is that now test cases have access to a context and can use
public platform APIs in addition to the UiAutomator ones. Further,
third-parties can develop their own higher level test APIs on top
of the lower level ones exposes by UiAutomation.

bug:8028258

Also this change adds the fully qualified resource name of the view's
id in the emitted AccessibilityNodeInfo if a special flag is set while
configuring the accessibility service. Also added is API for looking
up node infos by this id. The id resource name is relatively more stable
compared to the generaed id number which may change from one build to
another. This API facilitate reuing the already defined ids for UI
automation.

bug:7678973

Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
2013-01-22 17:56:53 -08:00
Craig Mautner
07f943d417 Merge "Add Overrides, remove trailing whitespace." 2013-01-15 09:10:10 -08:00
Craig Mautner
6cfa7292cf Add Overrides, remove trailing whitespace.
Once and for all.

Change-Id: I0835515696c1a8ec7dff719fb734cbbd0b4252d6
2013-01-15 09:05:42 -08:00
Craig Mautner
5ae8e45ff3 Merge "Make DimLayer track changes to WindowState layer." 2013-01-11 16:41:40 -08:00
Craig Mautner
13131e74ea Make DimLayer track changes to WindowState layer.
The DimLayer behind popups was not changing when the popup layer
changed. It will now.

Fixes bug 7974415.

Change-Id: Ia486efa83d623716a09d73a22493a4222823c573
2013-01-11 11:03:33 -08:00
Craig Mautner
b5eb550fb1 Call assignLayersLocked when InputMethod is moved.
Call was removed by over-ambitious editing in CL 259410.

Fixes bug 7966824.

Change-Id: I9feb2ec27907f4e03b9424710adc2743a8b512d8
2013-01-10 17:29:30 -08:00
Craig Mautner
c34bc1178b Turn off debug logging.
Change-Id: I8dcfbb1f91d63e9126822a0c45b34cb21c09fa2a
2013-01-08 15:02:13 -08:00
Craig Mautner
ef6550195f Release Session earlier, release Session later.
For finishDrawingWindow queue the performLayoutAndPlaceSurfaces call
and return immediately.

For setTransparentRegionHint call the WindowStateAnimator method
immediately, removing the previous queueing of it.

Fixes bug 7174665.

Change-Id: Ia52f9a6685842220e4ffca6e214ee366470ff666
2013-01-08 00:36:16 -08:00
Craig Mautner
73164dc7bc Merge "Combine DimAnimator and DimSurface into DimLayer" 2013-01-08 00:23:46 -08:00
Craig Mautner
1420b93fa5 Combine DimAnimator and DimSurface into DimLayer
Replace two classes that did similar things in a complicated manner
with one class that does it more simply.

Bug 7064755 fixed.

Change-Id: I8c415671f60d1d2ece9da5916421f4d24aed2d65
2013-01-08 00:22:22 -08:00
Craig Mautner
581068131c Remove some TODOs.
Change-Id: I52f5a8a76593dde177c2e931f656b13134a3bd2b
2013-01-07 23:39:11 -08:00
Craig Mautner
9a29a5d679 Convert three booleans into single state variable.
Make app transition states easier to understand.
Remove unnecessary dependence on ActivityOptions.

Change-Id: If3942133e919a4121340f8ef5ca1c50df22f370d
2013-01-07 23:39:10 -08:00
Craig Mautner
4b71aa1f8a Move app transition constants
Move app transition constants from WindowManagerPolicy to
AppTransition.

Change-Id: I8ae6c4d0da1db826c44eb4ea0c6b85016b50b1a3
2013-01-07 23:38:57 -08:00
Craig Mautner
72669d1801 Fixes to clean up icon launching during animations.
Several problems were causing animations to jump to the end when
launching an app while a previous app was animating away.

- Keep the two app token lists in tighter synch. These were separated
when we hoped to completely separate layout form animation. This is
not as critical a goal any more.

- Use new test criteria for starting and stopping animations.

Bug 7885350 fixed.

Change-Id: Ib679117f627d0957cda17cc6ffca2bc2cdd6ecdd
2012-12-20 10:15:58 -08:00
Craig Mautner
321bdf52a1 Fade recents thumbnail to transparent earlier.
- Reduce the gpu load by fading the recents thumbnail to an alpha of
0.0 before the remaining animations are completed. When alpha hits
0 the gpu treats the layer as hidden and can render the remaining
layers faster.

- Refactoring of animations to:
  o Remove unused setInterpolator() calls on AnimationSet constituents.
  o Remove unnecessary setFillBefore() calls.
  o Consolidate setDuration() calls into AnimationSet.
  o Create Interpolators once.
  o Group animation set calls with their Animations.
  o Use same animation timing and Interpolator for all animations.

This is a partial fix for 7729214.

Change-Id: Ic3c47bcf7c84944128effb699efcdd1f89200fc4
2012-12-20 09:32:02 -08:00
Craig Mautner
a2303750fb Merge changes I1dfe21e5,Ia0218bf8
* changes:
  Clean up warnings.
  Minor refactorings.
2012-12-19 16:40:18 -08:00
Craig Mautner
0bf6ec9e37 Clean up warnings.
Change-Id: I1dfe21e5f64364c90565b594e28074cabe7daa64
2012-12-18 10:03:21 -08:00