ensurePermissionsAreGrantedV2 method

Future<SpikePermissionsResult> ensurePermissionsAreGrantedV2({
  1. required Iterable<SpikeDataType<SpikeData<SpikeEntry>>> types,
})

Implementation

Future<SpikePermissionsResult> ensurePermissionsAreGrantedV2({
  required Iterable<SpikeDataType> types,
}) async {
  if (Platform.isAndroid) {
    final granted = await NativeSDKBridge.checkPermissionsGranted(
      connectionId: connectionId,
      types: types.map((type) => type.toNativeDataType()).toList(),
    );

    if (granted) {
      return SpikePermissionsResult.granted;
    }

    final result = await NativeSDKBridge.requestHealthPermissions(
      connectionId: connectionId,
      types: types.map((type) => type.toNativeDataType()).toList(),
    );

    return result;
  }

  await NativeSDKBridge.ensurePermissionsAreGranted(
    types: types.map((type) => type.toNativeDataType()).toList(),
  );

  return SpikePermissionsResult.undefined;
}