| 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 | } |