Browse Source

[packages] Add base for packages

merge-requests/22/head
Vitaliy Zarubin 2 years ago
parent
commit
84aea0e9ea
  1. 13
      example/lib/packages/dartz/model.dart
  2. 26
      example/lib/packages/dartz/package.dart
  3. 52
      example/lib/packages/dartz/page.dart
  4. 13
      example/lib/packages/equatable/model.dart
  5. 28
      example/lib/packages/equatable/package.dart
  6. 52
      example/lib/packages/equatable/page.dart
  7. 13
      example/lib/packages/flutter_markdown/model.dart
  8. 29
      example/lib/packages/flutter_markdown/package.dart
  9. 52
      example/lib/packages/flutter_markdown/page.dart
  10. 13
      example/lib/packages/freezed/model.dart
  11. 27
      example/lib/packages/freezed/package.dart
  12. 52
      example/lib/packages/freezed/page.dart
  13. 16
      example/lib/packages/packages.dart
  14. 13
      example/lib/packages/provider/model.dart
  15. 28
      example/lib/packages/provider/package.dart
  16. 52
      example/lib/packages/provider/page.dart
  17. 13
      example/lib/packages/qr_flutter/model.dart
  18. 28
      example/lib/packages/qr_flutter/package.dart
  19. 52
      example/lib/packages/qr_flutter/page.dart
  20. 13
      example/lib/packages/rxdart/model.dart
  21. 26
      example/lib/packages/rxdart/package.dart
  22. 52
      example/lib/packages/rxdart/page.dart
  23. 13
      example/lib/packages/translator/model.dart
  24. 26
      example/lib/packages/translator/package.dart
  25. 52
      example/lib/packages/translator/page.dart
  26. 106
      example/pubspec.lock
  27. 16
      example/pubspec.yaml

13
example/lib/packages/dartz/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [DartzPage]
class DartzModel extends Model {
/// Get [ScopedModel]
static DartzModel of(BuildContext context) =>
ScopedModel.of<DartzModel>(context);
}

26
example/lib/packages/dartz/package.dart

@ -0,0 +1,26 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageDartz = PackagePage(
key: 'dartz',
descEN: '''
Functional programming in Dart.
''',
descRU: '''
Функциональное программирование в Dart.
''',
version: '0.10.1',
isPlatformDependent: false,
page: () => DartzPage(),
init: () {
GetIt.instance.registerFactory<DartzModel>(() => DartzModel());
},
);

52
example/lib/packages/dartz/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class DartzPage extends AppStatefulWidget {
DartzPage({
super.key,
});
final Package package = packageDartz;
@override
State<DartzPage> createState() => _DartzPageState();
}
class _DartzPageState extends AppState<DartzPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<DartzModel>(
model: getIt<DartzModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/equatable/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [EquatablePage]
class EquatableModel extends Model {
/// Get [ScopedModel]
static EquatableModel of(BuildContext context) =>
ScopedModel.of<EquatableModel>(context);
}

28
example/lib/packages/equatable/package.dart

@ -0,0 +1,28 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageEquatable = PackagePage(
key: 'equatable',
descEN: '''
Being able to compare objects in Dart often involves having to override
the == operator as well as hashCode.
''',
descRU: '''
Возможность сравнивать объекты в Dart часто требует переопределения
оператора ==, а также hashCode.
''',
version: '2.0.5',
isPlatformDependent: false,
page: () => EquatablePage(),
init: () {
GetIt.instance.registerFactory<EquatableModel>(() => EquatableModel());
},
);

52
example/lib/packages/equatable/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class EquatablePage extends AppStatefulWidget {
EquatablePage({
super.key,
});
final Package package = packageEquatable;
@override
State<EquatablePage> createState() => _EquatablePageState();
}
class _EquatablePageState extends AppState<EquatablePage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<EquatableModel>(
model: getIt<EquatableModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/flutter_markdown/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [FlutterMarkdownPage]
class FlutterMarkdownModel extends Model {
/// Get [ScopedModel]
static FlutterMarkdownModel of(BuildContext context) =>
ScopedModel.of<FlutterMarkdownModel>(context);
}

29
example/lib/packages/flutter_markdown/package.dart

@ -0,0 +1,29 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageFlutterMarkdown = PackagePage(
key: 'flutter_markdown',
descEN: '''
A markdown renderer for Flutter. It supports the original format,
but no inline HTML.
''',
descRU: '''
Рендерер уценки для Flutter. Он поддерживает исходный формат,
но не поддерживает встроенный HTML.
''',
version: '0.6.15',
isPlatformDependent: false,
page: () => FlutterMarkdownPage(),
init: () {
GetIt.instance
.registerFactory<FlutterMarkdownModel>(() => FlutterMarkdownModel());
},
);

52
example/lib/packages/flutter_markdown/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class FlutterMarkdownPage extends AppStatefulWidget {
FlutterMarkdownPage({
super.key,
});
final Package package = packageFlutterMarkdown;
@override
State<FlutterMarkdownPage> createState() => _FlutterMarkdownPageState();
}
class _FlutterMarkdownPageState extends AppState<FlutterMarkdownPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<FlutterMarkdownModel>(
model: getIt<FlutterMarkdownModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/freezed/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [FreezedPage]
class FreezedModel extends Model {
/// Get [ScopedModel]
static FreezedModel of(BuildContext context) =>
ScopedModel.of<FreezedModel>(context);
}

27
example/lib/packages/freezed/package.dart

@ -0,0 +1,27 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageFreezed = PackagePage(
key: 'freezed',
descEN: '''
Code generator for data-classes/unions/pattern-matching/cloning.
''',
descRU: '''
Генератор кода для классов данных/объединений/сопоставления
с образцом/клонирования.
''',
version: '2.3.3',
isPlatformDependent: false,
page: () => FreezedPage(),
init: () {
GetIt.instance.registerFactory<FreezedModel>(() => FreezedModel());
},
);

52
example/lib/packages/freezed/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class FreezedPage extends AppStatefulWidget {
FreezedPage({
super.key,
});
final Package package = packageFreezed;
@override
State<FreezedPage> createState() => _FreezedPageState();
}
class _FreezedPageState extends AppState<FreezedPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<FreezedModel>(
model: getIt<FreezedModel>(),
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),
],
),
),
);
},
);
}
}

