48d0d1886731ff19ed3fb47a5997be5df0d1bba8 |
|
11-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Add activity token to display system. First step in adding activity specific information to displays. Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that holds an activity token in addition to the CompatibilityInfo. Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
908aecc3a63c5520d5b11da14a9383f885b7d126 |
|
01-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Start moving away from DisplayMetrics.DENSITY_DEVICE. This puts in most of the infrastructure needed to allow us to switch between different densities at run time. The main remaining uses of the global are to initialize the Bitmap object (not sure what to do about that since it doesn't have anything passed in the constructor to get this information from), and being able to load drawables if we need a different density than what was preloaded by zygote. Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2b31d53161789358de57fd396716a6503855c5da |
|
23-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #4770360: older app compatibility mode is really tiny on ICS phones We were applying the density compat mode scaling multiple times to display metrics, causing bad values. Change-Id: Iafafd9a5e94b9d774cd2715bf968e91602a1bd82
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
5fd2169eabd77e6bfafaf456e58051a3bafb2bca |
|
07-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #4518815: Compatibility mode introduces compatibility regression... ...for Market App iRunner There were a lot of serious issues with how we updated (or often didn't update) the display and resource state when switching compatibility mode in conjunction with restarting and updating application components. This addresses everything I could find. Unfortunately it does *not* fix this particular app. I am starting to think this is just an issue in the app. This change does fix a number of other problems I could repro, such as switching the compatibility mode of an IME. Also a few changes here and there to get rid of $#*&^!! debug logs. Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2762ff3dc864018352362f6d103de471f9529ba6 |
|
02-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Add new supports-screen API to set maximum allowed size. Change-Id: I0a7cd4ba73a4c18558e6daee28963d5fd12c7978
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
39ec8fb9572b6f7a6c3dbc135f32f2a8cbcd640f |
|
01-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Compatibility mode never needed for normal size screens. Change-Id: I3482fa692618b9272e1e19384e766a77f2a53c5d
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2f0b17573d4324832f7a20402a3d2b5920bc4866 |
|
01-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #4502672: Wrong xml resources used for homescreen widgets. There was a race in the system process between applying the initial configuration and executing code in higher-level system services like the app widget service that relies on the config. For some reason it starting showing up more after my code changes; it should now be completely fixed. Also fix the activity starting window to run in compatibility mode if its application is going to be in compatibility mode. And some various cleanup and small fixes. Change-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
8ea5e1d79eb1f05ee7628b0d45ea8fc8eea5330d |
|
28-May-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix compat mode bugs when updating apps. No longer accidentally puts an app into compatibility mode. Also various cleanup, freezing screen while switching between modes. Change-Id: Ic1b3958be7800189a93f68e9dee3c5adfc45fe57
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
df6e980e3f63eb0f6f9eb437fa925d5009cd9c44 |
|
26-May-2011 |
Dianne Hackborn <hackbod@google.com> |
Add new supports-screens attributes for declaring the compatible screens. Change-Id: I40d57e4354e48accc1027c9f90916ea73eb5190d android:requiresSmallestWidthDp provides the smallest supported width. android:compatibleWidthLimitDp provides the largest compatible width.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
81e56d535c853d73ff537357da5b935f51cb779d |
|
26-May-2011 |
Dianne Hackborn <hackbod@google.com> |
Rework how we decide whether to use system or status bar. The PhoneWindowManager is now responsible for determing this, since it needs to do this before we can generate the configuration since we need to take into account the system bar size we will use. Also the Display should now report the screen height without including the system bar. Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
36cd41f8efa6f6a683d3353d309ff548295af9e9 |
|
26-May-2011 |
Dianne Hackborn <hackbod@google.com> |
Spiffy new compatibility mode UI. Change-Id: I1207eaafae59a434fcc979ad60a83e2d685288af
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
5be8de3420ba4c9d816b98e29bdec11715f6b626 |
|
25-May-2011 |
Dianne Hackborn <hackbod@google.com> |
More compatibility mode improvements. We now correctly adjust display metrics, fixing for example issues seen in Barcode Scanner. In addition the decision about when to use compatibility mode has a bug fixed where certain apps would not go out of compatibility mode even though they should be able to. Change-Id: I5971206323df0f11ce653d1c790c700f457f0582
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
0f1de9adde0b52d2a385a76232bd7ac30c3eeea2 |
|
12-May-2011 |
Dianne Hackborn <hackbod@google.com> |
New compat mode front end: UI and persistence. Adds a really crappy UI for toggling compat mode. Persists compat mode selection across boots. Turns on compat mode by default for newly installed apps. Change-Id: Idc83494397bd17c41450bc9e9a05e4386c509399
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
e2515eebf42c763c0a2d9f873a153711778cfc17 |
|
28-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Better compat mode part one: start scaling windows. First step of improving app screen size compatibility mode. When running in compat mode, an application's windows are scaled up on the screen rather than being small with 1:1 pixels. Currently we scale the application to fill the entire screen, so don't use an even pixel scaling. Though this may have some negative impact on the appearance (it looks okay to me), it has a big benefit of allowing us to now treat these apps as normal full-screens apps and do the normal transition animations as you move in and out and around in them. This introduces fun stuff in the input system to take care of modifying pointer coordinates to account for the app window surface scaling. The input dispatcher is told about the scale that is being applied to each window and, when there is one, adjusts pointer events appropriately as they are being sent to the transport. Also modified is CompatibilityInfo, which has been greatly simplified to not be so insane and incomprehendible. It is now simple -- when constructed it determines if the given app is compatible with the current screen size and density, and that is that. There are new APIs on ActivityManagerService to put applications that we would traditionally consider compatible with larger screens in compatibility mode. This is the start of a facility to have a UI affordance for a user to switch apps in and out of compatibility. To test switching of modes, there is a new variation of the "am" command to do this: am screen-compat [on|off] [package] This mode switching has the fundamentals of restarting activities when it is changed, though the state still needs to be persisted and the overall mode switch cleaned up. For the few small apps I have tested, things mostly seem to be working well. I know of one problem with the text selection handles being drawn at the wrong position because at some point the window offset is being scaled incorrectly. There are probably other similar issues around the interaction between two windows because the different window coordinate spaces are done in a hacky way instead of being formally integrated into the window manager layout process. Change-Id: Ie038e3746b448135117bd860859d74e360938557
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2bfa2ea1ecc538bef44ff2a7da1e2db149fd9970 |
|
31-Jan-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3408542: "resizeable" attribute required to get out of compat mode The "resizeable" attribute of supports-screens was never well documented, so many apps don't set it. Assuming that if they are explicitly saying they support large or xlarge screens then they are also implying that they are resizeable. Change-Id: Iaa1ad431c9868254af7581499477bff98ed109e5
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
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
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
a53146c5569f8ff5f7eb55e9ad35d23ddacf2add |
|
07-Sep-2010 |
Christopher Tate <ctate@google.com> |
Drag/drop APIs and infrastructure A View initiates a drag-and-drop operation (hereafter just called a "drag") by calling its startDrag(ClipData) method. Within the processing of that call, two callbacks are made into the originating View. The first is to onMeasureDragThumbnail(). Similarly to the core onMeasure() method, this callback must respond by calling setDragThumbnailDimension(width, height) to declare the size of the drag thumbnail image that should be used. Following this, the View's onDrawDragThumbnail(canvas) method will be invoked to actually produce the bits of the thumbnail image. If all goes well, startDrag() will return 'true', and the drag is off and running. (The other arguments to startDrag() provide reconciliation between the current finger position and where the thumbnail should be placed on the screen relative to it.) Potential receipients of the ClipData behind the drag are notified by a new dispatch mechanism, roughly parallel to motion event dispatch. The core routine is the View's onDragEvent(event) callback, with the mechanics of dispatch itself being routed through dispatchDragEvent(event) -- as in the case of motion events, the dispatch logic is in ViewGroup, with leaf View objects not needing to consider the dispatch flow. Several different event 'actions' are delivered through this dispatch mechanism: ACTION_DRAG_STARTED: this event is propagated to every View in every window (including windows created during the course of a drag). It serves as a global notification that a drag has started with a payload whose matching ClipDescription is supplied with the event. A View that is prepared to consume the data described in this event should return 'true' from their onDragEvent() method, and ideally will also make some visible on-screen indication that they are a potential target of the drop. ACTION_DRAG_ENTERED: this event is sent once when the drag point enters the View's bounds. It is an opportunity for the View to set up feedback that they are the one who will see the drop if the finger goes up now. ACTION_DRAG_LOCATION: when the drag point is over a given View, that View will receive a stream of DRAG_LOCATION events, providing an opportunity for the View to show visual feedback tied to the drag point. ACTION_DRAG_EXITED: like DRAG_ENTERED, but called when the drag point leaves the View's bounds. The View should undo any visuals meant to emphasize their being the hovered-over target. ACTION_DROP: when the drag ends at a given point, the View under that point is sent this event, with the full ClipData of the payload. ACTION_DRAG_ENDED: paralleling the DRAG_STARTED action, this is the global broadcast that the drag has ended and all Views should return to their normal visual state. This happens after the DROP event. Change-Id: Ia8d0fb1516bce8c735d87ffd101af0976d7e84b6
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
14cee9f688c32d63d8521188e7422811629bb7c2 |
|
24-Apr-2010 |
Dianne Hackborn <hackbod@google.com> |
New xlarge screen size. Not complete, only for experimentation at this point. This includes a reworking of how screen size configurations are matched, so that if you are on a larger screen we can select configurations for smaller screens if there aren't any exactly matching the current screen. The screen size at which we switch to xlarge has been arbitrarily chosen; the compatibility behavior has not yet been defined. Change-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
b5c17a64edbdac47d8aa48951b50ea0a8e982655 |
|
22-Sep-2009 |
Mike Reed <reed@google.com> |
experimental fix for compatibility mode. When we scale up by 1.5 (240 dpi), we put stretched ninepatches on exact pixel boundaries when we walk the inverse matrix (e.g. 2/3, 1+1/3, 2, 2+2/3, 3+1/3, 4, ...). These are not stable, since any variance in the inverse matrix (even in the lowest bit) can cause some other part of the ninepatch to start a hair to the left, resulting in misaligning every 3 pixels. The fix changes the matrix' phase enough to keep all of the stretched ninepatches in phase.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
589cebe2d58591403de4a77077941c0454bc91bc |
|
23-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
* Use the scaled size for surface view instead of native. The surface will be always scaled by surface flinger in compatiblity mode. The original approach confused the app because the surface size and the view size were different. * a few clean up. removed unsed arguments, obsolete conditions from getTranslator() (expandable check was a bug)
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
11b822d2a91ea17c34c0cb1c11e80a9a30d72864 |
|
22-Jul-2009 |
Dianne Hackborn <hackbod@google.com> |
Simplify density compatibility to a boolean. Instead of a list, we now just have a single boolean indicating whether an application is density aware, and this set set to true by default as of Donut.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
c4db95c077f826585d20be2f3db4043c53d30cf5 |
|
22-Jul-2009 |
Dianne Hackborn <hackbod@google.com> |
First pass at reworking screen density/size APIs. This changes the names of the directories in aapt, to what you see in the list of DpiTest resources. Also adds a new "long" configuration for wide screens, which the platform sets appropriate, and introduces a new kind of resizeability for not large but significantly larger than normal screens which may have compatibility issues.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
61324e58c549670c015010d0be14c6af76e3e9f7 |
|
22-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
cast is floor. Use round instead. This fixes a few layout issues (that was due to smaller widnow size)
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
841f13c8e9ff3f7695b6c18a8abcec3c947983ff |
|
18-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
* Reverted the change in PackageParser that I checked by accident * More surface view fix. - correct event translation on surface view. - use compatible window * removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary. * Added compatibility related info to package dumpsys
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2784ff0af88128f66ae690b73d48fb7e4a211e68 |
|
19-Jul-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix issue where scaled bitmap sizes could be wrong. The Bitmap functions to get the scaled width/height couldn't actually do the right thing because they didn't know the destination they would be drawing to. Now there are two forms of them, taking an explicit parameter specifying the destination.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
a53b828635fce8b6b2d3e3377d74d72070056623 |
|
17-Jul-2009 |
Dianne Hackborn <hackbod@google.com> |
Add "nodpi" density, and expose a bunch of density-related APIs. Also update the DpiTest app to use nodpi images, and try to have a mode where it turns off compatibility though it's not quite working.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
5a2b91dc14e4c92e91c6abcc795f54ac98ee5866 |
|
17-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
* Use Fede In/Out animation if one of opening/closing apps is in compatibility mode. * preserve compatibility window flag when the app updates window's layout params. * Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification. * A few minor updates * log/dump message improvement * Removed unnecessary method in FadeInOutAnimator * Fixed 100 char issue in WindwoManagerServer.java
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
1ecf5d28817f0a051e77488380dcd5bc622ea169 |
|
07-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
Re-implementation of large screen support using window manager. * added background filler surface to fill the outer rim. Using the same layer as dim surface because they never co-exists (in the same window) * clean up the obsolete code in CompatibiltyMode/ViewRoot for support large screen support.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
569076c9f6bdadb4d3285a26e069634a839b5b87 |
|
03-Jul-2009 |
Mitsuru Oshima <oshima@google.com> |
widgets scaling fix. Use container's compatibility info and display metrics when container and widgets disagree.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
723738cfaec3dd7b0fe152c872c41bebf94074c4 |
|
26-Jun-2009 |
Dianne Hackborn <hackbod@google.com> |
Expand support for different screen sizes. Applications can now declare that they support small, normal, or large screens. Resource selection can also be done based on these sizes. By default, pre-Donut apps are false for small and large, and Donut or later apps are assumed to support all sizes. In either case they can use <supports-screens> in their manifest to declare what they actually support.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
64f59342d41849bd365cb43fad7505d5e3daa417 |
|
21-Jun-2009 |
Mitsuru Oshima <oshima@google.com> |
* new screen resolution support impl. * use full window for activities, and shift & clip the content * refactored the compatibility code, and introdcued Translator class to handle cooridnate translations. * removed a workaround to handle an activity with configChagne=rotation in old implementation. * I'll fix background issue on rotation in next CL. * removed unnecessary scaling code in SurfaceView, which I forgot to remove when I changed SurfaceView not to scale the content.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
5c1e00b14d2ef10ec76abf3e951fa8003a67f558 |
|
19-Jun-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo. - Fix a bug where targetSdkVersion could not be set if minSdkVersion. Stupid, stupid. Also make sure to fail if minSdkVersion is for a code name. Really stupid. - Change the API for resize compatibility mode to be a bit in the flags field, instead of a separate boolean. - Implement delayed dexopting, to avoid the looong full dexopt during boot. This is only enabled for "eng" builds. When in this mode, the activity manager will make sure that a dexopt has been done before loading an .apk into a process, and will try to avoid displaying ANRs if they are due to the dexopt causing some operation to take longer than it normally would (though I make no guarantees about this totally working). - Add API to Context to get the ApplicationInfo for its package, for easy access to things like targetSdkVersion.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
e5fb328825995aa33b5b7ecf8b5bee2b17f81715 |
|
10-Jun-2009 |
Mitsuru Oshima <oshima@google.com> |
resolution support fix/improvement * adding compatibility menu * backup gravity * set expanable=true if the screen size is hvga * density. * added "supports any density" mode. I'll add sdk check later. * disallow to catch orientation change event if the app is not expandable. This was causing layout problem under non-expandable mode. I discussed this with Mike C and we agreed to do this approach for now. We'll revisit if this causes problem to a lot of applications.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
2f5e6b2d31f445a4e9faf3a7ace94f9ef6948336 |
|
05-Jun-2009 |
Mitsuru Oshima <oshima@google.com> |
A workaround to fix rotation issue. I'm remote now and hard to do troubleshooting (i cannot rotate emulator in nx..)
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|
9189cabb0b6c6c28232fe6f412b7ba7a37352a6a |
|
03-Jun-2009 |
Mitsuru Oshima <oshima@google.com> |
* Moved supports-density tag under manifest * Refactored Compatibility code * Added CompatibilityInfo class * Removed getApplicationScale from Context * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context * Expandable support * Added expandable tag under manifest * Old application w/o expandable is given the default screen size ([320, 480] x density). * The non-expandable window is centered.
/frameworks/base/core/java/android/content/res/CompatibilityInfo.java
|