// 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. import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_driver/driver_extension.dart'; /// This application does nothing but show a screen with the flutter package /// license in it. void main() { enableFlutterDriverExtension(); runApp(const ShowLicenses()); } class ShowLicenses extends StatelessWidget { const ShowLicenses({super.key}); Widget _buildTestResultWidget( BuildContext context, AsyncSnapshot> snapshot, ) { final List entries = snapshot.data ?? []; String flutterPackage = ''; final List flutterParagraphs = []; String enginePackage = ''; final List engineParagraphs = []; for (final LicenseEntry entry in entries) { if (entry.packages.contains('flutter')) { flutterPackage = 'flutter'; flutterParagraphs.addAll( entry.paragraphs.map((LicenseParagraph para) => para.text), ); } if (entry.packages.contains('engine')) { enginePackage = 'engine'; engineParagraphs.addAll( entry.paragraphs.map((LicenseParagraph para) => para.text), ); } } final List result = []; result.addAll([ const Text('License Check Test', key: ValueKey('Header')), Text(flutterPackage, key: const ValueKey('FlutterPackage')), Text(flutterParagraphs.join(' '), key: const ValueKey('FlutterLicense')), Text('${flutterParagraphs.length}', key: const ValueKey('FlutterCount')), Text(enginePackage, key: const ValueKey('EnginePackage')), Text(engineParagraphs.join(' '), key: const ValueKey('EngineLicense')), Text('${engineParagraphs.length}', key: const ValueKey('EngineCount')), ]); return ListView( children: result, ); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: FutureBuilder>( initialData: const [], builder: _buildTestResultWidget, future: LicenseRegistry.licenses.toList(), ), ), ); } }