16
example/lib/packages/packages.dart

@ -6,19 +6,27 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/battery_plus/package.dart';
import 'package:flutter_example_packages/packages/cached_network_image/package.dart';
import 'package:flutter_example_packages/packages/cupertino_icons/package.dart';
import 'package:flutter_example_packages/packages/dartz/package.dart';
import 'package:flutter_example_packages/packages/device_info_plus/package.dart';
import 'package:flutter_example_packages/packages/equatable/package.dart';
import 'package:flutter_example_packages/packages/flutter_cache_manager/package.dart';
import 'package:flutter_example_packages/packages/flutter_local_notifications/package.dart';
import 'package:flutter_example_packages/packages/flutter_markdown/package.dart';
import 'package:flutter_example_packages/packages/flutter_secure_storage/package.dart';
import 'package:flutter_example_packages/packages/freezed/package.dart';
import 'package:flutter_example_packages/packages/get_it/package.dart';
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/provider/package.dart';
import 'package:flutter_example_packages/packages/qr_flutter/package.dart';
import 'package:flutter_example_packages/packages/rxdart/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';
import 'package:flutter_example_packages/packages/translator/package.dart';
import 'package:flutter_example_packages/packages/universal_io/package.dart';
import 'package:flutter_example_packages/packages/wakelock/package.dart';
import 'package:flutter_example_packages/packages/xdga_directories/package.dart';
@ -32,20 +40,28 @@ final packages = <Package>[
packageCachedNetworkImage,
packageCrypto,
packageCupertinoIcons,
packageDartz,
packageDeviceInfoPlus,
packageEquatable,
packageFlutterCacheManager,
packageFlutterKeyboardVisibility,
packageFlutterLocalNotifications,
packageFlutterMarkdown,
packageFlutterSecureStorage,
packageFreezed,
packageGetIt,
packageGoogleFonts,
packageIntl,
packagePackageInfoPlus,
packagePathProvider,
packagePhotoView,
packageProvider,
packageQrFlutter,
packageRxdart,
packageScopedModel,
packageSharedPreferences,
packageSqflite,
packageTranslator,
packageUniversalIO,
packageWakelock,
packageXdgaDirectories,

13
example/lib/packages/provider/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [ProviderPage]
class ProviderModel extends Model {
/// Get [ScopedModel]
static ProviderModel of(BuildContext context) =>
ScopedModel.of<ProviderModel>(context);
}

28
example/lib/packages/provider/package.dart

@ -0,0 +1,28 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageProvider = PackagePage(
key: 'provider',
descEN: '''
A wrapper around InheritedWidget to make them easier to use and more
reusable.
''',
descRU: '''
Оболочка вокруг InheritedWidget, чтобы сделать их более простыми в
использовании и более удобными для повторного использования.
''',
version: '6.0.5',
isPlatformDependent: false,
page: () => ProviderPage(),
init: () {
GetIt.instance.registerFactory<ProviderModel>(() => ProviderModel());
},
);

52
example/lib/packages/provider/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class ProviderPage extends AppStatefulWidget {
ProviderPage({
super.key,
});
final Package package = packageProvider;
@override
State<ProviderPage> createState() => _ProviderPageState();
}
class _ProviderPageState extends AppState<ProviderPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<ProviderModel>(
model: getIt<ProviderModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/qr_flutter/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [QrFlutterPage]
class QrFlutterModel extends Model {
/// Get [ScopedModel]
static QrFlutterModel of(BuildContext context) =>
ScopedModel.of<QrFlutterModel>(context);
}

28
example/lib/packages/qr_flutter/package.dart

@ -0,0 +1,28 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageQrFlutter = PackagePage(
key: 'qr_flutter',
descEN: '''
QR.Flutter is a Flutter library for simple and fast QR code rendering
via a Widget or custom painter.
''',
descRU: '''
ПQR.Flutter это библиотека Flutter для простого и быстрого рендеринга
QR-кода с помощью виджета или пользовательского рисовальщика.
''',
version: '4.0.0',
isPlatformDependent: false,
page: () => QrFlutterPage(),
init: () {
GetIt.instance.registerFactory<QrFlutterModel>(() => QrFlutterModel());
},
);

52
example/lib/packages/qr_flutter/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class QrFlutterPage extends AppStatefulWidget {
QrFlutterPage({
super.key,
});
final Package package = packageQrFlutter;
@override
State<QrFlutterPage> createState() => _QrFlutterPageState();
}
class _QrFlutterPageState extends AppState<QrFlutterPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<QrFlutterModel>(
model: getIt<QrFlutterModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/rxdart/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [RxdartPage]
class RxdartModel extends Model {
/// Get [ScopedModel]
static RxdartModel of(BuildContext context) =>
ScopedModel.of<RxdartModel>(context);
}

26
example/lib/packages/rxdart/package.dart

@ -0,0 +1,26 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageRxdart = PackagePage(
key: 'rxdart',
descEN: '''
RxDart extends the capabilities of Dart Streams and StreamControllers.
''',
descRU: '''
RxDart расширяет возможности Dart Streams и StreamControllers.
''',
version: '0.27.7',
isPlatformDependent: false,
page: () => RxdartPage(),
init: () {
GetIt.instance.registerFactory<RxdartModel>(() => RxdartModel());
},
);

52
example/lib/packages/rxdart/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class RxdartPage extends AppStatefulWidget {
RxdartPage({
super.key,
});
final Package package = packageRxdart;
@override
State<RxdartPage> createState() => _RxdartPageState();
}
class _RxdartPageState extends AppState<RxdartPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<RxdartModel>(
model: getIt<RxdartModel>(),
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),
],
),
),
);
},
);
}
}

