862 Commits

Author SHA1 Message Date
Mike Lockwood
9092ab4d45 Add support for launching activities when attaching to a car or desk dock.
Categories CATEGORY_CAR_DOCK and CATEGORY_DESK_DOCK can be assigned to
activities to make them launchable on docked events.
This is a better mechanism than listening for ACTION_DOCK_EVENT with a broadcast receiver.

Change-Id: Ic5f3ab3555ce02ca922bc31ebba41978cefe8bda
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-16 14:43:21 -04:00
Android (Google) Code Review
2a66eee3ef Merge change 25157 into eclair
* changes:
  Remove deadlock in PackageManager when installing or upgrading packages. PM first creates a temporary file from the input package uri before installing it. if the package uri points to a content uri, the content provider  has to be retrieved via the ActivityManager which could cause deadlocks with the package manager locks being held. Clean up by always copying or creating temporary files before acquiring these locks. Fix issue when restoring a failed upgrade for third party apps.
2009-09-16 12:36:36 -04:00
Chung-yih Wang
4337476a66 Fix the missing part for reading enterprise fields in wifi configuration
+ refactor the enterprise fields.
2009-09-16 14:28:42 +08:00
Dianne Hackborn
93e462b79d Implement issue #1780928: Need support hiding nav keys.
This implements support for devices whose hardware can hide
their navigation keys.  It works much like the existing keyboardHidden
configuration, and for compatibility uses the same configuration
change bit.

Also add FLAG_TURN_ON_SCREEN for windows, which has the system
cause the screen to be turned on when the window is displayed.
Great fun when used with FLAG_SHOW_WHEN_LOCKED!

Change-Id: I0b867f19af85cfd8786a14cea194b34f7bdd9b7a
2009-09-15 22:50:40 -07:00
Android (Google) Code Review
6ee7b04d27 Merge change 25192 into eclair
* changes:
  Some improvements for wallpaper configuration.
