import 'package:thingsboard_client/thingsboard_client.dart'; abstract class DeviceProfileCache { static final _cache = Map(); static Future getDeviceProfileInfo( ThingsboardClient tbClient, String name, String deviceId) async { var deviceProfile = _cache[name]; if (deviceProfile == null) { var device = await tbClient.getDeviceService().getDevice(deviceId); deviceProfile = await tbClient .getDeviceProfileService() .getDeviceProfileInfo(device!.deviceProfileId!.id!); _cache[name] = deviceProfile!; } return deviceProfile; } static Future> getDeviceProfileInfos( ThingsboardClient tbClient, PageLink pageLink) async { var deviceProfileInfos = await tbClient .getDeviceProfileService() .getDeviceProfileInfos(pageLink); deviceProfileInfos.data.forEach((deviceProfile) { _cache[deviceProfile.name] = deviceProfile; }); return deviceProfileInfos; } }