62 Commits

Author SHA1 Message Date
Ben Kwa
d27906e581 Tweak grid item layout. Adjust colors to match spec.
BUG=10960718
BUG=24326989

Change-Id: I74da23fe0b40d713a3f435d1467d26d707e76fca
2015-11-19 10:50:35 -08:00
Ben Kwa
9094585eb4 Adjust grid item layouts to match mocks.
BUG=24326989

Change-Id: I8a4133890036a2ef9173f20828f062a7e991525d
2015-11-10 20:32:17 -08:00
Ben Kwa
38e94747e7 Clean up/fix some minor focus-related code.
- Cleanup: Set the focusable flag in xml rather than in java.
- Add a border for the currently focused item in grid mode.

BUG=24326989

Change-Id: Ib17e93c377fb6b16bf8a7eccfb213f521d9596f0
2015-11-05 11:31:21 -08:00
Steve McKay
5aacf1fdbd Show only selection count in ActionBar.
According to mocks.
Also, remove padding on RecyclerView.

Bug: 24542381
Change-Id: I8abfa96020fb457641605dc184079de92f8b265b
2015-10-27 16:54:16 -07:00
Ben Kwa
d7915d2ab2 Fix a DocsUI crash due to a misnamed xml reference.
BUG=25266394

Change-Id: I06bd3283e52467af3ebb43396d4166b3c25620a9
2015-10-26 11:54:41 -07:00
Ben Kwa
bd96456d11 Implement enter key support for DocumentsUI.
- Add a click handler that basically handles all cases (including the
  enter key) of Items being clicked.
- Open the focused file in non-select mode, toggle selection if in
  selection mode.
- Remove now-redundant onSingleTapUp handlers.
- Redo focus indicator, since it's now possible to toggle selection on
  the focused file.
- Don't dismiss selection on arrow-key navigation.

BUG=24705453
BUG=25114155

Change-Id: Iba74188514ecf2bc6b56573087e3c3ccc83f85d2
2015-10-20 14:53:12 -07:00
Steve McKay
d20f87dad8 Rename "recyclerView" to "list" fixing some of CTS.
Bug: 24544391
Change-Id: I2ca74e2a007ec733092d4cb3f84b40c64392c766
2015-10-10 15:53:26 +00:00
Ben Kwa
94b486d32c Switch DocumentsUI over from Toasts to Snackbars.
Add a new top-level CoordinatorLayout to ensure proper operation of the
snackbar.
Switch all Toast code over to use Snackbar.

BUG=24474629

Change-Id: Iafffb35be6115cbac9304fd44e77e73b6be40c17
2015-09-30 14:47:55 -07:00
Ben Kwa
91bec536ac DocumentsUI: Add an error screen to DirectoryFragment.
- Reorganize the directory fragment.
- Repurpose the "empty" view to hold a message and a button.
- Message is set to the "No items" message if a directory is empty.
- Message is set to the error message if a query error occurs.
- Don't close DocumentsUI when a query error occurs.

Change-Id: I4e1e96f23040606b410ac746252dcb0ab9286f04
2015-09-24 15:06:14 -07:00
Steve McKay
c643386e28 Update RecentsCreateView to use RecyclerView.
Move common DirectoryContainerView handling to BaseActivity.

Change-Id: I2c34b23b7050b68999f16e6d7f651c94ea8e47b6
2015-09-22 15:58:15 -07:00
Ben Kwa
91caed80b1 Restore more missing DirectoryFragment functionality.
- Add a material-style horizontal progress bar to DocumentsUI.  This
  replaces the old loading footer.
- Restore the view-switching code that displayed a dedicated "empty"
  view when displaying an empty directory.
- Fix tests.

Change-Id: Ifecb867f6edecbdeb37b8607d87d9797879a589d
2015-09-22 13:24:51 -07:00
Ben Kwa
3b19e31e18 Replace error/info footers with a message bar.
- Remove footers from DirectoryFragment.
- Add a new MessageBar fragment that can display error/info messages.

BUG=22638983

