acquire method

Future<void> acquire({
  1. required String miniProgramId,
  2. required Object owner,
  3. required double level,
})

Implementation

Future<void> acquire({
  required String miniProgramId,
  required Object owner,
  required double level,
}) => _enqueue(() async {
  _ensureActive();
  _validateLevel(level);
  final previous = _requests.remove(owner);
  _requests[owner] = _BrightnessRequest(appId: miniProgramId, level: level);
  if (_suspended) {
    return;
  }
  try {
    await provider.setBrightness(level);
  } on Object catch (error) {
    _requests.remove(owner);
    if (previous != null) {
      _requests[owner] = previous;
    }
    await _restoreCurrentBestEffort();
    throw _normalizeFailure(error);
  }
});