10600 Commits

Author SHA1 Message Date
Jeff Brown
7c8aa44f32 am 46b9ac0a: Native input dispatch rewrite work in progress.
Merge commit '46b9ac0ae2162309774a7478cd9d4e578747bfc2' into gingerbread

* commit '46b9ac0ae2162309774a7478cd9d4e578747bfc2':
  Native input dispatch rewrite work in progress.
2010-06-13 17:55:28 -07:00
Jeff Brown
46b9ac0ae2 Native input dispatch rewrite work in progress.
The old dispatch mechanism has been left in place and continues to
be used by default for now.  To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.

Includes part of the new input event NDK API.  Some details TBD.

To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument.  The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points.  The ViewRoot then
provides the InputChannel to the InputQueue.  Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue.  This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.

There can be zero or more targets for any given input event.  Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets).  Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.

End-to-end event dispatch mostly works!

To do: event injection, rate limiting, ANRs, testing, optimization, etc.

Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
2010-06-13 17:42:16 -07:00
Brad Fitzpatrick
46d4238746 More StrictMode work, handling violations in ActivityManagerService.
Also starts to do duplicate-suppression.

Change-Id: I0502f6ab6c45fa319298de4874ecfe44b7829d21
2010-06-11 16:11:26 -07:00
Dianne Hackborn
32907cfb38 Adjust activity manager process OOM adj.
Modify OOM adj classes a bit, to take into account the new
heavy weight app type, and give "foreground services" their
own category to have a bettery chance to manager them when
things go wrong.

Also add some new code to battery stats to keep a history
of changes to the battery level.

Change-Id: I29f5ab6938777e1a7eafd7d8c38b5e564cc9f96a
2010-06-11 10:39:11 -07:00
Chih-Chung Chang
b8bb78f54b Change camera interface to support multiple cameras.
Change-Id: Ie88fe706d2278acf762eca87780de349434778a4
2010-06-11 16:47:33 +08:00
Wu-cheng Li
2fd73a4522 Unhide camera metering mode API.
Change-Id: Ia3ca83e2a0b5b322e5dbf9ae3d5c1d3b89e0fd31
2010-06-11 15:29:49 +08:00
Mathias Agopian
9d8e8dcc84 Merge "fix [2757903] Crash in EGL when creating an EGLSurface" into kraken 2010-06-10 17:12:42 -07:00
Mathias Agopian
8b73ae4a1e fix [2757903] Crash in EGL when creating an EGLSurface
Change-Id: I995947ac40d1a5c86dce495550baf6864ecf5f54
2010-06-10 17:06:27 -07:00
Brad Fitzpatrick
438d059512 Introduce "StrictMode"
This is a new public API for developers to opt-in to strict rules
about what they're allowed to do on certain threads.  (this is the
public face of the @hide dalvik.system.BlockGuard, added recently...)

In practice this will be used for developers to opt-in to declaring
that they don't want to be allowed to do various operations (such as
disk I/O or network operations) on their main UI threads.  (these
operations are often accidental, or even when they are fast come with
a good chance of being slow or very slow in some cases....)

Implementation wise, this is just a thread-local integer that has a
bitmask of the things that aren't allowed, and more bits for saying
what the violation penalty is.  The penalties, of which multiple can
be chosen, include:

  * logging
  * dropbox uploading for analysis/reporting
  * annoying dialog
  * full-on crashing

These are all only very roughly implemented at this point, but all
parts now minimally work end-to-end now, so this is a good checkpoint
commit before this gets too large.

Future CLs will polish all the above 4 penalties, including
checksumming of stacktraces and minimizing penalties for duplicate
violations.

Change-Id: Icbe61a2e950119519e7364030b10c3c28d243abe
2010-06-10 14:38:58 -07:00
Kenny Root
36921ad858 am b00854d4: Import revised translations
Merge commit 'b00854d4c07ee8c810d1e32984543297bfa80a8e' into kraken

* commit 'b00854d4c07ee8c810d1e32984543297bfa80a8e':
  Import revised translations