2009-09-15 22:06:24 -04:00
Dianne Hackborn
9767e41d92 Some improvements for wallpaper configuration.
This introduces a new activity that you can derive from to implement
a wall paper configuration activity.  This is supposed to select
a theme based on whether it is being run to configure a real wallpaper
or a preview, but this is going to be more difficult to do than I
thought. :(

Also fix a problem in the white theme where the list view's background
was being set to white, so it wouldn't work on a transparent bg.

Change-Id: I26d5a8695a3c878a1664eb09900eded57eaff990
2009-09-15 18:59:31 -07:00
Mathias Agopian
cc9f52f943 make the window-shade use an opaque surface if possible 2009-09-15 18:23:59 -07:00
Suchi Amalapurapu
ee5ece4a4d Remove deadlock in PackageManager when installing or upgrading packages.
PM first creates a temporary file from the input package uri before installing it.
if the package uri points to a content uri, the content provider  has to be retrieved via the ActivityManager
which could cause deadlocks with the package manager locks being held.
Clean up by always copying or creating temporary files before acquiring these locks.
Fix issue when restoring a failed upgrade for third party apps.
2009-09-15 16:42:20 -07:00
Mike Lockwood
237a29923a Move backlight brightness from HardwareService to PowerManager
to prevent apps from changing the hardware behind its back.
Fixes b/2041941 Lock screen flashes the screen very bright before dimming

Change-Id: Ice757f7ae87902bdfb3634471cf44f020ebfaae4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-15 15:47:09 -04:00
Ken Schultz
f02c0740d3 DockObserver wakes the display when broadcasting a change
- normal display timeout applies after wake

Signed-off-by: Ken Schultz <kschultz@motorola.com>
2009-09-15 10:58:05 -04:00
Mike Lockwood
d20ea369b2 PowerManagerService: Use 5 cm threshold for the proximity sensor.
This eliminates the assumption that the proximity sensor will always return
zero distance when it is active.

Change-Id: I6245b074e4c42aeae3a181e6a5087554517046d2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-15 02:29:28 -04:00
Dan Murphy
951764b970 Add automatic lighting control framework
Add changes to have the ability to turn on and off the
automatic light sensing for the device.  This is fully configurable
and is by default not  present.  Vendors should override the ALS setting
to enable the automatic lighting controls.

These changes will add a check box to the Brightness settings menu to give control
to the user to allow the device's display lighting to be controlled via the slide bar
or the auto lighting system.

If the user selects auto then the slide bar will become invisible.  Manual mode
will present the slide bar to the user.

Change-Id: I146a6d75b99b08c9b839218ce6b85adf21f9fd73
Signed-off-by: Dan Murphy <D.Murphy@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-15 02:29:15 -04:00
Dianne Hackborn
83fe3f5592 Last big work on #1991910: Make swipes work with capacitive keys
This takes care of allowing us to cancel the back button.  The
back button is a bear because it is strewn all over the place --
everywhere you can close something, there is some code looking
for the back button that now needs to deal with being canceled.

The main things changed are activity (of course), dialog,
input method, search dialog.  There are some other misc places
in the framework (and some I missed here that I will get in a
second pass).

To facility all of this, the key dispatching APIs now provide
a lot more support for dealing with looking for cancelled keys,
and incidentally also provide an actual API for catching long
key presses.  This also helped clean up the code in PhoneWindow
where it deals with all of the combinations of key pressed and
releases.  (And also allows people to override
Activity.onKeyLongPress() to provide a different long press
action for a standard key like search.)

And while I was doing this, I reworked how we detect long
presses by having this be part of the key event delivered by
the window manager.  This should greatly reduce (hopefully
outright eliminate) the problems with long presses being
mis-detected when an application is being slow.

Change-Id: Ia19066b8d588d573df3eee6d96e1c90fdc19f57d
2009-09-14 17:53:52 -07:00
Android (Google) Code Review
d023f9a9a9 Merge change 24829 into eclair
* changes:
  Some optizations to wallpaper drawing/scrolling.
2009-09-14 18:45:42 -04: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
Mike Lockwood
a625b38cb3 PowerManagerService: Fix keyboard backlight support:
Turn off keyboard backlight immediately when keyboard is closed.
Changing keyboard visibility state signals user activity except in the case
where the keyboard is closed and the screen is already off.

Fixes bugs b/1351141 and b/1319625

Change-Id: If4bf2c1dd8e0c2bc08196e443b6103a6041f27e1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-14 15:08:37 -04:00
Robert Greenwalt
7c9bf7caa2 Don't init wifiChannels until after supplicant up
The supplicant can take up to 15 seconds to start - setting the number of wifi channels
immediately after requested wifi start often will fail.

Changed to set the number of channels when the supplicant is reported as alive.

bug:2083601
2009-09-11 17:23:35 -07:00
Nick Pelly
005b228cdf API_CHANGE: Cleanup, javadoc and unhide more Bluetooth API.
This is a large batch, and covers:

-- Bluetooth Device Discovery --
BluetoothAdapter.ACTION_DISCOVERY_STARTED
BluetoothAdapter.ACTION_DISCOVERY_FINISHED
BluetoothAdapter.startDiscovery()
BluetoothAdapter.cancelDiscovery()
BluetoothAdapter.isDiscovering()

-- Bluetooth bonding (pairing) --
BluetoothAdapter.getBondedDevices()
BluetoothDevice.ACTION_BOND_STATE_CHANGED
BluetoothDevice.EXTRA_BOND_STATE
BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE
BluetoothDevice.BOND_NONE
BluetoothDevice.BOND_BONDING
BluetoothDevice.BOND_BONDED
BluetoothDevice.getBondState()
BluetoothDevice.createBond()
BluetoothDevice.cancelBondProcess()
BluetoothDevice.removeBond()

-- BluetoothClass --
BluetoothDevice.ACTION_CLASS_CHANGED
BluetoothDevice.EXTRA_CLASS
BluetoothDevice.getBluetoothClass()
BluetoothClass.Service.*
BluetoothClass.Device.Major.*
BluetoothClass.Device.*
BluetoothClass.getDeviceClass()
BluetoothClass.getMajorDeviceClass()
BluetoothClass.hasService()

-- Misc BluetoothDevice --
BluetoothDevice.ACTION_ACL_CONNECTED
BluetoothDevice.ACTION_ACL_DISCONNECTED_REQUESTED
BluetoothDevice.ACTION_ACL_DISCONNECTED
BluetoothDevice.ACTION_DISCOVERED
BluetoothDevice.ACTION_NAME_CHANGED
BluetoothDevice.EXTRA_DEVICE
BluetoothDevice.EXTRA_NAME
BluetoothDevice.EXTRA_RSSI

-- Misc BluetoothAdapter --
BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED
BluetoothAdapter.EXTRA_LOCAL_NAME
BluetoothAdapter.checkBluetoothAddress()

I deprecated BluetoothIntent and moved each intent into the class it relates
to.

Change-Id: I877b1280428ab46278b2bc25668bb44cda22dc36
2009-09-10 18:52:21 -07:00
Android (Google) Code Review
f3f7200319 Merge change 24588 into eclair
* changes:
  Fix for multi-apn MMS access.
2009-09-10 21:10:58 -04:00
Robert Greenwalt
8206ff30c2 Fix for multi-apn MMS access.
Mark cellular variants with the same availability, regardless of which are currently in use.
Availability just means the radio is enabled and sees the network, but has no guarantees that
we could connect to an APN if requested.

Fix the requestRouteToHost logic to support apn switches without WIFI.

bug:2093841
2009-09-10 18:01:01 -07:00
Christopher Tate
5a8a1151e2 Try not to crash the system server because of corrupt restore data
When we're about to allocate an array based on the restore data for purposes of
unflattening a signature block, don't automatically assume that it's valid.  If
it's corrupt [and we've seen this in practice] we can wind up trying to allocate
an array with 1.8 million objects, and throw an OutOfMemoryError, bringing down
the system.

