Commit Graph

95 Commits

Author SHA1 Message Date
Mitsuru Oshima
240f8a7532 * a best effort fix for apps that uses get/set Matrix API on canvas.
- scale the matrix
  - but don't scale if the matrix *looks* like obtained from the canvas itself. (typically to set it back to original matrix)

This is best effort change and not perfect (not even close), but works for one game,
and hopes it can handle many other apps that uses set/get Matrix. If you have an alternative idea, please let me know.
2009-07-23 13:31:00 -07:00
Mitsuru Oshima
424f668545 * Revert the change that I introduced while refactroing in SurfaceView#dispatchTouchEvent
* Don't scale back the event if the canvas is used in SurfaceView.
2009-07-22 13:54:26 -07:00
Mitsuru Oshima
38ed7d7701 * Adjust canvas size under compatibility mode. 2009-07-21 17:41:16 -07:00
Mitsuru Oshima
61324e58c5 cast is floor. Use round instead.
This fixes a few layout issues (that was due to smaller widnow size)
2009-07-21 16:42:41 -07:00
Mitsuru Oshima
841f13c8e9 * 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
2009-07-19 19:17:06 -07:00
Mitsuru Oshima
34bf2ee9e6 * scale surface view's canvas
This will not affect GL/Video views as they're directly using surfce but not canvas.
2009-07-17 10:11:05 -07:00
Mitsuru Oshima
5a2b91dc14 * 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
2009-07-17 09:53:40 -07:00
Android (Google) Code Review
b5c735d35c Merge change 7106 into donut
* changes:
  Return adjusted display for WindowManager.getDefaultDisplay()
2009-07-14 16:13:38 -07:00
Romain Guy
e8b165253d Fixes #1977685. Prevent crash when the soft keyboard is brought up.
ViewRoot keeps a reference to the previously focused View and use this reference
when trying to scroll the window to the focused rect. There situations however
in which the previously focused view might have been removed from the view
hierarchy. This happens on Home for instance when you trash an icon, or with
ListView's items. This change ensures the previously focused view is still part
of the view hierarchy.
2009-07-14 13:06:42 -07:00
Mitsuru Oshima
ddd12535f0 Return adjusted display for WindowManager.getDefaultDisplay() 2009-07-14 11:11:17 -07:00
Mitsuru Oshima
1ecf5d2881 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.
2009-07-08 15:21:30 -07:00
Romain Guy
1e09597512 Fixes #1963217. Increases the invalidate region in compatibility mode.
To account for rounding errors when scaling the invalidate regions, increase
the dirty rectangle by 1 pixel in each direction
2009-07-07 11:22:45 -07:00
Romain Guy
870e09fcd2 Fixes #1963229. Introduces Context#isRestricted().
A restricted Context is a special type of Context that prevents specific features
from being used. For instance, android:onClick, used by View, can be dangerous when
used from within apps widgets. By using a restricted Context to inflate apps widgets,
widgets providers are prevented from using android:onClick.
2009-07-06 16:45:17 -07:00
Romain Guy
4296fc4d32 Fixes #1444844. Set a maximum fling velocity in scrollable views. 2009-07-06 11:48:52 -07:00
Android (Google) Code Review
22e8cbc32b Merge change 5656 into donut
* changes:
  Generate key events for actions sent to generic input connections.
2009-06-29 17:13:49 -07:00
Romain Guy
e112322872 Fixes #1949502. Prevents an NPE in View.buildDrawingCache(). 2009-06-29 14:26:04 -07:00
Dianne Hackborn
86d56cca9c Generate key events for actions sent to generic input connections.
There is a compatibility issue with the cupcake IME where the generic
input connection would just consume actions.  Late in cupcake this
stuff was reworked so that the IME would send an action command
to the app instead of an enter key event, and the compatibility code
got lost.
2009-06-29 12:00:39 -07:00
Romain Guy
fbd8f69a84 Fixes #1946141. Introduce new caching API to control scaling.
This change fixes issues with existing applications that access the drawing cache
directly. The API now lets application choose whether they want to get a scaled
drawing cache or not. The framework relies on the scaled cache for quality
purposes.
2009-06-26 16:56:32 -07:00
Mitsuru Oshima
64f59342d4 * 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.
2009-06-23 23:11:55 -07:00
Karl Rosaen
61ab270c17 Add missing 'break's in switch statement, fixing bug 1876430 2009-06-23 11:10:25 -07:00
Dianne Hackborn
a465a170ce Fix bugs 1827027, 1808979, 1820700.
These are all variations of needing to validate ranges on editing operations
coming from the IME, to account for the underlying text changing (usually being
deleted) asynchronously with the IME.
2009-06-22 14:20:17 -07:00
Romain Guy
7299807d18 Fixes #1933585. Don't dismiss ACTV's drop down when it's set to alwaysVisible.
This change also resizes the drop down automatically whenever the soft input
method is shown/hidden.
2009-06-22 11:09:20 -07:00
Romain Guy
779398e7eb Fixes a potential NPE in View.
Calling getLocationOnScreen() before the View is attached to a window can
throw an NPE. This change simply guards against the exception.
2009-06-16 13:17:50 -07:00
Romain Guy
cafdea61a8 Fixes #1914574. An NPE could be causes in lists by ViewGroup.dispatchDraw().
ViewGroup was trying to access the AttachInfo without checking whether the
info object is null. The object can be null at varioous times in the lifecycle
of a list.
2009-06-12 10:51:36 -07:00
Romain Guy
8506ab4ac0 Fixes #1886237. Views drawing cache was not generated properly.
In compatibility mode, a View's drawing cache was created at the 160 density
scale instead of the right scale.
2009-06-11 18:05:56 -07:00
Mitsuru Oshima
e5fb328825 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.
2009-06-10 15:22:17 -07:00
Romain Guy
a1f3e4aef1 Fix int to string mapping of exported properties. The value generated by the
mapping in a @ViewDebug.ExportedProperty annotation was always overriden by
the resolveId attribute.
2009-06-04 15:10:46 -07:00
Mitsuru Oshima
9189cabb0b * 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.
2009-06-03 16:28:10 -07:00
Romain Guy
ec25df9fbc Fix drawing bug: opaque invalidations should not be taken into account when the invalidated view is animating. Also add the ability to disable the auto-fade on the GestureOverlayView. 2009-05-25 04:39:37 -07:00
Romain Guy
d6a463a9f2 Add a new API to ListView: setGestures(int). This allows developers to enable gestures to jump inside the list or filter it. This change also introduces a new XML attribute to control this API. It also adds the ability to theme the GestureOverlayView from the gestures library. Finally, this adds a new VERSION header to the binary format used to store the letters for the recognizer. 2009-05-22 01:59:59 -07:00
Dianne Hackborn
c4d5d02667 Add new window manager type for a hacking second-level media surface.
This adds a new window type that is a surface that sits between the
current media type and the application window, in theory allowing you
to have two surface views in your hierarchy and control their
Z-ordering.  There is also another hidden API on SurfaceView to set
the type of your window.