Change-Id: I2075ae8e4dca8954a09c1fc57ed62bb6d3bff7a9
2015-09-18 13:53:41 -07:00
Ben Kwa
0f7078f004 Refactor DocsUI to break out a new ManageRootActivity.
- Split all ACTION_MANAGE-related functionality off from
  DocumentsActivity, into a new activity.
- Create new full-screen layouts for said activity.
- Fix some styling issues in {Documents,Files}Activity.

Change-Id: I0384715ad3c7d70a3a3daf510f1a09e8c5732348
2015-09-11 13:58:41 -07:00
Ben Kwa
a747d2e223 Switch DocumentsUI over to use AppCompat themes.
Switches from Material to AppCompat themes in order to start using
Snackbar.

Also, factor the common bits out of DocumentsNonDialogTheme and
FilesTheme, and make the theme names clearer.

BUG=23518578

Change-Id: I94a00e910469c57315823ae9df33024f2c7360ee
2015-08-31 11:43:46 -07:00
Steve McKay
38b4c6f436 Use resource aliases in-lieu of ViewStubs.
This eliminates the double resource inflation necsesitated by the use of ViewStubs.

Change-Id: I9749356bed24f48b8304897dc6d8dc47cc11736c
2015-08-24 12:11:28 -07:00
Steve McKay
12055474a7 Show a drawer when in portrait mode.
This makes more space available for content.
Rename all the "Standalone" stuff to just "Files".
Move layout inflation into base class.
Move backbutton > drawer interaction into BaseActivity.

Change-Id: Ie778b323c6e80122389f029be148dd9e0c4bfb6e
2015-08-24 09:05:51 -07:00
Ben Kwa
207968345a Make grid items be square.
Introduce a new GridItem class whose onMeasure method enforces a square
aspect ratio, and use it for rendering items when in grid mode.