This change arbitrarily decides that no package should have more than 20
signatures in its block, and aborts the restore if the metadata is thus revealed
to be corrupt.
2009-09-10 16:08:47 -07:00
Dianne Hackborn
bcbcaa7edd Wallpapers, animations, pending intent.
Some more tweaks and fixes to wallpapers.  Make sure wallpapers are
told they are not visible when the screen is off.  Add some new animations
for transitions across tasks, and fiddle with many of the existing
animations.  Clean up the relationship between translucent activities
and animations.  Add new API to start a PendingIntent from an
activity.

Change-Id: Ie0bf45fe44081bb6982c75361257a55d9cd9d863
2009-09-10 12:08:50 -07:00
Mike Lockwood
a7ef2698a6 MountService: Use correct icon for SD card notifications.
Change-Id: Ia15847c48fce7957f1a376e173d39137b661d51c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-10 11:19:57 -04:00
Nick Pelly
b24e11baac API_CHANGE
Deprecate BluetoothError.java.

I spent a lot of time experimenting with a class BluetoothError to enumerate
the many error codes returned by the Bluetooth API. But at the end of the day
they were never used. The vast majority of method calls only really need a
true/false error value, and often not even that.

Methods which do need more detailed error enumeration (for example, bonding
failures) can have there own enumerated error codes. But there is no need
for a common set of error codes.

Also change the IPC failed warnings in BluetoothA2dp to Log.e. These indicate
a very serious error.

Introduce BluetoothAdapter.ERROR and BluetoothDevice.ERROR as helper sentinel
values.
2009-09-09 10:52:18 -07:00
Nick Pelly
de893f5503 API_CHANGE
Another round of Bluetooth API clean up, javadoc'ing and unhide'ing.

-- Symbols for getting/setting bluetooth state --
BluetoothAdapter.ACTION_STATE_CHANGED
BluetoothAdapter.EXTRA_STATE
BluetoothAdapter.EXTRA_PREVIOUS_STATE
BluetoothAdapter.STATE_OFF
BluetoothAdapter.STATE_TURNING_ON
BluetoothAdapter.STATE_ON
BluetoothAdapter.STATE_TURNING_OFF
BluetoothAdapter.isEnabled()
BluetoothAdapter.getState()
BluetoothAdapter.enable()
BluetoothAdapter.disable()

-- Symbols for getting/setting scan mode --
BluetoothAdapter.ACTION_SCAN_MODE_CHANGED
BluetoothAdapter.EXTRA_SCAN_MODE
BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE
BluetoothAdapter.SCAN_MODE_NONE
BluetoothAdapter.SCAN_MODE_CONNECTABLE
BluetoothAdapter.SCAN_MODE_DISCOVERABLE
BluetoothAdapter.getScanMode()
BluetoothAdapter.setScanMode()

-- Symbols for getting address/names --
BluetoothAdapter.getAddress()
BluetoothAdapter.getName()
BluetoothAdapter.setName()
2009-09-09 10:52:02 -07:00
Joe Onorato
f9e0e6bd5e Fix b/2105945 - Windowshade not closed when device locked. 2009-09-08 16:24:36 -04:00
Dianne Hackborn
eb034652c2 Implement all of the infrastructure for configuring wallpapers.
Actually being able to configure a wallpaper relies on additional
work in the launcher and wallpapers that will be in another change.
Also note that this breaks all existing wallpapers, since they now
need to include a meta-data item about themselves.  This also
will be fixed in another change.

Change-Id: I97d2c2bd07237abc32f92b9147c32530a2f73c71
2009-09-07 22:48:02 -07:00
Android (Google) Code Review
c916c04495 Merge change 24099 into eclair
* changes:
  Fix issue #2095422: Some fades from opaque to transparent don't work
