Commit Graph

60 Commits

Author SHA1 Message Date
Dianne Hackborn
694f79b5d1 Fix issue #2519590: Lock screen stuck in landscape mode
Well, mostly.  There is still a problem here where the first time
you show the lock screen it just doesn't draw itself.  I assume
this is something breaking in the view hierarchy as it floounders
around removing and adding new views as it is first being shown...
but no idea at this point what is the actual case.

Change-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe
2010-03-18 01:12:20 -07:00
Dianne Hackborn
2269d1572e Re-arrange android-common so framework no longer links with it.
This is the framework part, moving classes around so the framework
no longer needs to link to android-common.  Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
2010-02-25 11:39:33 -08:00
Xavier Ducrohet
bc3323bea6 Fix the layoutlib to still support fill_parent.
Change-Id: I5e1825f1f853cf9e31b2ee262edce636a030429d
2010-02-23 19:43:04 -08:00
Dianne Hackborn
e36d6e277e Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes
This is a bunch of reworking of how configuration changes are handled:

- When orientation is changing (for whatever reason), the window manager no
  longer tries to pre-emptively compute a new configuration.  Instead, it
  just determines  change is happening and tells the window manager.
- The activity manager is now responsible for giving the window manager the
  final configuration it is using.  This is both so it knows whem the
  activity manager is done with its configuration updates, and so the window
  manager can use the "real" configuration.
- When an orientation or other configuration change is happening, freeze the
  screen and keep it frozen until the activity manager has given us the
  final configuration.
- The window manager can now send new configurations to its clients during
  its layout pass, as part of a resize, if it has determined that it has
  changed.  This allows for a new View.onConfigurationChanged() API for any
  view to easily find out when the configuration has changed.
- ViewRoot now also works with the activity thread to make sure the process's
  current resources are updated to the new configuration when it receives one
  from a window.  This ensures that at the time onConfigurationChanged() and
  other view callbacks are happening, the correct configuration is in force.
- There is now a sequence number associated with Configuration, which
  ActivityThread uses to avoid using stale configurations.  This is needed now
  that it can receive configurations asynchronously from both the window
  manager and activity manager.
- The hack for keeping the locale has been removed, and underlying problem
  fixed by having Configuration initialize its locale to "unknown" instead of
  a valid default value.
2010-02-18 15:47:34 -08:00
Xavier Ducrohet
99e1cdae99 Fix in layoutlib due to some changes in the frameworks.
Some methods disappear or became abstract in the base class
(breaking @Override)

Change-Id: Id4d298ee84ba008ac97ecaaf90b19003ac09f104
2010-02-11 15:37:31 -08:00
Tobias Haamel
27b28b3f62 Introduce special UI modes for night and car usage.
The device mode is now called ui mode. Furthermore is the order of
precedence for the resources now in such a way that the ui mode needs
to be specified after the orientation and before the density.

The ui mode can be set, like it is done for the locale, as follows:

IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
config.uiMode = Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;
am.updateConfiguration(config);

To allow users to disable the car mode and set the night mode the IUiModeManager
interface is used.

The automatic night mode switching will be added in a separate change.
2010-02-11 21:25:58 +01:00
Dianne Hackborn
e83cefcef0 New external storage APIs.
This implements the spec for external storage organization, and
properly reflects how the media scanner organizes the files it finds.

Also includes package manager support for removing app private
files from external storage when the application is uninstalled.

For the new APIs and paths, the main place to look is Environment
and Context.
2010-02-09 14:20:55 -08:00
Xavier Ducrohet
6d40ee33f5 am f5a84f8a: am dfe25b0e: Merge "LayoutLib: support for custom styles." into eclair
Merge commit 'f5a84f8a7f91422f698ffbea3fabf77f2f7f77c8'

* commit 'f5a84f8a7f91422f698ffbea3fabf77f2f7f77c8':
  LayoutLib: support for custom styles.
2010-01-11 15:30:29 -08:00
Xavier Ducrohet
9ce3b775f5 LayoutLib: support for custom styles.
Change-Id: Ic6c2ef234589f45db15024261d698066aa6e2f4e
2010-01-11 14:28:03 -08:00
Romain Guy
2924a51fd0 Fix duplicate constant in layoutbridge. 2010-01-08 15:57:54 -08:00
Romain Guy
980a938c1c Deprecate fill_parent and introduce match_parent.
Bug: #2361749.
2010-01-08 15:11:38 -08:00
Tom Taylor
d4a4729c0c Update imports to android-common
Several files were moved to android-common. Update all the references
to import those files from the new location.
2009-12-21 13:59:18 -08:00
Dianne Hackborn
9ddb7df88a Fix build.
Change-Id: I70c86738e2894d7f8c51034aea8fda1585a6fcb3
2009-11-16 17:59:32 -08:00
Xavier Ducrohet
0da2676ea8 Minor fix for the parent style computation in the layoutlib.
This is an SDK change only.

Change-Id: Iae493184ae76b2e21200dd6bb48795ff74f79ab3
2009-11-15 16:15:33 -08:00
Marco Nelissen
bf6956b1d9 Add a way for wallpapers to know the delta between virtual screens. 2009-11-09 17:39:33 -08:00
Xavier Ducrohet
9a4593ffcc Support for fallback fonts in layoutlib.
BUG 2041229

