- 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
This change involves adding a new method to IWindowManager,
monitorInput() that returns an InputChannel to receive a copy of all
input that is dispatched to applications. The caller must have
the READ_INPUT_STATE permission to make this request (similar to
other window manager methods such as getKeycodeState).
Change-Id: Icd14d810174a5b2928671ef16de73af88302aea0
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
Uses a linked list for efficient pointer addition and removal.
When possible, makes use of the fact that pointer ids are usually in
sorted order to avoid quadratic time lookups when adding new data.
Fixed an incorrect assumption that the pointer count would always change
when old pointers were removed.
Also fixed a bug in InputQueue FinishedCallback recycling.
Change-Id: Ie048d3bb022d39cf4185e2fe43923a861d94c4f3
getBondedDevices() *might* work if called before the Bluetooth
State intent is broadcasted. However, this can cause ANRs and problems.
This API was updated to return null, if called before the intent
is received. However, this might cause existing apps to crash. Return
an empty set instead.
Change-Id: Ibc484d3394aa0bbebd651221efde6a7015ce7110
For example, Settings app makes calls to get Bonded Devices
before Bluetooth is on. This leads to ANRs and will
prevent autoconnection.
Change-Id: I56748a9bd1d603b5782c17775c6b20b831bf6572
Merge commit 'b37bca9e79489a1abd848ce762bb7d87203b3414' into gingerbread
* commit 'b37bca9e79489a1abd848ce762bb7d87203b3414':
COMMENT ONLY change to fix some formatting glitches and
Since orientation sensing has been an issue for numerous users, I
decided a spend a little time experimenting with some possible
improvements. I've settled on a couple major changes:
* Perform all lowpass filtering in spherical coordinates, not
cartesian. Since the rotations are what we're really concerned
with, this makes more sense and gives more consistent results.
* Introduce a system of tracking "distrust" in the current data, based
on external acceleration and on tilt. The basic idea is after a
signal of unreliable data -- repeated acceleration or
nearly-horizontal tilt -- we wait for things to "stabilize" for some
number of ticks before we start trusting the data again. This is an
extension of the basic lowpass filtering. One simple example is
after the phone is picked up off a table, we ignore the first few
readings. Another example is while the phone is under external
acceleration for a while (i.e. in a car mount on a rough road), if a
single "good" reading comes in, we distrust it, under the assumption
that it was probably just a lucky reading (i.e. the magnitude
happened to be close to that of gravity by chance).
These changes have allowed me to relax other constraints, such as the
filtering time constants, the maximum deviation from gravity, and the
max tilt before we start distrusting data.
The net effect is that orientation changes happen more quickly and can
happen under a wider variety of conditions, but false changes due to
tilt and acceleration are still avoided well. I think the improvement
is subtle, but it's the best I've come up with in my limited time.
I've also included some refactoring and additonal comments to try and
further clarify the (somewhat twisted) logic.
Change-Id: I34c7297bd2061fae8317ffefd32a85c7538a3efb
Merge commit 'cdf16787fc1234b7f21a9cddc6f8a27b4056bc39' into gingerbread
* commit 'cdf16787fc1234b7f21a9cddc6f8a27b4056bc39':
Changed SyncOperation.toKey() to not rely on the implementation of
Merge commit '8dd87ad9440bc63bc312b06f292adcd2642b1c41' into gingerbread
* commit '8dd87ad9440bc63bc312b06f292adcd2642b1c41':
fix some doc errors in the resources;
When a movePackage operation is requested, don't allow multiple requests
to pile up for one package. Once a move is completed, an observer will
receive the message and be allowed to call movePackage again.
Change-Id: Ie3842b6d96446febc0037bf9b8f1ca250735edc2
The NotificationManager tries to crash the calling app, but
in the case of a service calling startForeground, the caller
is the ActivityManager, so system_server goes down.
NotificationManagerService#enqueueNotificationInternal is a
new internal-only method that accepts a UID/PID to use when
punishing bogus notifications (such as the one in
http://b/2869787).
Change-Id: I84a9854bae630bc90288cebb94f174809d5dac8c