Top-level storage UI now shows list of all devices, both internal
and adopted/private volumes, and public/shared volumes.
When viewing a private volume, show traditional clustering of data
types, including summary of other users. For adopted volumes, any
actions are tucked away in a menu, since they're not primary. Misc
files browsing is now provided by DocumentsUI.
Teach StorageMeasurement about new private volumes, including
handling emulated volumes stacked above them. When measuring, only
consider apps actually hosted on the current volume UUID.
When viewing a public volume, we default to launching into file
management mode, and offer a simple eject button at the top-level
view. File management mode is offered by new DocumentsUI browse
intent, and a Settings link there redirects back to us for actual
operations like ejecting/formatting. When unmounted, we launch
into our action view.
Actions like ejecting/formatting just show simple toasts for now.
Bug: 19993667
Change-Id: Ie990ef3c01fb3717aaf8c79bfc53aac7edefdcf7
StorageMeasurement: misc files should only be measured for internal
storage only if it is the emulated storage, otherwise misc count
for the primary storage will be erroneously duplicated on the
internal storage count.
StorageVolumePreferenceCategory:
- Always create mMountTogglePreference to avoid null pointer
exception for code that relies on it existing
- Check if the keys exist before calculating totalValues to
avoid null pointer exception on storage where media is not
calculated
- For available/readonly, set title, not summary (summary is
supposed to be the amount available)
Change-Id: Ib217f79ee562dffc514696fff038e58ed0dba7d9
Now that DefaultContainerService has visibility of external storage
for all users, we can measure internal storage in a single pass.
Internal storage measurement now iterates across all known users,
counting both apps and emulated storage usage.
Create MeasurementDetails object with documentation about what is
counted under various device configurations. Generalize to measure
each Environment.DIRECTORY separately, so it can be combined as
needed. General cleanup of how measurements are passed to UI.
Bug: 7003520
Change-Id: Ib89c185296a0c9debdc20beeaa98584d803a84e8
When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.
Mostly changes so Storage doesn't crash; will take another UI
iteration pass soon.
Bug: 7131382
Change-Id: If7ec807f12a36eb8ed02a0fb94e8a0b3a6694f16
Cleans up StorageVolumePreferenceCategory creation, and uses new
isPrimary() API instead of passing around hacky "i == 0" derived
value.
Bug: 7003520
Change-Id: I9eb7164035b5368ee795e35b22e750aebbf3b159
Bring up separate StorageMeasurement sessions bound to other users
on device, and surface their total usage as teal colors. Exclude
app code size when measuring secondary users. Shift preferences to
using keys instead of fragile index ordering.
Bug: 7003520
Change-Id: I214d0b223e53955df71104502596743f049f2027
Since Settings runs in system UID, it needs to export statfs()
operations to IMediaContainerService.
Bug: 6346248
Change-Id: I5801948211f0e55040da4850e3dd55b93f80798f
- In the storage overview, if storage is not emulated then we have a
new first section showing internal storage.
- In manage applications, we know show storage use on the SD card
separately from internal storage use.
Change-Id: I7eb993f59fdb5de5f5dcfe4a3bc2b95ae30d754a
Storage categories are dynamically created from list of StorageVolumes instead
of a static XML.
Unknown files' sizes are part of Misc rather than Apps.
Categories with a size of 0 are removed.
TODO : remove the notion of a "nosdcard" product. Change strings accordingly.
See all TODO in code
Change-Id: I017ac20f5fa50ad9bdeba8e666754ec84acf3858