2010-06-09 22:31:32 -07:00
Kenny Root
b00854d4c0 Import revised translations
Change-Id: I25faf1ade5252fa29cf43aa13e99fef9fc31b418
2010-06-09 22:25:58 -07:00
Joe Onorato
75144ea38e Move the status bar icon list, hopefully for the last time.
Change-Id: Ie495a41dac03e1fe5ddccefcbd2a0673090a6db1
2010-06-09 14:33:31 -07:00
Joe Onorato
f1f259165f Call into the notification manager when the panel is revealed.
This lets it turn off the LED.  However, it seems like somebody broke
the notification LEDs.  GRRR.

Change-Id: I3f7066c2b2e1673dc0144a34cf59946351a647be
2010-06-09 14:33:30 -07:00
Joe Onorato
7a0f36bd93 Move status_bar_latest_event and LatestItemView into SystemUI.apk.
Then, now that StatusBarManagerService is the only thing in that package,
move it up to the regular services package.  (I've been waiting for 4 years
to delete that package!)

Change-Id: If5faf44641319fd19e486d1f4e5bc1c6dfcff3ad
2010-06-09 14:33:30 -07:00
Joe Onorato
9e875fcb55 Start the status bar service based on a configuration option, instead of trampolining through
a braodcast receiver.

Change-Id: I6ae0740fea07350b80c35c0ee2d938e0364d773e
2010-06-09 14:33:29 -07:00
Joe Onorato
8bc6c51419 Require the STATUS_BAR_SERVICE permission for something to be the status bar.
Change-Id: I57b2d296e0d0cef0d256ae6697fffc47188d14df
2010-06-09 14:33:23 -07:00
Joe Onorato
005847b03b Handle errors inflating notifications (and their icons).
On an inflation error, the StatusBarService cleans up, removes / doesn't add
the views, and calls into the StatusBarManagerService, which tells the
NotificationManagerService to remove the notification.

That then calls all the way back into the StatusBarService, but I think being
extra careful is okay.  Throughout the status bar, it's all keyed off of the
IBinder key, so if the app comes in with a good notification while we're
cleaning up, we won't lose the new notification or anything like that.

Change-Id: Iea78a637495a8b67810c214b951d5ddb93becacb
2010-06-09 09:15:25 -07:00
Joe Onorato
fe4f3ae33c Move the usb mass storage notification & activity into SystemUI.apk.
Also fix the notification to show properly when the runtime is restarted.

Change-Id: Id0c7ef9f9dc9c9df18428cbaa7db1703f085137e
2010-06-09 09:15:25 -07:00
Jim Miller
3b68548da6 am 75b6a6b9: Merge "Fix 2737842: Disable KeguardManager API if device policy is enabled" into froyo
Merge commit '75b6a6b972e6b18143fd629d3d9c824c442c5f4c' into kraken

* commit '75b6a6b972e6b18143fd629d3d9c824c442c5f4c':
  Fix 2737842: Disable KeguardManager API if device policy is enabled
2010-06-08 16:33:26 -07:00
Jim Miller
75b6a6b972 Merge "Fix 2737842: Disable KeguardManager API if device policy is enabled" into froyo 2010-06-08 16:31:32 -07:00
Jim Miller
284b62e1b8 Fix 2737842: Disable KeguardManager API if device policy is enabled
This change adds notification to find out when the device policy
has changed.  When an admin adds or changes a policy, we get notified
and reset the state of keyguard to be enabled.

It also moves disabling keyguard into the TokenWatcher.acquired()
method to avoid disabling keyguard when a policy doesn't permit it.
This avoids reference counting issues in TokenWatcher and hence relieves
the ordering issue.

There is one remaining caveat. An application that uses KeyguardManager
to disable keyguard will need to disable keyguard again after any
policy change.

Tested:

Install and run app that disables keyguard with no admin. Result: keyguard is enabled/disabled as expected.
Enable admin and set quality = "something" after installing & running app. Result: keyguard is enabled.
Change admin password quality to "unspecified" and re-run app (per caveat). Result: keyguard is disabled.
Change admin password quality to "something" again. Result: keyguard is enabled.
Disable admin : Result: keyguard is enabled until app runs again (per caveat).

Added minor cosmetic changes after review.

