The 'App Summary' section is shown by default when other memory
details are shown. This adds a new meminfo flag '-s' to show only the
App Summary section.
Change-Id: I66913673cd3afca873a8b13e45abe071d4c57b82
Add a constant to the SDK that apps may use to detect incremental API
changes across prerelease preview builds. APIs newer than the latest
official API level are not guaranteed to be stable or even present
across preview revisions.
Change-Id: I14341e55a3ebc3d872977970b9440c400e71f588
Binder APIs which wish to consume Bitmaps *and* drawable
resources can now do so by using Icon, a kind of union type
that accommodates each of these. Icon also accepts byte
arrays holding compressed Bitmaps (PNG, JPEG, etc), which
saves clients the additional memory cost of decoding and
sending full uncompressed bitmaps through Binder interfaces.
Receiving clients can call loadDrawable{,Async} and then
getDrawable to start immediately using the image in an
ImageView or other Drawable-hosting container.
Bug: 19609468
Change-Id: Ic1343711c2ac0b15876b46f0b6008b0108a49470
Refactor app movement code into the normal install flow as a new
flavor of InstallArgs. It copies both app code and data during the
copy step, and just updates paths during the rename step.
Measure free space before kicking off a move. Spawn a thread to
derive a hacky progress estimate based on free disk space counting
down.
Remove checkFreeStorage() and getLegacyNativeLibraryPath() which
nobody was calling. Fix deadlocks around package broadcasts, and fix
wrong lock ordering when loading packages.
Bug: 19993667, 20275578, 20370140
Change-Id: I7bbf14c924a724d6ebb8a41a02434750fa3302bc
Finish wiring up notifications to jump back into in-progress wizard
flow, using moveId as identifier.
Split move events back into separate creation and progress events,
and pass details as bundle to pass extra stuff like UUID. Null
package still means moving primary storage.
Add explicit "volume forgotten" event for PackageManager to clean
up internal state with.
Plumb through internal path reported by vold, and bring back FUSE
bypass rewriting optimization.
Bug: 19993667
Change-Id: I0f43edbba36c58c5cd33550022c54c4eb9f01a48
Track apps going in and out of idle in the NetworkPolicyManagerService.
Apply DROP rules in firewall controller if app is to be blacklisted
for network access.
Firewall can now be in whitelist (old) or blacklist mode. When in
blacklist, it allows all by default and we can selectively DENY
some uids.
Track app idle in UsageStats and update periodically.
Track charging/discharging states.
TODO: Check for appidle temporary parole state
Bug: 20066058
Change-Id: Ia65d7544204b3bcb78a517310ef4adcc05aac6fb
The whitelist is now maintained by DeviceIdleController,
which is moving out into its own independent system service.
Network stats now queries it for the whitelist, instead of
collecting that itself.
Also did a few improvements in alarm manager -- made the
code for moving alarms out of the pending list more robust,
and fixed the debug output to always print the contents of
the pending list even if we aren't in a pending state. (That
would have helped me identify the problem much earlier.)
Change-Id: I0f7119d4c553c3af4d77b2f71246fa6e2c13c561
VolumeRecord is a historical record of a volume that we've seen in
the past. It's now surfaced outside the framework for SystemUI to
drive the notifications that bug users to reinsert missing private
volumes.
Show progress notifications for both storage and package movement
operations. Notify when an empty disk is inserted (no usable volumes)
which launches into the normal format flow.
Add API to forget volumes.
Bug: 20275424, 20275424
Change-Id: I75602c17fdcd4d1f1f62324e1a08c4a33093eefa
Add a null check for each values of SparseArray in Bundle#hasFileDescriptor
to avoid NullPointerException.
Change-Id: I43ecc01f2759ccbe85b902fa118d55cb74ebf38b
Wire up through MountService to call down into vold. Watch for
unsolicited events that report progress, including special value "82"
that signals that copy has finished. We use this value to persist
the volumeUuid in case of unexpected reboot, since it indicates the
new volume is ready.
Wire progress updates through existing callback pipeline.
Update the volume mounting code to match against the persisted UUID
when selecting the primary external storage.
Bug: 19993667
Change-Id: Id46957610fb43517bbfbc368f29b7d430664590d
Since package and primary storage movement can take quite awhile,
we want to have SystemUI surface progress and allow the Settings
app to be torn down while the movement proceeds in the background.
Movement requests now return a unique ID that identifies an ongoing
operation, and interested parties can observe ongoing progress and
final status. Internally, progress and status are overloaded so
the values 0-100 are progress, and any values outside that range
are terminal status.
Add explicit constants for special-cased volume UUIDs, and change
the APIs to accept VolumeInfo to reduce confusion. Internally the
UUID value "null" means internal storage, and "primary_physical"
means the current primary physical volume. These values are used
for both package and primary storage movement destinations.
Persist the current primary storage location in MountService
metadata, since it can be moved over time.
Surface disk scanned events with separate volume count so we can
determine when it's partitioned successfully. Also send broadcast
to support TvSettings launching into adoption flow.
Bug: 19993667
Change-Id: Ic8a4034033c3cb3262023dba4a642efc6795af10
Move code for checking file extensions and MIME types from
ExternalStorageProvider into android.os.FileUtils, so it can be used by
other clients (e.g. DownloadsProvider).
BUG=20157955
Change-Id: Ib16a16af723c21fb8d2912c8917dfd68653ea6fa
The documentation used to recommend calling Parcelable.writeToParcel
instead of using the Parcel API for sending Parcelable types.
This leaves the developer to have to deal with null values and makes
it harder to create tools that generate correct efficient code.
I suggest that we add a these 2 methods:
writeTypedObject and createTypedObject
as an alternative.
Change-Id: I85443417909dcb9590d3f0a72f0130a4da4ead38