Change-Id: Ib12bcb7f6d8f0e4c2b51871f8129ecf51fa938ee
2009-11-09 14:55:08 -08:00
Dianne Hackborn
7580493b01 Implement feature #2117336: Create event communication APIs for live wallpaper
Note: currently only implements an async version (no result), and not yet
actually tested.

Change-Id: Id47ed045a4b0eb309ea8c58daf41a0e03eff1d3a
2009-10-22 20:10:53 -07:00
Xavier Ducrohet
f18ccc13a6 Fix a warning output.
This was introduced by the dpi work.

Change-Id: I7c7b1596085f70532b8279139c287a2a58f57046
2009-09-28 12:59:33 -07:00
Dianne Hackborn
ffa424800d Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off
Lot of infrastructure for more things to go away when "clear system dialogs"
happens, and now do this when we turn on the lock screen.

Change-Id: I567130296fe47ce82df065ed58ef21b37416ceaf
2009-09-23 23:17:07 -07:00
Xavier Ducrohet
56a92e3ba0 Add density support to layoutlib so that bitmap are scaled if needed.
Change-Id: I00204bb136ccaa44deeafbe0ea8746fea9903341
2009-09-23 16:38:57 -07:00
Dianne Hackborn
efa199f016 Add API to send an ordered sticky broadcast.
Change-Id: Ida7081204e226db0cd07ff618c08e308a909ec0c
2009-09-19 12:05:25 -07:00
Dianne Hackborn
fa82f22f1d Fix issue #2093608: Calendar widget takes a few seconds to launch
Avert your eyes!

The key change here is that RemoteViews can now call a Context API to
start its pending intent, which inside of the activity manager we can
use to determine to cancel the timeout delay for external entities
to disrupt the home screen.

Change-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197
2009-09-17 18:01:35 -07:00
Dianne Hackborn
19382ac1a4 Some optizations to wallpaper drawing/scrolling.
First, fix some issues with the final wallpaper bitmap
we use: ensure it is always 16bpp, and make sure dithering
of its bitmap is turned off.   We take of dithering
when loading, to make sure we don't use it when drawing.

Also add new APIs to return the wallpaper with the equivalent
of Launcher's old FastBitmapDrawable.  As doing this, also load
the default wallpaper the same way as custom ones, taking care to
resize it as needed at load time.

Finally implement a mechanism for the window manager to wait
for the wallpaper to redraw at its new position before returning
from the application's call to change the offset.  This ensures
that the wallpaper better tracks the application.  Note that there
is a timeout in this wait that is relatively short, and if it
expires we will run for a while without waiting.

Change-Id: Ife449437746da85958bd447e0a6cf3d2223b398c
2009-09-14 15:29:44 -07:00
Xavier Ducrohet
ad013fae0d Replace fullHeight support by fullSize (height and width)
This is useful for linearlayout in horizontal mode.
2009-08-21 12:55:59 -07:00
Xavier Ducrohet
d604ad1ad4 Support full length rendering.
New rendering method in ILayoutBridge to specify whether the rendering
height should be the specified height or if it should be the height
required by the layout (specified height is always the minimum).
2009-08-20 15:15:35 -07:00
Xavier Ducrohet
f369b7199f am ad4bc607: Merge change 21772 into donut
Merge commit 'ad4bc607bd236dd9b06df9cf89dc5e14541ff66c' into eclair

* commit 'ad4bc607bd236dd9b06df9cf89dc5e14541ff66c':
  Fix Resources#opeRawResource(int, TypedValue) in layoutlib.
2009-08-18 13:42:09 -07:00
Xavier Ducrohet
72e4bcd3d0 Fix Resources#opeRawResource(int, TypedValue) in layoutlib. 2009-08-18 13:35:55 -07:00
Xavier Ducrohet
f7064e18fb am ace6a5cf: Merge change 21408 into donut
Merge commit 'ace6a5cfc0d14a909b4b95bdfe16609188125baf' into eclair

* commit 'ace6a5cfc0d14a909b4b95bdfe16609188125baf':
  Improved drawing/matrix support in layoutlib
2009-08-18 11:01:19 -07:00
Xavier Ducrohet
1a8c1599de am c1c432f5: Merge change 21241 into donut
Merge commit 'c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839' into eclair

* commit 'c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839':
  Layoutlib now uses the dimen status_bar_height instead of hard-coded value
2009-08-18 08:44:59 -07:00
Dianne Hackborn
8df8b2b405 Allow wallpapers to get touch events. 2009-08-17 21:23:05 -07:00
Xavier Ducrohet
2473ef5654 Improved drawing/matrix support in layoutlib
- Make the custom Canvas actually replace the original one so that it's used
  even by parts of the framework that allocate their own temp Canvas object.