Change-Id: I302f2b01446bf031f746b0f3e8b5fd7a6cc0e648
2010-06-08 15:47:52 -07:00
Romain Guy
804d04969d am 71d73a0d: Merge "Add a method to hide/show a SurfaceView\'s surface." into froyo
Merge commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5' into kraken

* commit '71d73a0dfc110d0bdfc1b7ba385db3e2cfe007e5':
  Add a method to hide/show a SurfaceView's surface.
2010-06-08 13:00:30 -07:00
Romain Guy
71d73a0dfc Merge "Add a method to hide/show a SurfaceView's surface." into froyo 2010-06-08 12:59:36 -07:00
Brad Fitzpatrick
44dc76a8a7 Log.wtf when databases go to be downgraded.
BUG=2734435

Change-Id: I686d6d9415f3081544c3fbe379287c31e0ecec20
2010-06-08 12:20:51 -07:00
Romain Guy
afc3e11f10 Add a method to hide/show a SurfaceView's surface.
This can be used to move a surface offscreen to avoid the cost of compositing it.
This preserves the window and therefore the OpenGL context when used in h/w
accelerated apps.

Change-Id: I280295376601b17989d0fc8a271af66650016f09
2010-06-08 11:34:43 -07:00
Jim Miller
700a95068e am cb52cb52: Fix SDK build.
Merge commit 'cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0' into kraken

* commit 'cb52cb52253c3832ccc7f5f1dbb4d8a0bd8178c0':
  Fix SDK build.
2010-06-07 21:23:53 -07:00
Jim Miller
cb52cb5225 Fix SDK build.
On branch fix_sdk
 Changes to be committed:
   (use "git reset HEAD <file>..." to unstage)

	modified:   core/java/android/app/KeyguardManager.java

Change-Id: I56848db098822536f0ac32efc8f0eb1d725bf6f9
2010-06-07 21:19:16 -07:00
Jim Miller
7d70358a03 am bde25c20: Merge "Fix 2737842: disable keyguard API when device policy is enabled." into froyo
Merge commit 'bde25c207731783a62e3611586fe05cd35add0d9' into kraken

* commit 'bde25c207731783a62e3611586fe05cd35add0d9':
  Fix 2737842: disable keyguard API when device policy is enabled.
2010-06-07 19:25:49 -07:00
Jim Miller
d6b5705e18 Fix 2737842: disable keyguard API when device policy is enabled.
This fix disables KeyguardManager's enable/disable API when any
device policy admin requests a policy that enforces a password.

Change-Id: Idb1da16b14ed8963142f7b1f62d2b060d84ffa65
2010-06-07 19:19:29 -07:00
Jaikumar Ganesh
526f2ff1a5 Merge "Serialize all commands for a particular profile." into kraken 2010-06-07 14:10:08 -07:00
Jaikumar Ganesh
a8c2514edd Merge "Pass BluetoothDevice to the Bluetooth Headset calls." into kraken 2010-06-07 14:09:49 -07:00
Jaikumar Ganesh
e50ab5f94c Merge "Add a new state machine for handling the incoming / outgoing profile connections." into kraken 2010-06-07 14:09:39 -07:00
Jaikumar Ganesh
f1048cdb68 Serialize all commands for a particular profile.
Change-Id: I843ea9ab0bb2372c8316e99e8c083a9939ad774a
2010-06-07 14:08:38 -07:00
Dianne Hackborn
b7bb3b3df6 Fix bug in reporting a processes's dependent component.
Also add new action to show an app's details.

Change-Id: I6ad3b3ac8462f5acf726ce76130882a262adff92
2010-06-07 11:01:29 -07:00
Christopher Tate
a8ebe8b3f5 am df2e2eff: Merge "Watchdog now records kernel stacks when it fires" into froyo
Merge commit 'df2e2eff9446c0220515fa7aab7857135e04e12e' into kraken

* commit 'df2e2eff9446c0220515fa7aab7857135e04e12e':
  Watchdog now records kernel stacks when it fires
2010-06-06 12:10:08 -07:00
Robert Greenwalt
9c4ed1394b am f9610b38: Merge "Make the DUN apn data secure." into froyo
Merge commit 'f9610b3842e030138c1dc327a3a467aaea02c227' into kraken

