// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // ignore_for_file: avoid_print import 'dart:async'; import 'package:data_asset_package/data_asset_package.dart' as data_asset_package; import 'package:flutter/material.dart'; import 'helper.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State { AssetData? _assetData; String _dependencyAsset = 'Loading...'; Timer? _timer; @override void initState() { super.initState(); _timer = Timer.periodic(const Duration(milliseconds: 500), (_) async { final AssetData? appAssetData = await loadAppAssets(); final String dependencyAssetContent = await data_asset_package.loadAssetContent(); // Print for integration test discovery if (appAssetData != null) { print('VERSION: ${appAssetData.version}'); for (final MapEntry(:key, :value) in appAssetData.found.entries) { print('FOUND "$key": "$value".'); } for (final String id in appAssetData.notFound) { print('NOT_FOUND "$id".'); } } print('DEPENDENCY_ASSET: $dependencyAssetContent'); if (mounted) { setState(() { if (appAssetData != null) { _assetData = appAssetData; } _dependencyAsset = dependencyAssetContent; }); } }); } @override void dispose() { _timer?.cancel(); super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp( title: 'Data Asset Demo', home: Scaffold( appBar: AppBar(title: const Text('Data Asset Demo')), body: ListView( padding: const EdgeInsets.all(16), children: [ Text('Version: ${_assetData?.version ?? "Unknown"}', style: Theme.of(context).textTheme.headlineSmall), const Divider(), const Text('Local Assets:', style: TextStyle(fontWeight: FontWeight.bold)), if (_assetData != null) ...[ if (_assetData!.found.isEmpty && _assetData!.notFound.isEmpty) const Text('No assets requested.'), for (final MapEntry(:key, :value) in _assetData!.found.entries) Text('FOUND "$key": "$value"'), for (final id in _assetData!.notFound) Text('NOT FOUND "$id"', style: const TextStyle(color: Colors.red)), ] else const Text('Loading assets...'), const Divider(), const Text('Dependency Asset:', style: TextStyle(fontWeight: FontWeight.bold)), Text(_dependencyAsset), ], ), ), ); } }