8b38d083c42e2706e1ff5a1410fa61d1f5dea3f5 |
|
31-Oct-2016 |
Jeff Sharkey <jsharkey@android.com> |
Public volumes belong to a single user. When a public (vfat) device is inserted, it's strongly associated with the current foreground user, and no other users should be able to access it, since otherwise that would be a cross-user data leak. To use the device under a different user, switch users and then eject/remount the device. Test: verified user isolation of USB drive Bug: 32523490 Change-Id: I590c791996f1fea8d78f625dc942d149f1f41614
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
2c89a4c170d05d82b81b7eba6b829aeb10aaa665 |
|
21-Sep-2016 |
Jeff Sharkey <jsharkey@android.com> |
Rename should behave like create: avoid conflict. When we create a file that already exists, we try attaching a suffix like "(1)" to the filename to avoid the conflict. The newly added rename method should do the same, since developers may not have access to delete the conflicting file. Test: boots, rename via UI, new unit tests Bug: 31545404 Change-Id: Ie397eebb0fbf98cf079eee3bbbb6c6b7ca627d91
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b56e9213ce650f6d35ab6cd9c171e4fdf2b32762 |
|
03-Aug-2016 |
Ben Lin <linben@google.com> |
Lowercasing search query in ExternalStorageProvider#querySearchDocs. Bug: 30620314 Change-Id: I4203eda72c94fde11d3973274138ad88edb51e5f
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
c50875e42ef5af5013433d32e6a2017db1234733 |
|
15-Jul-2016 |
Jeff Sharkey <jsharkey@android.com> |
Build both filename views before deleting. Otherwise we'll throw when trying to create the second (visible) filename because we just deleted it. Bug: 30087518 Change-Id: I940a8f81c264fc17d477fadf46fd48eae29f2f6f
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
813f9e8323e60abcaa77cc21af18614303313b22 |
|
08-Jul-2016 |
Jeff Sharkey <jsharkey@android.com> |
Use visible paths when cleaning up MediaStore. The media scanner always records visible paths, so we need to use visible paths when cleaning up deleted records. Bug: 28581384 Change-Id: I8a2c65001216e4a96b2375579363a771de782bcc
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.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/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
ba23e54d263fefaac96b3ce6b068e70ec6f06128 |
|
03-Mar-2016 |
Steve McKay <smckay@google.com> |
Show proper icons for SD and USB attached storage. Use USB icon for MTP devices. Bug: 26883880 Change-Id: I8ce85ffc915a012dca79a5de1cc7c74361776792
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
ecec7cb0623100526ef9ff68cc2d841ca8f71729 |
|
02-Mar-2016 |
Steve McKay <smckay@google.com> |
Use device model and name for internal storage. Bug: 27157923 Change-Id: I1d723e33fa871565fbd187509ffb05f691f030ac
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.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/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
e192cb71d6a8e2e85c32cfb3d61ea5770d1e4e00 |
|
01-Mar-2016 |
Tomasz Mikolajewski <mtomasz@google.com> |
Fix crash in isChildDocument when parent is in zip, and child not. There is no regular file representation for archive documents, so the call to getFileForDocId(archivedDocId) was throwing an exception. Bug: 27383423 Change-Id: Icbc1e8ecdddc7698cfdb79b41da6e1d3cecf11ae
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
ab3b8936dc1f4a24cffea422baf9ef51f0de05e7 |
|
16-Feb-2016 |
Steve McKay <smckay@google.com> |
Remove "HOME" directory. Use "Documents" instead. Use "Folder" as home icon for now. Bug:27148009 Change-Id: I9f57bba1c8e51ae7887861923f5baa8f69ec2e6e
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.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/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
5c462a0e31dc75527d55a26f9cabf45d2ab874b3 |
|
30-Jan-2016 |
Steve McKay <smckay@google.com> |
Create "Home" dir instead of "home" to match other default dirs. Add DIRECTORY_HOME to android.os.Environment...use that for dir name, so we don't use a localized name when creating directory. Mark all of the DIRECTORY_* fields final. Bug: 26814341 Change-Id: I5a11bcb180674c619de2f5ce9ed598521e60cc25
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b012f913cbb3e91572817914537ec16e6138a6db |
|
23-Jan-2016 |
Felipe Leme <felipeal@google.com> |
Initial implementation of OPEN_EXTERNAL_DIRECTORY. It opens a an alert dialog that tells user application X is requesting access to folder Y on volume Z; if user accepts, it returns the proper URI, otherwise it returns RESULT_CANCELED. The requested path must satisfy the following requirements: 1.It's directory (getName()) must be one of the pre-definied folders on Environment. 2.It's root (getParent()) must be a valid external storage root. In order to satisfy #2, DocumentsUI calls the ExternalStorageProvider, through a custom call() implementation. BUG: 23011462 Change-Id: I8e491e82ae320df88f7b8923286c4c1ad050ae80
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
d46ecbcc5322cf817e64591e985f1f2a6167e9a7 |
|
25-Jan-2016 |
Tomasz Mikolajewski <mtomasz@google.com> |
Add support for multi-parents to DocumentsProvider::moveDocument. Bug: 26481380 Change-Id: I96290268fd49072a334bde9c04c5313de8540f56
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
7e326a867c12222c7fb359d2ce9ab0b95b8ab6c4 |
|
22-Dec-2015 |
Tomasz Mikolajewski <mtomasz@google.com> |
Wire thumbnails in archives in ExternalStorageProvider. Bug: 20176812 Change-Id: Ibf421df1c26583b4b7c3a8516eac79ea0ef31ec3
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
68dec40633db637b804b5cc292d4ca981e61c379 |
|
24-Nov-2015 |
Tomasz Mikolajewski <mtomasz@google.com> |
Add support for archives to ExternalStorageProvider. Bug: 20176812 Change-Id: If27cf7d6198d0abcd4458bfbfd27f870ad6d8f30
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
c6a4cd8c0f35a7e9d126ab09924f8f1f8422182a |
|
18-Nov-2015 |
Steve McKay <smckay@google.com> |
Add "Home" directory support. Update FilesActivityUiTests to verify Home is present and that clicking a root sets the title accordingly. Guard addition of WRITABLE flag with a volume test. Bug: 25147243 Change-Id: Ic20372737cae08a82af0aade0c0dbbd8c22d5f34
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
2273e0f095e3cd459d2c72982c396e9941c876e2 |
|
04-Nov-2015 |
Tomasz Mikolajewski <mtomasz@google.com> |
Implement efficient move on Internal Storage. Bug:24884813 Change-Id: I5a8dfeb13313a3e60ba2993643eb547adca7b851
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
307d424467daf82542715c66735daebd87af6dce |
|
25-Sep-2015 |
Jeff Sharkey <jsharkey@android.com> |
Clean stale entries when deleting files. When deleting files directly from external storage devices, remove any matching entries from MediaStore so we don't end up showing stale entries to clients, such as MTP/PTP. Also handles the case where an entire directory is deleted. Bug: 24045921 Change-Id: I802470fa1aa03e0bec147ea113f1a49e26a0f3f9
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
865ea7c800883176e5bd9924f27abb3cbacd5178 |
|
31-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Handle volumes without visible paths. Transient volumes like USB drives are not mounted as visible, so we shouldn't be kicking off media scanner for them. Bug: 22545248 Change-Id: Ic8f2d3134f1edb8b2a12e8ff283eceeeb230f48b
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
14a6df7d7626b5e3c739e4dafd11073a471c91a8 |
|
01-Jul-2015 |
Makoto Onuki <omakoto@google.com> |
If user ejects a storage from details, take user to... ... the storage list view 1. Change to ExternalStorageProvider When available volumes have changed, it now notifies on "content://com.android.externalstorage.documents" rather than on "content://com.android.externalstorage.documents/root/", because it'll also affect "content://com.android.externalstorage.documents/document/*/children". 2. Change to DocumentUI - DirectoryLoader now won't crash when a provider returns null. - DirectoryFragment now closes itself (i.e. emulate a back press) when a load failed. - It now correctly reloads contents when a volume is ejected thanks to 1. Bug 21472170 Change-Id: Icf4bbc2ebb9067313dbbb67083cd4115b0a75c58
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b521feaed410b6862baca9b42d5fd7c398e07b2f |
|
16-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Update file size formatting. Per UX, default strings should have space between value and units resulting in "12.3 GB". Add a formatting variant that returns the various components for callers who want to build their own strings. For now there is only one mounted emulated volume at a time, and it's always the primary storage, so give it the default rootId to keep old Uris working. Change-Id: Ifcc72a91a6b397ee65dc92642153286186eb64ac
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
62539a220c6810f66b63060326bd1668f7d6b029 |
|
23-Apr-2015 |
Ben Kwa <kenobi@google.com> |
Move extension checking code into FileUtils. 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
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.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/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
1407d4c77732c7fad34c6b813d05771de6ed970f |
|
13-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
DocumentsUI roots can have settings. Roots use a flag to indicate they have settings, and DocumentsUI offers to launch towards someone who handles a new Settings intent. Slight rename of browse intent for clarity. Bug: 19993667 Change-Id: I86302ec1cfac5e435d8bc5701bdb85fb9b0dcbae
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
0cce5355b45d835f95a8918b8b803fd977d374e4 |
|
26-Nov-2014 |
Jeff Sharkey <jsharkey@android.com> |
Sanitize display names, keep extensions intact. When creating or renaming files on external storage, sanitize the requested display names to be valid FAT filenames. This also fixes a handful of directory traversal bugs. Also relax logic around generating display names to allow any extension which maps to the requested MIME type. Tests to verify. Bug: 18512473, 18504132 Change-Id: I89e632019ee145f53d9d9d2050932f8939a756af
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
c99d00be675fa34944d47d340f4168564bd4cd64 |
|
24-Oct-2014 |
Jeff Sharkey <jsharkey@android.com> |
Use default volume description when missing label. Some mounted storage volumes may not have a user-defined label. In those cases, use the default description for the volume. Bug: 17781505 Change-Id: I8558ba2615c2ff2647a5d44afaec83249df466ab
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
ab1e9bddd83466f15c2f61fbc0b942c6416eb87a |
|
05-Aug-2014 |
Jeff Sharkey <jsharkey@android.com> |
Scan after writing external storage files. Kicks off media scanner after files are written. Bug: 13557203 Change-Id: I61613f28e07b068573079cc1e362fd3fe135684e
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b9fbb7290b02de1ce621deaa2d28a5e42f2e0937 |
|
05-Jun-2014 |
Jeff Sharkey <jsharkey@android.com> |
Refactor directory API to "opening document tree." Cleans up API so it consistently refers to opening or working with a subtree of documents. Also separates isChildDocument() support from the concept of directory tree selection. Bug: 15429194 Change-Id: Ice66a751ff4bd0cc4d34c44c5da13a0dc4186dc9
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b7e1255d5c8d9e4fa8dd389afb9f5aab35434df3 |
|
22-May-2014 |
Jeff Sharkey <jsharkey@android.com> |
Support for renaming documents. DocumentsProviders can mark documents as supporting rename, and they have the opportunity to change the DOCUMENT_ID as a side effect of the rename. This supports providers that embed the display name into DOCUMENT_ID. Issues a URI permission grant to the new document, if any. Adds renaming support to platform ExternalStorageProvider. Also adds directory deletion support. Bug: 12350110 Change-Id: Ica4b1ae6769ee994f70f6b6b2402213eebd064e0
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
21de56a94668e0fda1b8bb4ee4f99a09b40d28fd |
|
06-Apr-2014 |
Jeff Sharkey <jsharkey@android.com> |
Add directory selection to DocumentsProvider. Introduce new ACTION_PICK_DIRECTORY that allows users to grant access to an entire document subtree. Instead of requiring grants for each individual document, this leverages new prefix URI permission grants by defining new "via"-style URIs: content://com.example/via/12/document/24/ This references document 24 by using a prefix grant given for document 12. Internally, we use isChildDocument() to enforce that 24 is actually a descendant (child, grandchild, etc) of 12. Since this is an optional API, providers indicate support with Root.FLAG_SUPPORTS_DIR_SELECTION. Extend DocumentsUI to support picking directories. Expose createDocument() API to work with returned directories. Offer to canonicalize via-style URIs into direct URIs, generating exact permission grants along the way. Override openAssetFile() to pass through CancellationSignal. Move testing code into ApiDemos. Bug: 10607375 Change-Id: Ifffc1cff878870f8152eb6ca0199c5d014b9cb07
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
db5ef125007644daa94aeaf1bd8637f4e0095e94 |
|
26-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Use inotify to update DocumentsUI. While user is actively looking at a directory, subscribe to inotify events and notify of content changes to trigger requeries. Reference count the observers, since multiple cursors are regularly open during requeries. Fix leaking cursors on activity rotation; crazy loader ID generation is no longer needed. Bug: 10999396 Change-Id: Iddeb08a056fee80c93df8499874705bcd213a1e2
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
96c620595bd0585f934b0971b4552c57845e9a78 |
|
26-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Extra to always show advanced devices. Also always lower-case extension to extract MIME type correctly, we may want to fix in MimeUtils at some point. Bug: 11354402 Change-Id: I77d0c06a663cd0c4320c41553ff1980b6f9a7778
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
1f706c6cd1cb841adadc2babc57a34e5728983ec |
|
17-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Include external storage devices in DocumentsUI. Include volume UUID in generated document IDs to uniquely identify volumes over time. Show volume label to users. Watch for mount changes to update available roots. Bug: 11175082 Change-Id: Ia151bde768587468efde0c1d97a740b5353d1582
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
c1c8f3f97d344a24bfddcb56a8be05e7e2fabe9e |
|
14-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Add extras to AFD, send orientation metadata. AssetFileDescriptor augments a ParcelFileDescriptor with details about how it should be interpreted, so extend it to support a Bundle of extras. Then use these extras to share thumbnail orientation metadata. The raw image data of EXIF thumbnails matches the orientation of the enclosing image, but the thumbnail data doesn't repeat the EXIF flags. This meant that receivers of openDocumentThumbnail() would get an image that needed to be transformed, but without enough context to actually transform it. Instead of transforming and recompressing the image on the fly on the provider side, send a transformation hint that the receiver side can interpret. Bug: 11205688 Change-Id: Ibc5a7ad002377a55e6ffcb5ac5c8829841002e06
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
d5a4658cea8def24155849a8621608155dcba05c |
|
11-Oct-2013 |
Jeff Sharkey <jsharkey@android.com> |
Treat dates near epoch as unknown. Also document that rootIds need to be stable, so removable media roots should use the media serial number. Bug: 11151557 Change-Id: I1f3dcabcd0474f1bf92d2cafb0f37e82abe34e05
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
6efba22ce510352bb84910d6efc42fecafd31ed7 |
|
28-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
New roots UX, async, performance, docs. Yet another iteration from UX on how roots should be ordered. Since we no longer categorize by type, remove from public API. Updated asset drop with new dividers. Update public API docs to be explicit about required columns. Hide flags and columns that aren't required for third-party apps. Move remainder of potentially blocking work to AsyncTasks, including creating directories, picked root resolution, and creation of new documents once picked. Improve performance of layouts by removing baseline alignment and reduce hierarchy depth. Set alpha on ImageViews directly to avoid offscreen rendering hit. Limit returned recents to 45 days. Show load in recents when still waiting for backends. Show empty message when no recents stacks to create from. Use unique key when saving recent stacks. Bug: 10941423, 10819454, 10964412, 10960718 Change-Id: I08cf589dcda7e203acf67928f4d30322ae36ee94
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
2a030b05a978281147df4d1cc4f12bc8d61c0729 |
|
26-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Directories are always enabled; update assets. Fix bug where item enabled state depended on FLAG_SUPPORTS_WRITE; directories are now always enabled. Also unifies enabled testing. Bug: 10903210, 10946731 Change-Id: I241533d273dfe4a2146bb322a8bd93066bf4ef55
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
5e1a5e5bad475696e842addceb7dd6a519879f98 |
|
22-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Merge "Create unique files, root ordering, UI bugs." into klp-dev
|
5545f56f7561810187545a1817b6001dd1f9931b |
|
21-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Create unique files, root ordering, UI bugs. When a file already exists on disk, try adding a counter suffix to make a unique name. Move services near top of roots list, just below recents. Remove "Documents" root. Increase number of recents allowed from single provider, and add more logging to diagnose wedged loaders. When launching GET_CONTENT apps, wait for successful result before relaying result; canceled requests now return to DocumentsUI. Add CloseGuard to ContentProviderClients, since leaked instances can keep the remote process alive. Fix UI bug around trailing breadcrumbs. Fix bug that dropped Recents from roots list. Add up action to Settings activity. Give our activity a default icon while waiting for async roots to load. Bug: 10818683, 10819461, 10819461, 10819196, 10860199 Change-Id: I7b9e26b1cf8353dd3175458b23da2b4bda6c5831
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
eb8c3f93edc826413ff4143284dec01c1061d5cc |
|
20-Sep-2013 |
Adam Lesinski <adamlesinski@google.com> |
Surfaces ParcelFileDescriptor#parseMode() as API Moves ContentResolver#modeToMode() to ParcelFileDescriptor#parseMode() bug:10711271 Change-Id: I28a5de4ca70adfbec4caf739863b77f0fd7fd9a4
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
3e1189b3590aefb65a2af720ae2ba959bbd4188d |
|
13-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Move search to roots; Documents root; hide empty. Documents searches now happen root-wide, instead of only under a subdirectory. Updates abstract class and flags to match. Add flag for a root to indicate it's empty, and hide empty roots in UI unless creating. Define "Documents" public directory and storage backend to contain files. Bug: 10712057, 10710865, 10710758 Change-Id: I8716367568969f9cb1d83927b2bf5a7013809350
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
4ec973925fc2cd18f9ec0d0ca5af588564fded27 |
|
10-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
More UX work for thumbnails, search, management. Hide non-finished downloads from normal picker UI, but keep them around in management mode. Uses a Uri query parameter and a hidden API on DocumentsProvider. Scale thumbnails to fit viewport, always show MIME icon while waiting on thumbnails, and crossfade between them. Cancel thumbnail tasks when views are recycled. Filter directories out of search results for now. Also leave sort ordering from backend intact, since it's custom ranking. Fix SearchView interaction to dismiss properly and restore across orientation and drawer state changes. Hide most actions when drawer is open. Invalidate RootInfo cache when locale changes. Apply sort ordering when showing recent create directories. Hide recent summary string when icon is enough for user to disambiguate. Bug: 10667184, 10665663 Change-Id: I331d3272a08c497f88dc659d9e112231cb35aa69
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
b7757a6b32edea62a1a9a803ad83579220f26100 |
|
10-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Rename offer() to add(), remove/hide some APIs. Change MatrixCursor offer() to add() based on review feedback. Remove some now-unused XML metadata. Hide document creation, since it's not supported in initial version. Bug: 10577809, 10461706, 10678563 Change-Id: I7b3f4c6899c28f633471ef816bee22bf032aa0d2
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
6d97d3c1a2ebac4e3f32c7e5bc134864ace1c17f |
|
06-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Another asset drop, provider icons, tests. Latest asset update, including provider icons which are treated as special cases for now instead of checking into separate apps. Add tests for MIME type matching of roots. Remove unused XML. Bug: 10510022 Change-Id: Id567a9e06ba241f60ac011823e550253c6c797fb
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
348ad6866b91afa4d59d45df533ef88094c74d13 |
|
03-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Filter roots based on incoming request. When incoming request is for local-only content, or for ACTION_CREATE, only include roots advertise those features. Filters roots based on the allowed MIME types and the supported types advertised by each root. This supports displaying Images and Audio roots only when requesting those content types. Applies the same filter when deciding which roots to query for recents. Fixes advanced filtering instead of limiting to just devices. Update sorting so that Recent always appears first. Add testing support for LOCAL_ONLY. Bug: 10597317, 10526535 Change-Id: Ic5ccf475c4fe93fd52b29388d369d7f6915c0c42
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
ae9b51bfa313c51a31af30875a71255d7b6d2e61 |
|
01-Sep-2013 |
Jeff Sharkey <jsharkey@android.com> |
Refactoring of DocumentsContract. Combines related columns and constants onto the same class so they are easier to discover. Move back to surfacing roots with columns so they are consistent with documents. Advanced roots are represented with a flag instead of distinct types. Flags to indicate supporting of well-known media types, instead of arbitrary an MIME filter. Reintroduce well-formed rootId to support recents. Always use the expanded version of "documents" in constants, methods, and argument names. Refactor DocumentProvider method names to clearly distinguish if a single item or multiple could be returned, and of which type. Add documentation to clearly define which methods have already been overridden. Bug: 10567506, 10567557 Change-Id: I981f26ab82f2b520a19aa1ce66f659de50d7fac0
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
aeb16e2435f9975b9fa1fc4b747796647a21292e |
|
28-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Stronger DocumentsProvider contract. Using a contract class requires that a provider implement it exactly with little help. This change introduces a DocumentsProvider abstract class that provides a client-side implementation of the contract that greatly reduces developer burden, and improves correctness. This also moves to first-class DocumentRoot objects, and moves calls with complex side effects to be ContentProvider.call() invocations, offering more granular permission control over Uri operations that shouldn't be available through Uri grants. This new design also relaxes the requirement that root information be burned into every Uri. Migrate ExternalDocumentsProvider and DocumentsUI to adopt new API. Bug: 10497206 Change-Id: I6f2b3f519bfd62a9d693223ea5628a971ce2e743
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
6398343e83b3fd11dd6536cf6f390a52c1e19d2e |
|
21-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Return EXIF thumbnails when available. Adds new ExifInterface method to extract the thumbnail range from a larger image file, and use that to return an AssetFileDescriptor. When decoding an AssetFileDescriptor thumbnail with offsets, read out the raw data entirely, since Skia uses lseek() aggressively. Bug: 10412208 Change-Id: I7906cdf82c0c3794cec7043c801a86f66efeb143
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
9d0843df7e3984293dc4ab6ee2f9502e898b63aa |
|
07-May-2013 |
Jeff Sharkey <jsharkey@android.com> |
Resized thumbnails; async; extend MatrixCursor. When requesting thumbnails, check if their dimensions are larger than requested, and downscale to avoid memory pressure. Load them async and with LruCache. Extend MatrixCursor so that RowBuilder can offer() columns without requiring they know the projection map. This makes it easier to respond to query() calls, where the remote side controls the projection map. Use it to handle custom projections in external storage backend. Update date/time formatting to match spec. Bug: 10333418, 10331689 Change-Id: I7e947a8e8068af8a39b55e6766b3241de4f3fc16
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
a5599ef636e37cb0b6474349936999be1afe6987 |
|
16-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Documents management mode; API adjustment. Create documents manage mode to support Downloads and transient storage devices. Locks user into requested backend root, and forces file sizes on and sorting by last modified. Separate API constants for Documents versus Roots, and give concrete MIME types for roots. Treat null sizes as unknown. Documents are always enabled in list so that divider is drawn. Mark external storage file as writable. Bug: 10329983, 10332993, 10332952 Change-Id: I05f4fdf5b04041a38e1ba7fb30202a3b0c615bf6
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
dc2963aecaf38bf53d6de82957412a486049c207 |
|
03-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Track and persist directory stacks; recents work. Move to manual tracking of directory navigation stack so we have Uri data to persist, instead of opaque fragment backstack. Remember directory stacks across launches on a per-app basis. Start recording recently opened and created files. Uniform Uri parameter extraction utility methods in contract. Change-Id: I79ed30ee10272bf7c53d339e797639c993f649bb
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
92d7e697a864a3e18bef4ef256bb3eb339a66b4e |
|
02-Aug-2013 |
Jeff Sharkey <jsharkey@android.com> |
Reference docs by ROOT_ID and DOC_ID; recents. The same document may be present with different sematics under multiple storage roots, so always reference using both ROOT_ID and DOC_ID. This enables backends to revoke permissions for an entire root, such as when an account is removed. Start building provider to remember recently accessed documents. Change-Id: I75befa2e61393dec12fcc7fd27f631fcddae46fa
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
20d96d8aff2193d548977e23ce5158657cac94e0 |
|
31-Jul-2013 |
Jeff Sharkey <jsharkey@android.com> |
Define storage roots, external GUIDs, creation. Allow storage backends to publish multiple roots into the UI, which are defined by a directory GUID, type, and label details. Update external provider to surface a primary external storage root, and switch to burning file path into the returned GUIDs so they remain durable. Added insert, update, and delete support to external provider. Adds file extensions to display names when needed to match MIME type. Add flags for searching and deletion, and extras for Cursor pagination. Add directory creation dialog to UI. Opening a document always gives write access. Change-Id: I9bea1aa0dcde909a5ab86aefeece7451ab920cf1
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|
9e0036ed7d3260d79cc5f9ffd8e3bbe760699924 |
|
27-Apr-2013 |
Jeff Sharkey <jsharkey@android.com> |
External storage provider, document picker UI. Continuing to flesh out storage backends by adding an external storage document backend. Still rough, but it can traverse files and directories. Early pass at OPEN/CREATE_DOC picker UI, which offers to traverse any known storage backends. Supports opening subdirectories and returning a picked file. Change-Id: Idc3554036b3816a93d9b465ee8a620746859d2ae
/frameworks/base/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
|