2009-09-07 10:16:20 -07:00
Android (Google) Code Review
510469fbe1 Merge change 24098 into eclair
* changes:
  Fix bug where we wouldn't release remote provider references.
2009-09-07 10:14:44 -07:00
Dianne Hackborn
0586a1b77a Fix issue #2095422: Some fades from opaque to transparent don't work
ViewRoot was using Surface.clear(), which has different behavior
in different processes -- in the system process it would kill the
surface, causing all windows in that process to immediately disappear
instead of animating away.

This change makes Surface.release() public and uses that instead.  It
also renames Surface.clear() to Surface.destroy().

Also fixed some issues in the window manager that were causing the
wallpaper to not get immediately resized when the orientation changes
and its target window is removed and re-added.

Change-Id: I2a992e365cf5747511f0bf1193db32dc2525b218
2009-09-07 01:01:15 -07:00
Dianne Hackborn
a1e989b575 Fix bug where we wouldn't release remote provider references.
The check for whether the release call is coming from another process was
very broken, and just happened to work by chance.  It also never worked for
apps that had code running in two different processes, with one process
using a provider in another of its processes.  Also a little cleanup and
debugging logs for provider management, and removal of that increasingly
annoying log about services being stopped.

Change-Id: Ibc298e674db7d35c4b6499fb32e30929a141b670
2009-09-06 21:15:41 -07:00
Bob Lee
e540833fdf Integrated the profiler into the framework. We run it all the time if the persist.sampling_profiler
system property is set. Saves snapshots to the SD card.
2009-09-05 11:53:18 -07:00
Dianne Hackborn
25994b4306 Wallpapers: new transitions, hiding when not visible, other cleanup.
This is work on the transitions with wallpapers.  There are now new
animations specifically for leaving the wallpaper and returning to
it, which allow us to have a consistent animation when entering home
and returning to it.  I also renamed the existing animations across
wallpapers, and cleaned up some junk in the various interpolators.

This also now hides the wallpaper surface when it is not visible,
to get rid of the wallpaper flickers people complained about albeit
in a somewhat brutal way. :)  (Though really returning us to the
previous behavior with the same previous bugs and name back to them
not being very visible, yay!)  There is are also some bug fixes
here and there about managing the wallpaper visibility that this
change revealed.

Change-Id: I913990a9a81651728122ed2e1101b75ed2c36fcb
2009-09-04 14:28:42 -07:00
Mike Lockwood
445f43081e NotificationManagerService: Only blink red battery low LED when not charging.
Change-Id: Ie5836ae99d4ca19d9d062e7c78c8b40cd8d6c29d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-04 11:06:46 -04:00
Dianne Hackborn
dd9b82c283 Add better service reporting.
This will be used elsewhere.

Change-Id: Id561fa7fed5eb65446312cb697813483903d33a6
2009-09-03 14:11:02 -07:00
Mike Lockwood
d42685d5de Add support for running apps with uid/gid AID_LOG by specifying android.uid.log in the manifest
This is needed to allow the BugReportService to start the dumpstate service.

Change-Id: I12cab23767c919592da102c654b6b80416717661
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-03 13:47:54 -04:00
Android (Google) Code Review
e3c393d3d1 Merge change 23787 into eclair
* changes:
  Fix issue #2097313: Latin IME crashes first use
2009-09-02 23:11:16 -07:00
Dianne Hackborn
cc27870098 Fix issue #2097313: Latin IME crashes first use
Change-Id: I50c48b66aff5aff42e71058591d20775eba73fed
2009-09-02 23:08:45 -07:00
Dianne Hackborn
bdd52b264a Fix issue #2097060: Screen all messed up when setup wizard finished
The new code to rebuild the window list was missing some app tokens.
Also there were a few other smaller bugs floating around.

Change-Id: I7734917af0b76ee4aa304e6a5321401d87640f89
2009-09-02 21:54:18 -07:00
Dianne Hackborn
a34f1ad7c3 Fiddle system boot ordering.
This makes the system a little more careful to not start third party
code until it is ready to.

Also fix a little bug in SyncManager that would cause it to crash
during boot if sync was in a failure state.

Change-Id: Ib2d287d8441d155d393fe740a5f98690895fd358
2009-09-02 17:39:54 -07:00
Dianne Hackborn
a8f6018d6c Work on issue #2079167: Flickering issue across multiple UI
This addresses a few parts of the bug:

- There was a small issue in the window manager where we could show a window
  too early before the transition animation starts, which was introduced
  by the recent wallpaper work.  This was the cause of the flicker when
  starting the dialer for the first time.

