6dfd0b39a63559999a769f93d5cdb48abe675344 |
15-Oct-2012 |
Xavier Ducrohet <xav@android.com> |
Fix SDK layout rendering in Eclipse. Change-Id: I0e9e85632012c0929b987ee9d0ccf7c25eece322
ridgeContext.java
ridgeWindowManager.java
iew/WindowManagerImpl.java
|
33877e15b8bfc50bd874027689a4794aa93b923d |
07-Oct-2012 |
Craig Mautner <cmautner@google.com> |
Merge "Adds showWhenLocked attribute to Activities." into jb-mr1-dev
|
5962b12bedc4a1d0354816c1cd6b06ba04f6d807 |
05-Oct-2012 |
Craig Mautner <cmautner@google.com> |
Adds showWhenLocked attribute to Activities. The new attribute allows an Activity such as the alarm to appear on all users screens. Bug: 7213805 fixed. Change-Id: If7866b13d88c04af07debc69e0e875d0adc6050a
ridgeWindowManager.java
|
c38c9be031ddad5cf551b55458889f11e01dc5b2 |
04-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
Coordinate screen on with the window manager. Bug: 7267457 Change-Id: Ic2c322253639e1f0b2e4e72a7b145025d0240f93
ridgeWindowManager.java
|
f752202bee88e31ce765483ba2efa6999ae9c9ad |
04-Oct-2012 |
Adam Cohen <adamcohen@google.com> |
Plumbing to allow keyguard to be shown with user switcher (issue 7175023) -> Also reduced calls to lockNow, and moved this call in ActivityManagerService Change-Id: I9ba34ca902f7c0f71fa4ec302104688ca8d11f55
ridgeWindowManager.java
|
c428aae6429c3fd5e2037c3793af399d9f6e23bf |
04-Oct-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #7267494, issue #7212347 7267494 Calendar is not syncing Check for whether a content provider is dead before returning it. This is kind-of a band-aid, but probably the right thing to do; I'm just not sure exactly the full details of why this problem is happening. Hopefully this "fixes" it, though I don't have a way to repro to tell. 7212347 System power off dialog is only visible to user 0 Make it visible. Also turn on some battery debugging stuff and clean it up so we can just keep it. Change-Id: I5add25bf2a763c8dfe1df23bc5c753a9ea5d157a
ridgePowerManager.java
|
1e3b98d47df596d0c4eadbdf60143709f8465b28 |
01-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
New internal API to eliminate poke locks. Added a new WindowManager.LayoutParams inputFeatures flag to disable automatic user activity behavior when an input event is sent to a window. Added a new WindowManager.LayoutParams field userActivityTimeout. Bug: 7165399 Change-Id: I204eafa37ef26aacc2c52a1ba1ecce1eebb0e0d9
ridgePowerManager.java
|
edce6a797878792de2b0bde4360f3171b9e9d9d2 |
01-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove clearUserActivityTimeout(). This function is not implemented and not needed. Bug: 7165399 Change-Id: Ib1c50fabad6292ccf670404ba70aeb1242c4614d
ridgePowerManager.java
|
120664816a9bf325b618d8dd40febae2e3636ec8 |
29-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Get rid of preventScreenOn(). Bug: 7165399 Change-Id: I1968265ecd74fff4d85efd2ca03b1983425ea518
ridgePowerManager.java
|
62c82e4d92cc0b856059f905d81885f7808a0e7d |
26-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Make DreamManagerService more robust. Clearly isolated the DreamManagerService and DreamController responsibilities. DreamManagerService contains just enough logic to manage the global synchronous behaviors. All of the asynchronous behaviors are in DreamController. Added a new PowerManager function called nap() to request the device to start napping. If it is a good time to nap, then the PowerManagerService will call startDream() on the DreamManagerService to start dreaming. Fixed a possible multi-user issue by explicitly tracking for which user a dream service is being started and stopping dreams when the current user changes. The user id is also passed to bindService() to ensure that the dream has the right environment. Fix interactions with docks and the UI mode manager. It is important that we always send the ACTION_DOCK_EVENT broadcast to the system so that it can configure audio routing and the like. When docked, the UI mode manager starts a dock app if there is one, otherwise it starts a dream. This change resolves issues with dreams started for reasons other than a user activity timeout. Bug: 7204211 Change-Id: I3193cc8190982c0836319176fa2e9c4dcad9c01f
ridgePowerManager.java
|
6d51571835737c7502a2e111ee9dc2527ebad984 |
21-Sep-2012 |
Jeff Sharkey <jsharkey@android.com> |
Allow acquiring ContentProviders across users. Otherwise services like SystemUI will always open content://-style Uris as USER_OWNER. Surfaces through createPackageContextAsUser() which points all ContentResolver operations towards a given user. Start using in RemoteViews, so that Notifications correctly resolve image Uris to the sending user. Also add user support for "content" shell tool. Bug: 7202982 Change-Id: I8cb7fb8a812e825bb0b5833799dba87055ff8699
ridgeContext.java
|
9d9ece3c1e16001b63244459cdf4b428f4272d2e |
11-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Animations for user switching. The window manager now has a facility to provide a full-screen animation, which the activity manager uses every time a user switch happens. The current animation is just a simple dumb slide until we get a design from UX. Also some cleanup: moved the portrait task animations to the default config so we always have an animation for them, and finally got the java symbol stuff out of public.xml. Change-Id: I726f77422b2ef5f2d98f961f8da003e045f0ebe8
ridgeWindowManager.java
|
4b15ab66a064ba4fae3bb1ff474d8b5fc38e5490 |
07-Sep-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing the build Change-Id: I123b128f5d9e50653d8d4ed73ea07920b370b0fb
ridgeWindowManager.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
ridgeWindowManager.java
ridgeWindowSession.java
|
20e809870d8ac1e5b848f2daf51b2272ef89bdfc |
01-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
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
ridgeContext.java
|
a492c3a7b2c18426fd0cb4d017eacbc368195dc5 |
24-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Initial draft of high-level multi-display APIs. This patch introduces the ability to create a Context that is bound to a Display. The context gets its configuration and metrics from that display and is able to provide a WindowManager that is bound to the display. To make it easier to use, we also add a new kind of Dialog called a Presentation. Presentation takes care of setting up the context as needed and watches for significant changes in the display configuration. If the display is removed, then the presentation simply dismisses itself. Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
ridgeContext.java
|
5ac72a29593ab9a20337a2225df52bdf4754be02 |
30-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Improve multi-user broadcasts. You can now use ALL and CURRENT when sending broadcasts, to specify where the broadcast goes. Sticky broadcasts are now correctly separated per user, and registered receivers are filtered based on the requested target user. New Context APIs for more kinds of sending broadcasts as users. Updating a bunch of system code that sends broadcasts to explicitly specify which user the broadcast goes to. Made a single version of the code for interpreting the requested target user ID that all entries to activity manager (start activity, send broadcast, start service) use. Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
ridgeContext.java
|
7767eac3232ba2fb9828766813cdb481d6a97584 |
24-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Keep track of whether an app is installed for each user. This add a new per-user state for an app, indicating whether it is installed for that user. All system apps are always installed for all users (we still use disable to "uninstall" them). Now when you call into the package manager to install an app, it will only install the app for that user unless you supply a flag saying to install for all users. Only being installed for the user is just the normal install state, but all other users have marked in their state for that app that it is not installed. When you call the package manager APIs for information about apps, uninstalled apps are treated as really being not visible (somewhat more-so than disabled apps), unless you use the GET_UNINSTALLED_PACKAGES flag. If another user calls to install an app that is already installed, just not for them, then the normal install process takes place but in addition that user's installed state is toggled on. The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED, PACKAGE_REPLACED etc broadcasts to users who don't have a package installed or not being involved in a change in the install state. There are a few things that are not quite right with this -- for example if you go through a full install (with a new apk) of an app for one user who doesn't have it already installed, you will still get the PACKAGED_REPLACED messages even though this is technically the first install for your user. I'm not sure how much of an issue this is. When you call the existing API to uninstall an app, this toggles the installed state of the app for that user to be off. Only if that is the last user user that has the app uinstalled will it actually be removed from the device. Again there is a new flag you can pass in to force the app to be uninstalled for all users. Also fixed issues with cleaning external storage of apps, which was not dealing with multiple users. We now keep track of cleaning each user for each package. Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
ridgeContext.java
|
98365d7663cbd82979a5700faf0050220b01084d |
20-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Refactor for multi-display support. Split WindowManagerImpl into two parts, the WindowManager interface implementation remains where it is but the global communications with the window manager are now handled by the WindowManagerGlobal class. This change greatly simplifies the challenge of having separate WindowManager instances for each Context. Removed WindowManagerImpl.getDefault(). This represents the bulk of this change. Most of the usages of this method were either to perform global functions (now handled by WindowManagerGlobal) or to obtain the default display (now handled by DisplayManager). Explicitly associate each new window with a display and make the Display object available to the View hierarchy. Add stubs for some new display manager API features. Start to split apart the concepts of display id and layer stack. since they operate at different layers of abstraction. While it's true that each logical display uniquely corresponds to a surface flinger layer stack, it is not necessarily the case that they must use the same ids. Added Display.getLayerStack() and started using it in places where it was relatively easy to do. Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
ridgeContext.java
|
d2ae85d41ec1651dd1bf4c33fe31833ba5c5cff5 |
17-Aug-2012 |
Michael Jurka <mikejurka@google.com> |
Merge "Adding a thumbnail scale down animation" into jb-mr1-dev
|
79af1dd54c16cde063152922b42c96d72ae9eca8 |
17-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Switch public APIs to use new UserHandle class for identifying users. Gets rid of "yet another integer" confusion. Change-Id: Id07ea7307aea7c62f0087c6663a1f1c08e2e5dee
ridgeContext.java
|
832cb229cd748505c90f74ae8154fc3557d61a73 |
13-Apr-2012 |
Michael Jurka <mikejurka@google.com> |
Adding a thumbnail scale down animation Recents animation will temporarily look a bit wrong, but a subsequent change will fix this.
ridgeWindowManager.java
|
9630704ed3b265f008a8f64ec60a33cf9dcd3345 |
28-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Power manager rewrite. The major goal of this rewrite is to make it easier to implement power management policies correctly. According, the new implementation primarily uses state-based rather than event-based triggers for applying changes to the current power state. For example, when an application requests that the proximity sensor be used to manage the screen state (by way of a wake lock), the power manager makes note of the fact that the set of wake locks changed. Then it executes a common update function that recalculates the entire state, first looking at wake locks, then considering user activity, and eventually determining whether the screen should be turned on or off. At this point it may make a request to a component called the DisplayPowerController to asynchronously update the display's powe state. Likewise, DisplayPowerController makes note of the updated power request and schedules its own update function to figure out what needs to be changed. The big benefit of this approach is that it's easy to mutate multiple properties of the power state simultaneously then apply their joint effects together all at once. Transitions between states are detected and resolved by the update in a consistent manner. The new power manager service has is implemented as a set of loosely coupled components. For the most part, information only flows one way through these components (by issuing a request to that component) although some components support sending a message back to indicate when the work has been completed. For example, the DisplayPowerController posts a callback runnable asynchronously to tell the PowerManagerService when the display is ready. An important feature of this approach is that each component neatly encapsulates its state and maintains its own invariants. Moreover, we do not need to worry about deadlocks or awkward mutual exclusion semantics because most of the requests are asynchronous. The benefits of this design are especially apparent in the implementation of the screen on / off and brightness control animations which are able to take advantage of framework features like properties, ObjectAnimator and Choreographer. The screen on / off animation is now the responsibility of the power manager (instead of surface flinger). This change makes it much easier to ensure that the animation is properly coordinated with other power state changes and eliminates the cause of race conditions in the older implementation. The because of the userActivity() function has been changed so that it never wakes the device from sleep. This change removes ambiguity around forcing or disabling user activity for various purposes. To wake the device, use wakeUp(). To put it to sleep, use goToSleep(). Simple. The power manager service interface and API has been significantly simplified and consolidated. Also fixed some inconsistencies related to how the minimum and maximum screen brightness setting was presented in brightness control widgets and enforced behind the scenes. At present the following features are implemented: - Wake locks. - User activity. - Wake up / go to sleep. - Power state broadcasts. - Battery stats and event log notifications. - Dreams. - Proximity screen off. - Animated screen on / off transitions. - Auto-dimming. - Auto-brightness control for the screen backlight with different timeouts for ramping up versus ramping down. - Auto-on when plugged or unplugged. - Stay on when plugged. - Device administration maximum user activity timeout. - Application controlled brightness via window manager. The following features are not yet implemented: - Reduced user activity timeout for the key guard. - Reduced user activity timeout for the phone application. - Coordinating screen on barriers with the window manager. - Preventing auto-rotation during power state changes. - Auto-brightness adjustment setting (feature was disabled in previous version of the power manager service pending an improved UI design so leaving it out for now). - Interpolated brightness control (a proposed new scheme for more compactly specifying auto-brightness levels in config.xml). - Button / keyboard backlight control. - Change window manager to associated WorkSource with KEEP_SCREEN_ON_FLAG wake lock instead of talking directly to the battery stats service. - Optionally support animating screen brightness when turning on/off instead of playing electron beam animation (config_animateScreenLights). Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
ridgeContext.java
ridgePowerManager.java
|
756220bd1912535840388a6743830d2e59ad4964 |
15-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Add API to create new contexts with custom configurations. This allows you to, say, make a Context whose configuration is set to a different density than the actual density of the device. The main API is Context.createConfigurationContext(). There is also a new API on ContextThemeWrapper that allows you to apply an override context before its resources are retrieved, which addresses some feature requests from developers to be able to customize the context their app is running in. Change-Id: I88364986660088521e24b567e2fda22fb7042819
ridgeContext.java
|
7d19e0242faac8017033dabb872cdf1542fa184c |
08-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
More mult-user API work. - You can now use android:singleUser with receivers and providers. - New API to send ordered broadcasts as a user. - New Process.myUserHandle() API. For now I am trying out "user handle" as the name for the numbers representing users. Change-Id: I754c713ab172494bb4251bc7a37a17324a2e235e
ridgeContext.java
|
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 |
07-Aug-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Window position not reported if the window is not moved. 1.If a window is shown but never moved the window window is never notified for its current location. Therefore, accessibility nodes do not contain correct bounds in screen coordinates. bug:6926295 Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
ridgeWindow.java
|
b49a065d9904567624a088857ecd1626fad91511 |
04-Aug-2012 |
Craig Mautner <cmautner@google.com> |
Fix build with density methods. Change-Id: I95c0a4f12db40f200a3a004394763beaef904232
ridgeWindowManager.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
ridgeWindowManager.java
|
39df578acddb739d7608e458533904bf5814c0da |
27-Jul-2012 |
Craig Mautner <cmautner@google.com> |
Fix build. Change-Id: I52bbebae38912a4fb71c96174b3d4d8eb6be10c1
ridgeWindowSession.java
|
aa871b0ff0fb38112a1693e80e1146cecc5db21d |
26-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix build. Change-Id: Ife2fd58447205407e41ce3d27e28a705b744bede
ridgeWindowManager.java
|
fa25bf5382467b1018bd9af7f1cb30a23d7d59f7 |
24-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Add display manager skeleton. The purpose of this change is to remove direct reliance on SurfaceFlinger for describing the size and characteristics of displays. This patch also starts to make a distinction between logical displays and physical display devices. Currently, the window manager owns the concept of a logical display whereas the new display manager owns the concept of a physical display device. Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
ridgeWindowManager.java
|
c9c9a48e7bafae63cb35a9aa69255e80aba83988 |
16-Jul-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Removing a workaround for incorrect window position on window move. 1. The window manager was not notifying a window when the latter has been moved. This was causing incorrect coordinates of the nodes reported to accessibility services. To workaround that we have carried the correct window location when making a call from the accessibility layer into a window. Now the window manager notifies the window when it is moved and the workaround is no longer needed. This change takes it out. 2. The left and right in the attach info were not updated properly after a report that the window has moved. 3. The accessibility manager service was calling directly methods on the window manager service without going through the interface of the latter. This leads to unnecessary coupling and in the long rung increases system complexity and reduces maintability. bug:6623031 Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
ridgeWindowManager.java
|
105b78bb310a75dc44e0baa49fe7d20341cc0f15 |
11-Jul-2012 |
Craig Mautner <cmautner@google.com> |
Add missing interface method. Fix broken build. Change-Id: I6644df218e11a35330a985bdcb9ace33723330f5
ridgeWindow.java
|
01b6c755dbcf24e71192dc44757e2eea2a426091 |
10-Jul-2012 |
Xavier Ducrohet <xav@android.com> |
Replace LruCache implementation for layoutlib. The android version depends on a custom version of LinkedHashMap which is not present on desktop VMs. This new implementation is done in a way that minimizes the difference between the two. Also some minor fixes. Change-Id: Ib27b0419f9d0e6ba4d4abb26b2ccd968af59eba8
ridgeContext.java
|
a4b7f2f75e7803193429ec1179fb5e2eb1c6fbda |
21-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Use two fingers to work some magic... Change-Id: Ibcb3dbd3d158c22da8277e544d81fb47eadccd49
ridgeWindowSession.java
|
bb47cf66ec72adff895d0e8b94c26f5d438be49a |
04-Jun-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix build. Change-Id: I41415fed99d98406bc033289428bde59475c2917
ridgeWindowManager.java
|
6ae8d1821822296df0606c9cd1c46708cc21cb58 |
23-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix (mostly) issue #5109947: Race condition between retrieving a... ...content provider and updating its oom adj This introduces the concept of an "unstable" reference on a content provider. When holding such a reference (and no normal stable ref), the content provider dying will not cause the client process to be killed. This is used in ContentResolver.query(), .openAssetFileDescriptor(), and .openTypedAssetFileDescriptor() to first access the provider with an unstable reference, and if at the point of calling into the provider we find it is dead then acquiring a new stable reference and doing the operation again. Thus if the provider process dies at any point until we get the result back, our own process will not be killed and we can safely retry the operation. Arguably there is still the potential for a race -- if somehow the provider is killed way late by the OOM killer after the query or open has returned -- but this should now be *extremely* unlikely. We also continue to have the issue with the other calls, but these are much less critical, and the same model can't be used there (we wouldn't want to execute two insert operations for example). The implementation of this required some significant changes to the underlying plumbing of content providers, now keeping track of the two different reference counts, and managing them appropriately. To facilitate this, the activity manager now has a formal connection object for a client reference on a content provider, which hands to the application when opening the provider. These changes have allowed a lot of the code to be cleaned up and subtle issues closed. For example, when a process is crashing, we now have a much better idea of the state of content provider clients (olding a stable ref, unstable ref, or waiting for it to launch), so that we can correctly handle each of these. The client side code is also a fair amount cleaner, though in the future there is more than should be done. In particular, the two ProviderClientRecord and ProviderRefCount classes should be combined into one, part of which is exposed to the ContentResolver internal API as a reference on a content provider with methods for updating reference counts and such. Some day we'll do that. Change-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c
ridgeContentResolver.java
|
4286d6d115385391b75db8e6c4e397008ef9b3db |
14-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix build. Change-Id: I53263d509559c70100cd78ad49f225f0dafd8891
ridgeWindowSession.java
|
85afd1b6f871d471fdff1980134676a5f1690525 |
13-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Implement new window cropping. The window manager now performs the crop internally, evaluating it every animation from, to be able to update it along with the surface position. Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
ridgeWindow.java
|
421dceb0a4fd8f20349a0de277f82b56e71cb90b |
10-May-2012 |
Michael Jurka <mikejurka@google.com> |
Merge "Making transition out of recents look better" into jb-dev
|
21385cd83d7d7938b57a4acbaa236dd4c7804ed4 |
03-May-2012 |
Michael Jurka <mikejurka@google.com> |
Making transition out of recents look better - Fading out recents first, then scaling up app thumbnail - Fade Recents out over 130ms - Delay the window animation for 200ms first, then animate for 200ms (previously we didn't delay and then animated for 300ms) Bug: 6390075 Change-Id: Ia8c753bf7ee03d2acef6eb2772b28d88fe10a682
ridgeWindowManager.java
|
652b6d1e591f6684cda4b93d4712920f287991b4 |
10-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Add infrastructure for accessing "unstable" content providers. We have an API and some stuff that purports to this, but no real implementation yet. Change-Id: I93555440014a50fdf79fa3f65318d90fb82265b4
ridgeContentResolver.java
|
a7771df3696954f0e279407e8894a916a7cb26cc |
08-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Move CancellationSignal to android.os package. Bug: 6427830 Change-Id: I39451bb1e1d4a8d976ed1c671234f0c8c61658dd
ridgeContentProvider.java
|
5c58de3a523a384c47b0b1e0f5dd9728a74cd9f7 |
29-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Add system insets to windows. This will be used to determine which parts of a window a completely hidden by system UI elements (status bar, nav bar, system bar) so that they can be clipped out from rendering. Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
ridgeWindow.java
ridgeWindowSession.java
|
12d3a94397c33fdb773a1eaaaa13cab80bf0c571 |
27-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
When a window is first shown only draw once while animating. On some hardware allocating a new graphics buffer is quite expensive, which blocks updates to the UI. This can cause glitches when performing window animations. To reduce these glitches, the view hierarchy will now only allow itself to be drawn once if its window is being shown while the window manager is animating, not resuming draws until it is told that the animation is done. Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
ridgeWindow.java
|
68c33ca7ce1f142eb5f1e1f90118aeba4c9db1e3 |
19-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new API to find smallest/largest screen size. Change-Id: I790801fceaf84ee2e3b1c9d32828285ad3231d0e
ridgeWindowManager.java
|
eabfb3a36e9469c5e219f92b39b7200104319185 |
17-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new scale-up window manager animation. Like zoom thumbnail, but without the thumbnail. Change-Id: I9486dd204398b87c9e70ff0d05d03f4a22449cd6
ridgeWindowManager.java
|
ac14351e16e1258f1cb54e2bf772b8be004eb2b8 |
06-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Move some APIs from window manager to input manager. Simplified input injection API down to just one call. Removed all input state reading API. It was only used by the window manager policy and required a permission that applications could not obtain. READ_INPUT_STATE is now unused and deprecated. Change-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00
ridgeWindowManager.java
|
f87d19621dc2a30232bba1f51862a0b671eb9729 |
04-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Clean up status bar, system bar, navigation bar management. The status bar and navigation bar are two completely separate elements, with their own semantics. The system bar now classifies itself as a navigation bar, since that is really how it behaves. This required rewriting the HDMI resizing code, so that it is all done by PhoneWindowManager since that is what is responsible for the size of the navigation bar (and thus now system bar). This actually gets rid of a fair amount of code, and means we can also do the same thing for a pure navigation bar. Likewise the system bar now has the navigation bar ability to be hidden when requested by system UI flags. To get the behavior we want on Xoom, we only allow the nav bar to be hidden when it will help provide a better aspect ratio for showing widescreen videos. Finally the nav/system bar now animates when hidden and shown. Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
ridgeWindowManager.java
|
8078d8c8a282ca81344febe7256f63b1e805e3aa |
20-Mar-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new thumbnail animation. Use it for recent tasks switching. Not perfect yet by far, but something. Also fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D Change-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2
ridgeWindowManager.java
|
5d701eddcf7f4abd5867ec3bf2091916d5ebbdf1 |
16-Mar-2012 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Properly support attr ns when used in styles. Change-Id: I885864588928589d7c9a34b94339917c5be47fa5
ridgeContext.java
|
a421f6c0ba8c354e2a81830e6402654bbf732780 |
22-Feb-2012 |
Xavier Ducrohet <xav@android.com> |
Fix sdk layout rendering in JB. Since JB, com.android.internal.R does not contain all the resources, instead only the ones that are accessed through Java. This means we need to dynamically generate IDs for resources that are private and only accessed from other XML resources. This is done through the DynamicIdMap class. Also add a PolicyManager and a PowerManager since those are now needed by ViewRootImpl?!? Change-Id: If2ae8ad79502fa084d852664a44aefd46e01aec6
ridgeContext.java
ridgePowerManager.java
|
a4972e951bf2bdb7afdafee95b3ab0c15b8bacae |
14-Mar-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new "options" argument to all startActivity APIs. This will be used to allow new features to be requested... such as, say, a special kind of animation. Right now there are no options defined. Change-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7
ridgeContext.java
|
bb9908b828a8cfd5965553be66faa6af89973697 |
08-Mar-2012 |
Romain Guy <romainguy@google.com> |
Dispatch screen state change events to Views Bug #6120957 Using this new callback, views can interrupt and resume their animations or other periodic tasks based on the current state of the display. Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa
ridgeWindow.java
|
e0cf12fc4d5c9de464f899522a9e2ca77dbb865a |
08-Mar-2012 |
Romain Guy <romainguy@google.com> |
Fix the build Change-Id: Ia86ba9b1c432ab3f8107557e95b12c9eedc4d9f7
ridgeWindow.java
|
aeb17f17ffd8d3384dfed223e40010b4abac4cc5 |
27-Feb-2012 |
Xavier Ducrohet <xav@android.com> |
am 77fdcbff: am f038868d: am 44e63a21: Support rendering layout that use the new res-auto namespace. * commit '77fdcbff8b458dd3430b38e60aee1a28ca92a738': Support rendering layout that use the new res-auto namespace.
|
44e63a218cf8fcab9b4418246a512bd0b0c9157b |
25-Feb-2012 |
Xavier Ducrohet <xav@android.com> |
Support rendering layout that use the new res-auto namespace. Change-Id: I9b89c965dc8c9458e74c15ab8ff765e16e1b32c2
ridgeContext.java
|
cb581bbe2e1fd2a55b70a516fbaac53da0108c28 |
25-Feb-2012 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 34706a4c to master Change-Id: I4dd24f3b917aa7e3d2c4b0fae51e951dfcf88ba8
|
b69b2c01b4de8a161d6c39e7428ffd25c36eb8cc |
25-Feb-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix build. Change-Id: Id3262bff0df598ecc81a4346dee9febd3aaa60c9
ridgeIInputMethodManager.java
|
688bd47fccf1a1373e6287bc49b5b33fad12b7f3 |
09-Feb-2012 |
satok <satok@google.com> |
Add an api to switch to the next IME and subtype Bug: 5975302 Change-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c
ridgeIInputMethodManager.java
|
ec99f609cc2db862db307f7ba56a2400c58403a0 |
03-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Rename CancellationSignal using preferred spelling."
|
4c1241df8f8b7fd5ec3dff6c7e0f66271248e76e |
03-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Rename CancellationSignal using preferred spelling. Bug: 5943637 Change-Id: I12a339f285f4db58e79acb5fd8ec2fc1acda5265
ridgeContentProvider.java
|
46d43ccfd8cef75b4315828073c094cf1efb05ff |
03-Feb-2012 |
Xavier Ducrohet <xav@android.com> |
Make Layoutlib compile on Java 6. Change-Id: Ic8f0e321c6c218de83664fc01f253a07fa80852c
ridgeIInputMethodManager.java
ridgeLayoutParamsMapAttributes.java
ridgeWindow.java
ridgeWindowManager.java
ridgeWindowSession.java
ridgeXmlBlockParser.java
|
75ea64fc54f328d37b115cfb1ded1e45c30380ed |
26-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Implement a cancelation mechanism for queries. Added new API to enable cancelation of SQLite and content provider queries by means of a CancelationSignal object. The application creates a CancelationSignal object and passes it as an argument to the query. The cancelation signal can then be used to cancel the query while it is executing. If the cancelation signal is raised before the query is executed, then it is immediately terminated. Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
ridgeContentProvider.java
|
d3fe9abfb9a6a21a18abde6a98dceb423c04ebef |
21-Jan-2012 |
Jim Miller <jaggies@google.com> |
am ab9601cd: am 230a7092: Merge "Fix 5863053: Add method to lock screen immediately." into ics-mr1 * commit 'ab9601cdbb95ae94088750eff9a926a572c1a4d6': Fix 5863053: Add method to lock screen immediately.
|
93c518e4f8abd98f87cda1712b30a5a86cfa60dd |
18-Jan-2012 |
Jim Miller <jaggies@google.com> |
Fix 5863053: Add method to lock screen immediately. This fixes a bug where the device fails to lock when DevicePolicyManagerService requests the device to be locked and the screen was off because the user hit the power button. The change allows DPMS to directly invoke screen lock, bypasssing the screen state. Change-Id: Iecdda6fc61e9c519119de495be23c69c3b983921
ridgeWindowManager.java
|
c0b7f65ae0594e19d1272e5caf2d83638041d19c |
29-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
am 496f6e2a: am b54980d1: Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1 * commit '496f6e2ad656c5bb8a277e191554d16abd290b58': Fix issue #5588689: Black camera preview after coming back from gmail
|
6d05fd3c795088ac60f86382df5a66d631e8a0cb |
19-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5588689: Black camera preview after coming back from gmail Make surface management between SurfaceView and the window manager much more controlled, to ensure that SurfaceView always gets to report the current surface is destroyed before the window manager actually destroys it. Also a small tweak to allow windows that have a wallpaper background to still have a preview window. This makes launching home after it has been killed feel much more responsive. Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
ridgeWindowSession.java
|
8836c55818937ba00f186075eb7efb6462191113 |
01-Nov-2011 |
Tor Norbye <tnorbye@google.com> |
Set theme-tag in render log when failing to find style Change-Id: I20461a7113eb25469deca13dca870936bdb33a29
ridgeContext.java
|
0c4ccff36930ff4f0292b94ad51e164c9fa060a3 |
19-Oct-2011 |
Daniel Sandler <dsandler@android.com> |
Add hasNavigationBar() to the window manager. It is no longer sufficient to check the value of internal.R.bool.config_showNavigationBar to determine if a navigation bar (separate from the status bar) is shown on a device, because the emulator needs to be able to override this value (now possible by setting qemu.hw.mainkeys to "1" or "0", for navbar or no navbar, respectively). This logic is now contained in PhoneWindowManager, and any clients wishing to know whether the system has a software nav bar should consult the new hasNavigationBar() method. Bug: 5404945 Change-Id: I119d32a8c84b88b2ef46f63244e7f11dc5de0359
ridgeWindowManager.java
|
d2183654e03d589b120467f4e98da1b178ceeadb |
09-Oct-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix ownership of CursorWindows across processes. Bug: 5332296 Ensure that there is always an owner for each CursorWindow and that references to each window are acquired/released appropriately at all times. Added synchronization to CursorToBulkCursorAdaptor to prevent the underlying Cursor and CursorWindow from being remotely accessed in ways that might violate invariants, resulting in leaks or other problems. Ensured that CursorToBulkCursorAdaptor promptly releases its references to the Cursor and CursorWindow when closed so they don't stick around longer than they should, even if the remote end hangs onto the IBulkCursor for some reason. CursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE as an indication that one reference to the CursorWindow is being released. Correspondingly, CursorToBulkCursorAdaptor acquires a reference to the CursorWindow before returning it to the caller. This change also prevents races from resulting in the transfer of an invalid CursorWindow over the wire. Ensured that BulkCursorToCursorAdaptor promptly releases its reference to the IBulkCursor when closed and throws on attempts to access the cursor while closed. Modified ContentProviderNative to handle both parts of the wrapping and unwrapping of Cursors into IBulkCursors. This makes it a lot easier to ensure that the right things happen on both ends. Also, it turns out that the only caller of IContentProvider.bulkQuery was ContentProviderNative itself so there was no need to support bulkQuery on ContentProviderProxy and it was just getting in the way. Implement CloseGuard on CursorWindow. Change-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9
ridgeContentProvider.java
|
85b9edf2da0534bc53d139bb88cda8866d265afe |
07-Oct-2011 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately"
|
9a230e01a1237749a8a19a5de8d46531b0c8ca6a |
06-Oct-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately This cleans up how ui flags are managed between the client and window manager. It still reports the global UI mode state to the callback, but we now only clear certain flags when the system goes out of a state (currently this just means the hide nav bar mode), and don't corrupt other flags in the application when the global state changes. Also introduces a sequence number between the app and window manager, to avoid using bad old data coming from the app during these transitions. Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
ridgeWindow.java
ridgeWindowSession.java
|
2447871b99e6b10a68985f037420eb77cabe4d29 |
06-Oct-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix build. Change-Id: I7bb00b8ee0da952f3697b23dccf32dde55733b7a
ridgeWindowManager.java
|
f1dee199a009fec5e3a5d1469f654098261f8b06 |
01-Oct-2011 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: add support for ITextServicesManager. This include a fix in layoutlib_create to properly handle delegating a static method of an inner class (was broken and only worked on non static method). Added a few comments here and there to *_Accessor classes so that it's a bit more obvious what they are for and how they are used. Change-Id: Ifc31dd1a006393bb0c08e22b6a17f500dd62e090
ridgeContext.java
|
90c52de28691ca0bbbf7c039ef20f85ce46882cc |
23-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5173952: Opening a Notification From Lock Screen... ...Should Skip Unsecure Lockscreen (ICS) Also while I am in there, clean up logging of intent objects to include even less sensitive information, while showing the true Intent in dump output (since apps can't get to that). Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
ridgeWindowManager.java
|
01a98ddbdfbaf1f0d2bc602537e6e314364902a3 |
21-Sep-2011 |
Jeff Brown <jeffbrown@google.com> |
Handle orientation changes more systematically. Bug: 4981385 Simplify the orientation changing code path in the WindowManager. Instead of the policy calling setRotation() when the sensor determined orientation changes, it calls updateRotation(), which figures everything out. For the most part, the rotation actually passed to setRotation() was more or less ignored and just added confusion, particularly when handling deferred orientation changes. Ensure that 180 degree rotations are disallowed even when the application specifies SCREEN_ORIENTATION_SENSOR_*. These rotations are only enabled when docked upside-down for some reason or when the application specifies SCREEN_ORIENTATION_FULL_SENSOR. Ensure that special modes like HDMI connected, lid switch, dock and rotation lock all cause the sensor to be ignored even when the application asks for sensor-based orientation changes. The sensor is not relevant in these modes because some external factor (or the user) is determining the preferred rotation. Currently, applications can still override the preferred rotation even when there are special modes in play that might say otherwise. We could tweak this so that some special modes trump application choices completely (resulting in a letter-boxed application, perhaps). I tested this sort of tweak (not included in the patch) and it seems to work fine, including transitions between applications with varying orientation. Delete dead code related to animFlags. Handle pausing/resuming orientation changes more precisely. Ensure that a deferred orientation change is performed when a drag completes, even if endDragLw() is not called because the drag was aborted before the drop happened. We pause the orientation change in register() and resume in unregister() because those methods appear to always be called as needed. Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
ridgeWindowManager.java
|
ce801c4a1b1137ca2fd51ede6818722793c79ea4 |
19-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix build. Change-Id: Ife2b4b207270f8017d3acd80c76eaf1c7a50986d
ridgeWindowManager.java
|
ee5e77cafec2eae70890abdcc1646ed39b06eddd |
02-Sep-2011 |
satok <satok@google.com> |
Make setAdditionalInputMethodSubtypes async Bug: 5120261 Change-Id: Ic7869cfaa5361531e08d58d7dfa5ba0feab0613e
ridgeIInputMethodManager.java
|
29aae6f36e565b8f2a99f2193597b964bb800ee8 |
19-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #4279860: previous UI flashes before showing lock screen... ...(when turning display on after recently turning it off) Also clean up when we decide to turn the screen on to improve that transition. There are still problems here with turning it on before the wallpaper gets dispayed. Change-Id: I2bc56c12e5ad75a1ce5a0546f43a845bf0823e66
ridgeWindowManager.java
|
7f9f99ea11051614a7727dfb9f9578b518e76e3c |
11-Aug-2011 |
Xavier Ducrohet <xav@android.com> |
Make some methods/fields package private so that layoutlib can access them. Change-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64
ridgeAssetManager.java
ridgeContext.java
ridgeInflater.java
ridgeWindow.java
ridgeWindowManager.java
ridgeXmlBlockParser.java
ridgeXmlPullAttributes.java
|
dfee59afb3e4cdcde38f6338f9360655de76da92 |
06-Aug-2011 |
Adam Powell <adamp@google.com> |
Fix bug 5011824 - New Holo overflow menu for physical menu key devices The new Holo-style overflow menu now appears from the edge of the screen where the device's physical menu key can be found. The policy determining this lives in getPreferredOptionsPanelGravity() in WindowManagerService. Change-Id: I8851a2265547156591e82044e50b5cfc58d3eefa
ridgeWindowManager.java
|
d2f664d42cc29507b01a98622298b69131463825 |
30-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
Misc layoutlib fix in preparation of the access change in framework code. Change-Id: I873adb7345514be6daa5c4fea4ebabb515f203e2
ridgeContext.java
ridgeResources.java
ridgeTypedArray.java
|
bc68a59c024bdb745dac8e2ec7408a9f30595f1a |
25-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Report the external display size to the input reader. The input reader needs this information so that it knows how to interpolate touches on an external touch screen. Changed Display so that it asks the WindowManager what the real display size is (as opposed to the raw display size). This means it now takes into the forced display size set by adb shell am display-size. Replaced all calls to getRealWidth() / getRealHeight() / getRealMetrics() in the WindowManager and replaced them with direct usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM doesn't end up making a reentrant Binder call into itself. Fixed the table status bar HeightReceiver so that it updates the height on all configuration changes since it is possible that the display size changed independently of an external HDMI display being plugged / unplugged. Improved the Display class documentation to make the distinctions betweeen the various sizes clearer. Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
ridgeWindowManager.java
|
af64556de0064eeb5a4d4e6d634c3f074f5f40ce |
20-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: misc fix + start of AndroidBidi support. Change-Id: If2ce0b683da8cce01679322d503eed8dd474e521
ridgeIInputMethodManager.java
|
91e88122cf28a48fd2e2260da7d3d87dd437227a |
18-Jul-2011 |
satok <satok@google.com> |
Enable IMEs to set additional subtypes in background Bug: 4591792 Change-Id: I7e61a576c56d1a3a56001bdf2fd51ad3801add01
ridgeIInputMethodManager.java
|
37b3cc3bbe33df61f227bcf253aa67a4be441233 |
13-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
am 9163a4a6: am aa4b1d8b: am d292d2a0: Merge 36a3a392 from mr1. * commit '9163a4a686fc25fefc77d5b41c24a4538486a48e': Merge 36a3a392 from mr1.
|
96131eef3869f2be1300e1620f5c3874b41bb534 |
12-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: updated fake accessbility manager and ensure there's an InputMethodManager We had replaced the accessibility Manager but it lacked some new API. Obvisouly this is fragile and should be fixed, but this works for now. After fixing this there was another issue with the lack of InputMethodManager. To fix this I had to create an implementation of IInputMethodManager which normally comes from a binder object. I may want to do a similar trick with the accessibility manager later. Change-Id: I28c6494e333f39072f348d0199124efac93256a5
ridgeIInputMethodManager.java
|
0a49635b171f3ba366b1a7ebf28791c4661829bd |
12-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Delegate for Display and IWindowManager implementation. This allows ViewConfiguration to be properly implemented which is now required for the rendering to happen. Change-Id: I55629689fa8f5f874b43fcac2aa0789ce02d58f4
ridgeContext.java
ridgeWindowManager.java
|
d292d2a03134eaca8b51b6313610b4b78de53c83 |
08-Jul-2011 |
Xavier Ducrohet <xav@android.com> |
Merge 36a3a392 from mr1. Protect against OOB index in BridgeTypedArray. Change-Id: I40be1e039f9eb36c182b6522bd50d6ed98e15b5c
ridgeTypedArray.java
|
04ce81113107d2bfa0b8248b13145b4cf24cb943 |
10-Jun-2011 |
Xavier Ducrohet <xav@android.com> |
Bring in more layout lib changes from hc-mr1. fe051bb2 : Change the way the layoutlib instantiate its XmlPullParser. A lot of the init code was duplicated so I made a ParserFactory class. Also created an extension of the KXmlPullParser to override toString(). This allows easier debugging when dealing with multiple parsers (which is always the case). Also added some (disabled) debugging printf to deal with parser stack as it can be tricky figuring out which parsers are in the stack at which point. 8969147c : Fix case where the int[] attrs doesn't directly match a styleable. In the case of the FastScroller the int[] is a custom mix of attr instead of a int[] that exists as R.styleable.foo. This makes our reflection based mechanism used to find the styleable fail, so instead we search for each attribute separately (like we probably should have done from the beginning). 0c264b35: Fix various cases of getDimension to report error if unit is missing. if getDimention###() is called for a string that has no unit, then an error is output through LayoutLog, but the rendering keeps going by using dp as a default. 0beb7eea: Make (Bridge)TypedArray.getInteger() call out to getInt() Only getInt() resolved attribute flags/enum and I'm not sure why there's two to begin with.
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlBlockParser.java
|
45b662e1bcff23dc59fb3a47bc32c99e63b2ac35 |
08-Jun-2011 |
Xavier Ducrohet <xav@android.com> |
Merge 06942bc4 from hc-mr1. Layoutlib - use the new getParser callback when possible. Change-Id: Idbb70f5391addd539afa5c2f5b55c70beefed223
ridgeContext.java
ridgeResources.java
|
beb5fb622b71693c21b6fab562a98e7000c64273 |
08-Jun-2011 |
Xavier Ducrohet <xav@android.com> |
Merge 988eeeb5 from hc-mr1. Support for custom declare-styleable attr with enum/flag in layoutlib. Change-Id: I10426a3f2c76bed207c03fab7885b4269337a70f
ridgeContext.java
ridgeResources.java
ridgeTypedArray.java
|
fb93ce9684120a36862b5b5e67b1865a652907e9 |
04-Jun-2011 |
Xavier Ducrohet <xav@android.com> |
Import the Layoutlib from hc-mr1. This is squash commit of all the missing patches. Change-Id: Ie081c46a173290646deddbde503a720d50c4400f
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
2fae858db55fc6984ef923a6226b9408c37c72cb |
29-Mar-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: implement data binding for most AdapterView Change-Id: I27be96ed2c37573eb22cfbb391d96b6137b3df8c
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeXmlBlockParser.java
|
67450db03eac59c93b2b46c7872ce4d7dca47265 |
17-Mar-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: TypedArray.getDimensionPixelSize can actually return <0 Change-Id: I17853dc242e28f0c59916cad1b2a57beed480a57
ridgeTypedArray.java
|
adaa12cd9e421edf34e36de8cfacc3e3c334bb64 |
08-Mar-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: fix Capabilities and getDimensionPixelSize Commented out a Capability that is not in ADT 10. BridgeTypedArray.getDimensionPixelSize shouldn't call getDimension since most of the code is duplicated, and it prevents use from properly detecting malformed attribute values. Change-Id: I005b17061590dc0668729af16e896fad815f1973
ridgeTypedArray.java
|
6f2fb570642189ec2b6068632c25f02391007bb5 |
08-Mar-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Fix dimension parsing to handle negative value. Also make TypedArray.getDimensionPixelSize properly handle negative values (which are not allowed). Change-Id: I960fc1c9e8ad97852d4a14e4f0f71a2c2034b4e7
ridgeTypedArray.java
|
648251710162cdaf7371012a1cbb79b9bc5bc0e4 |
03-Mar-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3485923: Gmail crash Allow application to try to recover if a surface OOM error happens on the client side. Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
ridgeWindowSession.java
|
1ca584a2bb5c0f0e747c98f2e930cce8b53421a5 |
19-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: remove assert in resource resolution. These code paths were valid in case there's a mismatch between the style/theme/version of Android Change-Id: I8cb3b2a3f3a1ef5c37ccec0c8ddbb7add69bfbe0
ridgeTypedArray.java
|
3e87bfa1911de10c3d0692b34eba27f5965710f7 |
19-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: support defStyleRes in obtainStyledAttributes. This fix the Spinner rendering. Change-Id: I20a71d9e07f6c86652a74fba3fc05a027a057ff8
ridgeContext.java
|
f20999965b94bdcc2b1f2c05b587ff405924bc96 |
19-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: properly handle @null references in more places. Change-Id: I240298ab79c19ab0e49cb6da19d6b0187493d3b5
ridgeTypedArray.java
|
559358fdf65b1b551312526940cb02ec23bf6d9d |
14-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
am 1858c95e: am 02d2b5a4: LayoutLib: When possible ensure parsers are popped from the stack. * commit '1858c95e99f81ac46eea93288cb8866260b3d5d8': LayoutLib: When possible ensure parsers are popped from the stack.
|
02d2b5a4031c80bfe1012ce2f4f7b3695762abd9 |
14-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: When possible ensure parsers are popped from the stack. Some parser consumers (seems to be mostly resource inflation) don't use the pull parser up to the END_DOCUMENT tag, making the parser not pop itself from the parser stack automatically. This is likely due to the XML resources being very shallow (1-2 levels max), and the inflater just reading the content that it expects instead of parsing till the document is done. This ensures that *some* parsers are pop'ed from the stack when used. Some other parsers we don't really control and hope the user will parse till END_DOCUMENT. Change-Id: Ie1f5762983fed2b2ae97b896218ae12b493e7ad9
ridgeTypedArray.java
ridgeXmlBlockParser.java
|
8a80a8555238cc564f445f902aff5231993a8f96 |
10-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: remove some exceptions. We need to move away from throwing anything and instead log errors/warnings. Change-Id: Ib1af71a90c06e8565fbd0c061ba56f4d19baa3df
ridgeTypedArray.java
|
d96a7403cda1a873e640b6e6395ddab4c2f9b9f9 |
07-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Handle color state list in methods returning an int. Change-Id: Ia35ea09b992a239873026c7ef1629a01dd2e6cec
ridgeTypedArray.java
|
b0d34f9c99cbd43e8238c5952b19d032f02dd168 |
05-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: split RenderSession's base method into RenderAction. This will allow us to create RenderDrawable that extends RenderAction. Change-Id: If9cd350453ceffae4859a925a7b436502b311f9c
ridgeContext.java
|
779c906592b67867fee83a6527d474c333a701ff |
05-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Replace custom BitmapFactory by a simpler delegate Change-Id: Ie61a0a5b4426e64bb71a22d76d05efa4c0865e5e
ridgeResources.java
|
bbbb8326020368958a3f1d248878329e9d6b10c0 |
28-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: render system/title/action bars. Also a few generic fixes in the layoutlib itself to support this. Change-Id: Ie3f24c9056bd3cc72f39f8a4f2c0861be15bff55
ridgeResources.java
ridgeTypedArray.java
|
33758ef8c98efb669c65eb9404b99ee5df09c6b5 |
03-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Fix some rendering issues Change-Id: I662a39a783de5bc7f3063f46cedaab11c7e6496e
ridgeContext.java
|
345f866bfd09476fd62aa10345a0670cc110b63c |
02-Feb-2011 |
Xavier Ducrohet <xav@android.com> |
Make TimePicker/DatePicker/CalendarView render in Eclipse. Change-Id: Id5313a6f0f53bf45f6eaabc0e10fcf0660eeac08
ridgeContext.java
|
b353495192ba1acce94b8ab8aeeffe3c9a3bcfac |
28-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: update with Pair API. Change-Id: Iba945153f7544872ea84e3311584223aea740e2e
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlPullAttributes.java
|
35ea7cd4c0c89122fda0b57af20061645082ffb9 |
28-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Update with the new resource map APIs. Change-Id: I30d83c2bb4569513f4f5e22670cffe938706f105
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlPullAttributes.java
|
16584225125acba18b74920b902c798dfead0328 |
28-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Properly compute available space to layouts. Also display placeholders for status/title/action bars depending on if the app is a tablet and its theme. Change-Id: I651c1a2e5cfde165e004c11b236e6df056853dec
ridgeContext.java
|
82b9232565bfececdb643a94cecdd1bd1cb5c643 |
24-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Use special view cookie for include-merge case. All items directly under the <merge> tag now return the view cookie of the referencing <include> tag using a special class for easy differentiation in the calling client. Change-Id: I7a2a4e642be9564f47e256fd1586012497d34792
ridgeInflater.java
|
664644d9e012aa2a28ac96f305b1ce6499ec8806 |
24-Jan-2011 |
Joe Onorato <joeo@google.com> |
visibility ("lights out") API. 1. Views may setSystemUiVisibility() to recommend that the system chrome (status bar or other UI) show or hide itself. (This functionality was previously available only via the FLAG_FULLSCREEN window flag for some SystemUI implementations.) 2. Views may register a OnSystemUiVisibilityChangedListener on a view, and find out when the system UI actually appears or disappears, allowing apps to coordinate the appearance of their own UI if desired. Bug: 3241144 Change-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829
ridgeWindow.java
|
9d0577ec0c285c055da4c910dcb597fdae5bc5e5 |
18-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: properly configure ApplicationInfo with targetSdkVersion. Change-Id: I1bfef890206552843d1a7a8d0564741f2a37494f
ridgeContext.java
|
70552fb92dbc5cb5b1d53b20f92f2a64969a50c4 |
17-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Update to use the new RenderResources API. Change-Id: Ic64eff3f324c4519da89bab10e6d59f0a9341a04
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlPullAttributes.java
|
87ab45c0fe4db814a7364fce3b88be3a49507e90 |
17-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
Merge "LayoutLib: extract resource resolution into its own class." into honeycomb
|
fbf097732137a32930d151f7ba6816a5b870c32a |
16-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Support non-rectangular input regions. This enables the system bar to carve out a region through which events will be sent to the IME behind it. Bug: 3238092 Change-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028
ridgeWindowSession.java
|
d1d6fafc7fc63543b10552dadf202dd6fa40fe6b |
16-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: extract resource resolution into its own class. Next step is to make it a jar that will also live in ADT. The version in layoutlib will be through a prebuilt jar file, like ninepatch. Also add ninepatch.jar inside the layoutlib.jar file. Change-Id: I4a0cc9f2dd99709de6408386054c6d4abae7c824
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlPullAttributes.java
|
51a7e5447de94791c464cda5cc6ebbf616d73c80 |
15-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: update logs to use new data bundle Also change some resource.resolve tags to resource.format Change-Id: I3f0b0d2eb69a5ec98375e4014a3bb1bfceb8c855
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
0831b3fae504e8fa94e6b1cc0d4e6c3fccaef231 |
15-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Misc fixes. - Fix resource resolution for framework resources of type "id" that are dynamically generated through "@+id/..." - Proper implementation of setBitmap on a canvas that already has a bitmap. Transform/clip are kepts but the existing layers are replaced with the new bitmap - return a null service for INPUT_METHOD_SERVICE in Context.getSystemService Change-Id: I35e46fff50e6492a8995e95427d5f38bc945429d
ridgeContext.java
|
918aaa5717fce6081557c82ce1c439b6922737d5 |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Use the new log tag constants from LayoutLog Change-Id: I29dd578ae16405358d3673caf13528be393f0967
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
310a4d815b693e358d151b9aa2823c5022993f9b |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LAyoutLib: Fix build by adding missing IWindowSession implementation. Change-Id: I0af178d149b782cac3ae0c36fa5fc03f4dc6118b
ridgeWindowSession.java
|
1f1957f50fec4bc8d8716793d22bb23ee7fb4a7f |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
Merge "LayoutLib: move MockView back into its original package." into honeycomb
|
ee592fe4e60e940599fc1ccf43a98eb80961feb8 |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: move MockView back into its original package. This is used by Eclipse when the custom view is not found. It couldn't find the view in the new package either. We should probably move this logic of creating a mock view into the layout library instead. Change-Id: Ifa1a717cddf7004a7719bb4d0798cd53b43273ea
ockView.java
|
cb27d4b2f530033c90432745115b914d8f26c3e7 |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
Merge "LayoutLib: use tags in logs." into honeycomb
|
56222cfbe9973c518f7e8c9113c614de80b5a4b2 |
13-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: use tags in logs. Change-Id: Ib85272249d285ecef409bf063903bcd91514a424
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
02d2b3ba9ba830a8147db2739613f7bbb2d0fcbf |
11-Jan-2011 |
Christopher Tate <ctate@google.com> |
API CHANGE: startDrag() now takes "int flags" instead of "boolean localOnly" There will be, in the future, a flag (View.DRAG_FLAG_GLOBAL) that means for the drag to be cross-application. For now that flag constant is @hide and furthermore the server-side implementation strips it, enforcing local-only drags. Change-Id: I8db840480ab90e18a5b8ecf29d62b4e6eafd405e
ridgeWindowSession.java
|
d7cbf3f72c73ba01293f6676453352ef60df3778 |
12-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Log error when style can't be found. Change-Id: I9a88cdac44a2d31c053e7f0c92a14e69bd82ac83
ridgeContext.java
|
6c740cf71e5ce5ba7c8493c545c3a57c57ac7024 |
11-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Improve error reporting. Change-Id: I37cad7e2efb959202960c57b271c55c759867139
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
eb87b3bb53a8a9e9a246b4b70ea40172e2229c85 |
11-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: fix some issue with resource resolution. TypedArray.getResourceId() is not only about id/foo, it can be any type of resources. Change-Id: Ia5e147bc078bb349a3fa500a04c596ae44ea34ce
ridgeContext.java
ridgeResources.java
ridgeTypedArray.java
|
419e8296ea76c5f1db1abbaa88b39b538fa42403 |
10-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: move asserts around. Change-Id: I6fcfcf2e6fad1d9fa172b9a8c20c72fa2533e7fa
ridgeTypedArray.java
|
c77515e59029580caa68ba7602264ebdfd602daf |
10-Jan-2011 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: display warning when a resource reference fails to resolve. Also fixed some warnings where a field hid one from a parent class. Change-Id: I04ed19ebc49ae0bb0abdb0b25bc1c182fa0db440
ridgeContext.java
ridgeTypedArray.java
|
19a021038f2f4683dddef651543d7298f5bd7218 |
16-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Update layoutlib with revised API. Change-Id: I78929df621f48e85d9cbefe1f5590f9ce99bbaff
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlBlockParser.java
ridgeXmlPullAttributes.java
|
6735cffc1ddd18bdd6a46011e42d89204435361a |
11-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: parsed resources were always set as platform res. I broke this last week when adding the support for layout params in moveChild. Change-Id: Iaaf9b9f685ca301638d4037e98428ea0a00279c9
ridgeContext.java
ridgeTypedArray.java
|
ffb42f6c5043de226f02318a1311669d35a90711 |
10-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Adapt to new LayoutLib API now uses ResourceValue instead of IResourceValue Capabilities renamed Capability Change-Id: Ia5d2b6c8d536e020a1f5496fb2285f67fc4346c4
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeXmlPullAttributes.java
|
168677c9e2f8438ec5687e3c6b0e41b986c5b230 |
06-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Fix logging. - Use the new logging API - remove log object reference everywhere but in Bridge - all logging code accesses Bridge.getLog() - prepareScene sets the current scene log object in Bridge. Change-Id: Ib0517ccd6454c4baf218b6baa978a126f91671e7
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
|
01811aa86279af1b341a4fff344d66c0ebdd63da |
03-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: Create new layoutparams when moving a child Change-Id: Ie2183490e8d26ef194030a9d87fe7745f24f1d83
ridgeContext.java
ridgeLayoutParamsMapAttributes.java
ridgeXmlBlockParser.java
|
2eea6fab1cbb0a5c8f913491c2d622c904759893 |
24-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: Animation support. New locking mechanims to prevent concurrent renderings. There's now a thread specific prepareThread() method (only prepares the looper) and its associated cleanupThread(). For the rendering itself, acquire must be called before doing any type of Android specific work on the scene (inflate or rendering) After instantiation, init() must be called, which also acts as acquire. Added a lot of checks to make sure method aren't called without acquire or if scenes try to be rendered while acquire was called from the same thread but on another scene. Animation implementation: - Handler delegate to use our own queue (since the animation runs through handler messages). This uses a callback to process the message. This callback is per-thread and only used in animation threads. - SystemClock delegate to provide clock implementation. - AnimationThread to handle playing the animation and calling back to the animation listener. Change-Id: Ia39aba7ed476759df1da3200e413fe3e92590d15
ridgeResources.java
|
2d56b273ef6e2984a4e8914fb67772b173d0a154 |
23-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: use default nine patch classes. Move away from using our own implementation of NinePatchDrawable. Now use native delegate for a few methods of NinePatch. The byte[] used to describe the 9-patch chunk is entirely controlled by the delegate. Therefore, while the default version (JNI) use the array as a representation of a C struct, this version uses the array as a serialized version of NinePatchChunk. A cache mechanism using SoftReferences allows us to not deserialize the array every time rendering needs to access the chunk itself. The Bridge-level cache mechanism for bitmaps and nine-patches as changed. Since the new nine-patches doesn't hold the bitmap data anymore (it's stored in a normal Android bitmap which is cached itself through the cache), then the nine-patch cache has been changed to only contain the nine patch chunk. Also initialize the canvas with the display metrics to prepare for correct scaling when density of the assets don't match the target density. Still to come: actual density support in the 9-patch drawing code. Change-Id: Ibefcccf4432e1986e8436e0c41a0107741593536
inePatchDrawable.java
|
9223b6737c56619c02125ce988bb21fc4fde264b |
20-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: support for editing embedded layouts. When Resources.getLayout(int) is called to return a parser for an embedded layout, this queries the current parser for a custom parser (Eclipse will provide one on top of the current XML model being edited) Change-Id: Ia9e837358f67daed0a835e1b3f4f50c0516ceee9
ridgeContext.java
ridgeResources.java
ridgeXmlBlockParser.java
|
55acd60be3c027c224a74290df7bedc1a80c669f |
19-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: support viewkey in include nodes. When an include tag is parsed, the custom bridge code never has access to both parsers at the same time. The child parser is created out of an in (representing the layout id), and the code inflating the content of the include layout doesn't see the parent parser either. This changeset adds a parser stack in the BridgeContext in order to allow access to the parent parser when setting the viewkey. This is only used if the current parser depth is 1 (top node), as we only want to set the include node to the top node of the included layout. Change-Id: I2ac3b72a0c84a269d9019f44f98cbc0b615ab959
ridgeContext.java
ridgeInflater.java
ridgeXmlBlockParser.java
|
4d9e32f07c2d7aef47c82449371b0bf362e3647a |
18-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: support XML based ColorStateList. This fixes the rendering of the TabHost in Eclipse. Change-Id: I333c4d65b18df76871e24a04f0a888ae42ba40ef
ridgeResources.java
|
cf52390eee4c9ae792ef63af1528b2e71b33a04f |
12-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: Fill the default prop value map for View objects. Change-Id: I35426ced17a10eb092fac2153276f1202692876f
ridgeContext.java
|
071dee288ca726c7c15754c2559403b9cbf950bd |
11-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Misc fix in layoutlib bridge + View.isIneditMode as delegate. Change-Id: Ideab29167e933203da99d4270cebcb777726201f
ridgeContext.java
ridgeTypedArray.java
ridgeWindow.java
|
c2e9651bf386a1f7bf7fc706cf5424950570470c |
10-Nov-2010 |
Xavier Ducrohet <xav@android.com> |
Layoutlib: New bridge implementation using the new API 5. Since the new API prepare for stateful layoutlib, major reorganization of the code. New "android" sub-package for all extended android classes. Also moved BridgeInflater in here so that all extended classes are in this package. Only delegates and classes replacing renamed classes are in their original android.* packages. Also created full file for the empty implementations of IWindow and IWindowSession. New "impl" for the dirty work implementation. Main package contains the basic implementation of the API. Most of the code that was in Bridge is now in .impl.LayoutSceneImpl, with the main init/inflate/render code split into the contrustrutor, inflate() and render(). Change-Id: Ie15b15e5a1b2388cd6ef82e518345b1fc02ec981
ridgeAssetManager.java
ridgeContentProvider.java
ridgeContentResolver.java
ridgeContext.java
ridgeInflater.java
ridgeResources.java
ridgeTypedArray.java
ridgeWindow.java
ridgeWindowSession.java
ridgeXmlBlockParser.java
ridgeXmlPullAttributes.java
ockView.java
inePatchDrawable.java
|