Commit Graph

588 Commits

Author SHA1 Message Date
Brad Fitzpatrick
0b7b980761 am d132892a: Merge "Don\'t touch the VFS during window relayout." into gingerbread
Merge commit 'd132892a75532557bb18af14eab6081704b7fa6d' into gingerbread-plus-aosp

* commit 'd132892a75532557bb18af14eab6081704b7fa6d':
  Don't touch the VFS during window relayout.
2010-08-23 23:37:17 -07:00
Brad Fitzpatrick
9088100518 Don't touch the VFS during window relayout.
yaffs2 is single-threaded and any disk access during window drawing
(or animation in this case) can cause UI stutters / unresponsiveness
for hundreds of milliseconds.

BUG=2941119

Change-Id: Ifdce8337027ab25d1ea844934fa787ffe68263c4
2010-08-23 18:30:08 -07:00
Jean-Baptiste Queru
026231284c resolved conflicts for merge of 1ffd753e to gingerbread-plus-aosp
Change-Id: I2741766c359bed3040fa3b787d72483eb028fb6d
2010-08-23 14:20:47 -07:00
Dianne Hackborn
a3ece8bde3 am 32519259: Merge "Fix a few small battery stats problems:" into gingerbread
Merge commit '325192593b057f4360e1abddf490b4fae7d60b12' into gingerbread-plus-aosp

* commit '325192593b057f4360e1abddf490b4fae7d60b12':
  Fix a few small battery stats problems:
2010-08-20 14:13:22 -07:00
Dianne Hackborn
99d0452ddc Fix a few small battery stats problems:
- Actually aggregate discharge amounts.
- Actually print the unplugged battery info when currently plugged in.

Change-Id: I22dd6feb73ac1364eb169d3239ce403b0755bb6c
2010-08-20 13:43:00 -07:00
Mathias Jeppsson
8534a8e438 Crash when powering off.
Fixing a race condition. If "confirm" is true and the shutdown
dialog is shown it may take some time before the user presses the
ok button. During this time a new call to shutdown may be made with
confirm=false. When this happens the shutdown thread is started by
the second call, and later when the users presses the ok button. This
results in ShutdownThread.beginShutdownSequence() being called
twice. I.e., the beginShutdownSequence lacks the proper protection
for this error case.

Change-Id: Ib9b01c5a43f4dc23de09057f3fc1507000317faf
2010-08-17 13:33:09 +02:00
Dianne Hackborn
2e47052fc4 am 567722ee: Merge "Fix problems with determining when to kill apps for wake usage." into gingerbread
Merge commit '567722eee190f7cf88dc7ea95167db76d5514842' into gingerbread-plus-aosp

* commit '567722eee190f7cf88dc7ea95167db76d5514842':
  Fix problems with determining when to kill apps for wake usage.
2010-08-15 17:34:49 -07:00
Dianne Hackborn
1ebccf531d Fix problems with determining when to kill apps for wake usage.
Also improve debug printing of various times.

Change-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48
2010-08-15 17:27:29 -07:00
Dianne Hackborn
66b0343e9e am a8d9291d: Merge "Various battery info things:" into gingerbread
Merge commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177' into gingerbread-plus-aosp

* commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177':
  Various battery info things:
2010-08-13 16:00:44 -07:00
Dianne Hackborn
9adb9c3b10 Various battery info things:
- Now track wake locks in battery history.
- Now track sensors in battery history.
- Some filtering of sensory data.
- Fixes to some data that wasn't cleared when resetting battery stats.
- Print amount discharged since last charge.

And the big part -- keep track of wake locks held per process,
and kill processes that hold wake locks too much while they are in
the background.  This includes information in the battery stats
about the process being killed, which will be available to the
developer if the app is reported.

Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
2010-08-13 15:17:49 -07:00
Kenny Root
f5ee5358c1 am ac9717ab: Merge "Move OBB file reading to DefaultContainerService" into gingerbread
Merge commit 'ac9717ab73afe0123b6dbb63c4dd2fc88143e53e' into gingerbread-plus-aosp

