391 Commits

Author SHA1 Message Date
Jack Palevich
981ccfbbfd Implement Matrix Palette extension.
Adds support for formerly-unimplemented methods:

glCurrentPaletteMatrixOES
glLoadPaletteFromModelViewMatrixOES
glMatrixIndexPointerOES
glWeightPointerOES

The bulk of the changes are related to implementing the two PointerOES
methods, which are implemented pretty much the same way as the existing
Pointer methods were implemented.

This change also changes the way glPointSizePointerOES is implemented,
making it act like all the other Pointer methods. (Previously it was
not handling non-direct-buffer arguments correctly.)

Fixes bug 2308625 "Support matrix palette skinning
in JSR239 and related APIs"

Also updated GLLogWraper to fix two bugs in GLLogWrapper that were
discovered while testing matrix palette skinning support:

a) Handle trying to print the contents of null-but-enabled buffers.
(It's not legal to draw with null-but-enabled buffers, and
in fact some OpenGL drivers will crash if you try to render in this
state, but there's no reason the GLLogWrapper should crash while trying
to debug this situation.

b) Don't read off the end of a vertex buffer with non-zero position when
printing the entire contents of the vertex buffer. Now we only print from
the current position to the end of the buffer.
2009-12-09 16:34:46 +08:00
Jack Palevich
3608891b83 Add a Java API for OpenGL ES 2.0.
Currently this API is hidden.

Add a test program.
2009-12-09 16:34:33 +08:00
Dianne Hackborn
887f355f99 Propagate background scheduling class across processes.
This is a very simply implementation: upon receiving an IPC, if the handling
thread is at a background priority (the driver will have taken care of
propagating this from the calling thread), then stick it in to the background
scheduling group.  Plus an API to turn this off for the process, which is
used by the system process.

This also pulls some of the code for managing scheduling classes out of
the Process JNI wrappers and in to some convenience methods in thread.h.
2009-12-07 19:11:14 -08:00
Eric Laurent
b8341cf7c8 am 6d42d806: Merge change I9cc489a2 into eclair
Merge commit '6d42d80653f2c41f3e72a878a1d9a6f9693b89f7' into eclair-mr2

* commit '6d42d80653f2c41f3e72a878a1d9a6f9693b89f7':
  Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.
2009-12-07 11:03:17 -08:00
Eric Laurent
9cc489a219 Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.
Fixed AudioFlinger::openInput() broken in change ddb78e7753be03937ad57ce7c3c842c52bdad65e
so that an invalid IO handle (0) is returned in case of failure.
Applied the same correction to openOutput().
Modified RecordThread start procedure so that a failure occuring during the first read from audio input stream is detected and causes
the record start to fail.
Modified RecordThread stop procedure to make sure that audio input stream fd is closed before we exit the stop function.

Fixed AudioRecord JAVA and JNI implementation to take status of native AudioRecord::start() into account
and not change mRecordingState to RECORDSTATE_RECORDING if start fails.
2009-12-07 05:37:47 -08:00
Christopher Tate
ed6dd2e6a5 am d3bc1994: Merge change I397b6a93 into eclair
Merge commit 'd3bc1994b0c2c5e9c60fa748de47eebbe1984fda' into eclair-mr2

* commit 'd3bc1994b0c2c5e9c60fa748de47eebbe1984fda':
  Don't accidentally signal multiple exceptions in setThreadPriority()
2009-12-04 12:54:36 -08:00
Christopher Tate
41c4bea27c Don't accidentally signal multiple exceptions in setThreadPriority()
After signalling an exception due to set_sched_policy() failing (probably
because the thread in question had exited before this function was called), we
proceeded to call setpriority() anyway, and raised *another* exception when it
also failed.  We don't do this any more; we just bail after signalling the first
exception.

Change-Id: I397b6a93c73d3f0870176e26759f2bec33e56205
2009-12-04 11:07:48 -08:00
San Mehat
d345c6aced am 0a42b811: base: process: Abort setting the process group if one of the threads fails to switch
Merge commit '0a42b811aea490a9a605b75f0320101f6eafd283' into eclair-mr2

* commit '0a42b811aea490a9a605b75f0320101f6eafd283':
  base: process: Abort setting the process group if one of the threads fails to switch
2009-12-03 12:45:59 -08:00
San Mehat
0a42b811ae base: process: Abort setting the process group if one of the threads fails to switch
Signed-off-by: San Mehat <san@google.com>
2009-12-03 12:23:00 -08:00
Mike Lockwood
3a32213c40 Remove HardwareService and move vibrator support to VibratorService.
The lights support is only needed by PowerManagerService and NotificationManagerService, so we do not need a Binder API for it.
Move backlight and notification light support to new LightsService class.
The camera flash is now handled directly by the camera HAL, so the flash Hardware service flash support is obsolete.

Change-Id: I086d681f54668e7f7de3e8b90df3de19d59833c5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-25 12:54:58 -05:00
Jaikumar Ganesh
8631e55425 am ad431ad8: Merge change Ia3acc2ee into eclair
Merge commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60' into eclair-mr2

* commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60':
  Fix pairings lost on reboot.
2009-11-22 22:02:17 -08:00
Android (Google) Code Review
ad431ad863 Merge change Ia3acc2ee into eclair
* changes:
  Fix pairings lost on reboot.
