Commit Graph

154 Commits

Author SHA1 Message Date
Jeff Sharkey
04ec6f4f09 Only send EXTRA_STACK for private intent.
Since it's a private Parcelable class, we can't send it to other
third-party apps, since they won't know how to unpack it.

Bug: 22255387
Change-Id: Ie2ea6cf72b733bd122eb3581a5df295cec608425
2015-07-15 09:13:14 -07:00
Makoto Onuki
14a6df7d76 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
2015-07-01 15:11:46 -07:00
Makoto Onuki
9feac1425c Remove default activity title to prevent talkback from...
reading the wrong title.

We get a title from DocumentProvider with an async task, and by the time we
get it, it's *usually* too late and talkback end up reading the default title.

Bug 20041072

Change-Id: I7686fe4ae4c157ebfc07bd8b895c4cfdf99c057a
2015-06-23 16:51:45 -07:00
Tomasz Mikolajewski
41ce003934 Merge "Remove the action bar icon when there is no drawer enabled." into mnc-dev 2015-06-18 00:15:52 +00:00
Tomasz Mikolajewski
0e591f95bd Allow to customize title of the dialog.
TEST=adb shell am start -a android.intent.action.OPEN_DOCUMENT -e
     android.intent.extra.TITLE 'Upload!' -t "text/plain"
BUG=19150996

Change-Id: Ibded6cfaa2de3698c5eada154efbee2b323464d4
2015-06-17 16:12:14 -07:00
Jeff Sharkey
8bb1245a48 Finish when browsed root goes away.
If we're browsing a specific root, and that root went away, typically
due to formatting.

Bug: 21831184
Change-Id: Ie07607a81e32a7d82c88ad382658a471d47b905d
2015-06-16 20:54:14 -07:00
Tomasz Mikolajewski
536ac48aa9 Remove the action bar icon when there is no drawer enabled.
Keep the hamburger menu though if the drawer is visible and unlocked.

TEST=Tested manually on both tablet and phone form factors.
BUG=18685509

Change-Id: Ie6f8d7064da99d2dc34315ccb92ab4db6ee321b6
2015-06-12 15:33:45 -07:00
Jeff Sharkey
8a26514687 Merge "Selected count string needs plurals." into mnc-dev 2015-06-11 18:21:08 +00:00
Jeff Sharkey
f491c72e4a Selected count string needs plurals.
Bug: 21717427
Change-Id: Ie0db8ac30244b022ca5838969fb085230bfc4499
2015-06-11 09:19:37 -07:00
Daichi Hirono
186efa3836 Update visibility of the stack dropdown list after the search view is collapsed.
Previously we hid the stack dropdown list just before the action bar is
collapsed. Then the dropdown list gets back to be visible when the action bar is
collapsed.

The CL updates visibility of the stack dropdown list just after the action bar
is collapsed.

BUG=20945584
Change-Id: Iaf5055bce101f8134accd311829e50f441ddc98b
2015-06-11 14:29:28 +09:00
Ben Kwa
c783a5e762 Merge "Enable apps to exclude their own roots from the DocumentsUI roots list." into mnc-dev 2015-06-10 18:30:31 +00:00
Ben Kwa
77797400ec Enable apps to exclude their own roots from the DocumentsUI roots list.
- Add DocumentsContract.EXTRA_EXCLUDE_SELF (boolean extra)
- Add code to DocumentsActivity to cache the providers of the calling
  app if EXTRA_EXCLUDE_SELF is set on incoming Intents.
- Add code to RootsCache to exclude roots from the calling app.
- Add code to allow only system apps to use EXTRA_PACKAGE_NAME.

Change-Id: Ia7cc2a1a297676c7b26f6e583042a4607d8c9a4e
2015-06-10 11:24:55 -07:00
Ben Kwa
7c0ade56f3 Ensure that the copy notification is always cancelable.
If the CopyService dies or is stopped for whatever reason, the cached
"current" job ID will go to null.  In that case, the cancel intent will
be ignored, and the copy notification can never be dismissed.  Adding a
null check to the handleCancel method of CopyService fixes this.

BUG=21365043
Change-Id: I0615328f6033a313fec79f8b63291c7f7373ea0f
2015-05-27 09:19:28 -07:00
Steve McKay
574b4bcd1b [mnc-dev] Hide list/grid menu items for copy dest action...in mnc-dev!
BUG=21259006
Change-Id: Ic31dfa1a1cffa4340769c08db3e3cb3fb46e31d5
(cherry picked from commit e04e02d027)
2015-05-21 20:15:31 +00:00
Daichi Hirono
e9cbfe8e5a DocumentUI: Plish the design of footer bottons.
* Remove the directory name from "pick" button.
* Allign buttons at right.
* Fix bug that the pick button turns to be hidden after screen rotation.