* commit 'ac9717ab73afe0123b6dbb63c4dd2fc88143e53e':
  Move OBB file reading to DefaultContainerService
2010-08-11 14:10:18 -07:00
Kenny Root
a02b8b05dd Move OBB file reading to DefaultContainerService
The system_server shouldn't touch files on the SD card. This change
moves the things that touch the SD card out to the
DefaultContainerService so that it will get killed if the SD card goes
away instead of the system_server.

Change-Id: I0aefa085be4b194768527195532ee6dddc801cfc
2010-08-11 11:20:53 -07:00
Dianne Hackborn
679ac09a5c am a5ae50cd: Merge "More native work." into gingerbread
Merge commit 'a5ae50cd838b5725c63ed485292aae4edd1a98cb' into gingerbread-plus-aosp

* commit 'a5ae50cd838b5725c63ed485292aae4edd1a98cb':
  More native work.
2010-08-11 00:47:51 -07:00
Dianne Hackborn
08d5b8fad8 More native work.
Implement save/restore of state, and add native APIs for
configuration information.

Change-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5
2010-08-11 00:29:59 -07:00
Brian Carlstrom
1b7e4d5adc am 4ae1e382: Merge "Tracking merge of dalvik-dev to gingerbread" into gingerbread
Merge commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af' into gingerbread-plus-aosp

* commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af':
  Tracking merge of dalvik-dev to gingerbread
2010-08-05 10:40:45 -07:00
Brian Carlstrom
3c7c351a62 Tracking merge of dalvik-dev to gingerbread
git cherry-pick --no-commit f77cf7f0
git cherry-pick --no-commit c8f503b528
git cherry-pick --no-commit 570bb561
git cherry-pick --no-commit e2417541
git cherry-pick --no-commit e4d81f25bd
git cherry-pick --no-commit 5e8a587d

Change-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88
2010-08-04 23:47:38 -07:00
Chris Tate
9f6b16a29b am 5d46ce24: Merge "Enhanced VelocityTracker for > 5 pointers and fixed bugs." into gingerbread
Merge commit '5d46ce24cc46dc57d31f809302af916999114ced' into gingerbread-plus-aosp

* commit '5d46ce24cc46dc57d31f809302af916999114ced':
  Enhanced VelocityTracker for > 5 pointers and fixed bugs.
2010-08-03 12:25:29 -07:00
Jeff Brown
9e2ad36be8 Enhanced VelocityTracker for > 5 pointers and fixed bugs.
Improved PointerLocation tool to use VelocityTracker more efficiently
and correctly when multiple pointers are down.

Fixed a bug in TouchInputMapper where it was not correctly copying
the id to index map in the last touch data.  This could cause strange
behavior on secondary pointer up events.

Also added finished callback pooling in InputQueue.

Change-Id: Ia85e52ac2fb7350960ea1d7edfbe81a1b3e8267b
2010-07-30 20:08:29 -07:00
Romain Guy
ff74e22b59 am ce3ac5f0: Merge "Corrected buffer overflow when parsing /proc/wakelocks"
Merge commit 'ce3ac5f02970fcab91e16ecb573931d209b1985c' into gingerbread-plus-aosp

* commit 'ce3ac5f02970fcab91e16ecb573931d209b1985c':
  Corrected buffer overflow when parsing /proc/wakelocks
2010-07-29 14:32:34 -07:00
Romain Guy
ce3ac5f029 Merge "Corrected buffer overflow when parsing /proc/wakelocks" 2010-07-29 14:00:48 -07:00
Mike Lockwood
64f04a645e am 70736a6d: Merge "Avoid starting multiple threads in ShutdownThread" into gingerbread
Merge commit '70736a6d92767258543bb03ac22a705535d86341' into gingerbread-plus-aosp

