3295 Commits

Author SHA1 Message Date
Kenny Root
0e2c0f37d9 Break apart queries to getInstalled* API
To avoid blowing past the Binder IPC limit, change the
PackageManagerService to have a DB-like interaction where the client
tells the service the last "row" that it read.

The fact that we use a HashMap instead of a TreeMap makes this
problematic. For now we're just making a new ArrayList for the keys and
then sorting them for each call. This can make the API slower for callers
of this, but it's probably greatly overshadowed by the cost of the data
transfer itself.

Bug: 4064282
Change-Id: Ic370fd148d4c3813ae4f2daffa1a7c28d63d5a09
2011-04-19 09:57:54 -07:00
Mike Lockwood
a8731e1e92 Merge "DO NOT MERGE: UsbService: Make USB disconnect handling for accessory mode more robust" into gingerbread 2011-03-30 14:15:51 -07:00
TK MUN
8a7fc0af61 DO NOT MERGE Disable WiMAX when "Data Enabled" is off
When user uncheck "Data Enabled" check box, WiMAX goes
into "disconnected" state.

Change-Id: I3b9bdbc16cc4ddbf7a1aac0c984cad8994c4e9f2
Signed-off-by: TK MUN <tk.mun@samsung.com>
2011-03-30 13:18:23 -07:00
Mike Lockwood
8f2e3862bc DO NOT MERGE: UsbService: Make USB disconnect handling for accessory mode more robust
Handle the case where the kernel driver is in accessory mode but we failed
to initialize it at the framework level.  On disconnnect, check to see if the
accessory kernel driver is enabled rather than checking mCurrentAccessory.
That way we will restore the USB state in the kernel even if mCurrentAccessory
is null.

Change-Id: I2c4f6edb34aae2064f4b62ec0461d1fdd8770541
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-29 23:05:59 -07:00
Robert Greenwalt
27725e8cd1 Only leave one default network up at a time.
If original refuses to tear down, tear down new one.  It's better
to have none (which will try to launch them all again) than two.

Really people shouldn't refuse the teardown request.

bug:4183397
Change-Id: I54ea1bf0d2cd2ef16fcf2eafc69895ad2fe33ffd
2011-03-29 11:36:28 -07:00
Irfan Sheriff
05f14e2bcf Merge "DO NOT MERGE Pick upstream intf with valid IP conf" into gingerbread 2011-03-25 11:01:02 -07:00
Irfan Sheriff
c0e0dbb454 DO NOT MERGE Pick upstream intf with valid IP conf
As a work around for the issue of picking
the wrong interface, add a check for selecting
an upstream interface that has a valid IP configuration

Bug: 3362306
Change-Id: I3e8ab5ef30b69f1adab755d83f5b65c078f73936
2011-03-25 10:09:55 -07:00
Robert Greenwalt
7cf5b419da Fix some alt-network issues.
Two issues.
1) remove default routes for non-default networks.
2) don't report mobile is the active default network just because
   it is active.

bug:4157610
Change-Id: I9e7c94718a5b1f08840b219b304ba3904259a65f
2011-03-25 08:59:08 -07:00
Mike Lockwood
65de3c7687 DO NOT MERGE: UsbService: Handle the case where a USB accessory connects as the device is booting
Bug: 4129297

Change-Id: I33963b0a667976d8100a60b27d66bfd0d57373e2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-19 14:38:54 -04:00
Mike Lockwood
5982bf66d4 GPS: Restore XTRA downloading at boot.
Between Froyo and Gingerbread we disabled scheduling an XTRA data download
at boot because the Qualcomm engineers thought it should not be necessary.
However, some users noticed a GPS performance degradation after receiving
their Gingerbread update, and some reported forcing an XTRA download cleared
up the problem.  This change restores the Froyo behavior of downloading
XTRA data after boot.

Bug: 3509901

Change-Id: I5a52201a2b24ce4a5d3ddb1f86340e3d5387f603
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-17 14:08:01 -04:00
Dianne Hackborn
7c2e76f0a4 Merge "Improve error reporting for issue #3183612" into gingerbread 2011-03-15 14:40:56 -07:00
Dianne Hackborn
1ab43775d8 Improve error reporting for issue #3183612
java.lang.SecurityException: Neither user 1209 nor current process
has android.permission.WAKE_LOCK.

Change-Id: I465972ab91b007e04b2ac62550f78583956a4048
2011-03-15 14:38:02 -07:00
Mike Lockwood
638d7cb3ee DO NOT MERGE: Backport more USB accessory changes from honeycomb
Change-Id: I8459c5ab9fbf0b3cad752041484a5de44ca9badd
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-15 16:50:18 -04:00
Mike Lockwood
2cc0377200 DO NOT MERGE: backport recent USB accessory changes from honeycomb
Bug: 4082651

