// 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';
|
|
void main() {
|
runApp(MyApp());
|
}
|
|
class MyApp 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),
|
],
|
),
|
);
|
}
|
}
|