363 Commits

Author SHA1 Message Date
Jared Suttles
8b1243e5e4 jni: GpsLocationProvider: Check for pending callbacks before waiting
This change fixes a corner case where a callback may not get handled until
a second callback arrives.  This can happen because there is a significant
section of the wait_for_event function where the mutex is not locked, and
the sPendingCallbacks member could be updated.  We now check to see if
there is a pending callback to handle before we wait for another callback.

Change-Id: I20cfae1e780944bb74133940dda032efc4c55540
Signed-off-by: Fred Fettinger <fred.fettinger@motorola.com>
Signed-off-by: Jared Suttles <jared.suttles@motorola.com>
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-06 08:28:58 -05:00
Eric Laurent
bda7469d9b Fix issue 2203561: Sholes: audio playing out of earpiece.
Create a new IAudioTrack interface to AudioFlinger when start() fails due to a broken pipe error.
Do the same if start fails due to the same error after time out in obtainBuffer().
Do not indicate that the AudioTrack is started to AudioPolicyManager if IAudioTrack start fails.
This avoids that an AudioTrack keeps a dead IAudioTrack after a media server crash.

Same modifications for AudioRecord.

Add a flag to ToneGenerator indicating that the callback thread can call Java. Without it, when the media server crashes and restarts, the AudioSystem error callback will crash in JNI if the IAudiotrack is created from AudioTrack callback thread.
2009-11-04 23:47:21 -08:00
Android (Google) Code Review
1864d01f2b Merge change Iae849da2 into eclair
* changes:
  add table maskfilter
2009-10-30 17:03:18 -04:00
Mike Reed
0e1e623011 add table maskfilter
hidden for now, since it need only be seen by Launcher2

http://b/issue?id=2210685
2009-10-30 08:11:58 -04:00
San Mehat
957e58670b process: Disable debugging
Signed-off-by: San Mehat <san@google.com>
2009-10-29 13:59:32 -07:00
Android (Google) Code Review
8e312e8160 Merge change Ia5109a87 into eclair
* changes:
  process: Add debug code to log process group transitions
2009-10-29 15:02:53 -04:00
San Mehat
a5109a878e process: Add debug code to log process group transitions
Signed-off-by: San Mehat <san@google.com>
2009-10-29 11:50:43 -07:00
Jack Palevich
4a94318454 Avoid trying to throw multiple exceptions at once.
The typical usage pattern for the get_char helper function is:

    bool thrown = false;

    n = get_char(env, s, 0, 1000, &thrown);
    n += get_char(env, s, 1, 100, &thrown);
    n += get_char(env, s, 2, 10, &thrown);
    n += get_char(env, s, 3, 1, &thrown);
    if (thrown) return false;

As you can see, get_char is called multiple times before the
thrown flag is checked. If the input text contains multiple
incorrect characters, then we have to guard against throwing
the same exception multiple times. (Because doing so will
cause the Dalvik runtime to abort.)

The fix is simple: modify get_char to check if an exception
has already been thrown before throwing a new exception.
2009-10-28 19:38:05 -07:00
Android (Google) Code Review
78a50aa1db Merge change If3c30fc9 into eclair
* changes:
  Patching in hidden API to allow app managed preview frame buffers.
2009-10-23 22:08:30 -04:00
Andrew Harp
94927dffce Patching in hidden API to allow app managed preview frame buffers.
Commit-Id: If3c30fc932697afa966cc97b17749e9996de92ee
2009-10-23 01:44:47 -04:00
Jack Palevich
c620a52b69 Add size checks for glBufferData and glBufferSubData
Without the size checks it's possible for calls to glBufferData
and glBufferSubData to read off the end of the Buffer object's
data, which can cause page faults.

Fix end-of-line characters for the "spec" files. (That's why
every line of these files is changed.)

Enhance our code emitter to properly handle bounds checks for
possibly-null pointers.
2009-10-21 11:02:44 -07:00
Nick Pelly
53f33d8477 Revert "Remove STOPSHIP comment."
This reverts commit 3d0726b4d8a30e57852b70f1dcf4d8d20508cd1e

