Commit Graph

102 Commits

Author SHA1 Message Date
Dianne Hackborn
fd12af4e76 Various tweaks to try to improve low memory behavior.
- Reduce the amount that we ask processes to GC after a significant
  operation occurs, but introducing a minimum time between GCs and
  using this in various ways to schedule them.

- Don't spam all of the processes with onLowMemory().  Now deliver
  these using the same gc facility, so we do the processes one at a
  time, and don't allow the same process to get this call more than
  once a minute.

- Increase the time a service must run before we will reset its
  restart delay to 30 minutes (from 10).

- Increase the restart delay multiplication factor from 2 to 4.

- Ensure that we don't restart more than one service every 10 seconds
  (unless some external event causes a service's process to be started
  for some other reason of course).

- Increase the amount of time that a service must run before we
  decide to lower it to a background process.

And some other things:

- Catch IllegalArgumentException in ViewRoot like we do for no
  resources to avoid the system process crashing.

- Fix a number of places where we were missing breaks between the
  activity manager's message dispatch func(!!).

- Fix reason printed for processes in the background.

- Print the list of processing waiting to GC.
2009-08-27 01:03:24 -07:00
Dianne Hackborn
0d221012ff Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA
It turns out we were not returning the density for anything retrieved from a
TypedArray...  which basically means any bitmap references from a layout or style...!!!

This is now fixed.

Also fiddle with the density compatibility mode to turn on smoothing in certain situations,
helping the look of things when they need to scale and we couldn't do the scaling at
load time.
2009-07-29 19:44:01 -07:00
Android (Google) Code Review
159e1a9a13 Merge change 8883 into donut
* changes:
  fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN
2009-07-28 16:12:58 -07:00
Mathias Agopian
c87c4a3e3b fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN 2009-07-28 15:59:52 -07:00
Romain Guy
e551dc76bc Remove warning in non-eng builds. 2009-07-28 15:30:11 -07:00
Dianne Hackborn
11ea33471e Allow for screen density drawables in compatibility mode.
This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode.  In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable.  For
the small rare chance of them breaking, it worth getting the correct
graphics.  Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
2009-07-24 10:47:15 -07:00
Mitsuru Oshima
589cebe2d5 * 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)
2009-07-23 13:38:01 -07:00
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