Incorporate universal storage fragment code from LAHWidgets
Implement several methods in VFile
FIX BUG: must leave (the fragment's) removal to client because it might be originally added via another fragment's child fragment manager; not by the activity's manager!
Add method to update current storage option from clicked button
Implement Box authentication via embedded web view
Implement getParent
Complete Box authentication
Box folder listing
Import Dropbox authentication from sample app
Link with Dropbox and save authentication result
Remove Box implementation
Abstract path
Implement Dropbox file system navigation
Recover local file system navigation
Move path-related objects to lah.storage.path package
Set flag to distinguish file and folder
Add back the simple comparator
Copy old Box folder listing code to BoxPathLister
Prefix Dropbox-related methods in StorageFragment with 'dropbox'
Add asynchronous wrapping path lister
Extend the lister interface to operator
(provide create directory, read/write files as well)
Implement Dropbox operator
Pull out StorageOption and IStorageFragmentListener
Add dummy code for gdrive, box
Handle remaining operations asynchronously in AsyncPathOperator
Add progress bar for async operation
Remove Future#get (cause blocking) in AsyncPathOperator
Support async listing in VPathAdapter
Implement local file create/read/write
Close streams for Dropbox file read/write
Disable interaction when opening a folder (obtaining files)
FIX BUG: use putFileOverwrite to overwrite file if it exists in DropboxPathOperator (using putFile, Dropbox will add numbering)
FIX BUG: reset Dropbox path to "/" when resuming StorageFragment; otherwise, "/mnt/sdcard" leads to exception
Fix some lint warnings and clean up unused items
Move progress bar below listing area
Single toast runnable
FIX BUG: must do setCurrentStorageOption(STORAGE_DROPBOX)
instead of dropboxInteract to prevent inconsistency in value of field {current_storage_option}
Inline supplementary dropbox* methods