fixed zoom level button

This commit is contained in:
Myzel394 2022-08-16 11:29:59 +02:00
parent e0afe288b3
commit 391be909a7

View File

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