add structure
This commit is contained in:
48
lib/config.dart
Normal file
48
lib/config.dart
Normal file
@@ -0,0 +1,48 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
enum Flavor { DEV, STAGING, PRODUCTION, LOCAL }
|
||||
const FlavorNames = ["Development", "Staging", "Production", "Local"];
|
||||
|
||||
class Config {
|
||||
static Config _instance;
|
||||
|
||||
final Flavor flavor;
|
||||
final String name;
|
||||
final Color color;
|
||||
final String apiURL;
|
||||
final String reportURL;
|
||||
final Level level;
|
||||
final String reportProjectID;
|
||||
|
||||
factory Config(
|
||||
{@required Flavor flavor,
|
||||
@required String apiURL,
|
||||
@required String reportURL,
|
||||
@required String reportProjectID,
|
||||
Color color: Colors.blue,
|
||||
Level level: Level.SEVERE}) {
|
||||
_instance ??= Config._internal(flavor, FlavorNames[flavor.index], color,
|
||||
apiURL, reportURL, level, reportProjectID);
|
||||
|
||||
Logger.root.level = level;
|
||||
Logger.root.onRecord.listen((record) {
|
||||
print(
|
||||
'${record.level.name}: ${record.time}: ${record.loggerName}: ${record.message}');
|
||||
});
|
||||
|
||||
return _instance;
|
||||
}
|
||||
|
||||
Config._internal(this.flavor, this.name, this.color, this.apiURL,
|
||||
this.reportURL, this.level, this.reportProjectID);
|
||||
|
||||
static Config get instance {
|
||||
return _instance;
|
||||
}
|
||||
|
||||
static bool isProduction() => _instance.flavor == Flavor.PRODUCTION;
|
||||
static bool isDevelopment() => _instance.flavor == Flavor.DEV;
|
||||
static bool isStaging() => _instance.flavor == Flavor.STAGING;
|
||||
static bool isLocal() => _instance.flavor == Flavor.LOCAL;
|
||||
}
|
||||
Reference in New Issue
Block a user