diff --git a/lib/widgets/viewer/controller.dart b/lib/widgets/viewer/controller.dart index 2353a75fa..a9a39319c 100644 --- a/lib/widgets/viewer/controller.dart +++ b/lib/widgets/viewer/controller.dart @@ -4,7 +4,7 @@ import 'dart:math'; import 'package:aves/model/entry.dart'; import 'package:aves/model/settings/enums/enums.dart'; import 'package:aves/theme/durations.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:flutter/widgets.dart'; class ViewerController { diff --git a/lib/widgets/viewer/entry_horizontal_pager.dart b/lib/widgets/viewer/entry_horizontal_pager.dart index 67752da83..fcf6e6017 100644 --- a/lib/widgets/viewer/entry_horizontal_pager.dart +++ b/lib/widgets/viewer/entry_horizontal_pager.dart @@ -3,8 +3,7 @@ import 'package:aves/model/settings/enums/accessibility_animations.dart'; import 'package:aves/model/settings/enums/viewer_transition.dart'; import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/source/collection_lens.dart'; -import 'package:aves/widgets/common/magnifier/pan/gesture_detector_scope.dart'; -import 'package:aves/widgets/common/magnifier/pan/scroll_physics.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/multipage/conductor.dart'; import 'package:aves/widgets/viewer/page_entry_builder.dart'; diff --git a/lib/widgets/viewer/entry_vertical_pager.dart b/lib/widgets/viewer/entry_vertical_pager.dart index 7ffd3cf1c..6dcbc353b 100644 --- a/lib/widgets/viewer/entry_vertical_pager.dart +++ b/lib/widgets/viewer/entry_vertical_pager.dart @@ -7,11 +7,11 @@ import 'package:aves/model/entry.dart'; import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/source/collection_lens.dart'; import 'package:aves/theme/durations.dart'; -import 'package:aves/widgets/common/magnifier/pan/scroll_physics.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/entry_horizontal_pager.dart'; import 'package:aves/widgets/viewer/info/info_page.dart'; import 'package:aves/widgets/viewer/notifications.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/lib/widgets/viewer/screen_saver_page.dart b/lib/widgets/viewer/screen_saver_page.dart index 5b7b9848a..febfa2d00 100644 --- a/lib/widgets/viewer/screen_saver_page.dart +++ b/lib/widgets/viewer/screen_saver_page.dart @@ -6,11 +6,11 @@ import 'package:aves/model/source/collection_source.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/identity/empty.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; import 'package:aves/widgets/common/providers/media_query_data_provider.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/entry_viewer_page.dart'; import 'package:aves/widgets/viewer/entry_viewer_stack.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:flutter/material.dart'; class ScreenSaverPage extends StatefulWidget { diff --git a/lib/widgets/viewer/slideshow_page.dart b/lib/widgets/viewer/slideshow_page.dart index 99acbb102..7c4eccb58 100644 --- a/lib/widgets/viewer/slideshow_page.dart +++ b/lib/widgets/viewer/slideshow_page.dart @@ -9,11 +9,11 @@ import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/collection/collection_page.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/common/identity/empty.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; import 'package:aves/widgets/common/providers/media_query_data_provider.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/entry_viewer_page.dart'; import 'package:aves/widgets/viewer/entry_viewer_stack.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; diff --git a/lib/widgets/viewer/visual/conductor.dart b/lib/widgets/viewer/visual/conductor.dart index 04814e187..f9372d62f 100644 --- a/lib/widgets/viewer/visual/conductor.dart +++ b/lib/widgets/viewer/visual/conductor.dart @@ -1,6 +1,5 @@ import 'package:aves/model/entry.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:aves/widgets/viewer/visual/state.dart'; import 'package:collection/collection.dart'; import 'package:flutter/foundation.dart'; diff --git a/lib/widgets/viewer/visual/entry_page_view.dart b/lib/widgets/viewer/visual/entry_page_view.dart index fd400b3df..362aa1424 100644 --- a/lib/widgets/viewer/visual/entry_page_view.dart +++ b/lib/widgets/viewer/visual/entry_page_view.dart @@ -9,12 +9,6 @@ import 'package:aves/model/settings/settings.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/theme/icons.dart'; import 'package:aves/widgets/common/action_mixins/feedback.dart'; -import 'package:aves/widgets/common/magnifier/controller/controller.dart'; -import 'package:aves/widgets/common/magnifier/controller/state.dart'; -import 'package:aves/widgets/common/magnifier/magnifier.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; -import 'package:aves/widgets/common/magnifier/scale/state.dart'; import 'package:aves/widgets/common/thumbnail/image.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/hero.dart'; @@ -28,6 +22,7 @@ import 'package:aves/widgets/viewer/visual/state.dart'; import 'package:aves/widgets/viewer/visual/subtitle/subtitle.dart'; import 'package:aves/widgets/viewer/visual/vector.dart'; import 'package:aves/widgets/viewer/visual/video.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:collection/collection.dart'; import 'package:decorated_icon/decorated_icon.dart'; import 'package:flutter/material.dart'; @@ -55,17 +50,17 @@ class EntryPageView extends StatefulWidget { class _EntryPageViewState extends State with SingleTickerProviderStateMixin { late ValueNotifier _viewStateNotifier; - late MagnifierController _magnifierController; + late AvesMagnifierController _magnifierController; final List _subscriptions = []; ImageStream? _videoCoverStream; late ImageStreamListener _videoCoverStreamListener; final ValueNotifier _videoCoverInfoNotifier = ValueNotifier(null); final ValueNotifier _actionFeedbackChildNotifier = ValueNotifier(null); - MagnifierController? _dismissedCoverMagnifierController; + AvesMagnifierController? _dismissedCoverMagnifierController; - MagnifierController get dismissedCoverMagnifierController { - _dismissedCoverMagnifierController ??= MagnifierController(); + AvesMagnifierController get dismissedCoverMagnifierController { + _dismissedCoverMagnifierController ??= AvesMagnifierController(); return _dismissedCoverMagnifierController!; } @@ -107,7 +102,7 @@ class _EntryPageViewState extends State with SingleTickerProvider void _registerWidget(EntryPageView widget) { final entry = widget.pageEntry; _viewStateNotifier = context.read().getOrCreateController(entry); - _magnifierController = MagnifierController(); + _magnifierController = AvesMagnifierController(); _subscriptions.add(_magnifierController.stateStream.listen(_onViewStateChanged)); _subscriptions.add(_magnifierController.scaleBoundariesStream.listen(_onViewScaleBoundariesChanged)); if (entry.isVideo) { @@ -376,7 +371,7 @@ class _EntryPageViewState extends State with SingleTickerProvider } Widget _buildMagnifier({ - MagnifierController? controller, + AvesMagnifierController? controller, Size? displaySize, ScaleLevel maxScale = rasterMaxScale, ScaleStateCycle scaleStateCycle = defaultScaleStateCycle, @@ -387,7 +382,7 @@ class _EntryPageViewState extends State with SingleTickerProvider final isWallpaperMode = context.read>().value == AppMode.setWallpaper; final minScale = isWallpaperMode ? const ScaleLevel(ref: ScaleReference.covered) : const ScaleLevel(ref: ScaleReference.contained); - return Magnifier( + return AvesMagnifier( // key includes modified date to refresh when the image is modified by metadata (e.g. rotated) key: Key('${entry.uri}_${entry.pageId}_${entry.dateModifiedSecs}'), controller: controller ?? _magnifierController, diff --git a/lib/widgets/wallpaper_page.dart b/lib/widgets/wallpaper_page.dart index 1b04229b2..ef7b4b61e 100644 --- a/lib/widgets/wallpaper_page.dart +++ b/lib/widgets/wallpaper_page.dart @@ -5,7 +5,6 @@ import 'package:aves/services/common/services.dart'; import 'package:aves/theme/durations.dart'; import 'package:aves/widgets/aves_app.dart'; import 'package:aves/widgets/common/basic/insets.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; import 'package:aves/widgets/common/providers/media_query_data_provider.dart'; import 'package:aves/widgets/viewer/controller.dart'; import 'package:aves/widgets/viewer/entry_horizontal_pager.dart'; @@ -19,6 +18,7 @@ import 'package:aves/widgets/viewer/video/conductor.dart'; import 'package:aves/widgets/viewer/video/controller.dart'; import 'package:aves/widgets/viewer/video_action_delegate.dart'; import 'package:aves/widgets/viewer/visual/controller_mixin.dart'; +import 'package:aves_magnifier/aves_magnifier.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:screen_brightness/screen_brightness.dart'; diff --git a/packages/aves_magnifier/.gitignore b/packages/aves_magnifier/.gitignore new file mode 100644 index 000000000..96486fd93 --- /dev/null +++ b/packages/aves_magnifier/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/packages/aves_magnifier/.metadata b/packages/aves_magnifier/.metadata new file mode 100644 index 000000000..b13014bb2 --- /dev/null +++ b/packages/aves_magnifier/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 098aac7ffeef2a1846eb3a7f14788520c8400a14 + channel: master + +project_type: package diff --git a/packages/aves_magnifier/analysis_options.yaml b/packages/aves_magnifier/analysis_options.yaml new file mode 100644 index 000000000..f04c6cf0f --- /dev/null +++ b/packages/aves_magnifier/analysis_options.yaml @@ -0,0 +1 @@ +include: ../../analysis_options.yaml diff --git a/packages/aves_magnifier/lib/aves_magnifier.dart b/packages/aves_magnifier/lib/aves_magnifier.dart new file mode 100644 index 000000000..bda2e655b --- /dev/null +++ b/packages/aves_magnifier/lib/aves_magnifier.dart @@ -0,0 +1,10 @@ +library aves_magnifier; + +export 'src/controller/controller.dart'; +export 'src/controller/state.dart'; +export 'src/magnifier.dart'; +export 'src/pan/gesture_detector_scope.dart'; +export 'src/pan/scroll_physics.dart'; +export 'src/scale/scale_boundaries.dart'; +export 'src/scale/scale_level.dart'; +export 'src/scale/state.dart'; diff --git a/lib/widgets/common/magnifier/controller/controller.dart b/packages/aves_magnifier/lib/src/controller/controller.dart similarity index 92% rename from lib/widgets/common/magnifier/controller/controller.dart rename to packages/aves_magnifier/lib/src/controller/controller.dart index cdec420f7..bf13e0084 100644 --- a/lib/widgets/common/magnifier/controller/controller.dart +++ b/packages/aves_magnifier/lib/src/controller/controller.dart @@ -1,13 +1,13 @@ import 'dart:async'; import 'dart:ui'; -import 'package:aves/widgets/common/magnifier/controller/state.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; -import 'package:aves/widgets/common/magnifier/scale/state.dart'; +import 'package:aves_magnifier/src/controller/state.dart'; +import 'package:aves_magnifier/src/scale/scale_boundaries.dart'; +import 'package:aves_magnifier/src/scale/scale_level.dart'; +import 'package:aves_magnifier/src/scale/state.dart'; import 'package:flutter/widgets.dart'; -class MagnifierController { +class AvesMagnifierController { final StreamController _stateStreamController = StreamController.broadcast(); final StreamController _scaleBoundariesStreamController = StreamController.broadcast(); final StreamController _scaleStateChangeStreamController = StreamController.broadcast(); @@ -17,7 +17,7 @@ class MagnifierController { ScaleBoundaries? _scaleBoundaries; late ScaleStateChange _currentScaleState, previousScaleState; - MagnifierController({ + AvesMagnifierController({ MagnifierState? initialState, }) : super() { initial = initialState ?? diff --git a/lib/widgets/common/magnifier/controller/controller_delegate.dart b/packages/aves_magnifier/lib/src/controller/controller_delegate.dart similarity index 93% rename from lib/widgets/common/magnifier/controller/controller_delegate.dart rename to packages/aves_magnifier/lib/src/controller/controller_delegate.dart index 6d7af3ba4..9ef3a4fae 100644 --- a/lib/widgets/common/magnifier/controller/controller_delegate.dart +++ b/packages/aves_magnifier/lib/src/controller/controller_delegate.dart @@ -1,17 +1,17 @@ import 'dart:async'; -import 'package:aves/widgets/common/magnifier/controller/controller.dart'; -import 'package:aves/widgets/common/magnifier/controller/state.dart'; -import 'package:aves/widgets/common/magnifier/core/core.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/state.dart'; +import 'package:aves_magnifier/src/controller/controller.dart'; +import 'package:aves_magnifier/src/controller/state.dart'; +import 'package:aves_magnifier/src/core/core.dart'; +import 'package:aves_magnifier/src/scale/scale_boundaries.dart'; +import 'package:aves_magnifier/src/scale/state.dart'; import 'package:flutter/widgets.dart'; /// A class to hold internal layout logic to sync both controller states /// /// It reacts to layout changes (eg: enter landscape or widget resize) and syncs the two controllers. -mixin MagnifierControllerDelegate on State { - MagnifierController get controller => widget.controller; +mixin AvesMagnifierControllerDelegate on State { + AvesMagnifierController get controller => widget.controller; ScaleBoundaries get scaleBoundaries => controller.scaleBoundaries; diff --git a/lib/widgets/common/magnifier/controller/state.dart b/packages/aves_magnifier/lib/src/controller/state.dart similarity index 100% rename from lib/widgets/common/magnifier/controller/state.dart rename to packages/aves_magnifier/lib/src/controller/state.dart diff --git a/lib/widgets/common/magnifier/core/core.dart b/packages/aves_magnifier/lib/src/core/core.dart similarity index 94% rename from lib/widgets/common/magnifier/core/core.dart rename to packages/aves_magnifier/lib/src/core/core.dart index 224546e60..8078939ee 100644 --- a/lib/widgets/common/magnifier/core/core.dart +++ b/packages/aves_magnifier/lib/src/core/core.dart @@ -1,20 +1,20 @@ import 'dart:math'; -import 'package:aves/widgets/common/magnifier/controller/controller.dart'; -import 'package:aves/widgets/common/magnifier/controller/controller_delegate.dart'; -import 'package:aves/widgets/common/magnifier/controller/state.dart'; -import 'package:aves/widgets/common/magnifier/core/gesture_detector.dart'; -import 'package:aves/widgets/common/magnifier/magnifier.dart'; -import 'package:aves/widgets/common/magnifier/pan/corner_hit_detector.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/state.dart'; +import 'package:aves_magnifier/src/controller/controller.dart'; +import 'package:aves_magnifier/src/controller/controller_delegate.dart'; +import 'package:aves_magnifier/src/controller/state.dart'; +import 'package:aves_magnifier/src/core/gesture_detector.dart'; +import 'package:aves_magnifier/src/magnifier.dart'; +import 'package:aves_magnifier/src/pan/corner_hit_detector.dart'; +import 'package:aves_magnifier/src/scale/scale_boundaries.dart'; +import 'package:aves_magnifier/src/scale/state.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/widgets.dart'; /// Internal widget in which controls all animations lifecycle, core responses /// to user gestures, updates to the controller state and mounts the entire Layout class MagnifierCore extends StatefulWidget { - final MagnifierController controller; + final AvesMagnifierController controller; final ScaleStateCycle scaleStateCycle; final bool applyScale; final double panInertia; @@ -37,7 +37,7 @@ class MagnifierCore extends StatefulWidget { State createState() => _MagnifierCoreState(); } -class _MagnifierCoreState extends State with TickerProviderStateMixin, MagnifierControllerDelegate, CornerHitDetector { +class _MagnifierCoreState extends State with TickerProviderStateMixin, AvesMagnifierControllerDelegate, CornerHitDetector { Offset? _startFocalPoint, _lastViewportFocalPosition; double? _startScale, _quickScaleLastY, _quickScaleLastDistance; late bool _doubleTap, _quickScaleMoved; diff --git a/lib/widgets/common/magnifier/core/gesture_detector.dart b/packages/aves_magnifier/lib/src/core/gesture_detector.dart similarity index 93% rename from lib/widgets/common/magnifier/core/gesture_detector.dart rename to packages/aves_magnifier/lib/src/core/gesture_detector.dart index 58117dd1e..7d27b623b 100644 --- a/lib/widgets/common/magnifier/core/gesture_detector.dart +++ b/packages/aves_magnifier/lib/src/core/gesture_detector.dart @@ -1,6 +1,6 @@ -import 'package:aves/widgets/common/magnifier/core/scale_gesture_recognizer.dart'; -import 'package:aves/widgets/common/magnifier/pan/corner_hit_detector.dart'; -import 'package:aves/widgets/common/magnifier/pan/gesture_detector_scope.dart'; +import 'package:aves_magnifier/src/core/scale_gesture_recognizer.dart'; +import 'package:aves_magnifier/src/pan/corner_hit_detector.dart'; +import 'package:aves_magnifier/src/pan/gesture_detector_scope.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; diff --git a/lib/widgets/common/magnifier/core/scale_gesture_recognizer.dart b/packages/aves_magnifier/lib/src/core/scale_gesture_recognizer.dart similarity index 98% rename from lib/widgets/common/magnifier/core/scale_gesture_recognizer.dart rename to packages/aves_magnifier/lib/src/core/scale_gesture_recognizer.dart index d08b84c75..0c35ca666 100644 --- a/lib/widgets/common/magnifier/core/scale_gesture_recognizer.dart +++ b/packages/aves_magnifier/lib/src/core/scale_gesture_recognizer.dart @@ -1,6 +1,6 @@ import 'dart:math'; -import 'package:aves/widgets/common/magnifier/pan/corner_hit_detector.dart'; +import 'package:aves_magnifier/src/pan/corner_hit_detector.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/widgets.dart'; diff --git a/lib/widgets/common/magnifier/magnifier.dart b/packages/aves_magnifier/lib/src/magnifier.dart similarity index 85% rename from lib/widgets/common/magnifier/magnifier.dart rename to packages/aves_magnifier/lib/src/magnifier.dart index c99ad8837..f93a07cad 100644 --- a/lib/widgets/common/magnifier/magnifier.dart +++ b/packages/aves_magnifier/lib/src/magnifier.dart @@ -1,9 +1,9 @@ -import 'package:aves/widgets/common/magnifier/controller/controller.dart'; -import 'package:aves/widgets/common/magnifier/controller/state.dart'; -import 'package:aves/widgets/common/magnifier/core/core.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_boundaries.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; -import 'package:aves/widgets/common/magnifier/scale/state.dart'; +import 'package:aves_magnifier/src/controller/controller.dart'; +import 'package:aves_magnifier/src/controller/state.dart'; +import 'package:aves_magnifier/src/core/core.dart'; +import 'package:aves_magnifier/src/scale/scale_boundaries.dart'; +import 'package:aves_magnifier/src/scale/scale_level.dart'; +import 'package:aves_magnifier/src/scale/state.dart'; import 'package:flutter/material.dart'; /* @@ -18,8 +18,8 @@ import 'package:flutter/material.dart'; - added single & double tap position feedback - fixed focus when scaling by double-tap/pinch */ -class Magnifier extends StatelessWidget { - const Magnifier({ +class AvesMagnifier extends StatelessWidget { + const AvesMagnifier({ super.key, required this.controller, required this.childSize, @@ -34,7 +34,7 @@ class Magnifier extends StatelessWidget { required this.child, }); - final MagnifierController controller; + final AvesMagnifierController controller; // The size of the custom [child]. This value is used to compute the relation between the child and the container's size to calculate the scale value. final Size childSize; diff --git a/lib/widgets/common/magnifier/pan/corner_hit_detector.dart b/packages/aves_magnifier/lib/src/pan/corner_hit_detector.dart similarity index 93% rename from lib/widgets/common/magnifier/pan/corner_hit_detector.dart rename to packages/aves_magnifier/lib/src/pan/corner_hit_detector.dart index 138a5c8df..bf80edbea 100644 --- a/lib/widgets/common/magnifier/pan/corner_hit_detector.dart +++ b/packages/aves_magnifier/lib/src/pan/corner_hit_detector.dart @@ -1,8 +1,8 @@ -import 'package:aves/widgets/common/magnifier/controller/controller_delegate.dart'; +import 'package:aves_magnifier/src/controller/controller_delegate.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; -mixin CornerHitDetector on MagnifierControllerDelegate { +mixin CornerHitDetector on AvesMagnifierControllerDelegate { // the child width/height is not accurate for some image size & scale combos // e.g. 3580.0 * 0.1005586592178771 yields 360.0 // but 4764.0 * 0.07556675062972293 yields 360.00000000000006 diff --git a/lib/widgets/common/magnifier/pan/gesture_detector_scope.dart b/packages/aves_magnifier/lib/src/pan/gesture_detector_scope.dart similarity index 100% rename from lib/widgets/common/magnifier/pan/gesture_detector_scope.dart rename to packages/aves_magnifier/lib/src/pan/gesture_detector_scope.dart diff --git a/lib/widgets/common/magnifier/pan/scroll_physics.dart b/packages/aves_magnifier/lib/src/pan/scroll_physics.dart similarity index 100% rename from lib/widgets/common/magnifier/pan/scroll_physics.dart rename to packages/aves_magnifier/lib/src/pan/scroll_physics.dart diff --git a/lib/widgets/common/magnifier/scale/scale_boundaries.dart b/packages/aves_magnifier/lib/src/scale/scale_boundaries.dart similarity index 89% rename from lib/widgets/common/magnifier/scale/scale_boundaries.dart rename to packages/aves_magnifier/lib/src/scale/scale_boundaries.dart index bba15200e..150bf45bb 100644 --- a/lib/widgets/common/magnifier/scale/scale_boundaries.dart +++ b/packages/aves_magnifier/lib/src/scale/scale_boundaries.dart @@ -1,8 +1,8 @@ import 'dart:math'; import 'dart:ui'; -import 'package:aves/widgets/common/magnifier/controller/controller.dart'; -import 'package:aves/widgets/common/magnifier/scale/scale_level.dart'; +import 'package:aves_magnifier/src/controller/controller.dart'; +import 'package:aves_magnifier/src/scale/scale_level.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/foundation.dart'; @@ -78,11 +78,11 @@ class ScaleBoundaries extends Equatable { Offset get _childCenter => childSize.center(Offset.zero); - Offset viewportToStatePosition(MagnifierController controller, Offset viewportPosition) { + Offset viewportToStatePosition(AvesMagnifierController controller, Offset viewportPosition) { return viewportPosition - _viewportCenter - controller.position; } - Offset viewportToChildPosition(MagnifierController controller, Offset viewportPosition) { + Offset viewportToChildPosition(AvesMagnifierController controller, Offset viewportPosition) { return viewportToStatePosition(controller, viewportPosition) / controller.scale! + _childCenter; } diff --git a/lib/widgets/common/magnifier/scale/scale_level.dart b/packages/aves_magnifier/lib/src/scale/scale_level.dart similarity index 100% rename from lib/widgets/common/magnifier/scale/scale_level.dart rename to packages/aves_magnifier/lib/src/scale/scale_level.dart diff --git a/lib/widgets/common/magnifier/scale/state.dart b/packages/aves_magnifier/lib/src/scale/state.dart similarity index 93% rename from lib/widgets/common/magnifier/scale/state.dart rename to packages/aves_magnifier/lib/src/scale/state.dart index 48649baa2..44f5dd533 100644 --- a/lib/widgets/common/magnifier/scale/state.dart +++ b/packages/aves_magnifier/lib/src/scale/state.dart @@ -1,4 +1,4 @@ -import 'package:aves/widgets/common/magnifier/controller/state.dart'; +import 'package:aves_magnifier/src/controller/state.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/widgets.dart'; diff --git a/packages/aves_magnifier/pubspec.yaml b/packages/aves_magnifier/pubspec.yaml new file mode 100644 index 000000000..59f677714 --- /dev/null +++ b/packages/aves_magnifier/pubspec.yaml @@ -0,0 +1,17 @@ +name: aves_magnifier +version: 0.0.1 +publish_to: none + +environment: + sdk: ">=2.18.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + equatable: + provider: + +dev_dependencies: + flutter_lints: + +flutter: diff --git a/pubspec.lock b/pubspec.lock index 545314e92..2dea2a9eb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -14,7 +14,7 @@ packages: name: _flutterfire_internals url: "https://pub.dartlang.org" source: hosted - version: "1.0.7" + version: "1.0.8" analyzer: dependency: transitive description: @@ -43,6 +43,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.9.0" + aves_magnifier: + dependency: "direct main" + description: + path: "packages/aves_magnifier" + relative: true + source: path + version: "0.0.1" aves_map: dependency: "direct main" description: @@ -126,14 +133,14 @@ packages: name: cloud_firestore_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "5.8.4" + version: "5.8.5" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web url: "https://pub.dartlang.org" source: hosted - version: "3.0.4" + version: "3.0.5" collection: dependency: "direct main" description: @@ -284,7 +291,7 @@ packages: name: firebase_core url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.2.0" firebase_core_platform_interface: dependency: transitive description: @@ -305,14 +312,14 @@ packages: name: firebase_crashlytics url: "https://pub.dartlang.org" source: hosted - version: "3.0.4" + version: "3.0.5" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "3.3.5" + version: "3.3.6" flex_color_picker: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index b41c4468d..d07c6cd46 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,8 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter + aves_magnifier: + path: packages/aves_magnifier aves_map: path: plugins/aves_map aves_report: diff --git a/scripts/pub_get_all.sh b/scripts/pub_get_all.sh index 1d54d706c..e3cbb2bb2 100755 --- a/scripts/pub_get_all.sh +++ b/scripts/pub_get_all.sh @@ -4,10 +4,19 @@ if [ ! -d "scripts" ]; then fi flutter pub get + +cd packages || exit +for package in $(ls -d *); do + cd $package + flutter pub get + cd .. +done +cd .. + cd plugins || exit for plugin in $(ls -d *); do cd $plugin flutter pub get cd .. done - +cd .. diff --git a/scripts/pub_upgrade_all.sh b/scripts/pub_upgrade_all.sh index 54395f117..2bce3eede 100755 --- a/scripts/pub_upgrade_all.sh +++ b/scripts/pub_upgrade_all.sh @@ -4,10 +4,19 @@ if [ ! -d "scripts" ]; then fi flutter pub upgrade + +cd packages || exit +for package in $(ls -d *); do + cd $package + flutter pub upgrade + cd .. +done +cd .. + cd plugins || exit for plugin in $(ls -d *); do cd $plugin flutter pub upgrade cd .. done - +cd ..