Offline Mode
Offline mode makes files available for use even when there is no internet connection. When you add a file offline, a copy of the file is downloaded to the application folder. When you change a file in the cloud, the local copy will also be updated.
#
Add To OfflineAfter adding a file to the offline storage, the file library automatically starts downloading the file from cloud storage to a dedicated local application directory. After the download is complete, the application can use the path from FileItem.localPath to access the locally saved file.
You can monitor the offline status of a file either through FileManager.offline.getStorageObservable(sort), or through FileManager.browser.getDirectoryContentObservable().
The FileItem.offlineStatus field
contains the offline status of a file.
The following code example demonstrates adding a file to the offline storage.
// File item to add to offline storage.val fileItem: FileItem
FileManager.offline.addFile(fileItem)
Links - FileItem.
#
Remove From OfflineThe following code example demonstrates removing a file from the offline storage.
// File item to remove from offline storage.val fileItem: FileItem
FileManager.offline.removeFile(fileItem)
Links - FileItem.
#
Offline Storage MonitoringThe following code example demonstrates the offline storage monitoring.
var disposable: Disposable? = null
// Sort mode.val sortMode: FileTreeBrowser.Sort = FileTreeBrowser.Sort.NO_SORTING// FileTreeBrowser.Sort:// * NO_SORTING - No sorting (default)// * NAME_ASC_DIR_FIRST - Sort by name ascending; Directories first.// * TYPE_ASC_DIR_FIRST - Sort by type ascending; Directories first.// * MODIFIED_DESC_DIR_FIRST - Sort by modification time descending; Directories first.// * SIZE_DESC_DIR_FIRST - Sort by size descending; Directories first.
// ...
// Returned observable that emits content of the offline storage every time // when one of the following is changed:// * New file added to offline// * File removed from offline// * File status changed//// You have to subscribe on returned observable in order to receive updates.disposable = FileManager.offline.getStorageObservable(sort) .subscribe { // it: List<FileItem>! // Update your recycler view adapter with received list. }
// ...
// You must call dispose() on disposable that returned by subscribe() method,// when it no longer needed, for example in your fragment’s onStop() or onPause().disposable?.dispose()
Links - FileTreeBrowser.Sort, FileItem.
#
Synchronizing the offline storageThe following code example demonstrates syncing the offline storage.
FileManager.offline.syncStorage()