2009-11-22 21:54:29 -08:00
Dianne Hackborn
f29006000c am 1824ec8c: Merge change If2b0bbed into eclair
Merge commit '1824ec8c127e3a8ef602d027e3c10d81f28320e8' into eclair-mr2

* commit '1824ec8c127e3a8ef602d027e3c10d81f28320e8':
  Debugging for issue #2228381 android.view.InflateException
2009-11-20 15:20:34 -08:00
Dianne Hackborn
b8d8167955 Debugging for issue #2228381 android.view.InflateException
Binary XML file line #37: Error inflating class <unknown> after adding a secondary account

Now that I have these debug logs, I want to keep them since they will make
debugging these kinds of issues a lot easier in the future.  (Note in this
case there was no problem in the framework.)

Change-Id: If2b0bbeda4706b7c5dc1ba4a5db04b74f40e1543
2009-11-20 14:26:42 -08:00
Vasu Nori
5a03f36ef8 maintain cache of statementids returned by sqlite upon compiling a sql stmnt 2009-11-20 14:09:24 -08:00
Jaikumar Ganesh
b148bc844e Fix pairings lost on reboot.
Bug:2277376
Dr No:Eastham
2009-11-20 13:50:26 -08:00
Jared Suttles
1ae7831b8a am 8b1243e5: jni: GpsLocationProvider: Check for pending callbacks before waiting
Merge commit '8b1243e5e4930598e8e78ebd18e7b6cd6fb0445f' into eclair-mr2

* commit '8b1243e5e4930598e8e78ebd18e7b6cd6fb0445f':
  jni: GpsLocationProvider: Check for pending callbacks before waiting
2009-11-06 06:31:37 -08:00
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
fcae6c7179 am 67b69292: Merge change I93f500a5 into eclair
Merge commit '67b692920c18f99b096dce285adc6f7439fa866c' into eclair-mr2

* commit '67b692920c18f99b096dce285adc6f7439fa866c':
  Fix issue 2203561: Sholes: audio playing out of earpiece.
2009-11-05 00:01:33 -08: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
Mike Reed
58d30b6907 am 1864d01f: Merge change Iae849da2 into eclair
Merge commit '1864d01f2be0e82da7d8844fa91bee8880282041' into eclair-mr2

* commit '1864d01f2be0e82da7d8844fa91bee8880282041':
  add table maskfilter
2009-10-30 14:13:44 -07: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
67ef832cdb am 957e5867: process: Disable debugging
Merge commit '957e58670baad8c5995f1368e3b5280f0dbd891f' into eclair-mr2

* commit '957e58670baad8c5995f1368e3b5280f0dbd891f':
  process: Disable debugging
2009-10-29 19:32:06 -07:00
San Mehat
574b99bfcd am 8e312e81: Merge change Ia5109a87 into eclair
Merge commit '8e312e8160ef0cae569b6127591ee72c70bfda41' into eclair-mr2

* commit '8e312e8160ef0cae569b6127591ee72c70bfda41':
  process: Add debug code to log process group transitions
2009-10-29 19:28:58 -07:00
Jack Palevich
5be6eedf3b am b575e4df: Merge change I4a943184 into eclair
Merge commit 'b575e4dffe123dc7c8c579dc9cf6130eae6a4abe' into eclair-mr2

* commit 'b575e4dffe123dc7c8c579dc9cf6130eae6a4abe':
  Avoid trying to throw multiple exceptions at once.
2009-10-29 19:28:38 -07: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
Mike Reed
c04851fd0a add boundary patch 2009-10-28 15:18:41 -04:00
Andrew Harp
adddd24f31 am 78a50aa1: Merge change If3c30fc9 into eclair
Merge commit '78a50aa1db6572ba7d9f9d91c6eb16f993c09f40' into eclair-mr2

* commit '78a50aa1db6572ba7d9f9d91c6eb16f993c09f40':
  Patching in hidden API to allow app managed preview frame buffers.
2009-10-23 19:17:59 -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
Jack Palevich
a2ec1f4cea am 8f89a1a3: Merge change Ic620a52b into eclair
Merge commit '8f89a1a360465e08e81ceca3cb3042606a98668b' into eclair-mr2

* commit '8f89a1a360465e08e81ceca3cb3042606a98668b':
  Add size checks for glBufferData and glBufferSubData
2009-10-23 17:39:47 -07: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
43f2b4e9c6 am 53f33d84: Revert "Remove STOPSHIP comment."
Merge commit '53f33d84776a0bad668e361365a7049b16f8a929' into eclair-mr2

* commit '53f33d84776a0bad668e361365a7049b16f8a929':
  Revert "Remove STOPSHIP comment."
2009-10-14 12:37:06 -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
52cb855752 am a04ca9b4: Merge change I2492bffe into eclair
Merge commit 'a04ca9b489ce0e92fa156f8ce26459a463b3e085' into eclair-mr2

* commit 'a04ca9b489ce0e92fa156f8ce26459a463b3e085':
  Remove STOPSHIP comment.
2009-10-14 12:03:19 -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
Zheng BaoZhong
038e315cde Wifi: Fix runtime crash in when scan results contain KSC 5601 SSID
bug b/2178462

Change-Id: I409d9b4a163299c3383ec092cd2368a9d24236cb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-10-10 16:26:33 -04: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