Add Environment service with platform, build mode, and app info support
This commit is contained in:
27
finlog_app/fluttery/lib/environment.dart
Normal file
27
finlog_app/fluttery/lib/environment.dart
Normal file
@@ -0,0 +1,27 @@
|
||||
import 'package:fluttery/fluttery.dart';
|
||||
|
||||
/// Abstract Environment contract
|
||||
abstract class Environment extends Service {
|
||||
/// Platform checks
|
||||
bool get isAndroid;
|
||||
|
||||
bool get isIOS;
|
||||
|
||||
/// Build mode
|
||||
bool get isDebug;
|
||||
|
||||
bool get isRelease;
|
||||
|
||||
bool get isProfile;
|
||||
|
||||
/// App info
|
||||
Future<void> loadPackageInfo();
|
||||
|
||||
String get appName;
|
||||
|
||||
String get packageName;
|
||||
|
||||
String get version;
|
||||
|
||||
String get buildNumber;
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
library;
|
||||
|
||||
import 'package:fluttery/environment.dart';
|
||||
import 'package:fluttery/logger.dart';
|
||||
import 'package:fluttery/preferences.dart';
|
||||
import 'package:fluttery/secure_storage.dart';
|
||||
import 'package:fluttery/src/logger/logger_impl.dart';
|
||||
import 'package:fluttery/src/preferences/preferences_impl.dart';
|
||||
import 'package:fluttery/src/storage/secure/secure_storage_impl.dart';
|
||||
import 'package:fluttery/src/system/environment/environment_impl.dart';
|
||||
import 'package:fluttery/src/system/worker/worker_impl.dart';
|
||||
import 'package:fluttery/worker.dart';
|
||||
import 'package:kiwi/kiwi.dart';
|
||||
@@ -34,6 +36,7 @@ class App {
|
||||
static void registerDefaultServices() {
|
||||
registerService<Logger>(() => LoggerImpl());
|
||||
registerService<Preferences>(() => PreferencesImpl());
|
||||
registerService<Environment>(() => EnvironmentImpl());
|
||||
registerService<SecureStorage>(() => SecureStorageImpl());
|
||||
registerService<Worker>(() => WorkerImpl());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import 'dart:io' show Platform;
|
||||
import 'package:flutter/foundation.dart'
|
||||
show kDebugMode, kReleaseMode, kProfileMode;
|
||||
|
||||
import 'package:fluttery/environment.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
class EnvironmentImpl implements Environment {
|
||||
PackageInfo? _packageInfo;
|
||||
|
||||
@override
|
||||
bool get isAndroid => Platform.isAndroid;
|
||||
|
||||
@override
|
||||
bool get isIOS => Platform.isIOS;
|
||||
|
||||
@override
|
||||
Future<void> loadPackageInfo() async {
|
||||
_packageInfo = await PackageInfo.fromPlatform();
|
||||
}
|
||||
|
||||
@override
|
||||
String get appName => _packageInfo?.appName ?? 'Unknown';
|
||||
|
||||
@override
|
||||
String get packageName => _packageInfo?.packageName ?? 'Unknown';
|
||||
|
||||
@override
|
||||
String get version => _packageInfo?.version ?? '0.0.0';
|
||||
|
||||
@override
|
||||
String get buildNumber => _packageInfo?.buildNumber ?? '0';
|
||||
|
||||
@override
|
||||
bool get isDebug => kDebugMode;
|
||||
|
||||
@override
|
||||
bool get isRelease => kReleaseMode;
|
||||
|
||||
@override
|
||||
bool get isProfile => kProfileMode;
|
||||
}
|
||||
Reference in New Issue
Block a user