license_check.dart 2.38 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
// 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();
13
  runApp(const ShowLicenses());
14 15 16
}

class ShowLicenses extends StatelessWidget {
17
  const ShowLicenses({super.key});
18

19 20 21 22
  Widget _buildTestResultWidget(
    BuildContext context,
    AsyncSnapshot<List<LicenseEntry>> snapshot,
  ) {
23
    final List<LicenseEntry> entries = snapshot.data  ?? <LicenseEntry>[];
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
    String flutterPackage = '';
    final List<String> flutterParagraphs = <String>[];
    String enginePackage = '';
    final List<String> engineParagraphs = <String>[];
    for (final LicenseEntry entry in entries) {
      if (entry.packages.contains('flutter')) {
        flutterPackage = 'flutter';
        flutterParagraphs.addAll(
          entry.paragraphs.map<String>((LicenseParagraph para) => para.text),
        );
      }
      if (entry.packages.contains('engine')) {
        enginePackage = 'engine';
        engineParagraphs.addAll(
          entry.paragraphs.map<String>((LicenseParagraph para) => para.text),
        );
      }
    }

    final List<Widget> result = <Widget>[];
44 45 46 47 48 49 50 51 52
    result.addAll(<Widget>[
      const Text('License Check Test', key: ValueKey<String>('Header')),
      Text(flutterPackage, key: const ValueKey<String>('FlutterPackage')),
      Text(flutterParagraphs.join(' '), key: const ValueKey<String>('FlutterLicense')),
      Text('${flutterParagraphs.length}', key: const ValueKey<String>('FlutterCount')),
      Text(enginePackage, key: const ValueKey<String>('EnginePackage')),
      Text(engineParagraphs.join(' '), key: const ValueKey<String>('EngineLicense')),
      Text('${engineParagraphs.length}', key: const ValueKey<String>('EngineCount')),
    ]);
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

    return ListView(
      children: result,
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: FutureBuilder<List<LicenseEntry>>(
          initialData: const <LicenseEntry>[],
          builder: _buildTestResultWidget,
          future: LicenseRegistry.licenses.toList(),
        ),
      ),
    );
  }
}