13
example/lib/packages/translator/model.dart

@ -0,0 +1,13 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter/widgets.dart';
import 'package:scoped_model/scoped_model.dart';
/// Model for [TranslatorPage]
class TranslatorModel extends Model {
/// Get [ScopedModel]
static TranslatorModel of(BuildContext context) =>
ScopedModel.of<TranslatorModel>(context);
}

26
example/lib/packages/translator/package.dart

@ -0,0 +1,26 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
import 'package:flutter_example_packages/base/package/package_page.dart';
import 'package:get_it/get_it.dart';
import 'model.dart';
import 'page.dart';
/// Package values
final packageTranslator = PackagePage(
key: 'translator',
descEN: '''
Free Google Translate API for Dart.
''',
descRU: '''
Бесплатный API Google Translate для Dart.
''',
version: '0.1.7',
isPlatformDependent: false,
page: () => TranslatorPage(),
init: () {
GetIt.instance.registerFactory<TranslatorModel>(() => TranslatorModel());
},
);

52
example/lib/packages/translator/page.dart

@ -0,0 +1,52 @@
/*
* Copyright (c) 2023. Open Mobile Platform LLC.
* License: Proprietary.
*/
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/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 'model.dart';
import 'package.dart';
class TranslatorPage extends AppStatefulWidget {
TranslatorPage({
super.key,
});
final Package package = packageTranslator;
@override
State<TranslatorPage> createState() => _TranslatorPageState();
}
class _TranslatorPageState extends AppState<TranslatorPage> {
@override
Widget buildWide(
BuildContext context,
MediaQueryData media,
AppLocalizations l10n,
) {
return BlockLayout<TranslatorModel>(
model: getIt<TranslatorModel>(),
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),
],
),
),
);
},
);
}
}

