8799 Commits

Author SHA1 Message Date
Mathias Agopian
7e73a2ce17 Merge "Improve SensorManager documentation" into gingerbread 2010-06-21 15:10:13 -07:00
Jeff Brown
7fbdc84e87 More native input event dispatching.
Added ANRs handling.
Added event injection.
Fixed a NPE ActivityManagerServer writing ANRs to the drop box.
Fixed HOME key interception.
Fixed trackball reporting.
Fixed pointer rotation in landscape mode.

Change-Id: I50340f559f22899ab924e220a78119ffc79469b7
2010-06-21 13:59:34 -07:00
Daniel Sandler
a2650db770 Merge "Fix SDK docs build." into gingerbread 2010-06-17 19:14:44 -07:00
Daniel Sandler
ae069f76ee Fix SDK docs build.
Change-Id: I2d11682cdf2cdcd48f0299f8c168fddd5994dc65
2010-06-17 21:56:26 -04:00
Jeff Brown
5c225b1680 Even more native input dispatch work in progress.
Added more tests.
Fixed a regression in Vector.
Fixed bugs in pointer tracking.
Fixed a starvation issue in PollLoop when setting or removing callbacks.
Fixed a couple of policy nits.

Modified the internal representation of MotionEvent to be more
efficient and more consistent.

Added code to skip/cancel virtual key processing when there are multiple
pointers down.  This helps to better disambiguate virtual key presses
from stray touches (such as cheek presses).

Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
2010-06-17 13:27:16 -07:00
Daniel Sandler
611fae4c39 New API for "immersive" activity windows.
An "immersive" activity (as indicated by the new
FLAG_IMMERSIVE) is one that wishes to avoid being paused by
full-screen notifications (like an incoming call).
An activity that sets FLAG_IMMERSIVE on its window is
sending a signal to the notification manager, status bar,
etc. that they should try to find some other way to get the
user's attention in high-priority situations.

FLAG_IMMERSIVE should be used exclusively in conjunction
with FLAG_FULL_SCREEN (that is, only activities that hide
the status bar should consider themselves immersive).

Change-Id: Ie290c2e92fc391bcf55edfdb1fbd626cd284e3e2
2010-06-17 11:43:35 -04:00
Daniel Sandler
e46cbd379a New API for high-priority Notifications and full-screen alerts.
* fullScreenIntent: a PendingIntent pointing to a
  full-screen activity or other modal alert experience to be
  shown to the user instead of (or in addition to) a
  traditional status bar notification icon. Example: An
  incoming call should pop up a full-screen activity
  allowing the user to accept or decline the call.

  The old way to accomplish this is to simply fire off the
  full-screen intent directly from the Phone app. By routing
  through the Notification system, we make way for the
  FLAG_IMMERSIVE bit (forthcoming API) which would allow the
  frontmost opaque window to suppress full-screen alerts.

* FLAG_HIGH_PRIORITY: This bit allows a notification to be
  shown in windows that have the FLAG_IMMERSIVE bit set. For
  example, a Notification corresponding to an incoming call
  would be marked HIGH_PRIORITY so that even in an immersive
  activity (i.e. a networked game) the Notification could be
  shown to the user.

Change-Id: I4943e53f425800a6e152bc4992dd41586b43aff8
2010-06-17 11:34:13 -04:00
Mathias Agopian
74cde2cee9 Improve SensorManager documentation
this pass is mostly just formating.

Change-Id: Ica7dd014c301817c93e915c08b16da99769eaabb
2010-06-16 18:55:46 -07:00
Dianne Hackborn
6b7b484521 Various improvements to battery stats collection
We now clear the battery stats when unplugging after the
battery is full.  This allows us to use the "total" stats as
a new "since last charged" stat.  Total is gone.  I never used
it, it was worthless.  Since last charged is a lot more
interesting.

The battery history now collects a lot more stats, and keeps
control over how much it can collect.  Printing is now more
descriptive.

The kinds of stats have been renamed to SINCE_UNPLUGGED and
SINCE_DISCHARGED.  The other two stats are still there, but
no longer printed; a future change will eliminate them
completely along with all of their state.

Change-Id: I4e9fcfcf8c30510092c76a8594f6021e9502fbc1
2010-06-16 18:31:42 -07:00
Scott Main
e4bca7ee60 am 322e7e47: Merge "docs: fix markup error" into froyo
Merge commit '322e7e477d89aca18d65cbd289343e716c45a699' into gingerbread

* commit '322e7e477d89aca18d65cbd289343e716c45a699':
  docs: fix markup error
2010-06-15 10:42:52 -07:00
Mathias Agopian
2d468c5d73 Make sure SurfaceView use a 565 surface when requesting an OPAQUE format.
this is needed for backward compatibility with somewhat buggy applications.
not a big deal, since the app can request another format explicitely.

Change-Id: Ic73f8acedf94ffc0115637efac28fa8ffaa7e5a4
2010-06-14 21:56:34 -07:00
Brad Fitzpatrick
742b282e11 Merge "StrictMode: implement the log-to-DropBox option" into gingerbread 2010-06-14 15:19:51 -07:00
Dianne Hackborn
7e900cbf1d Merge "Update build version information." into gingerbread 2010-06-14 14:10:43 -07:00
Dianne Hackborn
3e03cfa3af Update build version information.
Change-Id: If53f16d494255230859a30f561e9a78ec49c6c10
2010-06-14 14:08:20 -07:00
Brad Fitzpatrick
143666f0ca StrictMode: implement the log-to-DropBox option
Change-Id: I51d12e264155078f953028241f8c5cbdc47262e8
2010-06-14 13:38:01 -07:00
Brad Fitzpatrick
14418945bd Dropbox: remove redundant Entry construction.
Change-Id: I55d8da82acea7f1cf0a69912fe5d4d46d704b570
2010-06-14 08:58:26 -07:00
Chih-Chung Chang
f1cefa9167 am 724c5224: Correct the setDisplayOrientation sample code.
Merge commit '724c52244423feced2677fbd1f905e0b8b0639f2' into gingerbread

* commit '724c52244423feced2677fbd1f905e0b8b0639f2':
  Correct the setDisplayOrientation sample code.
2010-06-14 04:11:00 -07:00
Chih-Chung Chang
724c522444 Correct the setDisplayOrientation sample code.
Change-Id: I37af4090b383204a5fd228a4388732e11ef2fa8c
2010-06-14 19:07:17 +08:00
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
Scott Main
f10e6331e3 docs: fix markup error
Change-Id: Icea017095f58068c55dd3c1c18cecbdf06afb595
2010-06-11 09:03:22 -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
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
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
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
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
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
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