Change-Id: Ie7c2fc796dd3c64f803acbd14210e5949683f4ed
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 20:02:43 -05:00
Robert Greenwalt
6b09916eb2 DO NOT MERGE Backport of I1f55df8a from master.
Fixes false reporting of NO_CONNECTION.
bug:4057115

Change-Id: Ie11e81180276ac3aa486607ec3a8eb1088b2ece6
2011-03-10 17:04:21 -08:00
TK MUN
4bdab1751f DO NOT MERGE WiMAX support
- In Connectivity service, start WiMAX service
- 4G icon display in StatusBarPolicy
- Add DHCP renew
- Add radio for WiMAX

Change-Id: Iffff012b270d80e84ec8fbd4486921a8adb847dd
Signed-off-by: TK MUN <tk.mun@samsung.com>
2011-03-09 22:37:08 -08:00
Mathias Agopian
cf8b94562c revert the surface purgatory list and dependent changes.
6d0f6cb Revert "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only"
6154412 Revert "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)"
37c2a37 fix [3408713] Dialog window invisible sometimes

It looks like there is a surface leak, it's unclear where it is.
Without those reverts, this would cause a leak of the associated buffers
which is far more problematic. this change might hide the surface leak.

Bug: 4078032
Change-Id: Iedcda3ffcdd2f69d41047b5c3134c1e867ff90d7
2011-03-09 17:00:41 -08:00
Mathias Agopian
951d3fec41 Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only
37c2a37 fix [3408713] Dialog window invisible sometimes
d35c666 fix [3385504] Surface flinger hang when adding dim surface
1723b04 fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
1b0114f fix a surface leak in SurfaceFlinger

Bug: 3513017

Change-Id: Ia13ed8c9cdcb1f484e177cdcaff687e7c88a10c3
2011-03-07 16:56:16 -08:00
Mike Lockwood
611af23818 DO NOT MERGE: UsbManager: Don't display activity picker if there are no apps available for an accessory
Change-Id: I1aa578887e42aef375211eadece4c1fddaf234f8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-02 22:00:59 -08:00
Mike Lockwood
ae0fdf13e2 DO NOT MERGE: UsbService: Make sure the USB accessory function is disabled when we disconnect
BUG: 3493041

Change-Id: I6aeb00a1d91d98a5a0aef4ed97ca5ba68daa24be
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-02 18:24:59 -08:00
Mike Lockwood
40bbf9295d DO NOT MERGE: Backport USB accessory support to gingerbread
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-01 23:09:12 -08:00
David 'Digit' Turner
1a7408cd64 UsbService: Remove stack-trace message during boot. DO NOT MERGE
This removes a stack trace message during the boot under emulation.

The observers tried to access a null reference when no USB configuration
is supported by the emulated device. So do not start them in this case.

+ Change a Slog.w into a Slog.i since this is an acceptable condition.

Change-Id: I801f352574716d7868f182bb6e5ee49e5b12e4f1
2011-02-27 18:39:41 -08:00
Mike Lockwood
f13ec7a3ac DO NOT MERGE: Clean up USB notifications:
Add support for separate USB connected and configuration events

Include both USB connected/disconnected and configuration state
in USB_STATE Intent

Remove redundant USB_CONNECTED and USB_DISCONNECTED Intents
Now we just have the sticky USB_STATE broadcast

Move USB disconnnect rebouncing from Tethering to UsbService

Change-Id: I1dea480f4b0daf14247cf37c5f2060498882c002
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-27 18:39:26 -08:00
Mike Lockwood
7916432b3c DO NOT MERGE UsbManager: squashed commit of:
USB: Add functions for querying if a USB function is supported and enabled.

Rename android.hardware.Usb to UsbManager and UsbObserver to UsbService

Change-Id: I920a211934d993eab8ce744c1cc7b05342389286
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-27 18:39:21 -08:00
Jamie Gennis
919853ce24 Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread 2011-02-27 15:27:22 -08:00
Robert Greenwalt
7e62fd1436 DO NOT MERGE - backport of l92a02b31 from master
Fix handling of multiple possible default networks.

bug:3328196
Change-Id: I994f1621ff82de454192945a9cae961e1710d537
2011-02-11 17:32:58 -08:00
Jamie Gennis
c86d904b71 Prevent SurfaceFlinger from using layer token 31.
Bug: 2964479
Change-Id: I81e948924bff35b8b300d409f2c09f3779bcdeec
2011-02-10 16:18:36 -08:00
Mathias Agopian
7dce874f0d fix [3421350] Killing a game that uses the accelerometer renders the device unable to sleep
when an app dies, make sure to disable all sensors that process
is connected to, regardless of wether this was the LAST connection
to this sensor.

