ChromeSystemStorage class
Use the chrome.system.storage
API to query storage device information and
be notified when a removable storage device is attached and detached.
class ChromeSystemStorage extends ChromeApi { static final JsObject _system_storage = chrome['system']['storage']; ChromeSystemStorage._(); bool get available => _system_storage != null; /** * Get the storage information from the system. The argument passed to the * callback is an array of StorageUnitInfo objects. */ Future<List<StorageUnitInfo>> getInfo() { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<List<StorageUnitInfo>>.oneArg((e) => listify(e, _createStorageUnitInfo)); _system_storage.callMethod('getInfo', [completer.callback]); return completer.future; } /** * Ejects a removable storage device. */ Future<EjectDeviceResultCode> ejectDevice(String id) { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<EjectDeviceResultCode>.oneArg(_createEjectDeviceResultCode); _system_storage.callMethod('ejectDevice', [id, completer.callback]); return completer.future; } /** * Get the available capacity of a specified [id] storage device. The [id] is * the transient device ID from StorageUnitInfo. */ Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<StorageAvailableCapacityInfo>.oneArg(_createStorageAvailableCapacityInfo); _system_storage.callMethod('getAvailableCapacity', [id, completer.callback]); return completer.future; } Stream<StorageUnitInfo> get onAttached => _onAttached.stream; final ChromeStreamController<StorageUnitInfo> _onAttached = new ChromeStreamController<StorageUnitInfo>.oneArg(_system_storage, 'onAttached', _createStorageUnitInfo); Stream<String> get onDetached => _onDetached.stream; final ChromeStreamController<String> _onDetached = new ChromeStreamController<String>.oneArg(_system_storage, 'onDetached', selfConverter); void _throwNotAvailable() { throw new UnsupportedError("'chrome.system.storage' is not available"); } }
Extends
ChromeApi > ChromeSystemStorage
Properties
final bool available #
Returns true if the API is available. The common causes of an API not being avilable are:
- a permission is missing in the application's manifest.json file
- the API is defined on a newer version of Chrome then the current runtime
docs inherited from ChromeApi
bool get available => _system_storage != null;
final Stream<StorageUnitInfo> onAttached #
Stream<StorageUnitInfo> get onAttached => _onAttached.stream;
final Stream<String> onDetached #
Stream<String> get onDetached => _onDetached.stream;
Methods
Future<EjectDeviceResultCode> ejectDevice(String id) #
Ejects a removable storage device.
Future<EjectDeviceResultCode> ejectDevice(String id) { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<EjectDeviceResultCode>.oneArg(_createEjectDeviceResultCode); _system_storage.callMethod('ejectDevice', [id, completer.callback]); return completer.future; }
Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) #
Get the available capacity of a specified id storage device. The id is the transient device ID from StorageUnitInfo.
Future<StorageAvailableCapacityInfo> getAvailableCapacity(String id) { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<StorageAvailableCapacityInfo>.oneArg(_createStorageAvailableCapacityInfo); _system_storage.callMethod('getAvailableCapacity', [id, completer.callback]); return completer.future; }
Future<List<StorageUnitInfo>> getInfo() #
Get the storage information from the system. The argument passed to the callback is an array of StorageUnitInfo objects.
Future<List<StorageUnitInfo>> getInfo() { if (_system_storage == null) _throwNotAvailable(); var completer = new ChromeCompleter<List<StorageUnitInfo>>.oneArg((e) => listify(e, _createStorageUnitInfo)); _system_storage.callMethod('getInfo', [completer.callback]); return completer.future; }