getResValue method

dynamic getResValue({
  1. required String resFileId,
  2. required String resourceName,
  3. required ValueType valueType,
  4. required ResourceQualifiers spec,
  5. bool? onlyUseAsset,
  6. required dynamic defaultValue,
})

Implementation

getResValue({
  required String resFileId,
  required String resourceName,
  required ValueType valueType,
  required ResourceQualifiers spec,
  bool? onlyUseAsset,
  required defaultValue,
}) {
  final specValueMap = _resValueMap[resFileId]?[resourceName];

  final bestSpec = ResourceQualifierResolver.selectBestMatchingQualifier(
    specValueMap?.keys.toSet(),
    spec,
  );

  final v = specValueMap?[bestSpec];
  try {
    if (v != null) {
      switch (valueType) {
        case ValueType.string:
          return v as String?;
        case ValueType.color:
          return v as Color?;
        case ValueType.doubleValue:
          return v as double?;
        case ValueType.boolValue:
          return v as bool?;
        case ValueType.stringArray:
          return v as List<String>?;
      }
    }
  } catch (e) {
    print('Error getting resource value: $e');
  }

  return defaultValue;
}