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(minZoomLevel)
..add(maxZoomLevel) ..add(maxZoomLevel))
..toList() .toList()
..sort(); ..sort();
setState(() { setState(() {
zoomLevels.addAll(availableZoomLevels); zoomLevels = availableZoomLevels;
}); });
} }
@ -400,17 +398,24 @@ class _MainScreenState extends AuthRequiredState<MainScreen> with Loadable {
(_) => Colors.white, (_) => Colors.white,
), ),
), ),
onPressed: () { onPressed: zoomLevels == null
? null
: () {
final newZoomLevelIndex = final newZoomLevelIndex =
((currentZoomLevel + 1) % zoomLevels.length).toInt(); ((currentZoomLevelIndex + 1) %
zoomLevels!.length)
.toInt();
controller!.setZoomLevel(zoomLevels[newZoomLevelIndex]); controller!
.setZoomLevel(zoomLevels![newZoomLevelIndex]);
setState(() { setState(() {
currentZoomLevelIndex = newZoomLevelIndex; currentZoomLevelIndex = newZoomLevelIndex;
}); });
}, },
child: Text( child: zoomLevels == null
? Text('1x')
: Text(
formatZoomLevel(currentZoomLevel), formatZoomLevel(currentZoomLevel),
), ),
), ),