Browse Source

[flutter_example_packages] Fix pages form

merge-requests/21/head
Vitaliy Zarubin 2 years ago
parent
commit
a23bbe183b
  1. 19
      example/lib/packages/flutter_keyboard_visibility/model.dart
  2. 27
      example/lib/packages/flutter_keyboard_visibility/page.dart
  3. 24
      example/lib/packages/flutter_secure_storage/page.dart
  4. 17
      example/lib/packages/shared_preferences/page.dart
  5. 5
      example/lib/widgets/base/app_state.dart
  6. 39
      example/pubspec.lock
  7. 8
      example/pubspec.yaml

19
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/flutter_keyboard_visibility.dart';
import 'package:flutter_keyboard_visibility_aurora/flutter_keyboard_visibility_aurora.dart'; import 'package:flutter_keyboard_visibility_aurora/flutter_keyboard_visibility_aurora.dart';
import 'package:scoped_model/scoped_model.dart'; import 'package:scoped_model/scoped_model.dart';
import 'package:flutter/foundation.dart' show kIsAurora;
/// Model for [FlutterKeyboardVisibilityPage] /// Model for [FlutterKeyboardVisibilityPage]
class FlutterKeyboardVisibilityModel extends Model { class FlutterKeyboardVisibilityModel extends Model {
@ -40,14 +41,18 @@ class FlutterKeyboardVisibilityModel extends Model {
/// Stream change height /// Stream change height
Stream<double> onChangeKeyboardHeight() async* { Stream<double> onChangeKeyboardHeight() async* {
try { if (kIsAurora) {
yield await _controllerAurora.height; try {
await for (final state in _controllerAurora.onChangeHeight) { yield await _controllerAurora.height;
yield state; await for (final state in _controllerAurora.onChangeHeight) {
yield state;
}
} catch (e) {
_error = e.toString();
notifyListeners();
} }
} catch (e) { } else {
_error = e.toString(); yield 0;
notifyListeners();
} }
} }
} }

27
example/lib/packages/flutter_keyboard_visibility/page.dart

@ -2,10 +2,11 @@
* Copyright (c) 2023. Open Mobile Platform LLC. * Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary. * License: Proprietary.
*/ */
import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_example_packages/base/di/app_di.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/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/base/export.dart';
import 'package:flutter_example_packages/widgets/blocks/block_alert.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/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/layouts/block_layout.dart';
import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter/foundation.dart' show kIsAurora;
import 'model.dart';
import 'package.dart'; import 'package.dart';
class FlutterKeyboardVisibilityPage extends AppStatefulWidget { class FlutterKeyboardVisibilityPage extends AppStatefulWidget {
@ -31,18 +34,25 @@ class FlutterKeyboardVisibilityPage extends AppStatefulWidget {
class _FlutterKeyboardVisibilityPageState class _FlutterKeyboardVisibilityPageState
extends AppState<FlutterKeyboardVisibilityPage> { extends AppState<FlutterKeyboardVisibilityPage> {
double _keyboardHeight = 0; double _keyboardHeight = 0;
StreamSubscription? _streamSub;
final model = getIt<FlutterKeyboardVisibilityModel>(); final model = getIt<FlutterKeyboardVisibilityModel>();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
model.onChangeKeyboardHeight().listen((height) { _streamSub = model.onChangeKeyboardHeight().listen((height) {
setState(() { setState(() {
_keyboardHeight = height; _keyboardHeight = height;
}); });
}); });
} }
@override
void dispose() {
super.dispose();
_streamSub?.cancel();
}
@override @override
Widget buildWide( Widget buildWide(
BuildContext context, BuildContext context,
@ -83,11 +93,14 @@ class _FlutterKeyboardVisibilityPageState
), ),
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
BlockItem( Visibility(
title: l10n.flutterKeyboardVisibilityTitleHeight, visible: kIsAurora,
desc: l10n.flutterKeyboardVisibilityDescHeight, child: BlockItem(
value: _keyboardHeight, title: l10n.flutterKeyboardVisibilityTitleHeight,
builder: (value) => value.toInt().toString(), desc: l10n.flutterKeyboardVisibilityDescHeight,
value: _keyboardHeight,
builder: (value) => value.toInt().toString(),
),
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
BlockItem( BlockItem(

24
example/lib/packages/flutter_secure_storage/page.dart

@ -2,6 +2,8 @@
* Copyright (c) 2023. Open Mobile Platform LLC. * Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary. * License: Proprietary.
*/ */
import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_example_packages/base/di/app_di.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/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/layouts/block_layout.dart';
import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.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 { class FlutterSecureStoragePage extends AppStatefulWidget {
FlutterSecureStoragePage({ FlutterSecureStoragePage({
@ -28,6 +31,10 @@ class FlutterSecureStoragePage extends AppStatefulWidget {
class _FlutterSecureStoragePageState class _FlutterSecureStoragePageState
extends AppState<FlutterSecureStoragePage> { extends AppState<FlutterSecureStoragePage> {
double _keyboardHeight = 0;
StreamSubscription? _streamSub;
final _controllerAurora = FlutterKeyboardVisibilityAurora();
bool _isValidSave = false; bool _isValidSave = false;
final TextEditingController _passSaveController = TextEditingController(); final TextEditingController _passSaveController = TextEditingController();
final TextEditingController _keySaveController = 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 @override
Widget buildWide( Widget buildWide(
BuildContext context, BuildContext context,
@ -67,6 +90,7 @@ class _FlutterSecureStoragePageState
_valueGetController.text = model.readValue; _valueGetController.text = model.readValue;
// return widget // return widget
return SingleChildScrollView( return SingleChildScrollView(
padding: EdgeInsets.only(bottom: _keyboardHeight),
child: Padding( child: Padding(
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: Column( child: Column(

17
example/lib/packages/shared_preferences/page.dart

@ -2,6 +2,7 @@
* Copyright (c) 2023. Open Mobile Platform LLC. * Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary. * License: Proprietary.
*/ */
import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart'; 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/layouts/block_layout.dart';
import 'package:flutter_example_packages/widgets/texts/export.dart'; import 'package:flutter_example_packages/widgets/texts/export.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.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 { class SharedPreferencesPage extends AppStatefulWidget {
SharedPreferencesPage({ SharedPreferencesPage({
@ -30,6 +32,9 @@ class SharedPreferencesPage extends AppStatefulWidget {
} }
class _SharedPreferencesPageState extends AppState<SharedPreferencesPage> { class _SharedPreferencesPageState extends AppState<SharedPreferencesPage> {
double _keyboardHeight = 0;
StreamSubscription? _streamSub;
final _controllerAurora = FlutterKeyboardVisibilityAurora();
final ScrollController _scrollController = ScrollController(); final ScrollController _scrollController = ScrollController();
final model = getIt<SharedPreferencesModel>(); final model = getIt<SharedPreferencesModel>();
@ -51,6 +56,17 @@ class _SharedPreferencesPageState extends AppState<SharedPreferencesPage> {
void initState() { void initState() {
super.initState(); super.initState();
model.reloadValues(); model.reloadValues();
_streamSub = _controllerAurora.onChangeHeight.listen((event) {
setState(() {
_keyboardHeight = event;
});
});
}
@override
void dispose() {
super.dispose();
_streamSub?.cancel();
} }
@override @override
@ -65,6 +81,7 @@ class _SharedPreferencesPageState extends AppState<SharedPreferencesPage> {
builder: (context, child, model) { builder: (context, child, model) {
return SingleChildScrollView( return SingleChildScrollView(
controller: _scrollController, controller: _scrollController,
padding: EdgeInsets.only(bottom: _keyboardHeight),
child: Padding( child: Padding(
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: Column( child: Column(

5
example/lib/widgets/base/app_state.dart

@ -13,14 +13,13 @@ abstract class AppState<T extends StatefulWidget> extends State<T>
AppLocalizations l10n, AppLocalizations l10n,
); );
bool _isDispose = false;
void onPostFrameCallback() {} void onPostFrameCallback() {}
void onDidChangeMetrics() {} void onDidChangeMetrics() {}
void _delayedChangeMetrics() { void _delayedChangeMetrics() {
for (int i = 0; i <= 5; i++) { for (int i = 0; i <= 5; i++) {
Future.delayed(Duration(milliseconds: 100 * i), () { Future.delayed(Duration(milliseconds: 100 * i), () {
if (!_isDispose) { if (mounted) {
onDidChangeMetrics(); onDidChangeMetrics();
} }
}); });
@ -30,7 +29,6 @@ abstract class AppState<T extends StatefulWidget> extends State<T>
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_isDispose = false;
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_delayedChangeMetrics(); _delayedChangeMetrics();
@ -44,7 +42,6 @@ abstract class AppState<T extends StatefulWidget> extends State<T>
@override @override
void dispose() { void dispose() {
_isDispose = true;
WidgetsBinding.instance.removeObserver(this); WidgetsBinding.instance.removeObserver(this);
super.dispose(); super.dispose();
} }

39
example/pubspec.lock

@ -48,7 +48,7 @@ packages:
description: description:
path: "packages/battery_plus/battery_plus_aurora" path: "packages/battery_plus/battery_plus_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -225,7 +225,7 @@ packages:
description: description:
path: "packages/device_info_plus/device_info_plus_aurora" path: "packages/device_info_plus/device_info_plus_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -289,7 +289,7 @@ packages:
name: flutter_cache_manager name: flutter_cache_manager
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.3.0" version: "3.3.1"
flutter_keyboard_visibility: flutter_keyboard_visibility:
dependency: "direct main" dependency: "direct main"
description: description:
@ -300,9 +300,11 @@ packages:
flutter_keyboard_visibility_aurora: flutter_keyboard_visibility_aurora:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora" path: "packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora"
relative: true ref: flutter_example_packages
source: path resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1" version: "0.0.1"
flutter_keyboard_visibility_linux: flutter_keyboard_visibility_linux:
dependency: transitive dependency: transitive
@ -352,13 +354,13 @@ packages:
name: flutter_local_notifications name: flutter_local_notifications
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "14.1.1" version: "14.1.2"
flutter_local_notifications_aurora: flutter_local_notifications_aurora:
dependency: "direct main" dependency: "direct main"
description: description:
path: "packages/flutter_local_notifications/flutter_local_notifications_aurora" path: "packages/flutter_local_notifications/flutter_local_notifications_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -393,7 +395,7 @@ packages:
description: description:
path: "packages/flutter_secure_storage/flutter_secure_storage_aurora" path: "packages/flutter_secure_storage/flutter_secure_storage_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -594,7 +596,7 @@ packages:
description: description:
path: "packages/package_info_plus/package_info_plus_aurora" path: "packages/package_info_plus/package_info_plus_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "253ed53dc43d0885fed94b010882fdcdd035d613" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -631,7 +633,7 @@ packages:
description: description:
path: "packages/path_provider/path_provider_aurora" path: "packages/path_provider/path_provider_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -663,13 +665,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.7" version: "2.1.7"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
@ -753,7 +748,7 @@ packages:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.2.0"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
@ -766,7 +761,7 @@ packages:
description: description:
path: "packages/shared_preferences/shared_preferences_aurora" path: "packages/shared_preferences/shared_preferences_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -955,7 +950,7 @@ packages:
description: description:
path: "packages/wakelock/wakelock_aurora" path: "packages/wakelock/wakelock_aurora"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -1020,7 +1015,7 @@ packages:
description: description:
path: "packages/xdga_directories" path: "packages/xdga_directories"
ref: flutter_example_packages ref: flutter_example_packages
resolved-ref: "1d940649da65c113d48bb028a352f611a95ad306" resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git" url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git source: git
version: "0.0.1" version: "0.0.1"

8
example/pubspec.yaml

@ -82,7 +82,7 @@ dependencies:
## https://pub.dev/packages/package_info_plus ## https://pub.dev/packages/package_info_plus
package_info_plus: 3.1.2 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: package_info_plus_aurora:
git: git:
url: git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.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 ## https://pub.dev/packages/flutter_keyboard_visibility
flutter_keyboard_visibility: ^5.4.1 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: 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: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save