Commit Graph

926 Commits

Author SHA1 Message Date
Ben Lin
2e7234ce1d Fix a crash happening on a context menu.
When an activity gets a callback for onContextItemSelected, it first
gets dibs on handling it, and then it propagates the call to -every-
fragment it is tied to. This poses a problem since RootsFragment and
DirectoryFragment don't necessarily handle each other's menu items well,
which can cause NPEs. This is some temporary fix for it.

Bug: 30092676
Change-Id: I3f268c9c9580504b78581ad92a24c9a99c4a0daf
(cherry picked from commit 3e1699f3a3f3d0378d758e3b0d430165867eb89e)
2016-07-15 18:17:57 +00:00
Steve McKay
07886170d5 Addition UserInputHandler test coverage.
Pull event handling logic out of MultiSelectManager into UserInputHandler.
Pull out a couple common test support classes.

Change-Id: I8958fec9cda05f52192a07a682c318e049871a8d
2016-07-15 01:28:04 +00:00
Garfield, Tan
3c65bdc82d Fix a race and some comments in ClipStorage.
Change-Id: I6cc2108c677ce6611f5ebef70a88b625491a2e05
2016-07-14 21:04:13 +00:00
Garfield, Tan
00736b3b11 Allow root item accepts drag and drop.
Bug: 28315281
Change-Id: Ie37536258f04c1b0d3ff5a315f4a5fa33e0ba182
2016-07-14 01:38:57 +00:00
Ben Lin
9be9891369 Follow up changes from ag/1190582.
Change-Id: I40121fc3d36e430c402da2835027283eb4b11071
(cherry picked from commit ce83f978d5bff5505a1d5f9bec894fe5f1091a4d)
2016-07-13 22:07:07 +00:00
Ben Lin
0dc1e702c2 Merge \\"Trapping backspace at EditText level to prevent popping Docs.\\" into nyc-mr1-dev am: 2df618f4cd
am: 64f4868803

Change-Id: I622f74b03dd3e201f3000b926571352a55ae10e9
2016-07-13 02:15:34 +00:00
Ben Lin
d9ba201f59 Trapping backspace at EditText level to prevent popping Docs.
When the EditText is empty, pressing backspace on soft/hardware keyboard
will call on the EditText's OnKeyListener. Since we don't handle
backspace, it will then bubble up to Activity-level, which will then pop
the document stack due to the feature of using backspace as navigation.
This will trap the call correctly if the EditText is empty.

Bug: 30066261
Change-Id: I231507b9469bfa52478872491f1d2713a1ac58ba
2016-07-12 23:42:56 +00:00
Garfield, Tan
415cd8b846 Pull clipping related classes to a separate package.
Change-Id: I125d1c34e475f9465e82014cb869f88c9c7cebc4
2016-07-12 20:26:16 +00:00
Steve McKay
74c287706b Consolidate user input handling in single class.
But separate mouse and touch handling into independent (internal) handlers.
Ensure we don't do band select on right click + drag.

Bug: 29575607, 29548676
Change-Id: I247e3ba002751f2cda010125e0e7b4bdd745ac23
2016-07-12 03:24:06 +00:00
Garfield, Tan
908f9889da [multi-part] Eliminate 1k selection limit
* Implement ring buffer to cope the challenge of deleting file clips
* Fix a bug to allow concurrent read on the same clip file

Change-Id: I53450d94ee881966d5631f0dc6edcb0fdd8ff9d5
2016-07-12 01:12:39 +00:00
Garfield, Tan
71ac8a003e Add free space precondition check for copy job.
Bug: 24948755
Change-Id: I210395bdf339d630604e90e867ffddbbd3cf4bea
(cherry picked from commit 2a530ab3be585b366d562ea24940dcdd239af6d0)
2016-07-08 19:17:48 +00:00
Ben Lin
d7d1487ec8 Docsui-level work for implementing Eject on Roots list.
1. Added Eject Icon for Roots that support eject
2. Added Context Menu for RootsFragment (Settings and Eject)

