From a23bbe183b190c5ed8287d61b451a5f08dd57202 Mon Sep 17 00:00:00 2001 From: Vitaliy Zarubin Date: Wed, 5 Jul 2023 13:12:42 +0300 Subject: [PATCH] [flutter_example_packages] Fix pages form --- .../flutter_keyboard_visibility/model.dart | 19 +++++---- .../flutter_keyboard_visibility/page.dart | 27 +++++++++---- .../packages/flutter_secure_storage/page.dart | 24 ++++++++++++ .../lib/packages/shared_preferences/page.dart | 17 ++++++++ example/lib/widgets/base/app_state.dart | 5 +-- example/pubspec.lock | 39 ++++++++----------- example/pubspec.yaml | 8 +++- 7 files changed, 97 insertions(+), 42 deletions(-) diff --git a/example/lib/packages/flutter_keyboard_visibility/model.dart b/example/lib/packages/flutter_keyboard_visibility/model.dart index 7ea60e5..a6ea279 100644 --- a/example/lib/packages/flutter_keyboard_visibility/model.dart +++ b/example/lib/packages/flutter_keyboard_visibility/model.dart @@ -6,6 +6,7 @@ import 'package:flutter/widgets.dart'; import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; import 'package:flutter_keyboard_visibility_aurora/flutter_keyboard_visibility_aurora.dart'; import 'package:scoped_model/scoped_model.dart'; +import 'package:flutter/foundation.dart' show kIsAurora; /// Model for [FlutterKeyboardVisibilityPage] class FlutterKeyboardVisibilityModel extends Model { @@ -40,14 +41,18 @@ class FlutterKeyboardVisibilityModel extends Model { /// Stream change height Stream onChangeKeyboardHeight() async* { - try { - yield await _controllerAurora.height; - await for (final state in _controllerAurora.onChangeHeight) { - yield state; + if (kIsAurora) { + try { + yield await _controllerAurora.height; + await for (final state in _controllerAurora.onChangeHeight) { + yield state; + } + } catch (e) { + _error = e.toString(); + notifyListeners(); } - } catch (e) { - _error = e.toString(); - notifyListeners(); + } else { + yield 0; } } } diff --git a/example/lib/packages/flutter_keyboard_visibility/page.dart b/example/lib/packages/flutter_keyboard_visibility/page.dart index 501b274..f9adc1b 100644 --- a/example/lib/packages/flutter_keyboard_visibility/page.dart +++ b/example/lib/packages/flutter_keyboard_visibility/page.dart @@ -2,10 +2,11 @@ * Copyright (c) 2023. Open Mobile Platform LLC. * License: Proprietary. */ +import 'dart:async'; + 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/flutter_keyboard_visibility/model.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'; @@ -13,7 +14,9 @@ import 'package:flutter_example_packages/widgets/blocks/block_item.dart'; import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:flutter/foundation.dart' show kIsAurora; +import 'model.dart'; import 'package.dart'; class FlutterKeyboardVisibilityPage extends AppStatefulWidget { @@ -31,18 +34,25 @@ class FlutterKeyboardVisibilityPage extends AppStatefulWidget { class _FlutterKeyboardVisibilityPageState extends AppState { double _keyboardHeight = 0; + StreamSubscription? _streamSub; final model = getIt(); @override void initState() { super.initState(); - model.onChangeKeyboardHeight().listen((height) { + _streamSub = model.onChangeKeyboardHeight().listen((height) { setState(() { _keyboardHeight = height; }); }); } + @override + void dispose() { + super.dispose(); + _streamSub?.cancel(); + } + @override Widget buildWide( BuildContext context, @@ -83,11 +93,14 @@ class _FlutterKeyboardVisibilityPageState ), ), const SizedBox(height: 20), - BlockItem( - title: l10n.flutterKeyboardVisibilityTitleHeight, - desc: l10n.flutterKeyboardVisibilityDescHeight, - value: _keyboardHeight, - builder: (value) => value.toInt().toString(), + Visibility( + visible: kIsAurora, + child: BlockItem( + title: l10n.flutterKeyboardVisibilityTitleHeight, + desc: l10n.flutterKeyboardVisibilityDescHeight, + value: _keyboardHeight, + builder: (value) => value.toInt().toString(), + ), ), const SizedBox(height: 20), BlockItem( diff --git a/example/lib/packages/flutter_secure_storage/page.dart b/example/lib/packages/flutter_secure_storage/page.dart index c2e4d1a..3e13b80 100644 --- a/example/lib/packages/flutter_secure_storage/page.dart +++ b/example/lib/packages/flutter_secure_storage/page.dart @@ -2,6 +2,8 @@ * Copyright (c) 2023. Open Mobile Platform LLC. * License: Proprietary. */ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:flutter_example_packages/base/di/app_di.dart'; import 'package:flutter_example_packages/base/package/package.dart'; @@ -13,6 +15,7 @@ import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart' import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:flutter_keyboard_visibility_aurora/flutter_keyboard_visibility_aurora.dart'; class FlutterSecureStoragePage extends AppStatefulWidget { FlutterSecureStoragePage({ @@ -28,6 +31,10 @@ class FlutterSecureStoragePage extends AppStatefulWidget { class _FlutterSecureStoragePageState extends AppState { + double _keyboardHeight = 0; + StreamSubscription? _streamSub; + final _controllerAurora = FlutterKeyboardVisibilityAurora(); + bool _isValidSave = false; final TextEditingController _passSaveController = TextEditingController(); final TextEditingController _keySaveController = TextEditingController(); @@ -53,6 +60,22 @@ class _FlutterSecureStoragePageState }); } + @override + void initState() { + super.initState(); + _streamSub = _controllerAurora.onChangeHeight.listen((event) { + setState(() { + _keyboardHeight = event; + }); + }); + } + + @override + void dispose() { + super.dispose(); + _streamSub?.cancel(); + } + @override Widget buildWide( BuildContext context, @@ -67,6 +90,7 @@ class _FlutterSecureStoragePageState _valueGetController.text = model.readValue; // return widget return SingleChildScrollView( + padding: EdgeInsets.only(bottom: _keyboardHeight), child: Padding( padding: const EdgeInsets.all(20), child: Column( diff --git a/example/lib/packages/shared_preferences/page.dart b/example/lib/packages/shared_preferences/page.dart index a77995b..1386bf9 100644 --- a/example/lib/packages/shared_preferences/page.dart +++ b/example/lib/packages/shared_preferences/page.dart @@ -2,6 +2,7 @@ * Copyright (c) 2023. Open Mobile Platform LLC. * License: Proprietary. */ +import 'dart:async'; import 'dart:convert'; import 'package:flutter/material.dart'; @@ -17,6 +18,7 @@ import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart' import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:flutter_keyboard_visibility_aurora/flutter_keyboard_visibility_aurora.dart'; class SharedPreferencesPage extends AppStatefulWidget { SharedPreferencesPage({ @@ -30,6 +32,9 @@ class SharedPreferencesPage extends AppStatefulWidget { } class _SharedPreferencesPageState extends AppState { + double _keyboardHeight = 0; + StreamSubscription? _streamSub; + final _controllerAurora = FlutterKeyboardVisibilityAurora(); final ScrollController _scrollController = ScrollController(); final model = getIt(); @@ -51,6 +56,17 @@ class _SharedPreferencesPageState extends AppState { void initState() { super.initState(); model.reloadValues(); + _streamSub = _controllerAurora.onChangeHeight.listen((event) { + setState(() { + _keyboardHeight = event; + }); + }); + } + + @override + void dispose() { + super.dispose(); + _streamSub?.cancel(); } @override @@ -65,6 +81,7 @@ class _SharedPreferencesPageState extends AppState { builder: (context, child, model) { return SingleChildScrollView( controller: _scrollController, + padding: EdgeInsets.only(bottom: _keyboardHeight), child: Padding( padding: const EdgeInsets.all(20), child: Column( diff --git a/example/lib/widgets/base/app_state.dart b/example/lib/widgets/base/app_state.dart index 6824097..5034616 100644 --- a/example/lib/widgets/base/app_state.dart +++ b/example/lib/widgets/base/app_state.dart @@ -13,14 +13,13 @@ abstract class AppState extends State AppLocalizations l10n, ); - bool _isDispose = false; void onPostFrameCallback() {} void onDidChangeMetrics() {} void _delayedChangeMetrics() { for (int i = 0; i <= 5; i++) { Future.delayed(Duration(milliseconds: 100 * i), () { - if (!_isDispose) { + if (mounted) { onDidChangeMetrics(); } }); @@ -30,7 +29,6 @@ abstract class AppState extends State @override void initState() { super.initState(); - _isDispose = false; WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addPostFrameCallback((_) { _delayedChangeMetrics(); @@ -44,7 +42,6 @@ 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 7b240ce..481ffbd 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -48,7 +48,7 @@ packages: description: path: "packages/battery_plus/battery_plus_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -225,7 +225,7 @@ packages: description: path: "packages/device_info_plus/device_info_plus_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -289,7 +289,7 @@ packages: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted - version: "3.3.0" + version: "3.3.1" flutter_keyboard_visibility: dependency: "direct main" description: @@ -300,9 +300,11 @@ packages: flutter_keyboard_visibility_aurora: dependency: "direct main" description: - path: "../packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora" - relative: true - source: path + path: "packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora" + ref: flutter_example_packages + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" + url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" + source: git version: "0.0.1" flutter_keyboard_visibility_linux: dependency: transitive @@ -352,13 +354,13 @@ packages: name: flutter_local_notifications url: "https://pub.dartlang.org" source: hosted - version: "14.1.1" + version: "14.1.2" flutter_local_notifications_aurora: dependency: "direct main" description: path: "packages/flutter_local_notifications/flutter_local_notifications_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -393,7 +395,7 @@ packages: description: path: "packages/flutter_secure_storage/flutter_secure_storage_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -594,7 +596,7 @@ packages: description: path: "packages/package_info_plus/package_info_plus_aurora" ref: flutter_example_packages - resolved-ref: "253ed53dc43d0885fed94b010882fdcdd035d613" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -631,7 +633,7 @@ packages: description: path: "packages/path_provider/path_provider_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -663,13 +665,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.7" - pedantic: - dependency: transitive - description: - name: pedantic - url: "https://pub.dartlang.org" - source: hosted - version: "1.11.1" petitparser: dependency: transitive description: @@ -753,7 +748,7 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.2.0" shared_preferences_android: dependency: transitive description: @@ -766,7 +761,7 @@ packages: description: path: "packages/shared_preferences/shared_preferences_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -955,7 +950,7 @@ packages: description: path: "packages/wakelock/wakelock_aurora" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" @@ -1020,7 +1015,7 @@ packages: description: path: "packages/xdga_directories" ref: flutter_example_packages - resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" + resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" source: git version: "0.0.1" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 30d4b5f..139f9f6 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -82,7 +82,7 @@ dependencies: ## https://pub.dev/packages/package_info_plus package_info_plus: 3.1.2 - ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/package_info_plus/package_info_plus_aurora + ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/flutter_example_packages/packages/package_info_plus/package_info_plus_aurora package_info_plus_aurora: git: url: git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git @@ -118,8 +118,12 @@ dependencies: ## https://pub.dev/packages/flutter_keyboard_visibility flutter_keyboard_visibility: ^5.4.1 + ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora flutter_keyboard_visibility_aurora: - path: ../packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora + git: + url: git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git + ref: flutter_example_packages + path: packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora dev_dependencies: flutter_test: