Browse Source

[flutter_example_packages] Refactoring

merge-requests/21/head
Vitaliy Zarubin 2 years ago
parent
commit
e90db9bc9b
  1. 36
      example/lib/l10n/app_en.arb
  2. 36
      example/lib/l10n/app_ru.arb
  3. 2
      example/lib/packages/battery_plus/model.dart
  4. 77
      example/lib/packages/battery_plus/page.dart
  5. 9
      example/lib/packages/cached_network_image/model.dart
  6. 34
      example/lib/packages/cached_network_image/page.dart
  7. 9
      example/lib/packages/device_info_plus/model.dart
  8. 34
      example/lib/packages/device_info_plus/page.dart
  9. 9
      example/lib/packages/flutter_cache_manager/model.dart
  10. 34
      example/lib/packages/flutter_cache_manager/page.dart
  11. 9
      example/lib/packages/flutter_local_notifications/model.dart
  12. 34
      example/lib/packages/flutter_local_notifications/page.dart
  13. 9
      example/lib/packages/flutter_secure_storage/model.dart
  14. 34
      example/lib/packages/flutter_secure_storage/page.dart
  15. 9
      example/lib/packages/package_info_plus/model.dart
  16. 34
      example/lib/packages/package_info_plus/page.dart
  17. 9
      example/lib/packages/path_provider/model.dart
  18. 34
      example/lib/packages/path_provider/page.dart
  19. 9
      example/lib/packages/shared_preferences/model.dart
  20. 34
      example/lib/packages/shared_preferences/page.dart
  21. 9
      example/lib/packages/wakelock/model.dart
  22. 34
      example/lib/packages/wakelock/page.dart
  23. 2
      example/lib/packages/xdga_directories/model.dart
  24. 107
      example/lib/packages/xdga_directories/page.dart
  25. 5
      example/lib/widgets/layouts/block_layout.dart
  26. 28
      example/pubspec.lock
  27. 12
      example/pubspec.yaml

36
example/lib/l10n/app_en.arb

@ -9,6 +9,42 @@
"batteryPlusTitleBatteryStateLive": "Battery State 'Live'",
"batteryPlusDescBatteryStateLive": "Battery change state stream",
"@_CACHED_NETWORK_IMAGE": {},
"cachedNetworkImageTitle": "Title",
"cachedNetworkImageDesc": "Desc",
"@_DEVICE_INFO_PLUS": {},
"deviceInfoPlusTitle": "Title",
"deviceInfoPlusDesc": "Desc",
"@_FLUTTER_CACHE_MANAGER": {},
"flutterCacheManagerTitle": "Title",
"flutterCacheManagerDesc": "Desc",
"@_FLUTTER_LOCAL_NOTIFICATIONS": {},
"flutterLocalNotificationsTitle": "Title",
"flutterLocalNotificationsDesc": "Desc",
"@_FLUTTER_SECURE_STORAGE": {},
"flutterSecureStorageTitle": "Title",
"flutterSecureStorageDesc": "Desc",
"@_PACKAGE_INFO_PLUS": {},
"packageInfoPlusTitle": "Title",
"packageInfoPlusDesc": "Desc",
"@_PATH_PROVIDER": {},
"pathProviderTitle": "Title",
"pathProviderDesc": "Desc",
"@_SHARED_PREFERENCES": {},
"sharedPreferencesTitle": "Title",
"sharedPreferencesDesc": "Desc",
"@_WAKELOCK": {},
"wakelockTitle": "Title",
"wakelockDesc": "Desc",
"@_XDGA_DIRECTORIES": {},
"xdgaDirectoriesTitleCacheLocation": "App Data Location",
"xdgaDirectoriesDescCacheLocation": "Directory location where persistent application data can be stored.",

36
example/lib/l10n/app_ru.arb

@ -9,6 +9,42 @@
"batteryPlusTitleBatteryStateLive": "Состояние батареи 'Live'",
"batteryPlusDescBatteryStateLive": "Изменение состояния батареи",
"@_CACHED_NETWORK_IMAGE": {},
"cachedNetworkImageTitle": "Заголовок",
"cachedNetworkImageDesc": "Описание",
"@_DEVICE_INFO_PLUS": {},
"deviceInfoPlusTitle": "Заголовок",
"deviceInfoPlusDesc": "Описание",
"@_FLUTTER_CACHE_MANAGER": {},
"flutterCacheManagerTitle": "Заголовок",
"flutterCacheManagerDesc": "Описание",
"@_FLUTTER_LOCAL_NOTIFICATIONS": {},
"flutterLocalNotificationsTitle": "Заголовок",
"flutterLocalNotificationsDesc": "Описание",
"@_FLUTTER_SECURE_STORAGE": {},
"flutterSecureStorageTitle": "Заголовок",
"flutterSecureStorageDesc": "Описание",
"@_PACKAGE_INFO_PLUS": {},
"packageInfoPlusTitle": "Заголовок",
"packageInfoPlusDesc": "Описание",
"@_PATH_PROVIDER": {},
"pathProviderTitle": "Заголовок",
"pathProviderDesc": "Описание",
"@_SHARED_PREFERENCES": {},
"sharedPreferencesTitle": "Заголовок",
"sharedPreferencesDesc": "Описание",
"@_WAKELOCK": {},
"wakelockTitle": "Заголовок",
"wakelockDesc": "Описание",
"@_XDGA_DIRECTORIES": {},
"xdgaDirectoriesTitleCacheLocation": "App Data Location",
"xdgaDirectoriesDescCacheLocation": "Расположение каталога, в котором могут храниться постоянные данные приложения.",

2
example/lib/packages/battery_plus/model.dart

@ -15,7 +15,7 @@ class BatteryPlusModel extends Model {
/// Public error
String? get error => _error;
/// Public error
/// Public is error
bool get isError => _error != null;
/// Get battery level in percent 0-100

77
example/lib/packages/battery_plus/page.dart

@ -31,43 +31,46 @@ class _BatteryPlusPageState extends AppState<BatteryPlusPage> {
title: widget.package.key,
builder: (context, child, model) {
return SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockInfoPackage(widget.package),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.batteryPlusTitleBatteryLevel,
desc: l10n.batteryPlusDescBatteryLevel,
future: model.getBatteryLevel(),
builder: (value) => '$value%',
),
BlockItem(
title: l10n.batteryPlusTitleBatteryState,
desc: l10n.batteryPlusDescBatteryState,
future: model.getBatteryState(),
builder: (value) =>
value.toString().split('.').last.toUpperCase(),
),
BlockItem(
title: l10n.batteryPlusTitleBatterySaveMode,
desc: l10n.batteryPlusDescBatterySaveMode,
future: model.isInBatterySaveMode(),
),
BlockItem(
title: l10n.batteryPlusTitleBatteryStateLive,
desc: l10n.batteryPlusDescBatteryStateLive,
stream: model.onBatteryStateChanged(),
builder: (value) =>
value.toString().split('.').last.toUpperCase(),
),
],
),
],
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockInfoPackage(widget.package),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.batteryPlusTitleBatteryLevel,
desc: l10n.batteryPlusDescBatteryLevel,
future: model.getBatteryLevel(),
builder: (value) => '$value%',
),
BlockItem(
title: l10n.batteryPlusTitleBatteryState,
desc: l10n.batteryPlusDescBatteryState,
future: model.getBatteryState(),
builder: (value) =>
value.toString().split('.').last.toUpperCase(),
),
BlockItem(
title: l10n.batteryPlusTitleBatterySaveMode,
desc: l10n.batteryPlusDescBatterySaveMode,
future: model.isInBatterySaveMode(),
),
BlockItem(
title: l10n.batteryPlusTitleBatteryStateLive,
desc: l10n.batteryPlusDescBatteryStateLive,
stream: model.onBatteryStateChanged(),
builder: (value) =>
value.toString().split('.').last.toUpperCase(),
),
],
),
],
),
),
);
},