Bug: 29584653
Change-Id: I97f582de05763e3f0327bc0d2dc6d4e2222e047c
(cherry picked from commit d96661f8b0f613b40f2bdfc178bbe06022b5f76c)
2016-07-08 00:03:57 +00:00
Daniel Nishi
57e845b51b Merge "resolve merge conflicts of 7145cac to master" 2016-07-06 22:45:37 +00:00
Daniel Nishi
3fd8c801ba resolve merge conflicts of 7145cac to master
Change-Id: Idd0a8de30697687309953fd37b568207d2fc0be8
2016-07-06 14:04:36 -07:00
Ben Lin
d7bfa22c93 Set the first item's left padding to 0 in Horizontal Breadcrumb.
Bug: 29945773
Change-Id: I0493f463b9e82224372e2f21b1fc9062dfd005fb
(cherry picked from commit 77afda11780172e67f88c58467bf085c86119c24)
2016-07-06 20:32:55 +00:00
Daniel Nishi
c29d2b0492 Move the MIME type icon detection into the platform.
This allows the MIME type icons to be used in other system apps.
In this instance, the StorageManager app needs to show file icons
for a given file. By moving the icon mapping into a static library,
we can avoid duplicating the mapping and resources.

Bug: 29826961
Change-Id: Ic2dc7970cc5a5ca430e33425eb9f1ecbd733fe9a
2016-07-06 10:57:06 -07:00
Steve McKay
2499e8deb2 Move GestureListener to own file.
And:
- make MotionInputEvent AutoCloseable (and update obtainers accordingly).
- remove unused constructor args and overloading from MultiSelectManager.

Change-Id: I335a95c3d05ab10bdcbfebab8dc69f0b2f681e3a
2016-07-01 02:19:42 +00:00
Steve McKay
73e2a7d2c4 Merge \"Merge \\"Allow quick view package to be set via setprop.\\" into nyc-mr1-dev am: 24cea93b4a\" into nyc-mr1-dev-plus-aosp
am: 35c77908f0

Change-Id: Ib4b46c435e38caf362f91c9674766621146ac770
2016-06-30 23:51:16 +00:00
TreeHugger Robot
24cea93b4a Merge "Allow quick view package to be set via setprop." into nyc-mr1-dev 2016-06-30 23:22:33 +00:00
Garfield, Tan
05df8ec38d [multi-part] Eliminate 1k selection limit
* Rename class ClipDetails.
* Add FileOperation class and merge it with JobFactory.

Bug: 28194201
Change-Id: I46639b21c9e424644289a1bf34b85234a9becd2b
(cherry picked from commit 7f17819f1320d12f1f35a8f5327e0c7e63dfed54)
2016-06-30 01:33:14 +00:00
Steve McKay
c4011fceaa Allow quick view package to be set via setprop.
This allows testers to turn it on via adb.

Bug: 29875957
Change-Id: If4563a1799a7c1a1adead9ecfdb4c6ef0c07f82b
2016-06-29 14:00:54 -07:00
Steve McKay
63e37fb506 Load layout specific breadcrumb view.
Because two diffrn't view types can't share an resource id....
else we get ClassCastExceptions bubbling out of Spinner when
tryihng to restore from RecyclerView state.

Also:
Move Bots to own file and make BaseBot inner to that.
Extract searchbot from UiBot.
Fix broken search icon logic in phone layout.
Separate somewhat complicated breadcrumb bot functioanlity in a separate bot.
Simplify Search test.
Check for drawer vs. fixed layout instead of "tablet" mode...which didn't
    work when rotating tablets.
Update a dialog entry to use Espresso.
Update breadcrumb stuff to use Espresso.
Move *default state* checking to a different test so we can
    enjoy the default location support from ActivityTest.

Change-Id: I0a60ba93a1cbbb990ec3b36d4f9fd5dc8b86ff00
2016-06-29 00:39:45 +00:00
Ben Lin
ce92c5b8f7 Enable drag & drop -> Springload for breadcrumb.
Bug: 29519481
Change-Id: I54d98c48c08153c22b2f01c7728187927c4fe1a2
(cherry picked from commit 81d903bc083807c6048ac9ce1d1d3ca18b6643a3)
2016-06-27 16:41:16 +00:00
Garfield, Tan
f46958bebd [multi-part] Eliminate 1k selection limit
* Remove clearing clip files at app launch.
* Remove clip files when they won't be used.
* Stop adding clip items to jumbo clip data.
* Repurpose ClipDetails to hold operation type, srcParent and file list.
* Use ClipDetails for copyTo/moveTo/delete menu actions.
* Make FileOperationService consume ClipDetails.
* Add set up state to jobs; show set up notification in set up phase.
* Make copy job cancelable at set up phase.