* commit '70736a6d92767258543bb03ac22a705535d86341':
  Avoid starting multiple threads in ShutdownThread
2010-07-26 12:25:31 -07:00
Dianne Hackborn
443d884e16 am 3bee5af8: Battery stats: start removing last stats, keep total discharge.
Merge commit '3bee5af8162c177f8c8f4199489a401058ab26a9' into gingerbread-plus-aosp

* commit '3bee5af8162c177f8c8f4199489a401058ab26a9':
  Battery stats: start removing last stats, keep total discharge.
2010-07-26 12:24:16 -07:00
Mathias Agopian
fed3c364e6 am eab07e5c: Merge "Report sensor events to BatteryStats service" into gingerbread
Merge commit 'eab07e5c1d48d45f76ac2dd4a45c8a3457aa290d' into gingerbread-plus-aosp

* commit 'eab07e5c1d48d45f76ac2dd4a45c8a3457aa290d':
  Report sensor events to BatteryStats service
2010-07-26 12:24:00 -07:00
Mike Lockwood
d67b236497 Avoid starting multiple threads in ShutdownThread
The previous code allowed this to happen if a second call to shutdown
happened while the dialog was being displayed.

BUG: 2563243

Change-Id: I93adc4ef316917a79002d580b17eda0dc354704c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-26 07:27:23 -04:00
Dianne Hackborn
3bee5af816 Battery stats: start removing last stats, keep total discharge.
Change-Id: I59c4bcbb9893adb237017add76b83c22153f94ef
2010-07-24 13:36:47 -07:00
Mathias Agopian
32123fde1b Report sensor events to BatteryStats service
Change-Id: I9b83aa709887aa658bc474391573f2d45b6c4eb2
2010-07-23 16:55:24 -07:00
The Android Open Source Project
ca48433afc merge from open-source master
Change-Id: I1901177e8a4bd32a707020c581f25f21349ba571
2010-07-20 10:33:38 -07:00
Christian Mehlmauer
798e2d3d0c Replaced /sdcard with Environment.getExternalStorageDirectory()
Change-Id: Id789f44a8569e307b1b7ab15eb266c9ce7ef2029
2010-07-19 15:54:40 -07:00
Kenny Root
f97b21b54e am bd623daf: Undo IMediaContainerService changes
Merge commit 'bd623daff1f261a0e794f059d90ba5907eb5a89a' into gingerbread-plus-aosp

* commit 'bd623daff1f261a0e794f059d90ba5907eb5a89a':
  Undo IMediaContainerService changes
2010-07-15 22:37:06 -07:00
Kenny Root
bd623daff1 Undo IMediaContainerService changes
These should be in the next commit and not the previous one.

Change-Id: I8d13fecf3b978ae2e796dc6e10ef3f969b27a0f4
2010-07-15 22:22:57 -07:00
Kenny Root
181bb0ab46 am 02c8730c: Add API to call to vold for mounting OBBs
Merge commit '02c8730c1bf19daf48bec8c6995df676a00a73b1' into gingerbread-plus-aosp

* commit '02c8730c1bf19daf48bec8c6995df676a00a73b1':
  Add API to call to vold for mounting OBBs
2010-07-15 21:35:53 -07:00
Kenny Root
02c8730c1b Add API to call to vold for mounting OBBs
* Unhide StorageService class; hide all the USB-related items

* Add application-visible API to StorageManager for OBB files

* Add class for parceling OBB info across binders (ObbInfo)

* Add a JNI glue class to libutils/ObbFile (ObbScanner)

* Add API to MountService to deal with calling into vold and checking
  permissions

Change-Id: I33ecf9606b8ff535f3a2ada83931da6bbef41cfd
2010-07-15 21:31:58 -07:00
Jeff Brown
aca672ba2e am c5ed5910: Add support for new input sources.
Merge commit 'c5ed5910c9ef066cec6a13bbb404ec57b1e92637' into gingerbread-plus-aosp