Change-Id: Ie1ce5d09cc0b799ef0799f30eedc95f0ca5d3fad
DrNo: jerrryw
2009-10-14 12:25:29 -07:00
Nick Pelly
3d0726b4d8 Remove STOPSHIP comment.
Change-Id: I2492bffe57bded65fdbef5cf98e22cef3937e537
DrNo: eastham
Bug: 2089423
Joke: Why don't anteaters get sick? Because they're full of anty-bodies!
2009-10-14 11:46:18 -07:00
Nick Pelly
16fb88a673 Encourage developers to connect RFCOMM by UUID instead of Channel.
Hide createRfcommSocket(int channel)
Add createRfcommSocketWithServiceRecord(UUID uuid)

Rename listenUsingRfcomm(String,UUID) -> listenUsingRfcommWithServiceRecord(..)

Now we have a complete API for developers to make peer-peer RFCOMM connections
with hard-coding the limited (30) RFCOMM channels, instead using SDP lookup
of an UUID.

This commit addresses two serious bugs:
- Do not throw IOException on accepting an incoming RFCOMM connection with
  BluetoothSocket. This was a regression from commit 24bb9b8af4ff6915
- Workaround failure of bluez to update SDP cache when channel changes by
  trying to use the same RFCOMM channel on the server every time, instead
  of picking server channels randomly. This is a pretty ugly workaround,
  and we are still trying to fix the caching issue - but with this
  workaround we are at least shippable and apps will work at least until
  they start colliding on the 30 RFCOMM channels.

DrNo: eastham
Bug: 2158900
Joke: What did the digital watch say to his mom? "Look mom no hands."
Change-Id: Ia4879943b83afac06b6f1a3f2391cf1628afce7d
2009-10-07 23:25:24 +02:00
Mike Reed
a78b0a2d9e add (hidden) setHasAlpha() to allow clients like the view's cache to hint that a bitmap is opaque.
Knowing that a 32bit bitmap is opaque is a performance boost for some blits.
2009-10-07 11:38:05 -07:00
Wu-cheng Li
36f68b8f24 Add zoom functions and sendCommand.
b2060030
2009-10-06 13:25:10 -07:00
Nick Pelly
24bb9b8af4 Provide an API for apps to use a dynamic RFCOMM channel and SDP record.
Hide listenUsingRfcommOn(int channel)
Add listenUsingRfcomm(String name, ParcelUuid uuid)

The new API automatically finds a free RFCOMM channel and registers an SDP
record with the given uuid and name. The SDP record is automatically
removed when the socket is closed, or if the application dies.

Apps are prevented from registering SDP records with the uuid of system
Bluetooth profiles, such as A2DP, HFP and OPP.

Apps are prevented from removing SDP records that they did not create. This is
tracked by pid.

TODO: Provide an API for the connecting app to look up an SDP record.

Bug: 2158900
DrNo: eastham
Joke: "What did the dog say to the tree? bark."
Change-Id: Ia92f51c34615a7270a403255ad2b8faa98c4a3f5
2009-10-06 05:57:50 -07:00
Jaikumar Ganesh
a01a4479a1 Fix rfcomm socket connect return code.
The phone would say connected even when powered off.
Bug id: 2161890
DrNo: Hiroshi

Change-Id: I5dbd19941a80e86c7462670fb844a29cf4eb0908
2009-10-01 19:12:18 -07:00
Jaikumar Ganesh
54172d92af Try to reconnect twice when the rfcomm error code is Connection Refused.
This happens when the the remote headset is in a bad state or is
not accepting connections. Try twice before giving up.