Bug: 28194201
Change-Id: I2018ff9bc51515c1f6a029f0ede3f4c7d2beee43
(cherry picked from commit 664881e4b1fdc3416648f000287f52168978364f)
2016-06-24 23:56:55 +00:00
Steve McKay
10419c2882 Move event handling code out of DirectoryFragment
Bug:29575607
Change-Id: Ieae3bcee030973bf83551a74f722236a24832730
2016-06-23 20:29:24 +00:00
Ben Lin
693ba32b71 Fix context menu for empty directory/root view.
Since it's not always true that there is a doc/directory given the (x,
y) of the right click, I've changed the signature of right click to take
in a MotionEvent object as a parameter, and make a MotionInputEvent
inside the function as a check whether it's on a file/doc or on
empty/blank pane.

Bug: 29538570
Change-Id: I7ee960c9f556752bf314ab8cc2d94fda28194c0a
(cherry picked from commit 332192dee8cb99bd2e6ef638e78d5b62ab7ecfe6)
2016-06-21 23:44:14 +00:00
Ben Lin
8eafd50a03 Moving Menu-related logic from BaseActivity to MenuManager.
Bug: 29423149
Change-Id: I228e1525cb82d310b16ef0aec8acb4534b7b601d
(cherry picked from commit d896dc7b487771f7d5329feb01ac7c3355fce9ed)
2016-06-20 21:48:17 +00:00
Steve McKay
fc8a346e5a Merge \\\"Make advanced storage option sticky...\\\" into nyc-dev am: 361ccf5eef am: 92e64a65ee
am: 75ea877bc9

Change-Id: I6204de46dd54b2c2a89c9a44edd571179ae1ddab
2016-06-20 21:00:54 +00:00
Steve McKay
dd27444fa8 Make advanced storage option sticky...
...when used from one of the picker modes.

Bug: 29454465
Change-Id: I5f7db04a51023b59121289afd300a13ea071146d
2016-06-20 11:57:19 -07:00
TreeHugger Robot
fbfac58610 Merge "Implementing breadcrumb for tablet devices for navigation in the bar." 2016-06-17 19:01:52 +00:00
Steve McKay
9c4fd7b8e9 Merge \\\"Include cause when reporting errors.\\\" into nyc-dev am: 60585e6c54 am: be8b6e6164
am: 7dfb6fa15e

Change-Id: Iade90d4bfb323bcc1bb7a771fcb2b64656c25d57
2016-06-17 18:33:50 +00:00
Ben Lin
43b62a8eef Implementing breadcrumb for tablet devices for navigation in the bar.
Bug: 29214736
Change-Id: I37de2c39a55c33d7111496e896a0c85e1c7fa553
(cherry picked from commit 6fb1dfcc47b795b7071550a4524667d2f8f4d9a2)
2016-06-17 17:14:54 +00:00
TreeHugger Robot
ff244e6c4c Merge "[multi-part] Eliminate 1k selection limit" 2016-06-17 01:33:49 +00:00
Steve McKay
d81879670b [multi-part] Eliminate 1k selection limit
* Save selection to disk, delete old selections on app startup.
* Do clipper work in background for copy/cut.
* Pull DragShadowBuilder out of DirFragment.
* Reorganize selection handling to avoid creation of large lists of objects.
* Eliminate getAll from selection, make it iterable, remove unused method.
* Avoid creating DocumentInfo instances for full selection when initiating drag and drop.

Next step will be to pass selection tokens to FileOperationService.