Change-Id: I400fa1c1389b2bd05a1d19abea8a35ec5bcba273
2011-02-03 16:37:31 -08:00
Kenny Root
fa2ae1ad1a Do not check features in PackageManagerService DO NOT MERGE
PackageManagerService shouldn't check features that a package declares
that it uses because this will cause problems in the future when we add
more features that older phones didn't explicitly declare. We must rely
on markets to know about phones and filter them for us to avoid this
situation.

Bug: 3409434
Change-Id: I0d51b2de33d8110edc6824af4b5b8c901f96077f
2011-01-31 16:27:38 -08:00
Dianne Hackborn
726318b56a DO NOT MERGE: Fix screen size compatibility mode.
Cherry-picked from HC.

Change-Id: Icce2a64f187a56deefcddc3d9b22fa94effce431
2011-01-29 18:02:18 -08:00
Eric Laurent
111df679af Fix issue 2988031.
Limit SYSTEM stream volume when a headset is connected and music is playing.

Change-Id: Ieb44ae5bb53ffa9cd5fe8e317798eed279b78df8
2011-01-27 11:32:34 -08:00
Jean-Michel Trivi
2ba92c71b5 do not merge bug 3370834 Cherrypick from master
Cherripick from master CL 79833, 79417, 78864, 80332, 87500

Add new audio mode and recording source for audio communications
 other than telelphony.

The audio mode MODE_IN_CALL signals the system the device a phone
 call is currently underway. There was no way for audio video
 chat or VoIP applications to signal a call is underway, but not
 using the telephony resources. This change introduces a new mode
 to address this. Changes in other parts of the system (java
 and native) are required to take this new mode into account.
The generic AudioPolicyManager is updated to not use its phone
 state variable directly, but to use two new convenience methods,
 isInCall() and isStateInCall(int) instead.

Add a recording source used to designate a recording stream for
voice communications such as VoIP.

Update the platform-independent audio policy manager to pass the
 nature of the audio recording source to the audio policy client
 interface through the AudioPolicyClientInterface::setParameters()
 method.

SIP calls should set the audio mode to MODE_IN_COMMUNICATION,
 Audio mode MODE_IN_CALL is reserved for telephony.

SIP: Enable built-in echo canceler if available.
1. Always initialize AudioRecord with VOICE_COMMUNICATION.
2. If echo canceler is available, disable our echo suppressor.

Note that this CL is intentionally not correcting the
 getAudioSourceMax() return value in MediaRecorder.java as the
 new source is hidden here.

Change-Id: Ie68cd03c50553101aa2ad838fe9459b2cf151bc8
2011-01-26 11:20:01 -08:00
Kenny Root
138757db4f Merge "Make OBB results a one-way call" into gingerbread 2011-01-26 09:17:28 -08:00
Kenny Root
b7db2726e9 Make OBB results a one-way call
OBB result back to an application needs to be a one-way binder call.

Bug: 3353699
Change-Id: I0e625914d18a001c2fa9d764ea6463f34cf96743
2011-01-25 17:29:59 -08:00
Mathias Agopian
21956040a7 fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)
Generally we never want to lock a buffer for write access if it is at
the "head" on the surfaceflinger side. The only exception (1) is when
the buffer is not currently in use AND there is at least one queued
buffer -- in which case, SurfaceFlinger will never use said buffer
anymore, because on the next composition around, it will be able to
retire the first queued buffer.

The logic above relies on SurfaceFlinger always retiring
and locking a buffer before composition -- unfortunately this
didn't happen during a screenshot.

This could leave us in a situation where a buffer is locked by the
application for write, and used by SurfaceFlinger for texturing,
causing a hang.

Here, we fix this issue by never assuming the exception (1), it was
intended as an optimization allowing ANativeWindow::lockBuffer() to
return sooner and was justified when most of SF composition was
done in software. The actual buffer locking is now ensured by
gralloc. We could have handled screenshots in a similar way to
a regular composition, but it could have caused glitches on screen,
essentially, taking a screenshot could cause to skip a frame.

now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.

noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.
2011-01-25 14:19:13 -08:00
Mathias Agopian
68d3478860 partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)
We used to guarantee that a layer in SurfaceFlinger would never be
destroyed before all references (to its ISurface) on the client
side would be released. At some point, this guarantee got
relaxed to allow to free gralloc resources sooner. This last
change was incorrect, because:
- in implementations with reference-counting the gralloc resources
wouldn't be released anyways, until all the mapping were gone
- in implementations without ref counting, the client side
would most likely crash or do something bad
- it also caused the SharedBufferStack slot to be reallocated
to another surface, which could be problematic if the client
continued to use the surface after the window manager destroyed it.