BUG=20285152
Change-Id: I909d52f341bf67c5627431a354a9b0ccec152a05
2015-05-18 11:27:15 +09:00
Steve McKay
6e02dc8cd6 Delete StandaloneActivity from M (DO NOT MERGE)
The activity is already disabled by default.
Fix an issue where copy support error handling was attempting to invoke StandaloneActivity.

Change-Id: If15c312a183cae1b2a84517e7f7b3123c11bd619
2015-05-11 16:19:00 +00:00
Ben Kwa
75597d0dc5 Clean up error handling in CopyService.
Change-Id: I87b9f2c2cfddc222fbee64578b0a1349508a244f
2015-05-05 11:58:38 -07:00
Ben Kwa
c7a01cfe15 Cherry pick beefed-up error handling in the CopyService from master. DO NOT MERGE
Send copy errors to the destination provider.
Big overhaul of tests to make them simpler.
Test that errors during copying are detected and partial copies are
cleaned up.
Test that copying empty directories works properly.

Change-Id: I3fe0e73bdc92c2b6f522857ca5631f6d03d5a666
(cherry picked from commit dae8c378d6)
2015-05-04 20:28:44 +00:00
Steve McKay
69aee097a3 Ensure sort menu is shown as needed.
This also hoists common code for options menu setup into BaseActivity.

Change-Id: Ie87b8188a6c142b2312c92dc0d0bd550f0b1e59f
2015-05-04 16:21:09 +00:00
Tomasz Mikolajewski
366459ee59 Merge "Update strings for the copy error dialog to match the latest specs." 2015-04-23 17:13:33 +00:00
Tomasz Mikolajewski
eafb267bd9 Update strings for the copy error dialog to match the latest specs.
Change-Id: I9adeff3e7e9435237b4b3337e4c687eec39b0335
2015-04-23 19:10:14 +02:00
Tomasz Mikolajewski
f8c3f322a2 Implement retrying copying in case of an error in DocumentsUI.
Change-Id: I9ed1eb624aa30fb7e65d4d424ebd988dfc06d030
2015-04-23 18:51:33 +02:00
Daichi Hirono
517577ea96 DocumentsUI: Stop to override fixed size of dialog in CreateDirectoryDialog.
Previously CreateDirectoryDialog overrides fixed size defined in the application
theme. As a result, the dialog is shown as vertically long.

The CL specifies explicitly specifies the default theme for dialog when creating
the dialog to stop override the application theme.

BUG=20239384
Change-Id: I7227bd91705c32f5196b666bbe94ff32b5cb4af8
2015-04-23 15:02:15 +09:00
Steve McKay
a78a3694b5 Update activities to clear search term when a root that doesn't support search is selected by the user.
BUG=20495230

Change-Id: Iee2e2bd80dea6d368cad0911117e3759bdfe37d9
2015-04-22 15:57:11 -07:00
Steve McKay
a56104d74d Merge "Reduce code duplication between DocumentsActivity and StandaloneActivity." 2015-04-22 18:13:21 +00:00
Ben Kwa
c5979d98cf Disable copying from Recents.
Recents view contains a whole bunch of content aggregated from
potentially many different sources.  Dealing with all these in a single
copy operation can be complex, so for simplicity, copying from recents
view is disabled.

BUG=20487641

Change-Id: I6052e62ee0446da7741f13abfed97044e147dd7d
2015-04-22 10:33:53 -07:00
Steve McKay
ef3e2cf35f Reduce code duplication between DocumentsActivity and StandaloneActivity.
Ensure StandaloneActivity has toolbar management consistent w/ DocumentsActivity.
Introduce a separate SearchManager class since there seemed to be a sufficient body of logic and state to warrant the separation.

Change-Id: I87d9da40095c6de575b124005ca34a8c0b0b4b35
2015-04-22 09:44:30 -07:00
Daichi Hirono
cf0e9ace5e DocumentsUI: Save source file list into BaseActivity.State.
This is needed so that the activity does not lost the list on screen rotation.

BUG=20283251

Change-Id: I8f971bab0a0ce2066fd5fea29b98b355cb948ea6
2015-04-20 20:01:49 +09:00
Jeff Sharkey
4cfb3130a4 Merge "Enable the copy feature." 2015-04-19 04:35:39 +00:00
Ben Kwa
d58d954a15 Enable the copy feature.
Change-Id: Ie0636895f2b2fe6550eb68042295daf76bbbd7fe
2015-04-16 18:17:25 -07:00
Ben Kwa
f8f80c8034 Merge "Fix cancellation of copy jobs." 2015-04-16 16:45:29 +00:00
Ben Kwa
94ac0d7d30 Fix cancellation of copy jobs.
Add FLAG_CANCEL_CURRENT to the pending intent for cancellation, to
prevent reuse of previously created cancellation intents.  Previously
created intents have non-matching job IDs, which causes the cancellation
intent to be ignored.

BUG=20221969

