Added App name data to package_info (#573)
diff --git a/packages/package_info/CHANGELOG.md b/packages/package_info/CHANGELOG.md
index b76030a..0871686 100644
--- a/packages/package_info/CHANGELOG.md
+++ b/packages/package_info/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.1
+
+* Added `appName` field to `PackageInfo` for getting the display name of the app.
+
## 0.3.0
* **Breaking change**. Set SDK constraints to match the Flutter beta release.
diff --git a/packages/package_info/README.md b/packages/package_info/README.md
index a6e18b8..473bda3 100644
--- a/packages/package_info/README.md
+++ b/packages/package_info/README.md
@@ -13,6 +13,7 @@
PackageInfo packageInfo = await PackageInfo.fromPlatform();
+String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
@@ -22,6 +23,7 @@
```dart
PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
+ String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;
diff --git a/packages/package_info/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java b/packages/package_info/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java
index 5e9f5e3..9c54835 100644
--- a/packages/package_info/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java
+++ b/packages/package_info/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java
@@ -35,9 +35,11 @@
try {
Context context = mRegistrar.context();
if (call.method.equals("getAll")) {
- PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
+ PackageManager pm = context.getPackageManager();
+ PackageInfo info = pm.getPackageInfo(context.getPackageName(), 0);
Map<String, String> map = new HashMap<String, String>();
+ map.put("appName", info.applicationInfo.loadLabel(pm).toString());
map.put("packageName", context.getPackageName());
map.put("version", info.versionName);
map.put("buildNumber", String.valueOf(info.versionCode));
diff --git a/packages/package_info/example/lib/main.dart b/packages/package_info/example/lib/main.dart
index fef9d83..e389c5e 100644
--- a/packages/package_info/example/lib/main.dart
+++ b/packages/package_info/example/lib/main.dart
@@ -33,6 +33,7 @@
class _MyHomePageState extends State<MyHomePage> {
PackageInfo _packageInfo = new PackageInfo(
+ appName: 'Unknown',
packageName: 'Unknown',
version: 'Unknown',
buildNumber: 'Unknown',
@@ -67,6 +68,7 @@
body: new 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),
diff --git a/packages/package_info/ios/Classes/PackageInfoPlugin.m b/packages/package_info/ios/Classes/PackageInfoPlugin.m
index 3e0ac06..3686794 100644
--- a/packages/package_info/ios/Classes/PackageInfoPlugin.m
+++ b/packages/package_info/ios/Classes/PackageInfoPlugin.m
@@ -16,6 +16,7 @@
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
if ([call.method isEqualToString:@"getAll"]) {
result(@{
+ @"appName" : [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"],
@"packageName" : [[NSBundle mainBundle] bundleIdentifier],
@"version" : [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"],
@"buildNumber" : [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]
diff --git a/packages/package_info/lib/package_info.dart b/packages/package_info/lib/package_info.dart
index 5b0b09b..587fb26 100644
--- a/packages/package_info/lib/package_info.dart
+++ b/packages/package_info/lib/package_info.dart
@@ -18,6 +18,7 @@
/// ```
class PackageInfo {
PackageInfo({
+ this.appName,
this.packageName,
this.version,
this.buildNumber,
@@ -35,6 +36,7 @@
final Map<dynamic, dynamic> map = result;
completer.complete(new PackageInfo(
+ appName: map["appName"],
packageName: map["packageName"],
version: map["version"],
buildNumber: map["buildNumber"],
@@ -46,6 +48,9 @@
return _fromPlatform;
}
+ /// The app name. `CFBundleDisplayName` on iOS, `application/label` on Android.
+ final String appName;
+
/// The package name. `bundleIdentifier` on iOS, `getPackageName` on Android.
final String packageName;
diff --git a/packages/package_info/pubspec.yaml b/packages/package_info/pubspec.yaml
index eaecf9f..f1a8cd4 100644
--- a/packages/package_info/pubspec.yaml
+++ b/packages/package_info/pubspec.yaml
@@ -1,7 +1,7 @@
name: package_info
description: Flutter plugin for querying information about the application
package, such as CFBundleVersion on iOS or versionCode on Android.
-version: 0.3.0
+version: 0.3.1
author: Flutter Team <flutter-dev@googlegroups.com>
homepage: https://github.com/flutter/plugins/tree/master/packages/package_info