Change-Id: Ia3e30a88ebf328e5b045d06b0df15dbd26a01a42
(cherry picked from commit 69b63de63ddae8d1a3ad8fa49a0beb1ff6f921e1)
2016-06-17 00:08:36 +00:00
Ben Lin
dea1aa0cdd Quick fix for Files crashing on start up.
Change-Id: I98df90b6bdf5caacb7565ead7051e507abfff23d
2016-06-16 21:32:02 +00:00
TreeHugger Robot
4a618f5eac Merge "Poll jobs' status to update notifications." 2016-06-16 20:31:24 +00:00
Garfield, Tan
4a7aba23be Poll jobs' status to update notifications.
Bug: 27249491
Change-Id: I8912c781582af1789c8f76dea06879a3dde75d34
2016-06-16 18:41:30 +00:00
Ben Lin
9a621cbaca Implementation of Right-click context menus for docs/files.
Bug: 24416336
Change-Id: I675baf4abf6308bc1f6c3b4171f7251b0f3fd6e4
(cherry picked from commit be70710de3e1507292381cd14a9e1c1343ff2524)
2016-06-16 18:37:48 +00:00
Steve McKay
56d950c5e6 Include cause when reporting errors.
Bug: 29191892
Change-Id: I5f904da3a8564ec68ca634c28e3eda7f496a5c1c
2016-06-16 10:41:50 -07:00
Garfield, Tan
6f55e3ebcd Remove main looper assertions and attempts to run tests in main thread.
It looks like if we pass timeout_msec 300000 main thread is then
blocked. If we ever post a runnable to it synchronously in test, we'll
get a deadlock.

Change-Id: I7bd4ce2aaa1ffad72b83a343ff3331179896bd78
2016-06-10 22:33:44 +00:00
Felipe Leme
41debd1137 Merge \\\"Fixed check for visible volume.\\\" into nyc-dev am: be0bacda9b am: 2ee81a3211
am: 18ee3e53c8

Change-Id: I4ca401686049e969e6f257b76714e7f3289864c5
2016-06-10 22:04:43 +00:00
Felipe Leme
9dbeff86c1 Merge \\\"Fixed check for volume name.\\\" into nyc-dev am: cbfc6eed32 am: e54c409a1f
am: a1072465a3

Change-Id: I36b74afea9d609d3fa072985ed8c94b4cf548d3c
2016-06-10 20:35:55 +00:00
Felipe Leme
24cc2cea74 Fixed check for visible volume.
Previously it was checked if the volume was visible to user, but
transient volumes (such as USB drives) are not marked as such.

Fixes: 29174953
Change-Id: I5dbcc42c5b31c6856e01f73815d73482822785d9
2016-06-10 12:10:16 -07:00
Felipe Leme
60f8f72cd4 Fixed check for volume name.
There are scenarios - like when an SD Card is adopted as internal
storage - where the getBestVolumeDescription() returns null, in which
case we should use the StorageVolume description instead (or a default
value if such description is also null)>

Change-Id: Ia11c3f4069dfbe252c568210ee60b5d8c384d863
Fixes: 29198046
2016-06-10 11:07:35 -07:00
Ben Lin
a433c6dc4d Isolate Menu/Action management into dedicated manager classes.
We are now also returning fragmentTuner at the activity level, so that
directoryFragment does not have to do a .pick() logic depending on the
activity type. Rather, the logic lies within the activity itself.

Bug: 24416336
Change-Id: Idb200864f6c9468b9193781f6ac505b557ffbce9
(cherry picked from commit bc330a4bf53c3a766292097d1815b9abd469a945)
2016-06-08 22:45:42 +00:00
Steve McKay
b25f587933 Preserve selection in memory during rotation.
Using onRetainNonConfigurationInstance
Eliminate 1k limit on selections.
Bug: 28194201

Failed cherrypick merge from https://googleplex-android-review.git.corp.google.com/#/c/1105581/

Change-Id: Id986c23867df33f1e53bb2999ba51babde5d535b
2016-06-08 13:14:45 -07:00
TreeHugger Robot
641517546c Merge "Recycle after return to avoid returning an invalid value." 2016-06-08 02:43:55 +00:00
Garfield, Tan
866858b85a Recycle after return to avoid returning an invalid value.
Also add some main thread assertions.

Change-Id: Id6314d6e92d530ce57a01902b5570381fa20044d
(cherry picked from commit 1a1b9148a2094b4365ff5e65372b1a1eb0282a0a)
2016-06-07 23:30:39 +00:00
Garfield, Tan
3c2bf54e30 Use pool for MotionInputEvents.
Bug: 28987543
Change-Id: I3128320a7d527fdd74ab80165b270be2e5e34476
(cherry picked from commit 2458a15aadca7902744cd7c5f3da8e0779e1e3b8)
2016-06-07 23:30:22 +00:00
Steve McKay
f347eef4c7 Converge toList and getAll methods.
Change-Id: I71ba53947f1840a21a9b1f77523dce8675308c99
2016-06-07 12:26:59 -07:00