mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix(mobile): simplify scale handling in photo_view_core.dart
This commit is contained in:
@@ -301,12 +301,7 @@ class PhotoViewCoreState extends State<PhotoViewCore>
|
|||||||
controller.scaleAnimationBuilder(_animateControllerScale);
|
controller.scaleAnimationBuilder(_animateControllerScale);
|
||||||
controller.rotationAnimationBuilder(_animateControllerRotation);
|
controller.rotationAnimationBuilder(_animateControllerRotation);
|
||||||
|
|
||||||
final prevBoundaries = controller.scaleBoundaries;
|
_updateScaleBoundaries();
|
||||||
if (prevBoundaries != null && prevBoundaries != widget.scaleBoundaries) {
|
|
||||||
_updateScaleBoundaries(prevBoundaries);
|
|
||||||
} else {
|
|
||||||
controller.scaleBoundaries = widget.scaleBoundaries;
|
|
||||||
}
|
|
||||||
|
|
||||||
_scaleAnimationController = AnimationController(vsync: this)
|
_scaleAnimationController = AnimationController(vsync: this)
|
||||||
..addListener(handleScaleAnimation)
|
..addListener(handleScaleAnimation)
|
||||||
@@ -337,8 +332,11 @@ class PhotoViewCoreState extends State<PhotoViewCore>
|
|||||||
widget.onTapDown?.call(context, details, controller.value);
|
widget.onTapDown?.call(context, details, controller.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _updateScaleBoundaries(ScaleBoundaries prev) {
|
void _updateScaleBoundaries() {
|
||||||
if (controller.scale != null && prev.initialScale > 0) {
|
final prev = controller.scaleBoundaries;
|
||||||
|
if (prev == widget.scaleBoundaries) return;
|
||||||
|
|
||||||
|
if (prev != null && controller.scale != null && prev.initialScale > 0) {
|
||||||
final ratio = widget.scaleBoundaries.initialScale / prev.initialScale;
|
final ratio = widget.scaleBoundaries.initialScale / prev.initialScale;
|
||||||
controller.setScaleInvisibly(controller.scale! * ratio);
|
controller.setScaleInvisibly(controller.scale! * ratio);
|
||||||
} else {
|
} else {
|
||||||
@@ -350,9 +348,7 @@ class PhotoViewCoreState extends State<PhotoViewCore>
|
|||||||
@override
|
@override
|
||||||
void didUpdateWidget(PhotoViewCore oldWidget) {
|
void didUpdateWidget(PhotoViewCore oldWidget) {
|
||||||
super.didUpdateWidget(oldWidget);
|
super.didUpdateWidget(oldWidget);
|
||||||
if (widget.scaleBoundaries != oldWidget.scaleBoundaries) {
|
_updateScaleBoundaries();
|
||||||
_updateScaleBoundaries(oldWidget.scaleBoundaries);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
Reference in New Issue
Block a user