Change-Id: Ieda82b644d0155354ee8e4c1dacae4af7436b7aa
2015-08-20 13:16:36 -07:00
Tomasz Mikolajewski
9c5e50169c Merge "Align root icons with the action bar icon." 2015-08-04 00:09:19 +00:00
Tomasz Mikolajewski
44adb33c7b Align root icons with the action bar icon.
Change-Id: I37ac445a562aaba55496adcf7cbf1768236bf7c0
2015-08-03 19:02:04 +09:00
Tomasz Mikolajewski
d89a2e44a8 Enable a ripple on the roots list in DocumentsUI.
Change-Id: I380cd66ace4ee1478e5a182545f916ac39e47d8d
2015-08-03 18:42:40 +09:00
Steve McKay
d13f3c9742 Grid item fixups.
Use margin instead of padding (so clicks on empty space don't do unexpected things).
Make background of items white.

Change-Id: I98996c90276911535b7addad1aad4a3c9ca47156
2015-07-23 18:39:54 -07:00
Steve McKay
73610b37de Include padding in calculation of column count.
Also rename background color and don't sepcify background in grid items.

Change-Id: I4b565604156864384626e75f0bfd41c98623f90a
2015-07-23 14:47:58 -07:00
Steve McKay
709b61de16 Pick column count based on available space.
Set background color of RecyclerView.

BUG: 22640007
BUG: 22672201
Change-Id: Ic9c65a2a25164698bc08b4620bfa0b067d620f1b
2015-07-22 17:29:10 -07:00
Steve McKay
4b3a13c1d0 Update DirectoryFragment to use RecyclerView.
Add MultiSelectMaanger class to manager selection on a RecyclerView instance.
There are several outstanding issues that still need to be addressed
surrounding Grid mode as the GridLayout manager doesn't support
automatic column count calculation.
Also, we're missing the puddle effect on touch...
And probably other stuff. But it all *mostly* works.
Oh, also. Footers are currently commented out.
Add traditional unit tests for MultiSelectManager.

BUG: 22225617
Change-Id: I3cd26a10683f42053556d463a5d2f0d2a0bbde84
2015-07-21 17:30:32 -07:00
Jeff Sharkey
1f6c9a1214 Fix DocumentsUI animation regression.
Various fragments need backgrounds to protect their contents during
animation transitions.

Bug: 22232368
Change-Id: I4ce4c57650f9b64b3c6101d829dd484417585410
2015-07-05 14:44:51 -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
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
Alan Viverette
40a38f3062 Implement DayNight theme for DocumentsUI
Also fixes tint colors for icons to use themed colorControlNormal.

Bug: 20421157
Change-Id: I110a1d95f763332e7ca76cf8ab4125bd4d9a075e
2015-04-22 16:51:08 -07:00
Daichi Hirono
ba383eb576 Stop to take multiline file name in the create directory dialog.
BUG=20275734

Change-Id: I1b0847598eb06091193bb63e6ab3a57033798c10
2015-04-16 16:45:33 +09: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
Jeff Sharkey
cbce47001e Final pass at Material DocumentsUI.
Now with treatment for disabled and selected grid items.  Inverts
text and icons in selected drawer items.  Follows upstream color
changes to accent color.  Disables some verbose logging.

Bug: 15836082, 17281688
Change-Id: I97a1c055a2f1a537388a8f5669147618e9698870
2014-08-29 15:40:19 -07:00
Alan Viverette
a1fe772bd7 Update material colors
BUG: 17212898
Change-Id: Ic0806db57e88d5143b4241e419970ffeb2468d50
2014-08-25 16:15:06 -07:00
Jeff Sharkey
f75eb0dd60 DocumentsUI is only dialog when really large.
Bug: 16780860
Change-Id: Ib20ef9771855beba5b31d19887c1c9c1b8e8e5ed
2014-08-05 17:16:44 +00:00
Jeff Sharkey
a847d79310 Light icons for DocumentsUI.
In some cases we want to show light variants.  Also tweak drawer
sizes and grid padding.

Bug: 15836082
Change-Id: Ic6459ff0533a7d346c03db5d7deb3d6da42e7649
2014-07-30 00:35:57 +00:00
Jeff Sharkey
f52773fd62 More DocumentsUI material iteration.
Move to using Toolbar for all actions.  Drawer contains its own
Toolbar with separate title, and hamburger is always visible.  Change
drawer items to match spec.  Switching to Toolbar allows us to remove
nasty dialog-on-tablet hacks, yay!  This also means we can finally
get real IME resizing support.

Move to using elevation for all shadows; this removes more nasty
hacks around drawing directory shadows.

Bug: 15836082
Change-Id: Iba70b898f385a7debd8aabfc98ff39d20bca860d
2014-07-29 23:19:45 +00:00
Jeff Sharkey
6963148e22 First pass at Materializing DocumentsUI!
Initial Material asset drop, which still needs some tweaking.  Moved
back to framework list item selectors, giving us ripples.  Using
accent color overlay for activated items.  Align all items to new
Material grid, including insetting list divider and resizing list
items on wide screens.

Fix obscure RTL drawing bug.

Still lots of work left.

Bug: 15836082
Change-Id: I729cc7dcb0271ee62b55d1e036fc28427fc0dd3d
2014-07-28 05:41:43 +00:00
Jeff Sharkey
21de56a946 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
2014-04-22 22:18:21 -07:00
Jeff Sharkey
04d45a0bdd Show spinner while waiting for mutations.
When mutation operations are waiting for a storage backend, show a
spinner in place of the save button.

Bug: 11333249
Change-Id: I2b620b4532ad977a2b60d4bdc5caa55f89021456
2013-10-23 15:48:05 -07:00
Jeff Sharkey
a27366efc4 Merge "Ellipsize titles in middle, otherwise end." into klp-dev 2013-10-07 20:17:54 +00:00
Jeff Sharkey
2c4b99fbe6 Ellipsize titles in middle, otherwise end.
Long document titles can include distinguishing details at the end
of the title, so ellipsize in the middle.  All other details ellipsize
at the end.

Bug: 11081420
Change-Id: I2c266ebc594d2ad383033b435acb8adb5fb823bc
2013-10-07 11:39:07 -07:00
Jeff Sharkey
ca25db0cb3 Custom pressed states, fixed column sizes.
Use custom pressed state assets.  Use fixed column sizes to prevent
truncating of long dates on small screens.

Also tear down any active CAB when switching fragments.

Bug: 11032418, 11028212
Change-Id: I2bf3dc3f693319b4b55cc901ed460f60faceba35
2013-10-04 14:48:08 -07:00
Jeff Sharkey
6efba22ce5 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
2013-09-27 17:13:13 -07:00
Jeff Sharkey
deffadeb74 Freshen restored stacks, more UX bug fixes.
When restoring a persisted stack, such as last location or a location
where save occurred, freshen the DocumentStack to get the latest
details from backend, and ensure the path is still valid.

Filter Recent directories in create mode based on roots allowed by
incoming request.

Remember when user last picked an external app, and open drawer next
time user launches for GET_CONTENT.

Fix state list drawable ordering, and avoid clobbering Drawable
callback when wrapping in InsetDrawable; tricksy hobbitses!

Make grid items smaller to always fit two columns on phones.  Draw
grid items all the way to screen edge; don't clip to padding.  Better
error message when folder creation failed.  Show Recents in grid mode
when picking any visual content, not just images.

Bug: 10846100, 10903211, 10898993, 10892808, 10892058, 10892009, 10885012
Change-Id: Ia0f88d911abc6ea03645d6fd3e04271c21d5936a
2013-09-24 12:57:47 -07:00
Jeff Sharkey
1feeddf518 Latest UX asset drop, grid padding.
Bring in latest asset drop.  Apply grid padding programmatically
instead of waiting for asset.  Remove alpha from directory animation.

Update save footer background to match spec.

Bug: 10700025
Change-Id: I8eef08f36d04767b78e91b23f72bdbebfbb02f58
2013-09-21 15:26:37 -07:00
Jeff Sharkey
e20a3acdc2 Save directory state and animate.
Save scroll position and restore when rotating or going up the
directory stack.  Also show directory animations when navigating
the directory stack.

Bug: 10417201
Change-Id: Ia2c508debc2bffffe6306eb9078afefef259dfe2
2013-09-18 17:12:25 -07:00
Jeff Sharkey
f6db154975 More UX updates around picking images.
When picking images or videos, hide the titles in recents, since the
thumbnails should speak for themselves.  Also respect new flag that
allows a directory to request their titles be hidden.

Show directory icon hint in grid mode when showing a thumbnail, to
remind user it's a directory.

Filter directories out of recents.  Hide most action bar icons on
phones, even when room.  Only show drawer on first launch.  Hide most
drawer headers to match spec.

Bug: 10710331
Change-Id: I0ef1973ddd62750f57345336388366eda1449720
2013-09-13 16:02:14 -07:00
Jeff Sharkey
88f322c311 DocumentsUI tablet support.
Shows as a faux dialog on larger tablets, since the normal dialog
themes from framework don't support action bars.  Instead, this hacks
itself to look like a dialog with an InsetDrawable.  Detects touches
in dim area to dismiss dialog.

Show all action bar icons on tablets, and roots panel is always
visible with a different shadow. Show settings in dialog. Allow mode
switches in recents.

Bug: 10329832
Change-Id: Id02982ce7b0d4694962d32f8d5286fdfcc207208
2013-09-12 16:39:50 -07:00
Jeff Sharkey
aca405cd59 Fix SDK build.
Change-Id: Ib12748478cb1b42621454ab2035fb8f3163b6ac8
2013-09-11 09:14:16 -07:00
Jeff Sharkey
ed903213e6 More tweaks to match UX spec.
Fixed text colors to match spec.  Behold The Greyening!  Centered
loader spinner in grid mode.  Show multiple lines in status messages.

Add string descriptions.  Fix bug where toggling size setting didn't
kick a UI rebind.

Bug: 10510022
Change-Id: Icb41ebeb4de0fed8c04fc6cf5213af1587b72641
2013-09-10 20:04:11 -07:00
Jeff Sharkey
4ec973925f 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
2013-09-10 16:40:36 -07:00