From 58479256c53bfacacab9a0bc4b886bf7363679d4 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Tue, 6 Sep 2022 12:17:44 +0300 Subject: [PATCH] Refactor disk_size.dart and disk_status.dart to use getters --- lib/logic/models/disk_size.dart | 12 ++++---- lib/ui/pages/server_storage/disk_status.dart | 28 ++++++------------- .../server_storage/extending_volume.dart | 8 +++--- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/lib/logic/models/disk_size.dart b/lib/logic/models/disk_size.dart index ecccb2b8..30d16455 100644 --- a/lib/logic/models/disk_size.dart +++ b/lib/logic/models/disk_size.dart @@ -5,20 +5,20 @@ class DiskSize { int byte; - double asKb() => byte / 1024.0; - double asMb() => byte / 1024.0 / 1024.0; - double asGb() => byte / 1024.0 / 1024.0 / 1024.0; + double get kibibyte => byte / 1024.0; + double get mebibyte => byte / 1024.0 / 1024.0; + double get gibibyte => byte / 1024.0 / 1024.0 / 1024.0; @override String toString() { if (byte < 1024) { return '${byte.toStringAsFixed(0)} ${tr('bytes')}'; } else if (byte < 1024 * 1024) { - return 'providers.storage.kb'.tr(args: [asKb().toStringAsFixed(1)]); + return 'providers.storage.kb'.tr(args: [kibibyte.toStringAsFixed(1)]); } else if (byte < 1024 * 1024 * 1024) { - return 'providers.storage.mb'.tr(args: [asMb().toStringAsFixed(1)]); + return 'providers.storage.mb'.tr(args: [mebibyte.toStringAsFixed(1)]); } else { - return 'providers.storage.gb'.tr(args: [asGb().toStringAsFixed(1)]); + return 'providers.storage.gb'.tr(args: [gibibyte.toStringAsFixed(1)]); } } } diff --git a/lib/ui/pages/server_storage/disk_status.dart b/lib/ui/pages/server_storage/disk_status.dart index 4c9949e0..eae9596a 100644 --- a/lib/ui/pages/server_storage/disk_status.dart +++ b/lib/ui/pages/server_storage/disk_status.dart @@ -12,25 +12,16 @@ class DiskVolume { ServerVolume? providerVolume; /// from 0.0 to 1.0 - double percentage = 0.0; + double get percentage => sizeTotal.byte == 0 ? 0 : sizeUsed.byte / sizeTotal.byte; + bool get isDiskOkay => percentage < 0.8 && sizeTotal.gibibyte - sizeUsed.gibibyte > 2.0; } class DiskStatus { - DiskStatus() { - isDiskOkay = false; - diskVolumes = []; - } DiskStatus.fromVolumes( final List serverVolumes, final List providerVolumes, ) { - isDiskOkay = true; - - if (providerVolumes.isEmpty || serverVolumes.isEmpty) { - isDiskOkay = false; - } - diskVolumes = serverVolumes.map(( final ServerDiskVolume volume, ) { @@ -60,18 +51,15 @@ class DiskStatus { diskVolume.name = volume.name; diskVolume.root = volume.root; - diskVolume.percentage = - volume.usedSpace != 'None' && volume.totalSpace != 'None' - ? 1.0 / diskVolume.sizeTotal.byte * diskVolume.sizeUsed.byte - : 0.0; - if (diskVolume.percentage >= 0.8 || - diskVolume.sizeTotal.asGb() - diskVolume.sizeUsed.asGb() <= 2.0) { - isDiskOkay = false; - } + return diskVolume; }).toList(); } + DiskStatus() { + diskVolumes = []; + } + + bool get isDiskOkay => diskVolumes.every((final volume) => volume.isDiskOkay); - bool isDiskOkay = false; List diskVolumes = []; } diff --git a/lib/ui/pages/server_storage/extending_volume.dart b/lib/ui/pages/server_storage/extending_volume.dart index 72ef9607..7023685d 100644 --- a/lib/ui/pages/server_storage/extending_volume.dart +++ b/lib/ui/pages/server_storage/extending_volume.dart @@ -34,7 +34,7 @@ class _ExtendingVolumePageState extends State { final TextEditingController _priceController = TextEditingController(); void _updateErrorStatuses() { - _isError = minSize.asGb() > _currentSliderGbValue; + _isError = minSize.gibibyte > _currentSliderGbValue; } @override @@ -62,7 +62,7 @@ class _ExtendingVolumePageState extends State { .toStringAsFixed(2); minSize = widget.diskVolumeToResize.sizeTotal; if (_currentSliderGbValue < 0) { - _currentSliderGbValue = minSize.asGb(); + _currentSliderGbValue = minSize.gibibyte; } return BrandHeroScreen( @@ -111,9 +111,9 @@ class _ExtendingVolumePageState extends State { ), const SizedBox(height: 16), Slider( - min: minSize.asGb(), + min: minSize.gibibyte, value: _currentSliderGbValue, - max: maxSize.asGb(), + max: maxSize.gibibyte, onChanged: (final double value) { setState(() { _currentSliderGbValue = value;