42a4aaab44de53ff692277d0fff74120c23724b8 |
|
10-Oct-2016 |
Jeff Sharkey <jsharkey@android.com> |
Set MIME type when building BROWSE intents. If we created a BROWSE PendingIntent early during boot (while the device was still locked), we would resolve the MIME type as "null" meaning the intent would fail to launch. Since we always know what the MIME type will be, set it explicitly. Test: boot device while USB device attached Bug: 30742481 Change-Id: I23c523cbe2660ca63a3b7df1f41300ab803b314c
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
f570c771f23792837fb63f708bfa5c948d5fcad7 |
|
11-May-2016 |
Steve McKay <smckay@google.com> |
Don't show new-window item in Downloads per Gabe. Also, fix regression...don't show "internal storage" option in Downloads. All other modes, fix inconsistencies in presentation of internal-storage/new-windows commands by eliminating launch mode inference. Update VolumeInfo and MTP provider to send correct launch mode extra. Bug: 28691735,28695347 Change-Id: Ic480925f4c8f1beee4da104a2259c1ce5f28a6a1
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
1719b3555dc9bff5394045585051e7d5684bceb1 |
|
21-Mar-2016 |
Aga Wronska <agawronska@google.com> |
Add config flag to show/hide internal storage. Hide internal storage by default. Revert "Always show intern storage." This reverts commit 7c4395804e450533afb553ab992c47f737da8a9b. Bug: 27683276 Change-Id: I04ea8b9a307babcea003f9bec200d41265a42c7f
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
7c4395804e450533afb553ab992c47f737da8a9b |
|
02-Mar-2016 |
Steve McKay <smckay@google.com> |
Always show intern storage. Only show debug root when devel mode is enabled. Remove all traces of "advanced". Bug: 27297398 Change-Id: Ie7e8be282531bd245351d56ababa8ca625c10fd2
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
efa1761776160376278fa467ea31d8e3f621a286 |
|
30-Jan-2016 |
Steve McKay <smckay@google.com> |
Decouple SD card from ADVANCED storage toggle. A variety of related fixes: - don't force size enable when browsing from device mounted notifications. - don't show settings menu item as action (put in overflow). - add sd card icon (not quite yet used, need to suss that out). Bug:26880985,26883578,26771127 Change-Id: I36f153c42217f8092f157ded2a756c02525593ab
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
84cebbeb69e5b473f0cb4d1575bdc57aac48e32e |
|
25-Sep-2015 |
Ben Kwa <kenobi@google.com> |
Open the destination dir when a copy notification is tapped. - Cleanup: rename the "open copy destination" action to "pick copy destination", which better reflects what it does. - Move DocumentsIntent from BaseActivity to Shared. - Rename ACTION_BROWSE_DOCUMENT_ROOT to ACTION_BROWSE for general browsing. - Use the new ACTION_BROWSE to open the copy destination when copy notifications are tapped. BUG=23137963 Change-Id: I10480b45a16ce716febac5453cb5015d26bb0062
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
83df8c072ddd01a5adc11da0869103c4645e6d76 |
|
17-Sep-2015 |
Steve McKay <smckay@google.com> |
Merge BROWSE and BROWSE_ALL actions. Open Files app when exploring from settings. Force visibility of file size in this mode. Don't hide empty media providers. Bug: 24136618, 24140864 Change-Id: I6f238586725f9b6255812e3082bb8d8655219a7d
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
8e2ea2a9f15217bd5e44665650251f83f3f70313 |
|
19-Aug-2015 |
Jeff Sharkey <jsharkey@android.com> |
Pass underlying volume UUID to StorageVolume. To help MediaProvider uniquely identify storage devices, pass through the UUID of the underlying private storage volume. Bug: 23329611 Change-Id: I22ee7ea98fcb208d7797310acb3396a3f074f09b
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
4634987668eb7e1fa1434bddbde969ef43de6b40 |
|
28-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Give secondary users read-only physical cards. Long ago, we mounted secondary physical cards as readable by all users on the device, which enabled the use-case of loading media on a card and viewing it from all users. More recently, we started giving write access to these secondary physical cards, but this created a one-directional channel for communication across user boundaries; something that CDD disallows. This change is designed to give us the best of both worlds: the package-specific directories are writable for the user that mounted the card, but access to those "Android" directories are blocked for all other users. Other users remain able to read content elsewhere on the card. Bug: 22787184 Change-Id: Ied8c98995fec1b7b50ff7d930550feabb4398582
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
6ee871e59812fea4525c50231f677c4bd10c74b8 |
|
10-Jul-2015 |
Svet Ganov <svetoslavganov@google.com> |
Teach storage appops. For modern apps targeting M SDK and up the external storage state is deterined by granted permissions. For apps targeting older SDK the storage access is determined by app ops correspning to the storage permissions as the latter are always granted. When app ops change we do not remount as we kill the app process in both cases enabling and disabling an app op since legacy code is not prepared for dynamic behavior where an operation that failed may next succeed. Hence, we remount when we start the app. For modern apps we don't kill the app process on a permission grant, therefore we synchronously remount the app storage. bug:22104923 Change-Id: I601c19c764a74c2d15bea6630d0f5fdc52bf6a5a
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
a83bf1966e3e51fb052db86daf359d5b1cc110f5 |
|
08-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Use best volume description for MTP. Otherwise we end up showing adopted storage devices as "Unknown." Bug: 20275423 Change-Id: Ib42474fd5b3284b1e8eca7de8a4cfbb71a34a107
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
5af1835d678031d4a6615edc96ba58c82304b31d |
|
08-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Generate stable MTP storage IDs. It ends up that MediaProvider is persisting MTP storage IDs in its database, so we need to make sure we generate stable IDs over time, otherwise we can end up looking into a black hole. Bug: 22256092 Change-Id: I6a75c239aac1b71fd5f6df0df69b24971079a086
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
7a788a865e72da4205b5cf4e0a6f08ccb6f4bdbd |
|
07-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Fix volume naming when surfaced over MTP. Otherwise we show everything as "Unknown." Bug: 22256092 Change-Id: I19fe8a25aff02db8ca9aff288e6715d469f65327
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
5cc0df214bbe2b169150c9060dc5288bb8aaf338 |
|
18-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Forget private partition keys. When we forget a private partition, ask vold to also forget the key for that partition GUID. This means we need to track both the filesystem UUID and the partition GUID for a private volume. Bug: 21782268 Change-Id: Icda1cbb65539d61dacc663428daf3d1a2e4c313e
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
c7acac6798e12780194af33d5a9fdf382ab17155 |
|
13-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
More useful extras in disk/volume broadcasts. Change-Id: I594166cff332aaf72b2b6357ac6ed3e6e42cbc49
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
5fc247338dfc1a817f708163201cdf395cff3303 |
|
10-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
New strings! Bug: 21737573, 21666225, 21756698, 21737666, 21471429 Change-Id: If1c5882d48f798d311f6d2b86277d3c13f06824e
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
50a05454795c93ac483f5cb6819e74cb17be1b5b |
|
29-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Returning to wizard, split move events. 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
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
b36586a7c9b7718f33961406537e27bbd9b16211 |
|
27-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Split some VolumeInfo state into VolumeRecord. 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
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
620b32b316fd4f1bab4eef55ec8802d14a55e7dd |
|
24-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Package and storage movement callbacks. 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
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
e6c04f9417cc4bff0f5f9e72f0d6d66d2aab6e80 |
|
19-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Broadcast hidden volumes, notification polish. Send limited broadcast intent when certain volume state changes occur; the only customer for now is ExternalStorageProvider. Change notification flow to be less bumpy. Pick USB icon based on disk type, and avoid using "generic" disk labels. Bug: 19993667 Change-Id: I263bc9e9aae2ae57eb4d1afe76da686aee5475fb
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
27de30d31c3e79bc429cb71aed9681c55243f18d |
|
19-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Wire up non-visible volumes, more states. Adds logic to ExternalStorageProvider to scan non-visible volumes, such as USB OTG devices. We use internal paths when surfacing these volumes, which also optimizes around the FUSE daemon for public devices. Also dumps internal state when requested. VolumeInfo now directly contains DiskInfo, which means it's snapshotted when sending events, avoiding teardown races. Switch notifications to use this DiskInfo directly. Finish wiring up new volume state, including helper methods to make it readable/writable state clearer. Handle disks and volumes with spaces in their labels. Bug: 19993667 Change-Id: I5c75e5658a6415976811477aebafee7694bde0f4
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
7e92ef3a1146102806fa0543ef12e09231c55639 |
|
18-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Volumes know parent disks; unsupported disks. This is cleaner and more direct than the reverse of having the disk publish child volume membership. Rename state constants to match public API. Add state representing bad removal. Make it clear that volume flags are related to mounting. Send new unsupported disk event when we finish scanning an entire disk and have no meaningful volumes. Splice disk labels into description when known. Only adoptable slots are directly visible to apps. Bug: 19993667 Change-Id: I12fda95be0d82781f70c3d85c039749052dc936b
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
e2d45be4dae116307f8edd85eaa61134221cb8f9 |
|
16-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Candidate volumes for packages, fix symlink. Add API to determine the possible candidate volumes that a package can be moved to. For example, it currently knows that we need to move ASEC-based apps through internal storage before migrating them to a private volume. Comparator for consistent VolumeInfo ordering when displayed in UI. Fix native library symlink to be volume UUID aware. Bug: 19993667 Change-Id: I68d5fac5f0f776ac1c7dd15e7a984bfe2704f3f7
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
d95d3bfb2b28a4f21f3fdcd740160c9a61eb0363 |
|
15-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Persist nickname and flags for volumes. StorageManager now offers to persist a nickname and user flags for active volumes. This metadata is kept around and spliced into any future VolumeInfo when the same UUID is present. Current user flags indicate "initialized" and "snoozed" states to control how notifications are shown. Notify listeners when metadata changes, and kick public notification after a volume is initialized. Make unique PendingIntents when multiple volumes are active. Beginnings of plumbing to ask for missing volumes. Offer explicit accessors for VolumeInfo and DiskInfo to give better path to documentation and deprecation. Bug: 19993667 Change-Id: I3d8b68be83f43ba992d21d51cad5b775776d681c
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
56bd3129138b525b0f2eba52bd4fa140f23e792c |
|
14-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Checkpoint of storage notifications. Rewrite of storage notifications to support multiple disks/volumes, handling the state of each independently. Update strings to match spec. Include actions to jump into wizard when adoptable, otherwise browse or eject. Move browse intent creation to common place on VolumeInfo. Also add well-formed extra names. VolumeInfo now carries the parent disk ID along with it to avoid races when unmounting. Bug: 19993667 Change-Id: I236ddc7f8112490355f438b828bec8d40c331fdd
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
59d577a518333f4b4514315b6d10e8dba160abcd |
|
12-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Browse mode for DocumentsUI, removed volume state. The existing management mode is too specific, and requires that storage backends add queryChildDocumentsForManage(), etc. Instead, to offer more natural browsing support, add a new BROWSE_ROOT intent. It behaves mostly like MANAGE_ROOT, except that it doesn't mutate its Uris with setManageMode(), and it shortcuts straight to VIEW on clicked documents. It can be launched like this: $ adb shell am start -a android.provider.action.BROWSE_ROOT -d content://com.android.externalstorage.documents/root/8405-1DFB -c android.intent.category.DEFAULT Also rename a MetricsConstants to make it clearer, and don't auto-mount all emulated volumes. Fix bugs around parceling of DiskInfo/VolumeInfo. Method to resolve the best description for a VolumeInfo, which might need to fall back to DiskInfo. Add back "removed" volume state so we send broadcast when a volume is destroyed, matching the expected public API behavior. Bug: 19993667 Change-Id: I13aff32c5e11dfc63da44aee9e93a27f4690a43f
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
b2b9ab8354da1485178cd8d8e9d89ac915b3f269 |
|
06-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Installing packages to expanded storage. PackageManager now offers to load/unload packages when expanded volumes are mounted/unmounted. Expanded storage volumes are still treated as FLAG_EXTERNAL_STORAGE from a public API point-of-view, but this change starts treating the INSTALL_EXTERNAL flag as exclusively meaning ASEC containers. Start tracking the UUID of the volume where a package is installed, giving us a quick way to find relevant packages. When resolving an install location, look across all expanded volumes and pick the one with the largest free space. When upgrading an existing package, continue preferring the existing volume. PackageInstaller now knows how to stage on these volumes. Add new movePackage() variant that accepts a target volume UUID as destination, it will eventually move data too. Expose this move command through "pm" command for testing. Automount expanded volumes when they appear. Bug: 19993667 Change-Id: I9ca2aa328b9977d34e8b3e153db4bea8b8d6f8e3
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
16c9c249d5f06014442aa5c78254b702f6a034c5 |
|
05-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Fix up ExternalStorageFormatter. It's not going to be around for much longer, so just fix enough to work correctly. Also teach about new "unmountable" state from vold. Bug: 19993667 Change-Id: Ib72c3e134092b2a895389dd5b056f4bb8043709a
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
7151a9a887051542c6da9f380376f3b306184e5c |
|
05-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Storage methods using IDs, update listeners. Add StorageManager methods that work with Disk and Volume IDs instead of paths which can change over time. For example, a freshly formatted volume has a different UUID and mount point, even though it's the same volume. Update StorageEventListener to be all one-way calls to avoid blocking while dispatching events. Add new listener method for Volume-level state changes. The existing state method will remain focused on the per-user state reflected by StorageVolume. Switch listeners over to using the more robust RemoteCallbackList pattern under the hood. Change external ASEC scanning logic in PackageManagerService to be driven by listener events, instead of explicit MountService calls. Bug: 19993667 Change-Id: I57c505de260ff1762a78d70d15f1892f40229210
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|
1b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9 |
|
04-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Parcelable objects for Disk/Volume. Will eventually be used by SystemUI and/or Settings. Also fix SettingsProvider NPE. Bug: 19993667, 19909433 Change-Id: Ie326849ac5f43ee35f728d9cc0e332b72292db70
/frameworks/base/core/java/android/os/storage/VolumeInfo.java
|