dev
dart 49 lines 1.73 KB
Raw
1 import 'dart:io';
2 import 'package:package_info_plus/package_info_plus.dart' as __package_info__;
3
4 abstract class _EnvKeys {
5 static const kWinAppName = 'CW_WIN_APP_NAME';
6 static const kWinAppPackageName = 'CW_WIN_APP_PACKAGE_NAME';
7 static const kWinAppVersion = 'CW_WIN_APP_VERSION';
8 static const kWinAppBuildNumber = 'CW_WIN_APP_BUILD_NUMBER';
9 }
10
11 class PackageInfo {
12 static Future<PackageInfo> fromPlatform() async {
13 if (Platform.isWindows) {
14 return _windowsPackageInfo;
15 }
16
17 final packageInfo = await __package_info__.PackageInfo.fromPlatform();
18 return PackageInfo._(
19 appName: packageInfo.appName,
20 packageName: packageInfo.packageName,
21 version: packageInfo.version,
22 buildNumber: packageInfo.buildNumber);
23 }
24
25 static const _defaultCWAppName = 'Cake Wallet';
26 static const _defaultCWAppPackageName = 'com.cakewallet.cake_wallet';
27 static const _defaultCWAppVersion = '1.0.0';
28 static const _defaultCWAppBuildNumber = '1';
29
30 static const _windowsPackageInfo = PackageInfo._(
31 appName: const String.fromEnvironment(_EnvKeys.kWinAppName, defaultValue: _defaultCWAppName),
32 packageName: const String.fromEnvironment(_EnvKeys.kWinAppPackageName,
33 defaultValue: _defaultCWAppPackageName),
34 version:
35 const String.fromEnvironment(_EnvKeys.kWinAppVersion, defaultValue: _defaultCWAppVersion),
36 buildNumber: const String.fromEnvironment(_EnvKeys.kWinAppBuildNumber,
37 defaultValue: _defaultCWAppBuildNumber));
38
39 final String appName;
40 final String packageName;
41 final String version;
42 final String buildNumber;
43
44 const PackageInfo._(
45 {required this.appName,
46 required this.packageName,
47 required this.version,
48 required this.buildNumber});
49 }