9
example/lib/packages/cached_network_image/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class CachedNetworkImageModel extends Model {
/// Get [ScopedModel]
static CachedNetworkImageModel of(BuildContext context) => ScopedModel.of<CachedNetworkImageModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/cached_network_image/page.dart

@ -3,6 +3,9 @@ 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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -25,9 +28,32 @@ class _CachedNetworkImagePageState extends AppState<CachedNetworkImagePage> {
AppLocalizations l10n,
) {
return BlockLayout<CachedNetworkImageModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.cachedNetworkImageTitle,
desc: l10n.cachedNetworkImageDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/device_info_plus/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class DeviceInfoPlusModel extends Model {
/// Get [ScopedModel]
static DeviceInfoPlusModel of(BuildContext context) => ScopedModel.of<DeviceInfoPlusModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/device_info_plus/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/device_info_plus/model.dart';
import 'package:flutter_example_packages/packages/device_info_plus/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -25,9 +28,32 @@ class _DeviceInfoPlusPageState extends AppState<DeviceInfoPlusPage> {
AppLocalizations l10n,
) {
return BlockLayout<DeviceInfoPlusModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.deviceInfoPlusTitle,
desc: l10n.deviceInfoPlusDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/flutter_cache_manager/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class FlutterCacheManagerModel extends Model {
/// Get [ScopedModel]
static FlutterCacheManagerModel of(BuildContext context) => ScopedModel.of<FlutterCacheManagerModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/flutter_cache_manager/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/flutter_cache_manager/model.dart';
import 'package:flutter_example_packages/packages/flutter_cache_manager/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -26,9 +29,32 @@ class _FlutterCacheManagerPageState extends AppState<FlutterCacheManagerPage> {
AppLocalizations l10n,
) {
return BlockLayout<FlutterCacheManagerModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.flutterCacheManagerTitle,
desc: l10n.flutterCacheManagerDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/flutter_local_notifications/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class FlutterLocalNotificationsModel extends Model {
/// Get [ScopedModel]
static FlutterLocalNotificationsModel of(BuildContext context) => ScopedModel.of<FlutterLocalNotificationsModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/flutter_local_notifications/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/flutter_local_notifications/model.dart';
import 'package:flutter_example_packages/packages/flutter_local_notifications/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -27,9 +30,32 @@ class _FlutterLocalNotificationsPageState
AppLocalizations l10n,
) {
return BlockLayout<FlutterLocalNotificationsModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.flutterLocalNotificationsTitle,
desc: l10n.flutterLocalNotificationsDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/flutter_secure_storage/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class FlutterSecureStorageModel extends Model {
/// Get [ScopedModel]
static FlutterSecureStorageModel of(BuildContext context) => ScopedModel.of<FlutterSecureStorageModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

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

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/flutter_secure_storage/model.dart';
import 'package:flutter_example_packages/packages/flutter_secure_storage/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -27,9 +30,32 @@ class _FlutterSecureStoragePageState
AppLocalizations l10n,
) {
return BlockLayout<FlutterSecureStorageModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.flutterSecureStorageTitle,
desc: l10n.flutterSecureStorageDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/package_info_plus/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class PackageInfoPlusModel extends Model {
/// Get [ScopedModel]
static PackageInfoPlusModel of(BuildContext context) => ScopedModel.of<PackageInfoPlusModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/package_info_plus/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/package_info_plus/model.dart';
import 'package:flutter_example_packages/packages/package_info_plus/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -25,9 +28,32 @@ class _PackageInfoPlusPageState extends AppState<PackageInfoPlusPage> {
AppLocalizations l10n,
) {
return BlockLayout<PackageInfoPlusModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.packageInfoPlusTitle,
desc: l10n.packageInfoPlusDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/path_provider/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class PathProviderModel extends Model {
/// Get [ScopedModel]
static PathProviderModel of(BuildContext context) => ScopedModel.of<PathProviderModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/path_provider/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/path_provider/model.dart';
import 'package:flutter_example_packages/packages/path_provider/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -23,9 +26,32 @@ class _PathProviderPageState extends AppState<PathProviderPage> {
AppLocalizations l10n,
) {
return BlockLayout<PathProviderModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.pathProviderTitle,
desc: l10n.pathProviderDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/shared_preferences/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class SharedPreferencesModel extends Model {
/// Get [ScopedModel]
static SharedPreferencesModel of(BuildContext context) => ScopedModel.of<SharedPreferencesModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

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

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/shared_preferences/model.dart';
import 'package:flutter_example_packages/packages/shared_preferences/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -25,9 +28,32 @@ class _SharedPreferencesPageState extends AppState<SharedPreferencesPage> {
AppLocalizations l10n,
) {
return BlockLayout<SharedPreferencesModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.sharedPreferencesTitle,
desc: l10n.sharedPreferencesDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

9
example/lib/packages/wakelock/model.dart

@ -5,4 +5,13 @@ import 'package:scoped_model/scoped_model.dart';
class WakelockModel extends Model {
/// Get [ScopedModel]
static WakelockModel of(BuildContext context) => ScopedModel.of<WakelockModel>(context);
/// Error
String? _error;
/// Public error
String? get error => _error;
/// Public is error
bool get isError => _error != null;
}

34
example/lib/packages/wakelock/page.dart

@ -3,6 +3,9 @@ import 'package:flutter_example_packages/base/package/package.dart';
import 'package:flutter_example_packages/packages/wakelock/model.dart';
import 'package:flutter_example_packages/packages/wakelock/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/blocks/block_item.dart';
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -25,9 +28,32 @@ class _WakelockPageState extends AppState<WakelockPage> {
AppLocalizations l10n,
) {
return BlockLayout<WakelockModel>(
title: widget.package.key,
builder: (context, child, model) {
return Text(widget.package.desc);
});
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),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.wakelockTitle,
desc: l10n.wakelockDesc,
value: null,
),
],
),
],
),
),
);
},
);
}
}

2
example/lib/packages/xdga_directories/model.dart