So, we essentially reinstate the guarantee that layers won't be
destroyed until after all references to their ISurface are
released.

NOTE: This doesn't entirely fix 3306150 because there is another
problem there where the Browser continues to use a surface after it
has been destroyed.

also improve SurfaceFlinger 'dumpsys' log

list the purgatory, which shows windows that have been closed,
but for which the client still has references.
2011-01-25 14:19:13 -08:00
Mathias Agopian
8aa11d82f3 fix a small bug that caused screenshot to show garbage in some cases (DO NOT MERGE)
we were not clearing the screen entirely, which caused garbage when
the screen wasn't entirely covered by windows.

Change-Id: Ia7aa13c36a8a314e0e8427d419b16b9aa2165ddf
2011-01-25 14:18:58 -08:00
Mathias Agopian
84c6f5a44c workaround [3201922] display not on: log full of gralloc errors (DO NOT MERGE)
we make sure to call compositionComplete after everytime we do
composition with the GPU (even for the screenshot case), which is
where the buffer locks are released.

Change-Id: I450430d1e4d1ee9ce1023970642378c42cdcfa4c
2011-01-25 14:18:29 -08:00
Mathias Agopian
728d849fc9 minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. (DO NOT MERGE)
Change-Id: I1ddbbbec4fa5b2521ef3787bc28efe1bc90d0060
2011-01-25 14:18:15 -08:00
Eric Laurent
ab1fe306ae do not merge - Fix issue 3371096.
EffectModule::process() was copying effect chain input buffer to
output buffer if no effect was active instead of accumulating it.

Change-Id: If4ca75601ea69a088d0f71d88aec53e90a1dec89
2011-01-20 12:05:25 -08:00
Mathias Agopian
a97ead75db fix [3369027] Sensor.TYPE_ROTATION_VECTOR is unstable and returns NaNs when running slowly
The cut-off frequency of the lowpass filter was too high
for the sampling rate used by DELAY_NORMAL.

Now we use the same filters used for the gravity vector
(cascaded biquad at 1.5 Hz)

Change-Id: Iac290a716cc47a78337a8f0e45b103e49b4d9d78
2011-01-19 15:32:38 -08:00
Brad Fitzpatrick
0971a1367f Watchdog can get deadlocked on activity manager
Bug: 3351719
Change-Id: Idf3907709340062849a09dd094137e86256ed739
2011-01-18 16:42:20 -08:00
Irfan Sheriff
4170b46329 Merge "Do not add unsolicited events to queue" into gingerbread 2011-01-18 14:40:18 -08:00
Jeff Brown
41395459e6 Merge "Filter virtual keys after touches. (DO NOT MERGE)" into gingerbread 2011-01-18 14:31:31 -08:00
Kenny Root
34d2b41e48 Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 6c4d904851772313930f800ac7c323cf90c709bb.

Going with a different tactic that doesn't dump stuff on
PackageManagerService.

Bug: 3214719
Change-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4
2011-01-17 11:49:22 -08:00
Irfan Sheriff
1cd94ef957 Do not add unsolicited events to queue
Adding unsolicited events to response queue
results in doCommand() returning the wrong
result.

Pulling this change from master.

Bug: 3258529
Change-Id: I2a4b0bd8bb30b31682d7d61ee94a0d246bf10de2
2011-01-16 14:31:55 -08:00
Kenny Root
ea6bf36281 Deep clone settings for system package update DO NOT MERGE
The copyFrom() method was not written to create a clone of the
PackageSetting, so just create a new constructor that actually does a
clone.

Bug: 3349588
Change-Id: I24bdce6c3559e097ecb64b61585ef3b12bca491f
2011-01-14 10:32:42 -08:00
Kenny Root
e8c04db71e Merge "Add the {get,set}PackageObbPaths calls to API" into gingerbread 2011-01-12 15:03:43 -08:00
Kenny Root
6688b6c317 Merge "Allow updated system apps to retain priority" into gingerbread 2011-01-12 11:56:25 -08:00
Jeff Brown
6f71d0fedb Filter virtual keys after touches. (DO NOT MERGE)
Adds a new virtualKeyQuietTimeMillis configuration resource that sets
the duration for which virtual keys will be dropped after recent touches
on screen.  The default value is 0; it is intended to be overridden
per device using a resource overlay.

This change is designed to help in two cases:

1. Swipes from touchscreen into virtual key area.
2. Accidental taps in virtual key area while using on-screen keyboard.

Bug: 3089163
Change-Id: Id6733c83c2e2bc8d9553aa0e5c1fd74b741bec6e
2011-01-11 20:56:04 -08:00