Change-Id: Ie0afcc6af53a550b44bc4b2f3d48942cdb092a65
2015-04-16 09:43:41 -07:00
Daichi Hirono
c2eaa6e213 DocumentsUI: Hide pick button of copy destination picker for read only directory.
BUG=20238336

Change-Id: Ia2a0ef2889a2153d99c0f305deda151a04483173
2015-04-15 15:20:49 +09:00
Daichi Hirono
52743f3b17 Merge "DocumentsUI: Use system cancel string resources." 2015-04-15 05:44:15 +00:00
Daichi Hirono
e4db58edd4 DocumentsUI: Use system cancel string resources.
BUG=None

Change-Id: I989e28ad4729176d66b1b333f242470129d139fa
2015-04-15 14:33:52 +09:00
Daichi Hirono
1a2fdb496e DocumentsUI: Move intent related constants to BaseActivity.DocumentsIntent.
BUG=None
Change-Id: I81d367d5f8d727a5fa76bc22b2fe871ae441dbcf
2015-04-15 13:43:28 +09:00
Daichi Hirono
c96e494ac7 Merge "DocumentsUI: Filter out downloads root if the source documents include directory." 2015-04-15 04:30:10 +00:00
Daichi Hirono
9be34298be DocumentsUI: Filter out downloads root if the source documents include directory.
This is the short term solution for the downloads root, which does not support
directory creation. For the long term solution, we need to add a flag to Root
model to check if the root support directory creation or not.

BUG=20186663

Change-Id: I15c4795892f38e3f968776f732a6f2160ae775fc
2015-04-15 13:27:55 +09:00
Tomasz Mikolajewski
3b5adaaca1 Merge "Add an initial version of the copy failure dialog to DocumentsUI." 2015-04-15 04:02:14 +00:00
Daichi Hirono
de021abe40 DocumentsUI: Polish buttons of copy destination dialog.
* Add cancel button to directory picker dialog.
* Turns "select" label to "copy to" label for copy destination picker.

BUG=20170953

Change-Id: I66214804aed75a6fccc716d1a01163c634e73d7f
2015-04-15 12:57:53 +09:00
Tomasz Mikolajewski
61686593fd Add an initial version of the copy failure dialog to DocumentsUI.
Change-Id: Ibdfde661aa5b636570c017d3d00565c193d595a3
2015-04-15 12:39:27 +09:00
Jeff Sharkey
1407d4c777 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
2015-04-12 22:02:44 -07:00
Daichi Hirono
bbe2292bc6 DocumentsUI: Add new private intent action to select copy destination.
The CL adds INTENT_ACTION_OPEN_COPY_DESTINATION, and implements the behavior to
respond the intent action.

The directory picker:
 * filter out read only roots
 * return document URI instead of document tree URI
for the intent action.

BUG=b:20146034
Change-Id: I96c565100c3cdaa57cc7abd8cf6d895d148941a7
2015-04-13 13:49:31 +09:00
Tomasz Mikolajewski
e1a03f8eec Show copy destination when clicking on the copy notification in Documents UI.
Change-Id: I3d955595bc46903c134c0633a6d32663cc2d0c05
2015-04-13 11:35:27 +09:00
Jeff Sharkey
59d577a518 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
2015-04-12 16:03:50 -07:00
Ben Kwa
726cf70fd4 Enable directory copying.
- Enable directory picking for copying.
- Implement recursive copying inside the CopyService.
  - Pretty up the notification (use an indeterminate notification while
    calculating copy size)
  - Do two recursive walks: one to determine the size of the copy job,
    and then another to actually copy the files.
- Switch to using ContentProviderClient instances, for better error
  detection and handling
- Disable copying from the Recents view.

Change-Id: Ieb38cca80edf84a487547b68f0d6b328fc4d7701
2015-04-10 10:28:22 -07:00
Ben Kwa
ef3f2620b3 Prototype the destination picking.
- Add an intent to open a destination picker, and refactor
DocumentsActivity accordingly.
- Modify CopyService to take a destination for the copy, and to use URIs
and PFDs instead of Files and Streams, for better error handling &
cleanup.

Change-Id: I69dc43823a703674dc29d2215e2df23b33ad7882
2015-04-08 11:55:18 -07:00
Ben Kwa
d99109fca8 Enable directory selection. Add an IntentService to copy files.
Change-Id: I0bec0224aa1b52766664c23f77d60affec702111
2015-04-03 13:49:24 -07:00
Ben Kwa
3bcc9488a1 Add a "Select All" menu item and code.
Change-Id: I31ed8bff83d8a621a31ea5c2a0d1bb218f53d6e2
2015-03-31 09:12:37 -07:00
Steve McKay
e934ce6f84 Implement a standalone file manager activity.
Change-Id: Iaf86ef416b979cea4ab3890d3a26f09741392c3d
2015-03-25 14:38:56 -07:00