106
example/pubspec.lock

@ -48,7 +48,7 @@ packages:
description:
path: "packages/battery_plus/battery_plus_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -206,6 +206,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.5"
dartz:
dependency: "direct main"
description:
name: dartz
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.1"
dbus:
dependency: transitive
description:
@ -225,7 +232,7 @@ packages:
description:
path: "packages/device_info_plus/device_info_plus_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -243,6 +250,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.1"
equatable:
dependency: "direct main"
description:
name: equatable
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
fake_async:
dependency: transitive
description:
@ -302,7 +316,7 @@ packages:
description:
path: "packages/flutter_keyboard_visibility/flutter_keyboard_visibility_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -360,7 +374,7 @@ packages:
description:
path: "packages/flutter_local_notifications/flutter_local_notifications_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -383,6 +397,13 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_markdown:
dependency: "direct main"
description:
name: flutter_markdown
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.15"
flutter_secure_storage:
dependency: "direct main"
description:
@ -395,7 +416,7 @@ packages:
description:
path: "packages/flutter_secure_storage/flutter_secure_storage_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -444,6 +465,20 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
freezed:
dependency: "direct main"
description:
name: freezed
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.3"
freezed_annotation:
dependency: transitive
description:
name: freezed_annotation
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0"
frontend_server_client:
dependency: transitive
description:
@ -542,6 +577,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
markdown:
dependency: transitive
description:
name: markdown
url: "https://pub.dartlang.org"
source: hosted
version: "7.0.1"
matcher:
dependency: transitive
description:
@ -570,6 +612,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
octo_image:
dependency: transitive
description:
@ -596,7 +645,7 @@ packages:
description:
path: "packages/package_info_plus/package_info_plus_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -633,7 +682,7 @@ packages:
description:
path: "packages/path_provider/path_provider_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -714,6 +763,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.4"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.5"
pub_semver:
dependency: transitive
description:
@ -728,8 +784,22 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.3"
rxdart:
qr:
dependency: transitive
description:
name: qr
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
qr_flutter:
dependency: "direct main"
description:
name: qr_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.0"
rxdart:
dependency: "direct main"
description:
name: rxdart
url: "https://pub.dartlang.org"
@ -761,7 +831,7 @@ packages:
description:
path: "packages/shared_preferences/shared_preferences_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -819,6 +889,13 @@ packages:
description: flutter
source: sdk
version: "0.0.99"
source_gen:
dependency: transitive
description:
name: source_gen
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.2"
source_span:
dependency: transitive
description:
@ -903,6 +980,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
translator:
dependency: "direct main"
description:
name: translator
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.7"
typed_data:
dependency: transitive
description:
@ -950,7 +1034,7 @@ packages:
description:
path: "packages/wakelock/wakelock_aurora"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"
@ -1015,7 +1099,7 @@ packages:
description:
path: "packages/xdga_directories"
ref: flutter_example_packages
resolved-ref: "024eb82387b3574659d1c75034dc96fb2cec5f6e"
resolved-ref: b2be3b38dcf55c327ebcfb5cb887993cb247dcff
url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
source: git
version: "0.0.1"

16
example/pubspec.yaml

@ -36,6 +36,22 @@ dependencies:
flutter_cache_manager: ^3.3.0
## https://pub.dev/packages/photo_view
photo_view: ^0.14.0
## https://pub.dev/packages/dartz
dartz: ^0.10.1
## https://pub.dev/packages/freezed
freezed: ^2.3.3
## https://pub.dev/packages/provider
provider: ^6.0.5
## https://pub.dev/packages/equatable
equatable: ^2.0.5
## https://pub.dev/packages/qr_flutter
qr_flutter: ^4.0.0
## https://pub.dev/packages/rxdart
rxdart: ^0.27.7
## https://pub.dev/packages/translator
translator: ^0.1.7
## https://pub.dev/packages/flutter_markdown
flutter_markdown: ^0.6.15
## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/xdga_directories
xdga_directories:

Loading…
Cancel
Save