Change-Id: I55e15bad6b72904b8e4ccbca89e17e9bd3ddb61e
2009-09-30 17:46:17 -07:00
Zhu Lan
f9bbe1e71a Bluetooth A2DP suspend/resume functionality
Change-Id: I8366852fa9b6ff9dacf18db00ea1c2be0c00ff34
2009-09-29 20:50:02 -07:00
Dianne Hackborn
afa78967b8 Hack to fix issue #2125365: Sports Trivia compatability with Eclair
Adds a mechanism to tell Paint the scaling factor its target
canvas will have, for it to compute font metrics based on the
correct font size.  Only TextView uses this, but that is enough
for the large majority of apps.

Change-Id: I6cacaa0dd26d40ee3ad959bed0028678d6e9016e
2009-09-28 17:33:54 -07:00
Nick Pelly
57a2292bff Bounds check read and write path in native code.
Already checked in Java, but requested by security review.

Change-Id: I5314dbc32546278b977236a154fba03f38610b1a
2009-09-25 14:13:49 -07:00
Nick Pelly
1a42cfac15 Use LM_SECURE when auth && encrypt.
LM_SECURE enforces man in the middle (MITM) protection.

Change-Id: Ia800bb657b429f8872d72072f7c9450a74028af0
2009-09-24 19:36:27 -07:00
Android (Google) Code Review
0665ae22aa Merge change 26939 into eclair
* changes:
  Fix 2101425: Camera crashes spontaneously in preview.
2009-09-24 19:59:08 -04:00
Chih-Chung Chang
6157de0e2d Fix 2101425: Camera crashes spontaneously in preview.
The problem is we missed an "obj" parameter while calling
postEventFromNative (which put it in a field of a Message object),
so a garbage value on stack is used.

When the GC tries to follow that "obj" field, expecting to find
another object, it crashes.
2009-09-24 15:38:18 -07:00
Android (Google) Code Review
9251c34459 Merge change 26851 into eclair
* changes:
  use new setDither on ImageRef to retain that setting for purgeable images
2009-09-24 12:38:23 -04:00
Mike Reed
17154417e8 use new setDither on ImageRef to retain that setting for purgeable images 2009-09-24 12:35:27 -04:00
Dianne Hackborn
de0dfb7b65 Fix issue #2125720 Weather Forecast Widget - graphics do not scale
I forgot to add the new density field to the Bitmaps' parcelable data.

Change-Id: I77cf3e93e356297e0caed6fc71b62b5cd8f79124
2009-09-23 14:26:02 -07:00
Wu-cheng Li
ffe1cf251a Unhide Camera lock and unlock API. 2009-09-21 07:28:44 +08:00
Jaikumar Ganesh
995ae82f38 Make removeBond() call async.
This call has been synchronus since Bluez3.36.
However, since the semantics for all Bluetooth API calls are
asynchronous make this so too. It does fix an occasional ANR
seen while unpairing.

Change-Id: If81f8ec262ea1f6f62775282ab33855a8669c41a
2009-09-20 11:28:34 -07:00
Jaikumar Ganesh
1caa6d111e Add new API for fetching UUIDs using SDP.
Add new API which clients can use to force an SDP query.
The result is broadcast using an intent having the UUIDs.
The intent is broadcast after a timeout, in case of an error.
This timeout is greater than the page timeout.

Change-Id: I61e6db4c05b34c42f679a66987e37e2063a793b6
2009-09-19 11:29:24 -07:00
Jaikumar Ganesh
4f3ebc43af Fix async calls with Connect And Disconnect Sink.
Change-Id: I814c7fdf40ec0d6aefeb410b1a1b1572ab4a8d88
2009-09-16 17:27:10 -07:00
Chih-Chung Chang
244f8c2636 Fix 2083478: Camera needs an auto-focus cancel API
Change-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2
2009-09-15 18:29:03 +08:00
San Mehat
242d65bf9f process: Switch to common cutils sched_policy api
Signed-off-by: San Mehat <san@google.com>
2009-09-12 10:48:03 -07:00
Jaikumar Ganesh
32d8571f50 Changes for BT 2.1
1) Handle incoming 2.1 pairing requests
2) Modify displaying error messages on bond failures.
3) Add delay while accepting incoming pairing for certain 2.1 devices.
When MITM is on, the link key request might come more than once.
Auto accept with a delay.
4) Handle DisplayPasskey callback for pairing a 2.1 keyboard with
a 2.1 device
2009-09-11 14:12:48 -07:00
Dianne Hackborn
8cae124af2 Various cleanup around resources and nine-patches.
Remove the stuff that doesn't use preloaded drawables when in
compatibility mode, since this works fine ever since we were able
to deal with drawables in a different density than the canvas.