* commit 'f9610b3842e030138c1dc327a3a467aaea02c227':
  Make the DUN apn data secure.
2010-06-06 12:10:00 -07:00
Mathias Agopian
fae5cb2b35 optimize Surface.readFromParcel()
this is called for each relayout() and used to create a full Surface (cpp)
which in turn did some heavy work (including an IPC with surfaceflinger),
most of the time to destroy it immediatelly when the returned surface
(the one in the parcel) was the same.

we now more intelligentely read from the parcel and construct the new
object only if needed.

Change-Id: Idfd40d9ac96ffc6d4ae5fd99bcc0773e131e2267
2010-06-04 18:57:41 -07:00
Christopher Tate
df2e2eff94 Merge "Watchdog now records kernel stacks when it fires" into froyo 2010-06-04 18:06:07 -07:00
Christopher Tate
ecaa7b41ca Watchdog now records kernel stacks when it fires
The kernel threads are appended to the usual /data/anr/traces.txt file
and dropboxed along with the usual Dalvik stack dumps.

Change-Id: I120f1f5ee54c965efe9ac0c7f40fdef56385f1fa
NOTE: this change depends on the kernel publishing /proc/$PID/stack
2010-06-04 14:55:02 -07:00
Dianne Hackborn
faed5fbf15 Merge "Add support for heavy-weight applications." into kraken 2010-06-04 13:30:32 -07:00
The Android Open Source Project
7c035d8a65 am 2d743fe2: merge from open-source master
Merge commit '2d743fe2f39397d41334001d897eb78da56e94ef' into kraken

* commit '2d743fe2f39397d41334001d897eb78da56e94ef':
  Add better error handling for savePicture and restorePicture
2010-06-04 12:58:09 -07:00
Robert Greenwalt
77b32ddbbe Make the DUN apn data secure.
Rather than come out of the user-modifiable APN DB, the DUN APN data will
come first from a built-in resource and then potentially overriden by a secure
setting (which is gservices upgradable).

Also made the "require-dun" setting secure-setting overridable.
bug:2736390

Change-Id: I1e4644c3839f06c977b83797641f3948785146a2
2010-06-04 11:13:34 -07:00
The Android Open Source Project
2d743fe2f3 merge from open-source master
Change-Id: Ic9060d92c014d6cbe9d90ce8deca8fa111711471
2010-06-04 11:08:36 -07:00
Dianne Hackborn
860755faa6 Add support for heavy-weight applications.
Only one can be running at a time, their process can not be killed,
and a notification is posted while it is running.

Change-Id: I843015723947e0c934ae63a1aeee139327c0bc01
2010-06-04 10:09:13 -07:00
Jaikumar Ganesh
f8acea6ccb Merge "Delete local references to avoid reference table overflow." into kraken 2010-06-04 09:46:03 -07:00
Wu-cheng Li
5f5df382e5 Merge "Add camera metering mode API." into kraken 2010-06-03 22:32:05 -07:00
Jaikumar Ganesh
a7c0bdc4e4 Delete local references to avoid reference table overflow.
Change-Id: I2218b97647e381bfe6d329b1b6134bb76c1832b6
2010-06-03 16:59:01 -07:00
Romain Guy
fb59fbf14e Merge "Add better error handling for savePicture and restorePicture" 2010-06-03 14:26:21 -07:00
Brad Fitzpatrick
cfda9f3a47 Sprinkle new BlockGuard around SQLiteDatabase.
SQLite is JNI to native code and doesn't go via IFileSystem, so it
needs custom sprinkling, at least for now.

Change-Id: Ic7fded1b64a4f483dfc17b3a7b136c803df1e111
2010-06-03 12:52:54 -07:00
The Android Open Source Project
a9f06fef8e am ee7e6a78: merge from open-source master
Merge commit 'ee7e6a78e28b360826f215e0e84d43b1513b6401' into kraken

* commit 'ee7e6a78e28b360826f215e0e84d43b1513b6401':
  Improved error-handling in Rfc822Tokenizer
2010-06-03 09:09:07 -07:00