|
- // Copyright 2017 The Chromium 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: public_member_api_docs
-
- import 'dart:async';
-
- import 'package:flutter/material.dart';
- import 'package:package_info/package_info.dart';
-
- class PackageInfoPage extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'PackageInfo Demo',
- theme: ThemeData(primarySwatch: Colors.blue),
- home: MyHomePage(title: 'PackageInfo example app'),
- );
- }
- }
-
- class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
-
- final String title;
-
- @override
- _MyHomePageState createState() => _MyHomePageState();
- }
-
- class _MyHomePageState extends State<MyHomePage> {
- PackageInfo _packageInfo = PackageInfo(
- appName: 'Unknown',
- packageName: 'Unknown',
- version: 'Unknown',
- buildNumber: 'Unknown',
- );
-
- @override
- void initState() {
- super.initState();
- _initPackageInfo();
- }
-
- Future<void> _initPackageInfo() async {
- final PackageInfo info = await PackageInfo.fromPlatform();
- setState(() {
- _packageInfo = info;
- });
- }
-
- Widget _infoTile(String title, String subtitle) {
- return ListTile(
- title: Text(title),
- subtitle: Text(subtitle ?? 'Not set'),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text(widget.title),
- ),
- body: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- _infoTile('App name', _packageInfo.appName),
- _infoTile('Package name', _packageInfo.packageName),
- _infoTile('App version', _packageInfo.version),
- _infoTile('Build number', _packageInfo.buildNumber),
- ],
- ),
- );
- }
- }
|