- Better support for Matrix: added support for mapPoint() and mapRect(), and invert()
- Implemented drawBitmap() with a Matrix, and made the paint object not NPE when null.
2009-08-17 14:17:05 -07:00
Xavier Ducrohet
09701011bc Layoutlib now uses the dimen status_bar_height instead of hard-coded value
BUG: 2053956
2009-08-13 21:48:03 -07:00
Xavier Ducrohet
1d47a51426 am 94ff3f1f: Merge change 21063 into donut
Merge commit '94ff3f1f08805b68c5524b39024968aebcdc83ee' into eclair

* commit '94ff3f1f08805b68c5524b39024968aebcdc83ee':
  Fix handling of reference XML file in layout files
2009-08-13 18:43:54 -07:00
Xavier Ducrohet
314e0226a2 am e1b63d22: Merge change 21033 into donut
Merge commit 'e1b63d224a0a68191f087186c470cde317e3fa76' into eclair

* commit 'e1b63d224a0a68191f087186c470cde317e3fa76':
  Mock ServiceManager and AccesibilityManager to make the view renders in ADT
2009-08-13 18:43:46 -07:00
Xavier Ducrohet
08e2a4b56f Fix handling of reference XML file in layout files
This allows layout that references animation to properly load
in the layout editor in ADT
2009-08-13 11:23:40 -07:00
Xavier Ducrohet
7953e7d89b Mock ServiceManager and AccesibilityManager to make the view renders in ADT
BUG: 2049348
2009-08-12 17:20:18 -07:00
Dianne Hackborn
72c82ab992 Report wallpaper offset to the wallpaper, use this in the image wallpaper.
Wallpapers can now be just the size of the screen, and get told when their
scroll position should change to do the updating on their own.
2009-08-12 14:41:29 -07:00
Dianne Hackborn
c8a0a75e1c Implement support for scrolling a wallpaper.
This currently only works for a wallpaper that is larger than the
screen.  Set the scroll position with the new wallpaper API.  Right
now only does jump scrolls.
2009-08-11 10:03:16 -04:00
Xavier Ducrohet
eba337ad09 Reimplement TypedArray.getLayoutDimension(int, int) for the layout bridge. 2009-07-22 15:44:52 -07:00
Dianne Hackborn
a53b828635 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.
2009-07-17 16:59:08 -07:00
Dianne Hackborn
723738cfae 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.
2009-06-26 13:37:05 -07:00
Android (Google) Code Review
63e7155c7d Merge change 4696 into donut
* changes:
  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.
2009-06-18 19:33:33 -07:00
Dianne Hackborn
5c1e00b14d 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.
2009-06-18 17:10:57 -07:00
Xavier Ducrohet
83189c985a Connect TabHost/TabWidget/FrameLayout in the layout editor.
Basically this does automatically what the developer has to do in his/her
activity so that the TabHost gets tabs that connects the TabWidgets and the
content of the FrameLayout.
2009-06-18 11:56:36 -07:00
Joe Onorato
23ecae3bbb Fix SharedPrefsBackupHelper so it doesn't hard code the paths to the files.
This took quite a bit of refactoring.
2009-06-11 11:29:57 -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
Dianne Hackborn
231cc608d0 Rewrite SyncStorageEngine to use flat files and in-memory data structures.
The previous implementation used a database for storing all of its state, which could cause
a significant amount of IO activity as its tables were updated through the stages of a sync.
This new implementation replaces that in-memory data structures, with hand-written code
for writing them to persistent storage.

There are now 4 files associated with this class, holding various pieces of its state that
should be consistent.  These are everything from a main XML file of account information that
must always be retained, to a binary file of per-day statistics that can be thrown away at
any time.  Writes of these files as scheduled at various times based on their importance of
the frequency at which they change.

Because the database no longer exists, there needs to be a new explicit interface for
interacting with the sync manager database.  This is provided by new APIs on IContentService,
with a hidden method on ContentResolver to retrieve the IContentService so that various
system entities can use it.  Other changes in other projects are required to update to the
new API.

The goal here is to have as little an impact on the code and functionality outside of
SyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.
2009-05-05 15:40:53 -07:00
Mitsuru Oshima
8169daed2f AI 147976: Compatibility mode support. Part 2.
* Introduced ApplicationScale (may not be good name. CompatibilityScale? CanvasScale? Pls let me know if you have better idea)
  * Changes to RootView / SurfaceView
  - Makes the app believe it's running in the supported density/resolution.
  - Makes the window manager believe it's running at the right density/resolution.
  * Added methods to Rect/Event for scaling up/down.
  Known issues:
  * certain kind of images (such as nine patch for buttons) seesm to be loaded not by app, thus does not take the scale into account,
  which, in turn, is causing layout issue.
  * ZoomButton in MapView is rendered in wrong place
  * Transparent region on Surface is not correct
  * Specifying different densities in one process is not working.
  BUG=1770627

Automated import of CL 147976
2009-04-28 18:12:09 -07:00
Xavier Ducrohet
e30661294b AI 146485: am: CL 146411 Fix BridgeCanvas#drawRoundRect
Original author: xav
  Merged from: //branches/cupcake/...

Automated import of CL 146485
2009-04-16 12:44:37 -07:00
The Android Open Source Project
105925376f auto import from //branches/cupcake_rel/...@140373 2009-03-18 17:39:46 -07:00