diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart index bc9816e..8b66ed0 100644 --- a/lib/screens/main_screen.dart +++ b/lib/screens/main_screen.dart @@ -30,7 +30,6 @@ class MainScreen extends StatefulWidget { } class _MainScreenState extends AuthRequiredState with Loadable { - final List zoomLevels = [1.0]; int currentZoomLevelIndex = 0; bool isRecording = false; @@ -38,6 +37,7 @@ class _MainScreenState extends AuthRequiredState with Loadable { bool isTorchEnabled = false; List? lastPhoto; Uint8List? uploadingPhotoAnimation; + List? zoomLevels; late User _user; @@ -52,7 +52,7 @@ class _MainScreenState extends AuthRequiredState with Loadable { } } - double get currentZoomLevel => zoomLevels[currentZoomLevelIndex]; + double get currentZoomLevel => zoomLevels![currentZoomLevelIndex]; @override bool get isLoading => @@ -143,19 +143,17 @@ class _MainScreenState extends AuthRequiredState with Loadable { final minZoomLevel = await controller!.getMinZoomLevel(); final maxZoomLevel = await controller!.getMaxZoomLevel(); - final availableZoomLevels = List.from( - DEFAULT_ZOOM_LEVELS - .where((zoomLevel) => - zoomLevel >= minZoomLevel && zoomLevel <= maxZoomLevel) - .toSet(), - ) - ..add(minZoomLevel) - ..add(maxZoomLevel) - ..toList() + final availableZoomLevels = ([...DEFAULT_ZOOM_LEVELS] + .where((zoomLevel) => + zoomLevel >= minZoomLevel && zoomLevel <= maxZoomLevel) + .toSet() + ..add(minZoomLevel) + ..add(maxZoomLevel)) + .toList() ..sort(); setState(() { - zoomLevels.addAll(availableZoomLevels); + zoomLevels = availableZoomLevels; }); } @@ -400,19 +398,26 @@ class _MainScreenState extends AuthRequiredState with Loadable { (_) => Colors.white, ), ), - onPressed: () { - final newZoomLevelIndex = - ((currentZoomLevel + 1) % zoomLevels.length).toInt(); + onPressed: zoomLevels == null + ? null + : () { + final newZoomLevelIndex = + ((currentZoomLevelIndex + 1) % + zoomLevels!.length) + .toInt(); - controller!.setZoomLevel(zoomLevels[newZoomLevelIndex]); + controller! + .setZoomLevel(zoomLevels![newZoomLevelIndex]); - setState(() { - currentZoomLevelIndex = newZoomLevelIndex; - }); - }, - child: Text( - formatZoomLevel(currentZoomLevel), - ), + setState(() { + currentZoomLevelIndex = newZoomLevelIndex; + }); + }, + child: zoomLevels == null + ? Text('1x') + : Text( + formatZoomLevel(currentZoomLevel), + ), ), ], ),