From 253ed53dc43d0885fed94b010882fdcdd035d613 Mon Sep 17 00:00:00 2001 From: Vitaliy Zarubin Date: Fri, 30 Jun 2023 15:50:48 +0300 Subject: [PATCH] [flutter_example_packages] Add photo_view, refactoring --- README.md | 19 ++-- example/assets/images/large_image.jpg | Bin 0 -> 72179 bytes ...read-man-christmas-treat-candy-cartoon.svg | 1 + example/data/raw/links | 1 + .../packages/cached_network_image/page.dart | 5 +- example/lib/packages/packages.dart | 2 + example/lib/packages/photo_view/model.dart | 8 ++ example/lib/packages/photo_view/package.dart | 23 ++++ example/lib/packages/photo_view/page.dart | 82 +++++++++++++++ example/lib/pages/home/page.dart | 6 -- example/lib/widgets/base/app_state.dart | 20 ++-- example/pubspec.lock | 7 ++ example/pubspec.yaml | 4 +- example/run.sh | 2 +- script/build_example.sh | 99 ------------------ script/vscode_properties.sh | 67 ------------ 16 files changed, 153 insertions(+), 193 deletions(-) create mode 100644 example/assets/images/large_image.jpg create mode 100644 example/data/raw/gingerbread-man-christmas-treat-candy-cartoon.svg create mode 100644 example/lib/packages/photo_view/model.dart create mode 100644 example/lib/packages/photo_view/package.dart create mode 100644 example/lib/packages/photo_view/page.dart delete mode 100755 script/build_example.sh delete mode 100755 script/vscode_properties.sh diff --git a/README.md b/README.md index ae83560..f118e08 100644 --- a/README.md +++ b/README.md @@ -18,16 +18,24 @@ Packages made or for review | [shared_preferences](https://pub.dev/packages/shared_preferences) | 2.1.2 | 4.0.2 | Review | - | | [sqflite](https://pub.dev/packages/sqflite) | 2.2.6 | 4.0.2 | Review | - | | [wakelock](https://pub.dev/packages/wakelock) | 0.6.2 | 4.0.2 | Review | - | -| xdga_directories | - | 4.0.2 | Review | Аналог [xdg_directories](https://pub.dev/packages/xdg_directories) | +| xdga_directories | 0.0.1 | 4.0.2 | Review | Аналог [xdg_directories](https://pub.dev/packages/xdg_directories) | ## Package verified Verified packages on Aurora OS -| Package | Version | OS Version | State | Comment | -|-------------------------------------------------------------------------|----------|-------------|--------|------------------------------------| -| [flutter_cache_manager](https://pub.dev/packages/flutter_cache_manager) | 3.3.0 | 4.0.2 | Done | Depends on `path_provider` | -| [cached_network_image](https://pub.dev/packages/cached_network_image) | 3.2.3 | 4.0.2 | Done | Depends on `flutter_cache_manager` | +| Package | Version | OS Version | State | Comment | +|-------------------------------------------------------------------------|---------|-------------|--------|------------------------------------| +| [flutter_cache_manager](https://pub.dev/packages/flutter_cache_manager) | 3.3.0 | 4.0.2 | Done | Depends on `path_provider` | +| [cached_network_image](https://pub.dev/packages/cached_network_image) | 3.2.3 | 4.0.2 | Done | Depends on `flutter_cache_manager` | +| [crypto](https://pub.dev/packages/crypto) | 3.0.2 | 4.0.2 | Done | - | +| [cupertino_icons](https://pub.dev/packages/cupertino_icons) | 1.0.5 | 4.0.2 | Done | - | +| [get_it](https://pub.dev/packages/get_it) | 7.6.0 | 4.0.2 | Done | - | +| [google_fonts](https://pub.dev/packages/google_fonts) | 4.0.4 | 4.0.2 | Done | - | +| [intl](https://pub.dev/packages/intl) | 0.17.0 | 4.0.2 | Done | - | +| [photo_view](https://pub.dev/packages/photo_view) | 0.14.0 | 4.0.2 | Done | - | +| [scoped_model](https://pub.dev/packages/scoped_model) | 2.0.0 | 4.0.2 | Done | - | +| [universal_io](https://pub.dev/packages/universal_io) | 2.2.0 | 4.0.2 | Done | - | ## Package in progress @@ -39,7 +47,6 @@ Started development and its status | [url_launcher](https://pub.dev/packages/url_launcher) | 6.1.11 | 5.0.0 | Waiting | [OpenURI](https://confluence.omprussia.ru/pages/viewpage.action?pageId=163055648) | | [sensors_plus](https://pub.dev/packages/sensors_plus) | 3.0.2 | 4.0.2 | Blocked | Нет интерфейса для использования Sensors API без Qt | - ## Package waiting Packets waiting in line diff --git a/example/assets/images/large_image.jpg b/example/assets/images/large_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f49af2f19e756f5b3c22c23c2a6f98e4bb106af4 GIT binary patch literal 72179 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 literal 0 HcmV?d00001 diff --git a/example/data/raw/gingerbread-man-christmas-treat-candy-cartoon.svg b/example/data/raw/gingerbread-man-christmas-treat-candy-cartoon.svg new file mode 100644 index 0000000..a14f383 --- /dev/null +++ b/example/data/raw/gingerbread-man-christmas-treat-candy-cartoon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/example/data/raw/links b/example/data/raw/links index 1b25a2e..6c111aa 100644 --- a/example/data/raw/links +++ b/example/data/raw/links @@ -1,2 +1,3 @@ https://iconduck.com/icons/94312/flutter https://iconduck.com/icons/54169/package +https://iconduck.com/illustrations/108225/gingerbread-man-christmas-treat-candy-cartoon diff --git a/example/lib/packages/cached_network_image/page.dart b/example/lib/packages/cached_network_image/page.dart index 59fd59e..8009fb0 100644 --- a/example/lib/packages/cached_network_image/page.dart +++ b/example/lib/packages/cached_network_image/page.dart @@ -5,7 +5,6 @@ import 'package:flutter_example_packages/base/package/package.dart'; import 'package:flutter_example_packages/packages/cached_network_image/model.dart'; import 'package:flutter_example_packages/packages/cached_network_image/package.dart'; import 'package:flutter_example_packages/widgets/base/export.dart'; -import 'package:flutter_example_packages/widgets/blocks/block_alert.dart'; import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart'; import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -46,9 +45,9 @@ class _CachedNetworkImagePageState extends AppState { child: CachedNetworkImage( imageUrl: "https://via.placeholder.com/350x150", placeholder: (context, url) => - const CircularProgressIndicator(), + const CircularProgressIndicator(), errorWidget: (context, url, error) => - const Icon(Icons.error), + const Icon(Icons.error), ), ), ), diff --git a/example/lib/packages/packages.dart b/example/lib/packages/packages.dart index 4c50c71..a669d9c 100644 --- a/example/lib/packages/packages.dart +++ b/example/lib/packages/packages.dart @@ -11,6 +11,7 @@ import 'package:flutter_example_packages/packages/google_fonts/package.dart'; import 'package:flutter_example_packages/packages/intl/package.dart'; import 'package:flutter_example_packages/packages/package_info_plus/package.dart'; import 'package:flutter_example_packages/packages/path_provider/package.dart'; +import 'package:flutter_example_packages/packages/photo_view/package.dart'; import 'package:flutter_example_packages/packages/scoped_model/package.dart'; import 'package:flutter_example_packages/packages/shared_preferences/package.dart'; import 'package:flutter_example_packages/packages/sqflite/package.dart'; @@ -35,6 +36,7 @@ final packages = [ packageIntl, packagePackageInfoPlus, packagePathProvider, + packagePhotoView, packageScopedModel, packageSharedPreferences, packageSqflite, diff --git a/example/lib/packages/photo_view/model.dart b/example/lib/packages/photo_view/model.dart new file mode 100644 index 0000000..126e62a --- /dev/null +++ b/example/lib/packages/photo_view/model.dart @@ -0,0 +1,8 @@ +import 'package:flutter/widgets.dart'; +import 'package:scoped_model/scoped_model.dart'; + +/// Model for [PhotoViewPage] +class PhotoViewModel extends Model { + /// Get [ScopedModel] + static PhotoViewModel of(BuildContext context) => ScopedModel.of(context); +} diff --git a/example/lib/packages/photo_view/package.dart b/example/lib/packages/photo_view/package.dart new file mode 100644 index 0000000..6dea8d1 --- /dev/null +++ b/example/lib/packages/photo_view/package.dart @@ -0,0 +1,23 @@ +import 'package:flutter_example_packages/base/package/package_page.dart'; +import 'package:flutter_example_packages/packages/photo_view/page.dart'; +import 'package:get_it/get_it.dart'; + +import 'model.dart'; + +/// Package values +final packagePhotoView = PackagePage( + key: 'photo_view', + descEN: ''' + A simple zoomable image/content widget for Flutter. + ''', + descRU: ''' + Простой масштабируемый виджет изображения/контента для Flutter. + ''', + version: '0.14.0', + isPlatformDependent: false, + page: () => PhotoViewPage(), + init: () { + GetIt.instance.registerFactory( + () => PhotoViewModel()); + }, +); diff --git a/example/lib/packages/photo_view/page.dart b/example/lib/packages/photo_view/page.dart new file mode 100644 index 0000000..a44e455 --- /dev/null +++ b/example/lib/packages/photo_view/page.dart @@ -0,0 +1,82 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_example_packages/base/di/app_di.dart'; +import 'package:flutter_example_packages/base/package/package.dart'; +import 'package:flutter_example_packages/packages/photo_view/model.dart'; +import 'package:flutter_example_packages/packages/photo_view/package.dart'; +import 'package:flutter_example_packages/theme/radius.dart'; +import 'package:flutter_example_packages/widgets/base/export.dart'; +import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart'; +import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:photo_view/photo_view.dart'; + +class PhotoViewPage extends AppStatefulWidget { + PhotoViewPage({ + super.key, + }); + + final Package package = packagePhotoView; + + @override + State createState() => _PhotoViewPageState(); +} + +class _PhotoViewPageState extends AppState { + double _heightPhotoView = 1; + final _keyPhotoView = GlobalKey(); + + @override + void onDidChangeMetrics() { + setState(() { + _heightPhotoView = _getHeightPhotoView(); + }); + } + + @override + Widget buildWide( + BuildContext context, + MediaQueryData media, + AppLocalizations l10n, + ) { + return BlockLayout( + model: getIt(), + title: widget.package.key, + builder: (context, child, model) { + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + BlockInfoPackage(widget.package), + ClipRRect( + borderRadius: AppRadius.small, + child: SizedBox( + key: _keyPhotoView, + width: double.infinity, + height: _heightPhotoView, + child: PhotoView( + imageProvider: + const AssetImage("assets/images/large_image.jpg"), + ), + ), + ), + ], + ), + ), + ); + }, + ); + } + + double _getHeightPhotoView() { + if (_keyPhotoView.currentContext != null) { + RenderBox? box = + _keyPhotoView.currentContext?.findRenderObject() as RenderBox; + Offset position = + box.localToGlobal(Offset.zero); //this is global position + return MediaQuery.of(context).size.height - position.dy - 20; + } + return 1; + } +} diff --git a/example/lib/pages/home/page.dart b/example/lib/pages/home/page.dart index 701194a..546a962 100644 --- a/example/lib/pages/home/page.dart +++ b/example/lib/pages/home/page.dart @@ -26,12 +26,6 @@ class _HomePageState extends AppState { final HomeModel _model = getIt(); final ScrollController _controllerListView = ScrollController(); - @override - void initState() { - super.initState(); - - } - @override void onDidChangeMetrics() { setState(() { diff --git a/example/lib/widgets/base/app_state.dart b/example/lib/widgets/base/app_state.dart index 9d43aa5..8677bd2 100644 --- a/example/lib/widgets/base/app_state.dart +++ b/example/lib/widgets/base/app_state.dart @@ -9,25 +9,24 @@ abstract class AppState extends State AppLocalizations l10n, ); + bool _isDispose = false; void onPostFrameCallback() {} void onDidChangeMetrics() {} void _delayedChangeMetrics() { - onDidChangeMetrics(); - Future.delayed(const Duration(milliseconds: 100), () { - onDidChangeMetrics(); - }); - Future.delayed(const Duration(milliseconds: 200), () { - onDidChangeMetrics(); - }); - Future.delayed(const Duration(milliseconds: 500), () { - onDidChangeMetrics(); - }); + for (int i = 0; i <= 5; i++) { + Future.delayed(Duration(milliseconds: 100 * i), () { + if (!_isDispose) { + onDidChangeMetrics(); + } + }); + } } @override void initState() { super.initState(); + _isDispose = false; WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addPostFrameCallback((_) { _delayedChangeMetrics(); @@ -41,6 +40,7 @@ abstract class AppState extends State @override void dispose() { + _isDispose = true; WidgetsBinding.instance.removeObserver(this); super.dispose(); } diff --git a/example/pubspec.lock b/example/pubspec.lock index 4750e56..14cedbb 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -616,6 +616,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "5.1.0" + photo_view: + dependency: "direct main" + description: + name: photo_view + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.0" platform: dependency: transitive description: diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 074efcd..dde32a2 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: ## https://pub.dev/packages/scoped_model scoped_model: ^2.0.0 ## https://pub.dev/packages/get_it - get_it: ^7.2.0 + get_it: ^7.6.0 ## https://pub.dev/packages/intl intl: ^0.17.0 ## https://pub.dev/packages/universal_io @@ -31,6 +31,8 @@ dependencies: cached_network_image: ^3.2.3 ## https://pub.dev/packages/flutter_cache_manager flutter_cache_manager: ^3.3.0 + ## https://pub.dev/packages/photo_view + photo_view: ^0.14.0 ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/xdga_directories xdga_directories: diff --git a/example/run.sh b/example/run.sh index 6addfd2..4a42aab 100755 --- a/example/run.sh +++ b/example/run.sh @@ -14,7 +14,7 @@ ## -s /home/user/sign/folder ## Flutter path -FLUTTER="$HOME/.local/opt/flutter-sdk/bin/flutter" +FLUTTER="$HOME/.local/opt/flutter/bin/flutter" ## https://developer.auroraos.ru/doc/software_development/psdk/setup ## Install Platform SDK path diff --git a/script/build_example.sh b/script/build_example.sh deleted file mode 100755 index bac91f4..0000000 --- a/script/build_example.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2023. Open Mobile Platform LLC. -# License: Proprietary. - -## Build example, sign rpm, upload/install/run rpm to device - -## Usage -## -## chmod +x ./build_example.sh -## -## ./build_example.sh \ -## -p xdga_directories \ -## -d : \ -## -s /home/user/sign/system_keys - -## Flutter path -FLUTTER="$HOME/.local/opt/flutter-sdk/bin/flutter" - -## https://developer.auroraos.ru/doc/software_development/psdk/setup -## Install Platform SDK path -## You may not have set the PSDK_DIR environment variable. -## export PSDK_DIR=$HOME/AuroraPlatformSDK/sdks/aurora_psdk - -while getopts p:d:s: flag; do - case "${flag}" in - p) package=${OPTARG} ;; - d) device=${OPTARG} ;; - s) sign=${OPTARG} ;; - *) - echo "usage: $0 [-p] [-d] [-s]" >&2 - exit 1 - ;; - esac -done - -if [ -z "$package" ]; then - echo "Specify a build package" - exit -else - cd "../packages/$package" 2>/dev/null || eval 'echo "Package \"$package\" not found." && exit' - ## Update dependency - $FLUTTER pub get - ## Run ffigen if has - $FLUTTER pub run ffigen --config ffigen.yaml 2>/dev/null - ## Open example dir - cd "example" || exit - ## Build aurora example app - { - $FLUTTER build aurora --release - } || { - exit 1; - } -fi - -if [ -n "$sign" ]; then - - key=$(ls "$sign"/*key.pem) - - if [ -z "$key" ]; then - echo "Key *key.pem not found." - exit - fi - - cert=$(ls "$sign"/*cert.pem) - - if [ -z "$cert" ]; then - echo "Key *cert.pem not found." - exit - fi - - ## Sign rpm system key - "$PSDK_DIR"/sdk-chroot rpmsign-external sign \ - --key "$key" \ - --cert "$cert" \ - build/aurora/arm/release/RPMS/*.rpm -fi - -if [ -n "$device" ]; then - - IFS=':' read -ra ADDR <<< "$device" - IFS='/' read -ra ADDP <<< "$package" - - D_IP="${ADDR[0]}" - D_PASS="${ADDR[1]}" - APP_KEY="${ADDP[-1]}" - - # shellcheck disable=SC2012 - rpm=$(ls "$PWD"/build/aurora/arm/release/RPMS/*.rpm | sort -r | head -n 1) - - # upload rpm - scp "$rpm" defaultuser@"$D_IP:/home/defaultuser/Downloads" - - # install rpm - ssh -t defaultuser@$D_IP "echo $D_PASS | devel-su pkcon -y install-local /home/defaultuser/Downloads/*$APP_KEY*.rpm" - - # run application - ssh -t defaultuser@$D_IP "/usr/bin/com.example.${APP_KEY}_example" -fi diff --git a/script/vscode_properties.sh b/script/vscode_properties.sh deleted file mode 100755 index e80ab79..0000000 --- a/script/vscode_properties.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2023. Open Mobile Platform LLC. -# License: Proprietary. - -## Script create c_cpp_properties.json with dependencies for flutter aurora - -## Usage -## -## chmod +x ./vscode_properties.sh -## ./vscode_properties.sh - -## https://developer.auroraos.ru/doc/software_development/psdk/setup -## Install Platform SDK path -## You may not have set the PSDK_DIR environment variable. -## export PSDK_DIR=$HOME/AuroraPlatformSDK/sdks/aurora_psdk - -cd ../ - -## check file -[ -f .vscode/c_cpp_properties.json ] && { echo "File c_cpp_properties.json already exist!"; exit; } - -## find target -TARGET=$($PSDK_DIR/sdk-chroot sdk-assistant list | grep armv | grep default | sed 's/^.*A/A/g' | sed 's/\s.*//g') - -## mkdir .vscode if not exist -[ -d .vscode ] || mkdir .vscode - -## find targets path -TARGETS_PATH=$(cd "$PSDK_DIR/../../" && pwd)/targets - -## save file -tee -a .vscode/c_cpp_properties.json << END -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "\${workspaceFolder}/**", - "$TARGETS_PATH/$TARGET/usr/include", - "$TARGETS_PATH/$TARGET/usr/include/dconf", - "$TARGETS_PATH/$TARGET/usr/include/flutter-embedder", - "$TARGETS_PATH/$TARGET/usr/include/maliit", - "$TARGETS_PATH/$TARGET/usr/include/appmanifest-cpp", - "$TARGETS_PATH/$TARGET/usr/include/glib-2.0", - "$TARGETS_PATH/$TARGET/usr/lib/glib-2.0/include", - "$TARGETS_PATH/$TARGET/usr/include/sailfishapp", - "$TARGETS_PATH/$TARGET/usr/include/qt5", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtConcurrent", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtCore", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtDBus", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtGui", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtMultimedia", - "$TARGETS_PATH/$TARGET/usr/include/qt5/QtQuick" - ], - "defines": [ - "__ARM_PCS_VFP" - ], - "compilerPath": "/usr/bin/g++", - "cStandard": "c17", - "cppStandard": "c++17", - "intelliSenseMode": "clang-x64" - } - ], - "version": 4 -} -END