refreshCellularIccid method
Future<void>
refreshCellularIccid()
Implementation
Future<void> refreshCellularIccid() async {
final result = await bleManager.paramGetByCloudId(
dataSource: CommandDataSource.hub,
cloudIds: [
HubParameter.lteIccid.value,
],
);
final lteIccid = HubBleParameters.parsePayload<String>(
result,
HubBleParameters.hubLteIccid,
);
_setData((data) => data.clearCellularPlan(cellularIccid: lteIccid));
final isSignedIn = ref.read(isLoggedInProvider);
if (lteIccid == null || lteIccid.isEmpty || !isSignedIn) {
return;
}
try {
final api = await ref.read(energyManagementV3ApiProvider.future);
final plan = await api.kemApiV3DevicesCellplanIccidGet(iccid: lteIccid);
final planBody = plan.body;
final expiryDate = planBody?.expiryDate;
_setData(
(data) => data.copyWith(
remainingDataMb: planBody?.remainingDataMb,
totalDataMb: planBody?.totalDataMb,
cellularDataStatus: mbToCellularDataStatus(planBody?.remainingDataMb),
cellularPlanExpiryDate: expiryDate,
),
);
} catch (_) {
_setData((data) => data.clearCellularPlan());
}
}