This fixes a problem where applications could ask the location
manager to do very heavy-weight things (like... say... update
location every minute), which would get accounted against the
system instead of the application because ultimately it is the
system making the heavy calls (wake locks, etc).
To solve this, we introduce a new class WorkSource representing
the source of some work. Wake locks and Wifi locks allow you
to set the source to use (but only if you are system code and thus
can get the permission to do so), which is what will be reported
to the battery stats until the actual caller.
For the initial implementation, the location manager keeps track
of all clients requesting periodic updates, and tells its providers
about them as a WorkSource param when setting their min update time.
The network location provider uses this to set the source on the
wake and wifi locks it acquires, when doing work because of the
update period.
This should also be used elsewhere, such as in the GPS provider,
but this is a good start.
Change-Id: I2b6ffafad9e90ecf15d7c502e2db675fd52ae3cf
Merge commit '3d7606aa607b24817e37c264f2141ed7b2d50be0' into gingerbread-plus-aosp
* commit '3d7606aa607b24817e37c264f2141ed7b2d50be0':
SIP: enhance timeout and registration status feedback.
This change is essentially a rewrite of the main input dispatcher loop
with the target identification folded in. Since the input dispatcher now
has all of the window state, it can make better decisions about
when to ANR.
Added a .5 second deadline for processing app switch keys. This behavior
predates Gingerbread but had not previously been ported.
Fixed some timing inaccuracies in the ANR accounting that could cause
applications to ANR sooner than they should have.
Added a mechanism for tracking key and motion events that have been
dispatched to a window so that appropriate cancelation events can be
synthesized when recovering from ANR. This change helps to keep
applications in sync so they don't end up with stuck buttons upon
recovery from ANRs.
Added more comments to describe the tricky parts of PollLoop.
Change-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1
Moves the remoteNativeLibrariesLI call to NativeLibraryHelper to prepare
for being able to symlink the /data/data/<package>/lib dir to the ASEC
container.
Change-Id: Ie3648509c6b6293a8d9bdd815610ab408df5047f
During boot-up we weren't paying attention to the nativeLibraryPath that
was read from the package settings XML file which reset the path to the
default /data/data/<package>/lib directory.
This adds nativeLibraryPath as an argument to the PackageSettings
constructor and related functions that will pull that value in from the
settings file.
It also removes the call to nativeLibraryDir.mkdir() which installd does
by itself.
Change-Id: I53db73c3b1bc90997a4a73f7f2fbaee125e6f67e
Merge commit '962e482606e3f8f8c0b8e540888eaef56a1c8603' into gingerbread-plus-aosp
* commit '962e482606e3f8f8c0b8e540888eaef56a1c8603':
Allow two SurfaceViews inbetween the app and the wallpaper.
We weren't logging strictmode violation in the system_server process
in non-user builds (only system apps), even though the rest of the
strictmode logging supports it.
Also add a missing lock in ActivityManagerService.
Change-Id: If2af96a7e4fdde604a647b836097f0029ef1334b
Merge commit 'a7d868d4f99dfaf85e13498210aecf1ad8efd859' into gingerbread-plus-aosp
* commit 'a7d868d4f99dfaf85e13498210aecf1ad8efd859':
Add toast when an app intercepts the launch of another app.
The activity manager looks for cases where one app launches immediately
after another. If this happens, a brief toast is shown telling the user
when app is actually running and what was originally starting.
Change-Id: If94cf5bd393dd0bc0f09789dae044fde1386c481
Merge commit '6bff8c7994f35c5b8021f1f3da43f70739f472e0' into gingerbread-plus-aosp
* commit '6bff8c7994f35c5b8021f1f3da43f70739f472e0':
Remove the use of FileInputStream.available()
Merge commit '76e4fa19264793e3ed7e2ee7afccfc808a1a7458' into gingerbread-plus-aosp
* commit '76e4fa19264793e3ed7e2ee7afccfc808a1a7458':
Only pulse notification light if a new notification has been received since the screen was last turned off
Apps can report if they like their connection to the nets
and we display either not-really-connected or fully-connected
icons. Final icons TBD.
bug:2978624
Change-Id: I28be52085edfe54571c0d4559aba0df883548654
Merge commit '4d1e0121277b566b5e1c22e790a3b607b75d945d' into gingerbread-plus-aosp
* commit '4d1e0121277b566b5e1c22e790a3b607b75d945d':
Change the keep-alive interval to 10 seconds.
Merge commit '65634a7935ed6f173179e7ac91a05288693b2bbf' into gingerbread-plus-aosp
* commit '65634a7935ed6f173179e7ac91a05288693b2bbf':
Don't block in the BackupManagerService.dataChanged() Binder call.
Merge commit 'ee455f5a9572bc0d23c3328f6c22da91dc109a50' into gingerbread-plus-aosp
* commit 'ee455f5a9572bc0d23c3328f6c22da91dc109a50':
People holding partial wake locks now get blamed for CPU usage.
Merge commit '5872e9d7f31e5a4c5f3d871dba02b6d72a7ada78' into gingerbread-plus-aosp
* commit '5872e9d7f31e5a4c5f3d871dba02b6d72a7ada78':
Allow incoming SMS until internal storage is almost full.
For the duration of the wake lock, 50% of all CPU usage is now
accounted against the app(s) holding partial wake locks, evenly
distributed between them. This is only while the device is on
battery and screen off.
Change-Id: I3e5c978b792b6ef17bf8540705bfe8343dadd464
Fix for bug 2382830: new incoming SMS should not be rejected when
running low on internal phone storage.
Testing revealed that the /data partition should have at least 256 KiB
available in order to prevent random app crashes (including system apps)
due to SQLite transaction failures. With 256 KiB free, the device should
safely boot without storage full errors. This takes into account the
36-40 KiB that the YAFFS2 filesystem reports as available even after
the partition has been completely filled. I've set the default full
threshold to 1 MiB to provide a generous safety margin.
For this bug, I changed the DeviceStorageMonitorService demon to send
two new hidden notifications for device storage "full" and "not full",
when the free space falls below the full threshold (default 1 MiB,
but configurable as a system setting), in addition to the existing
storage low/okay notifications sent when the storage crosses the threshold
of 90% full (also configurable).
The SMS code was changed to use these new notifications so that it can
accept messages until the data partition has been filled to the maximum
safe capacity rather than stopping when it hits 90% full. There should
be no negative impact on battery life because the additional check in
the storage polling service should be offset by an optimization to cache
the free threshold values which were previously being computed every time
through the loop.
While testing this change, I discovered that SMSDispatcher was being
instantiated twice, the first time in GSMPhone/CDMAPhone, and the second
time in SimSmsInterfaceManager / RuimSmsInterfaceManager. Changed the code
to pass the original SMSDispatcher to the Sim/RuimSmsInterfaceManager
constructor.
Change-Id: Ie0c6d05294778ab6ee42e0fa01313af96d824c77
Merge commit '85a3176704b5bfbeece9bd928369fbb76eec7dc6' into gingerbread-plus-aosp
* commit '85a3176704b5bfbeece9bd928369fbb76eec7dc6':
Add support for secure views.
Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the
input manager whenever another visible window is partly or wholly obscured
the target of a touch event so that applications can filter touches
accordingly.
Added a "filterTouchesWhenObscured" attribute to View which can be used to
enable filtering of touches when the view's window is obscured.
Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
Merge commit 'e25b4bc76fef584b38ce4e72f919fba119bdfa99' into gingerbread-plus-aosp
* commit 'e25b4bc76fef584b38ce4e72f919fba119bdfa99':
These are not ready to be exposed. Also rename them to be better.
Merge commit 'd85621c938286a568b1173e7ab29f80ab93d27e1' into gingerbread-plus-aosp
* commit 'd85621c938286a568b1173e7ab29f80ab93d27e1':
Don't crash when extra logging is enabled.
Merge commit '305bcbf0c961840c4505770d084a1caacc074dbb' into gingerbread-plus-aosp
* commit '305bcbf0c961840c4505770d084a1caacc074dbb':
Decrease PackageManagerService wait time for vold
Up the blocking queue maximum to twice the number of containers we
allow which should let "asec list" complete without blocking the thread
several times.
Change the threads for the NativeDaemonConnector to vold and netd to be
more descriptive instead of the same name.
Bug: 2501075
Change-Id: I7e7949845a6c70a3d619aec0fa79ceef3c17a4be