@ -14,7 +14,7 @@ class XdgaDirectoriesModel extends Model {
/// Public error
String? get error => _error;
/// Public error
/// Public is error
bool get isError => _error != null;
/// QStandardPaths::CacheLocation

107
example/lib/packages/xdga_directories/page.dart

@ -31,58 +31,61 @@ class _XdgaDirectoriesPageState extends AppState<XdgaDirectoriesPage> {
title: widget.package.key,
builder: (context, child, model) {
return SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockInfoPackage(widget.package),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.xdgaDirectoriesTitleCacheLocation,
desc: l10n.xdgaDirectoriesDescCacheLocation,
value: model.getCacheLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleAppDataLocation,
desc: l10n.xdgaDirectoriesDescAppDataLocation,
value: model.getAppDataLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleDocumentsLocation,
desc: l10n.xdgaDirectoriesDescDocumentsLocation,
value: model.getDocumentsLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleDownloadLocation,
desc: l10n.xdgaDirectoriesDescDownloadLocation,
value: model.getDownloadLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleMusicLocation,
desc: l10n.xdgaDirectoriesDescMusicLocation,
value: model.getMusicLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitlePicturesLocation,
desc: l10n.xdgaDirectoriesDescPicturesLocation,
value: model.getPicturesLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleGenericDataLocation,
desc: l10n.xdgaDirectoriesDescGenericDataLocation,
value: model.getGenericDataLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleMoviesLocation,
desc: l10n.xdgaDirectoriesDescMoviesLocation,
value: model.getMoviesLocation(),
),
],
),
],
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockInfoPackage(widget.package),
BlockAlert(model.error),
if (!model.isError)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockItem(
title: l10n.xdgaDirectoriesTitleCacheLocation,
desc: l10n.xdgaDirectoriesDescCacheLocation,
value: model.getCacheLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleAppDataLocation,
desc: l10n.xdgaDirectoriesDescAppDataLocation,
value: model.getAppDataLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleDocumentsLocation,
desc: l10n.xdgaDirectoriesDescDocumentsLocation,
value: model.getDocumentsLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleDownloadLocation,
desc: l10n.xdgaDirectoriesDescDownloadLocation,
value: model.getDownloadLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleMusicLocation,
desc: l10n.xdgaDirectoriesDescMusicLocation,
value: model.getMusicLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitlePicturesLocation,
desc: l10n.xdgaDirectoriesDescPicturesLocation,
value: model.getPicturesLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleGenericDataLocation,
desc: l10n.xdgaDirectoriesDescGenericDataLocation,
value: model.getGenericDataLocation(),
),
BlockItem(
title: l10n.xdgaDirectoriesTitleMoviesLocation,
desc: l10n.xdgaDirectoriesDescMoviesLocation,
value: model.getMoviesLocation(),
),
],
),
],
),
),
);
},

5
example/lib/widgets/layouts/block_layout.dart

@ -51,10 +51,7 @@ class BlockLayout<T extends Model> extends AppStatelessWidget {
color: Colors.white,
),
),
body: Padding(
padding: EdgeInsets.all(title == null ? 0 : 20),
child: builder.call(context, child, model),
),
body: builder.call(context, child, model),
);
},
),

28
example/pubspec.lock

@ -183,6 +183,27 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.8"
device_info_plus:
dependency: "direct main"
description:
name: device_info_plus
url: "https://pub.dartlang.org"
source: hosted
version: "9.0.2"
device_info_plus_aurora:
dependency: "direct main"
description:
path: "../packages/device_info_plus/device_info_plus_aurora"
relative: true
source: path
version: "0.0.1"
device_info_plus_platform_interface:
dependency: transitive
description:
name: device_info_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "7.0.0"
fake_async:
dependency: transitive
description:
@ -600,6 +621,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.4"
win32_registry:
dependency: transitive
description:
name: win32_registry
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
xdg_directories:
dependency: transitive
description:

12
example/pubspec.yaml

@ -36,12 +36,12 @@ dependencies:
battery_plus_aurora:
path: ../packages/battery_plus/battery_plus_aurora
# ## https://pub.dev/packages/device_info_plus
# device_info_plus: ^9.0.2
# ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/device_info_plus/device_info_plus_aurora
# device_info_plus_aurora:
# path: ../packages/device_info_plus/device_info_plus_aurora
#
## https://pub.dev/packages/device_info_plus
device_info_plus: ^9.0.2
## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/device_info_plus/device_info_plus_aurora
device_info_plus_aurora:
path: ../packages/device_info_plus/device_info_plus_aurora
# ## https://pub.dev/packages/flutter_local_notifications
# flutter_local_notifications: ^14.1.1
# ## https://os-git.omprussia.ru/non-oss/flutter/flutter-plugins/-/tree/master/packages/flutter_local_notifications/flutter_local_notifications_aurora

Loading…
Cancel
Save