- There was a much larger problem that has existing forever where moving
  an application token to the front or back was not synchronized with the
  application animation transaction.  This was the cause of the flicker
  when hanging up (now that the in-call screen moves to the back instead
  of closing and we always have a wallpaper visible).  The approach to
  solving this is to have the window manager go ahead and move the app
  tokens (it must in order to keep in sync with the activity manager), but
  to delay the actual window movement: perform the movement to front when
  the animation starts, and to back when it ends.  Actually, when the
  animation ends, we just go and completely rebuild the window list to
  ensure it is correct, because there can be ways people can add windows
  while in this intermediate state where they could end up at the wrong
  place once we do the delayed movement to the front or back.  And it is
  simply reasuring to know that every time we finish a full app transition,
  we re-evaluate the world and put everything in its proper place.

Also included in this change are a few little tweaks to the input system,
to perform better logging, and completely ignore input devices that do not
have any of our input classes.  There is also a little cleanup of evaluating
configuration changes to not do more work than needed when an input
devices appears or disappears, and to only log a config change message when
the config is truly changing.

Change-Id: Ifb2db77f8867435121722a6abeb946ec7c3ea9d3
2009-09-02 17:20:25 -07:00
Dianne Hackborn
f52e9f7033 am e1b4437d: Revert "Fix content provider"
Merge commit 'e1b4437dba7c33566af55d4e5d27d35729678684' into eclair

* commit 'e1b4437dba7c33566af55d4e5d27d35729678684':
  Revert "Fix content provider"
2009-09-02 15:35:01 -07:00
Suchi Amalapurapu
0214e9475f For intent ACTION_PACKAGE_CHANGED, there could be a lot of broadcasts related to enabling/disabling
components by apps which could result in thrashing on the PackageManager. For apps that
    do not want to be restarted when such a broadcast is sent, we can just aggregate these broadcasts and
    handle them at one go.
    Changes include:
    New structure to hold pending broadcasts by class name. If a component is enabled or disabled frequently
    aggregate component enabled/disabled settings in this structure in a 10 second window and then
    send out the accumulated list of broadcasts to the ActivityManager.
    A new Handler implementation handles this message
    Add new attribute name EXTRA_CHANGED_COMPONENT_NAME in broadcast intent Intent.ACTION_PACKAGE_CHANGED for
    additional information for apps like Launcher.
    Rename a couple of parameters, the names were too jarring.
2009-09-02 12:32:32 -07:00
Christopher Tate
5e1ab335e6 Expand apps' control over the settings restore process
Applications can now specify two more aspects of the restore process:  whether
they need to run with their own custom Application subclass rather than being
launched in the usual restricted mode during restore, and whether it's okay for
the backup manager to kill the app process once restore has completed.  The new
manifest attributes for these are, respectively, android:restoreNeedsApplication
and android:killAfterRestore.

If unspecified in the manifest, restoreNeedsApplication is false, and
killAfterRestore is true.

In order to support kill-after-restore cleanly, this change also adds a new
system-process-only interface to the Activity Manager, which will schedule a
"commit suicide" event on the target app's main thread looper.

The framework backup agents have been given the appropriate new backup
attributes as well.
2009-09-01 20:59:36 -07:00
Dianne Hackborn
e1b4437dba Revert "Fix content provider"
Argh!

This reverts commit da706900f45dca82d89f090e4e52fa5d1772c495.
2009-09-01 19:21:08 -07:00
Dianne Hackborn
ff0dc82c1c am 6a98f8d9: Merge change 23499 into donut
Merge commit '6a98f8d93e4ddd407baad8d9b7481a892001d281' into eclair

* commit '6a98f8d93e4ddd407baad8d9b7481a892001d281':
  Fix content provider
2009-09-01 19:11:44 -07:00
Dianne Hackborn
da706900f4 Fix content provider 2009-09-01 13:57:11 -07:00
Dianne Hackborn
3025ef332c Various infrastructure to support a running services UI.
Some of this is temporary (in particular the two approaches for getting
process memory, one working but horrible, the other not working but
preferred) until I figure out the best way to do it.

Change-Id: I8c8f25062d481fcea22a47d459b083d2fd8a5040
2009-09-01 11:16:25 -07:00
Mike Lockwood
9aa1fa2d36 LocationManagerService: Remove caching of last known locations to flash.
Change-Id: Ibbab20a7c48823fb74c2e175824f55248f25bf8a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-01 07:51:15 -04:00
Mike Lockwood
3a76fd6279 LocationManagerService: Add null pointer check and remove useless finalize() method.
Change-Id: I4017d38a1bea7564a85575486a7c2aef569dfe5d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-01 07:26:56 -04:00