All a big hack, but for the good of the commonwealth!
2009-05-21 17:50:33 -07:00
Suchi Amalapurapu
d1a9337380 Add a new window flag to display a window when keyguard is shown. 2009-05-18 10:47:24 -07:00
Romain Guy
8f1344f5e7 Fixes #1855461, #1857290 and #1857365. Certain scrollbar styles make an opaque view not be opaque. ListView and View now account for this when indicating whether they are opaque or not. 2009-05-15 16:15:04 -07:00
svetoslavganov
75986cf9bc Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut) 2009-05-14 23:47:05 -07:00
Romain Guy
5bcdff45bf Fixes #1846038. The dirty region can sometimes be modified by SurfaceFlinger. When this happens, force the view hierarchy to ignore the dirty flags. 2009-05-14 21:48:35 -07:00
Android (Google) Code Review
d1f7b3a572 Merge change 1704 into donut
* changes:
  New feature to track down #1846038. Adds the ability to export flags encoded in int values so as to make them human readable in HierarchyViewer.
2009-05-14 15:47:37 -07:00
Romain Guy
809a7f6080 New feature to track down #1846038. Adds the ability to export flags encoded in int values so as to make them human readable in HierarchyViewer. 2009-05-14 15:44:42 -07:00
Mitsuru Oshima
3d91492d69 fix window layout problem in ViewRoot
* don't scale LayoutParams (this must be app's scale).
 * scale the layout params' coordinates & size only when requesting layout.
In SurfaceView, window's x,y wasn't scaled before sending to window manager.
2009-05-14 12:59:40 -07:00
Romain Guy
13922e0303 Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build. 2009-05-13 15:42:23 -07:00
Mitsuru Oshima
c5b0e6e4eb don't scale trackball event 2009-05-12 19:26:41 -07:00
Android (Google) Code Review
6347c322b3 Merge change 1436 into donut
* changes:
  Density Compatibility mode for SurfaceView * use fixed size when requested. Otherwise, give the original size instead of scaled down size. * scale back the motion event to original size when surface view is using the orignal size.
2009-05-12 18:17:53 -07:00
Mitsuru Oshima
001a6e5244 Density Compatibility mode for SurfaceView
* use fixed size when requested. Otherwise, give the original size instead of scaled down size.
* scale back the motion event to original size when surface view is using the orignal size.
2009-05-12 18:08:20 -07:00
Android (Google) Code Review
807f23b2d8 Merge change 1057 into donut
* changes:
  * Add regoin scaling for transparent support
2009-05-12 15:45:25 -07:00
Mitsuru Oshima
b10f138e12 * Add regoin scaling for transparent support 2009-05-12 15:40:07 -07:00
Romain Guy
83b2107c4d Fixes #1846038. DrawableContainer was wrongly returning its opacity by ignoring the visibility of the currently selected layer. This change simply reports a TRANSPARENT opacity if there is no currently selected layer of if the selected layer is not visible. Otherwise it reports the opacity computed by the state class. 2009-05-12 10:54:51 -07:00
Romain Guy
7ed6acdc08 Remove useless logging on every draw. 2009-05-11 15:12:57 -07:00
Romain Guy
24443ea399 Fixes #1596240. Optimize invalidate/draw passes by marking opaque views and avoiding drawing them. Whenever a View requests an invalidate its parent check whether the view is opaque or not. When the view is not opaque, the framework behaves as it used to. However, when a view is opaque, the parent marks itself as being dirty because of an opaque view. Its parent then does the same, and so on. When the framework then starts drawing the views, it does not draw views marked as dirty opaque. If a view is dirty opaque and receives an invalidate request from a non-opaque view, it then clears the dirty opaque flag and behaves as before. 2009-05-11 14:03:52 -07:00
Mitsuru Oshima
d4cc32ca99 don't use modulo 2009-05-07 17:02:27 -07:00
Romain Guy
d90a33111b Add new setTag(int, Object) API to allow applications to specify several tags. 2009-05-06 16:49:56 -07:00
Romain Guy
9a81736176 Add the ability to specify the onClick handler with XML. The new android:onClick attribute defines the name of the method in the Activity to invoke when the button is clicked. The method has to be public and get one View parameter. 2009-05-01 10:57:14 -07:00