Change the snapshot function on View to return a snapshot at
the same size that will actually be drawn on screen (when in
compatibility mode), to be able to show scaling artifacts and
all.

This change was original an attempt to fix issue #2101917: Text
field edges appears to be improperly rounded.  That turns out to
probably be something deeper in the graphics system, but also
included here is the debugging code I did to try to track down the
problem to make it easy to turn on again later.

Change-Id: I34bfca629639c7ff103f3989d88874112ef778d9
2009-09-11 13:31:45 -07:00
Android (Google) Code Review
7ff269f359 Merge change 24735 into eclair
* changes:
  Handle DisconnectRequested message sent by Bluez.
2009-09-11 15:24:01 -04:00
Jaikumar Ganesh
5e59ca8ae4 Handle DisconnectRequested message sent by Bluez. 2009-09-11 12:16:19 -07:00
Mike Reed
211db4a287 change default for dither to true 2009-09-11 14:40:15 -04:00
San Mehat
181b31a0d8 Process: Add support for using scheduler policies instead of cgroups.
Preference is given to cgroups if available.

Signed-off-by: San Mehat <san@google.com>
2009-09-10 15:09:38 -07:00
Eric Laurent
96c08a69ea Fix issue 1992233: DTMF tones on Sholes is really long.
Add a parameter to ToneGenerator.startTone() allowing the caller to specify the tone duration. This is used by the phone application to have a precise control on the DTMF tone duration which was not possible with the use of delayed messaged.
Also modified AudioFlinger output threads so that 0s are written to the audio output stream when no more tracks are ready to mix instead of just sleeping. This avoids an issue where the end of a previous DTMF tone could stay in audio hardware buffers and be played just before the beginning of the next DTMF tone.
2009-09-08 22:56:07 -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
Eddie Ho
eb40aae254 GPS: Fix race condition reporting NMEA data.
Change-Id: I80997e2686d9c08d7d2def094f9922e83cf41013
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-04 07:05:08 -04:00
Android (Google) Code Review
d4c1baf937 Merge change 23646 into eclair
* changes:
  Immediately destroy BluetoothSocket's on close().
2009-09-02 16:01:15 -07:00
Nick Pelly
71c3c7806a Immediately destroy BluetoothSocket's on close().
Unfortunatley, shutdown() on the underlying fd does not actually stop a
listening socket from listening. You need to call close() on the fd to
do this. There is no way around it.

So this means the Java BluetoothSocket code has to call destroyNative() during
BluetoothSocket.close().

Since native methods cannot be called after destroyNative(), add a ReadWrite
lock and mClosed field to protect access to native methods.

This fixes the "resource busy" error when Bluetooth OPP and Bluetooth PBAP
tried to resume listening after turning BT off and then on.
2009-09-02 11:51:35 -07:00
Android (Google) Code Review
c937b5ce4f Merge change 23463 into eclair
* changes:
  Wait for HCI to come up if getting the adapter path fails.
2009-09-01 19:19:47 -07:00
Jaikumar Ganesh
176c3d64a7 Wait for HCI to come up if getting the adapter path fails. 2009-09-01 19:17:02 -07:00
Android (Google) Code Review
485e6dca96 Merge change 23462 into eclair
* changes:
  Add Bluetooth Device trust
2009-09-01 14:10:06 -07:00
Lixin Yue
efa1dd716d Add Bluetooth Device trust 2009-09-01 13:58:31 -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