diff --git a/CHANGELOG.md b/CHANGELOG.md
index 69eef8175..82003e315 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
-## [v1.7.2] - 2022-11-11
+## [v1.7.3] - 2022-11-11
### Added
@@ -28,6 +28,8 @@ All notable changes to this project will be documented in this file.
- launch crash on Android KitKat
- ExifInterface: producing invalid WebP files
+## [v1.7.2] - 2022-11-11 [YANKED]
+
## [v1.7.1] - 2022-10-09
### Added
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
index 1cb00fc82..c649e27da 100644
--- a/android/app/proguard-rules.pro
+++ b/android/app/proguard-rules.pro
@@ -1 +1,2 @@
-keep class org.beyka.tiffbitmapfactory.**{ *; }
+-keep class org.mp4parser.**{ *; }
diff --git a/fastlane/metadata/android/en-US/changelogs/1083.txt b/fastlane/metadata/android/en-US/changelogs/1083.txt
new file mode 100644
index 000000000..b9b547a16
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1083.txt
@@ -0,0 +1,5 @@
+In v1.7.3:
+- tag your MP4, rate your MP4, date your MP4, locate your MP4, rotate your MP4
+- give media management access (on Android 12+) to skip some confirmation dialogs
+- enjoy higher quality thumbnails
+Full changelog available on GitHub
\ No newline at end of file
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..7a1d1c2e4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -6,7 +6,7 @@ repository: https://github.com/deckerst/aves
# - github changelog: /CHANGELOG.md
# - play changelog: /whatsnew/whatsnew-en-US
# - izzy changelog: /fastlane/metadata/android/en-US/changelogs/1XXX.txt
-version: 1.7.2+82
+version: 1.7.3+83
publish_to: none
environment:
@@ -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 ..
diff --git a/whatsnew/whatsnew-en-US b/whatsnew/whatsnew-en-US
index 5905035c9..b9b547a16 100644
--- a/whatsnew/whatsnew-en-US
+++ b/whatsnew/whatsnew-en-US
@@ -1,4 +1,4 @@
-In v1.7.2:
+In v1.7.3:
- tag your MP4, rate your MP4, date your MP4, locate your MP4, rotate your MP4
- give media management access (on Android 12+) to skip some confirmation dialogs
- enjoy higher quality thumbnails