2c2549c5f44b712dbbf66a69d91f07d6f5336ee6 |
|
12-Nov-2013 |
Craig Mautner <cmautner@google.com> |
Add event logging for tasks and stacks. Also remove crufty write-only DisplayContent.mStackHistory. Change-Id: I62b2b53dc02377c5d0d3b79df70b1990eed87d23
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
77df2ee9deb5635fabb2280ada5b3f3d01dd8e1b |
|
24-Oct-2013 |
Craig Mautner <cmautner@google.com> |
Track window position with task position. Windows were previously ordered by TaskStack/ActivityStack order. This change provides a data structure in DisplayContent that tracks task movement. Previously Recents and Home activity windows were always adjacent because they were on the same stack. With this change windows from other activities can be placed between the two. Fixes bug 11338594. Change-Id: Ie34443ff22f330d015141d97db79370c54920d28
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
e2dd83a5b428df5a6ef21c11e71d021c640d843f |
|
08-Oct-2013 |
Craig Mautner <cmautner@google.com> |
Yet more debugging for 10858941. Change-Id: I258957044cb1a8331124f6abbe53428429c33355
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
5ee6d19fd726d1196297a0c549587cb2e18e9cfe |
|
29-Sep-2013 |
Craig Mautner <cmautner@google.com> |
Ensure correct window ordering. Make sure that moveStackWindowsLocked() is called every time that the stack ordering changes. This will rebuild the window list. Previously the call was being made after the moveStack() call which got forgotten in the addAppToken() causing the home stack to obscure incoming phone and video calls. Fixes bug 10023223. Fixes bug 10678010. Maybe fixes bug 10858941. Change-Id: I59922dc979a19210008eac1f528704984c63c886
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
2eb15342be5b075dda3df29b2b014a92ce13a5f8 |
|
07-Aug-2013 |
Craig Mautner <cmautner@google.com> |
Destroy surfaces when display is removed. Fixes bug 10226153. Change-Id: I4eb8b14258985768d36745260ad4e62ba6c78844
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
9d808b1f4823879ce8b52aefb90c55346017cdc7 |
|
07-Aug-2013 |
Craig Mautner <cmautner@google.com> |
Add home StackBox to all DisplayContent. Each display needs a stack and a stack box to contain windows. Fixes bug 10161525. Change-Id: Ic617cdf5a082ae68f0589e826ecbb37d8fba52ac
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
46ac6fa614131d567bed93d1d2067d765ecef85d |
|
01-Aug-2013 |
Craig Mautner <cmautner@google.com> |
Add force default orientation. Devices can be configured to remain in their default landscape or portrait orientation by setting config_forceDefaultOrientation true in overlay/.../values/config.xml. Activities that desire to run in the non-default orientation are supported by creating a logical display within the physical display. Transitions to and from the activity perform a crossfade rather than the normal rotation animation. Also, improve SurfaceTrace debug output. Fixes bug 9695710. Change-Id: I053e136cd2b9ae200028595f245b6ada5927cfe9
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
ac6f843c917b68ea8805711965b149a9338e3a0e |
|
17-Jul-2013 |
Craig Mautner <cmautner@google.com> |
Fix home activity and user switch interactions. - Make sure Home activity goes in the correct task and on the correct stack. - Do not allow different users to be in the same task. - Do not set stacks aside for each user. Fixes bug 9775492. Change-Id: I0e7954e917aac8482a1015a36923e02914e2b692
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
a446bf0e8c7b5f5441aeb11b359ba6776b9b3061 |
|
22-Jun-2013 |
keunyoung <keunyoung@google.com> |
add TYPE_PRIVATE_PRESENTATION window type - This window type can be used for Presentation created on top of virtual private display. - There can be PRIVATE_PRESENTATION specific policy / behavior, but for now, there is nothing special. Change-Id: I9fde0f0376e57fcc60000d3a3f8657a21ef58993
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
a506a6ec94863a35acca9feb165db76ddac3892c |
|
04-Jun-2013 |
Jeff Brown <jeffbrown@google.com> |
Add an API to allow for creating private virtual displays. This change enables applications to create a private virtual display that renders its content to a surface of its own creation. The display is private in the sense that only the application that owns the display is allowed to place windows upon it. Mirroring and blanking is also disabled for these displays. Bug: 9192512 Change-Id: I852ea07f0c7df1d244e354e3daca3a6960285ca0
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
037aa8d434984840691378f3cc7d99d63dcc4076 |
|
07-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Centralize all system InputEventReceiver monitors. Implement all system level InputEvent monitors as new InputEventListeners. Only one InputChannel required and monitoring can be enabled or disabled by registering with WindowManagerService. Change-Id: I64714ab858342ed183c62b421098478ffb6637bc
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
d76dcdcd98f1010b9439746314629cf7cba4df89 |
|
06-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Make WindowState mUnderStatusBar reflect position. The mUnderStatusBar variable was always true but now it changes when the StackBox is no longer directly under the Status Bar. Change-Id: I0c9db5790bfa9b0e4bb35e389d539fd941d56730
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
5a449154d1795abe8e44b7bfe821d640b145e2c6 |
|
25-May-2013 |
Craig Mautner <cmautner@google.com> |
Convert API refs to StackBox from ActivityStack. - Removed IActivityManager.getStacks() since getStackBoxes() is better. - Made createStacks operate relative to StackBox instead of TaskStack. - Made resizeStack into resizeStackBox. Change-Id: I7a0e1f4e34f399b4fd1180c60cc3989f9c2433f3
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
5ff12101722874f5e7b0cadf06f4c53f4ec4b917 |
|
24-May-2013 |
Craig Mautner <cmautner@google.com> |
Add retrieval of StackBox info for more flexibility First step in permitting StackBoxes to be manipulated by user. Necessary for Configuration changes coming down. Change-Id: I4029926a35e4fdc59a5759fd9e4bae10bb308413
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
b3b36ba13895d779159799341d432f6380a0ba8a |
|
20-May-2013 |
Craig Mautner <cmautner@google.com> |
Resize all changed windows and fix moveTaskToStack - Add all changing windows to mResizingWindows when an ActivityStack is resized. - Stop calling TaskStack.setBounds if the bounds haven't changed. - Make moving a task from one stack to another work properly. - Eliminate unused methods and redundant variables in WindowState and WindowStateAnimator. Change-Id: I3a950c777bcc50cdeced150d44423d4d0b38af4a
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
05d290365f0b9ed781ffcb30b38a0c7c6e450e9d |
|
03-May-2013 |
Craig Mautner <cmautner@google.com> |
Fix layering and launching issues. - Replace calls to ActivityStack.resumeTopActivity() with calls to ActivityStackSupervisor.resumeTopActivities(). - Move dim layers from display scope to stack scope. This applies to both the animation background dim layer and the FLAG_DIM_BEHIND dim layer. - Move windows on stacks that are not targeting wallpaper above the wallpaper. Otherwise wallpaper placement hides the non-focused stacks. Change-Id: Ic6b97ac6b094672bb1ddac17ce46ea58c738f073
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
6601b7bdeb46756fd83ad4c1966ef966c52b46e4 |
|
29-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Exclude regions from the tap detector. Fix typing on the keyboard causing focus to shift stacks. Change-Id: I4ec9ccdbe35e27f4860a5bdf0e2818f58e53b873
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
858d8a6583b0c91c66960167b84c67b6c4e2d3c6 |
|
24-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Fix user switching. - Save and restore WindowManager stack states. - Maintain ActivityManager activity states based on the stack the activity is in. Fixes bug 8646641. Change-Id: I16c76c7708ab49121c3884a7e5bf219898b92d3f
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
cf910b0c714b2ca90ea0013e5695850506a1d36f |
|
23-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Add tap detector for switching stack focus. - New InputEventReceiver for detecting taps outside of focused stack boundaries. - Fixed bug that wasn't pausing the non-focused window when returning home. Change-Id: Ia51d312a7c029abc01eb5df1102814cc29d33b47
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
4cd0c13f8f765118a24e31548c058b5029481bea |
|
17-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Incremental repairs to side by side stacks. - Add taskId parameter to createStack() so stacks are pre-populated with a task. - Keep track of stack access order in DisplayContent so getTasks returns in MRU order. - Set touchableRegion in InputMonitor so modal touching does not extend beyond stack boundary. - Fix stack merging so that deleting a stack results in a new stack the size of the two children. Change-Id: I62a6ba0a34f34dd7ec866b440bf04595379e19e8
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
967212cb542e6eeb308678367b53381bff984c31 |
|
14-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Implement stack splitting and task movement. Split stacks and move tasks between them. Layout the windows according to the new stack split. After layout content rectangles are known split the available area between all stack boxes. Then use those values for future layout. Provide stack contents to ActivityManager. Change-Id: I9746e6185445633810d506be514d0b7b540a7f99
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
de4ef020ec5c3acdc90c4ba43011dda20d98d4dd |
|
08-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Implement separate stacks. One for home activity(s), one for other activities. Coordination between the stacks is handled by the ActivityStackSupervisor. Change-Id: I11395edea501d2f84a18a6a8bced1ce3d0797dad
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
d5d5d0f4b8c75c9ed4fea320b4f31740b88dd37e |
|
04-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Prepare WindowManager for multiple stacks. Create concept of home stack. When moving a new task to the top move the home stack back. Change-Id: I2e352722da0c4785b19227713bc30c0850d187b1
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
9e4f28cfa157fff89e42859edc9cce546508491f |
|
03-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Separate stacks into Home and others. Change-Id: I9434ee6cd9e8a8baf24d4e4ee5a15e99cf11f227
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
00af9fe6ae0da5b716212fa754163d90b60c1ee6 |
|
25-Mar-2013 |
Craig Mautner <cmautner@google.com> |
Modify StackBox and TaskStack methods. Also add dump() throughout. Change-Id: I5369d2e71262645d9b1015bd4e72fad395cc7547
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
d9a22881fda77e208f54f893a804d0001d27a27e |
|
16-Mar-2013 |
Craig Mautner <cmautner@google.com> |
Complete removal of Task from DisplayContent. Moved Tasks into TaskStacks. Change-Id: I3478dab4eab3a68d4d71a7a5bb2e65ba2394f2d7
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
c00204b4d14d49a0417b44ca21aee4f0d4c466e0 |
|
06-Mar-2013 |
Craig Mautner <cmautner@google.com> |
Start moving Tasks from DisplayContent to TaskStack - Create new classes for Stacks on WindowManager. - Stop using DisplayContent methods and members: addAppToken(), removeAppToken(), setAppTaskId(), removeTask(), mTaskIdToDisplayContents, mTaskIdToTask. - Start using WindowManagerService.createTask(). - Establish hierarchy of references: AppWindowToken=>Task=> TaskStack=>StackBox=>DisplayContent. - Clean up StackBox, TaskStack, and Task. Change-Id: I798990aa7966784d22f4a43822087d8bb0404dd6
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
f81b908752365fda62a6158bfe7d1559b0d52cdd |
|
26-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Remove AppTokenIterator from DisplayContent. Simplify accessing successive AppWindowTokens from different TaskLists. Change-Id: Icf6265dd6c7953c9c770c97e1342f0f81256c017
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
11bf9a52eb9fb02a8c553a1cb1d71725f9706dad |
|
19-Feb-2013 |
Craig Mautner <cmautner@google.com> |
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
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
5d9c7be84d9628c1cf199fcf9015942835c4671b |
|
15-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Begin switch over to task based history. - Introduce the task history and add to and remove from it with verification. Change-Id: If97e74f5a13f85acdb1521fc6d0b066a7e8584ae
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
c652de8141f5b8e3c6bcf8916842b6e106413b1a |
|
16-Feb-2013 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
343ad71d7cb4934751a91006677266bd73ed224c |
|
14-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Reset and reuse Iterators and don't new() one. Save time and memory by resuing permanent mTmpXxxIterator for AllWindowsIterator and AppTokenIterator. Change-Id: I2e5143364651d9471e9e70eee514d3f45d595468
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
496bdbba30a113baaec61d4d0c011461cf5ee36d |
|
14-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Remove AppWindowToken lists. No longer necessary. Change-Id: I0d2b96f69152fb93b6ba56f02ce9693ff1370cbc
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
b0c0b1fd70e3edeb724e2b2fb2c7063eb943f05e |
|
14-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Remove unused App methods. Now that the Task methods have replaced the App methods remove the App methods. Change-Id: I0e7432f2c6f99708759ed8c871d20eb5bd38c3c2
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
926f3839d81e4b6b60238e38350bec7cb6d0269e |
|
13-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Stop using AppToken movement and start using Task. Change-Id: I5fbd3b2b692e0e127386051f782b1015515ba384
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
30e2d72810e699d7a61277b7ba1b6cace26b84aa |
|
12-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Replace access to mAppTokens with AppTokenIterator More switching from Activity-based to Task-based control. Change-Id: Ida47d71a52b875a6a6bd77cb62911053f942da15
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
05d6272bad2d707b488a6f8784ce8aea5e25b110 |
|
11-Feb-2013 |
Craig Mautner <cmautner@google.com> |
Add AppWindowTokens to TaskList. - Add/remove/move TaskLists from ActivityStack. - Further isolate mHistory. - Cleanup warnings by parameterizing ArrayList. - Fix previous bugs. Change-Id: Ife8c7b7347479c70f10467cc384283456149ac50
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
b1fd65c0ff5784b90d765edb7e3c3115d767dff0 |
|
05-Feb-2013 |
Craig Mautner <cmautner@google.com> |
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
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891 |
|
13-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Refactoring of the screen magnification feature. 1. The screen magnification feature was implemented entirely as a part of the accessibility manager. To achieve that the window manager had to implement a bunch of hooks for an external client to observe its internal state. This was problematic since it dilutes the window manager interface and allows code that is deeply coupled with the window manager to reside outside of it. Also the observer callbacks were IPCs which cannot be called with the window manager's lock held. To avoid that the window manager had to post messages requesting notification of interested parties which makes the code consuming the callbacks to run asynchronously of the window manager. This causes timing issues and adds unnecessary complexity. Now the magnification logic is split in two halves. The first half that is responsible to track the magnified portion of the screen and serve as a policy which windows can be magnified and it is a part of the window manager. This part exposes higher level APIs allowing interested parties with the right permissions to control the magnification of a given display. The APIs also allow a client to be registered for callbacks on interesting changes such as resize of the magnified region, etc. This part servers as a mediator between magnification controllers and the window manager. The second half is a controller that is responsible to drive the magnification state based on touch interactions. It also presents a highlight when magnified to suggest the magnified potion of the screen. The controller is responsible for auto zooming out in case the user context changes - rotation, new actitivity. The controller also auto pans if a dialog appears and it does not interesect the magnified frame. bug:7410464 2. By design screen magnification and touch exploration work separately and together. If magnification is enabled the user sees a larger version of the widgets and a sub section of the screen content. Accessibility services use the introspection APIs to "see" what is on the screen so they can speak it, navigate to the next item in response to a gesture, etc. Hence, the information returned to accessibility services has to reflect what a sighted user would see on the screen. Therefore, if the screen is magnified we need to adjust the bounds and position of the infos describing views in a magnified window such that the info bounds are equivalent to what the user sees. To improve performance we keep accessibility node info caches in the client process. However, when magnification state changes we have to clear these caches since the bounds of the cached infos no longer reflect the screen content which just got smaller or larger. This patch propagates not only the window scale as before but also the X/Y pan and the bounds of the magnified portion of the screen to the introspected app. This information is used to adjust the bounds of the node infos coming from this window such that the reported bounds are the same as the user sees not as the app thinks they are. Note that if magnification is enabled we zoom the content and pan it along the X and Y axis. Also recomputed is the isVisibleToUser property of the reported info since in a magnified state the user sees a subset of the window content and the views not in the magnified viewport should be reported as not visible to the user. bug:7344059 Change-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
2d5618c22101cfc4d6478cfe1d846798389540c1 |
|
18-Oct-2012 |
Craig Mautner <cmautner@google.com> |
Allow getDisplayContentLocked to return null... ... and check for null returns. This prevents DisplayContent objects from containing null Display references. Bug: 7368565 fixed. Change-Id: I830fb4c1349204c366193657a95a92c48ccee66c
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
a91f9e2959ee905f97977a88fe45bde6ffb874b0 |
|
15-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Make more items per-Display. Moving DimSurfaces, DimBackgrounds and Rotation surfaces into per-display class. Fixes bug 7167028. Change-Id: I7408b3a27b5a7a8d0d59e9d6109c002fc627e536
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
5b329e8501486037dd30a5068d96131185893db6 |
|
14-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix debug log. Change-Id: If65abf43ee7a455b12d49b5800657dbf4489e5b9
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
722285e199a9fc74b9b3343b7505c00666848c88 |
|
07-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Make mirroring automatic based on Windows on display. Tell the display manager whenever a given logical display contains interesting windows. If so, then the display manager arranges to show that content on a physical display, otherwise it ignores the logical display and makes its associated primary physical display mirror the default display. Assign DisplayContents when Displays are added, remove them when Displays are removed, and update the DisplayInfo when Displays change. Change-Id: I36e08ec538055acabe1e24cdd12c40de4e47a158
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
1cf70bbf96930662cab0e699d70b62865766ff52 |
|
06-Aug-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
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
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
69b0818179201fadc9d2a384d692d8ae4aecd85c |
|
05-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Limit certain actions to default Display. Stop messing up PhoneWindowManager state when passing in windows from non-default Display. Change-Id: I472f7a13c5e2241fbf1f79ae1c8045fd92af016c
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
76a7165719dc3ccce902953f6244e2c2668aa753 |
|
04-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Change layout inner loop order for multi display. The inner loop that ran over each display had a few problems: - The Surface transaction was starting and stopping between each display. - The layout change bits were being applied globally so all displays were layed out when only individual displays needed to be. - Wallpaper and input actions were being applied each time through the display loop rather than once only for the default display. Change-Id: I924252bab28c426222a4bb73693accc4b21cecbe
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
398341927f3dca68d71024483aa276d10af4c080 |
|
02-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Minor refactors. - Refactor DragState to take Display instead of DisplayContent. - Rename xxxAnimationLw methods in WindowManagerPolicy to xxxPostLayout to reflect animation refactoring. Change-Id: I502f2aa45a699ad395a249a12abf9843294623f0
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
b47bbc3d80badb94229bc4ce7a2d5006faa9ef15 |
|
23-Aug-2012 |
Craig Mautner <cmautner@google.com> |
Clean up displayId and layerStack usage. Make better use of Display object by saving it in DisplayContent. Only use layerStack when referring to Surfaces. Get displayId from default Display or default DisplayContent. Remove warnings. Fixes bug 7038151. Change-Id: Ie493f0f5e755dc9b91ee969ff561c2a098283ead
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
dde331cebd87982faded6818ad5f9927ff994c96 |
|
03-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
We can now (kind-of) change screen density on the fly. Preloaded drawables now have a density associated with them, so we can load the correct drawable if we are using a different density. Window manager now formally keeps track of the density for each screen, allowing it to be overridden like you can already do with size, and relies on this density to drive itself internally and the configurations it reports. There are a new set of Bitmap constructors where you provide a DisplayMetrics so they can be constructed with the correct density. (This will be for when you can have different windows in the same app running at different densities.) ActivityThread now watches for density changes, and pushes them to the DENSITY_DEVICE and Bitmap global density values for that process. A new am command allows you to change the density.
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
4f67ba6ba4e861b287a3ff0323c107aa77f66264 |
|
02-Aug-2012 |
Craig Mautner <cmautner@google.com> |
Refactor DisplayManagerService to be functional. Change-Id: Ieac1eca172be5dc5db45302d3afa26188acd4d6d
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|
59c009776dae5ccbdfb93d7151ff2065ca049dc3 |
|
30-Jul-2012 |
Craig Mautner <cmautner@google.com> |
Introduce multiple displays with DisplayContent. Fix a couple of bugs that turned up. Remove touch/focus from display. Add iterators for access. Respond to comments. Remove TODOs, and some deviceId parameters. Change-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d
/frameworks/base/services/java/com/android/server/wm/DisplayContent.java
|