* commit 'c5ed5910c9ef066cec6a13bbb404ec57b1e92637':
  Add support for new input sources.
2010-07-15 18:47:24 -07:00
Jeff Brown
c5ed5910c9 Add support for new input sources.
Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.

Renamed NDK input constants per convention.

Added InputDevice class in Java which will eventually provide
useful information about available input devices.

Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.

Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.

Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.

Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.

Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
2010-07-15 18:32:33 -07:00
Dianne Hackborn
f8d9379bd8 am d76b67c3: IME events are now dispatched to native applications.
Merge commit 'd76b67c340d1564abf8d14d976fdaf83bf2b3320' into gingerbread-plus-aosp

* commit 'd76b67c340d1564abf8d14d976fdaf83bf2b3320':
  IME events are now dispatched to native applications.
2010-07-13 18:55:52 -07:00
Dianne Hackborn
d76b67c340 IME events are now dispatched to native applications.
And also:

- APIs to show and hide the IME, and control its interaction with the app.
- APIs to tell the app when its window resizes and needs to be redrawn.
- API to tell the app the content rectangle of its window (to layout
  around the IME or status bar).

There is still a problem with IME interaction -- we need a way for the
app to deliver events to the IME before it handles them, so that for
example the back key will close the IME instead of finishing the app.

Change-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd
2010-07-13 18:36:46 -07:00
The Android Open Source Project
10dde21145 merge from open-source master
Change-Id: Id2ad46118e0ca957b65b911c52d7bbcf2a4649a2
2010-07-13 12:33:22 -07:00
Martin Sjolin
e74e7e2a08 Remove top panel in alert dialog if empty.
Remove the topPanel in the alert dialog if it is empty and
therefore invisible. This gives the dialog content more space, and it
makes dialog positioning on the screen correct.

Change-Id: I8ffd9bd9b2360b0ad4338c32c21ab69c055d66a0
2010-07-13 10:47:26 -07:00
Jeff Brown
00fa7bdd69 More native input dispatch work.
Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.

Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
2010-07-03 19:23:01 -07:00
Johannes Carlsson
3372f2e259 Corrected buffer overflow when parsing /proc/wakelocks
The android_os_Process_parseProcLineArray in android_util_Process.cpp
writes up to buffer[endIndex]. This sometimes caused an assert to be
triggered in NewStringUTF when the output from /proc/wakelocks was
larger than 4096 bytes. The buffer was also increased in order to be
able to parse all wakelocks completely.

Change-Id: Idf8e66d61ad979377569048f59c3eee278b146db
2010-07-02 10:20:55 +02:00
Amith Yamasani
169741b708 DO NOT MERGE: Add a battery capacity value to the power profile.
Can be accessed through PowerProfile.getBatteryCapacity()

Individual device profiles need to be updated with their capacities.

(merged from master)

Change-Id: Ie76ab6de47c44807a46934331665e077a7226566
2010-07-01 13:42:59 -07:00
Dianne Hackborn
9d39d0cb36 Make bad notifications crash their application.
Implement notification manager handling of bad notifications, to
call a new activity manager to have the owner's process crashed
(if there is one).

Change-Id: Ib15e8d0c598756f3b39c99cc2045c18e054daf6b
2010-06-24 17:27:28 -07:00
Dianne Hackborn
1e4b9f3936 Remove InputConsumer, replacing with InputQueue.
Change-Id: Ib06907278457aaee842b123adc072840ca3602d8
2010-06-23 14:37:30 -07:00
Dianne Hackborn
a95e4cb62f First stab at attaching native event dispatching.
Provides the basic infrastructure for a
NativeActivity's native code to get an object representing
its event stream that can be used to read input events.

Still work to do, probably some API changes, and reasonable
default key handling (so that for example back will still
work).

Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
2010-06-22 11:21:50 -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
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
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
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