Files
flutter_server_box/lib/core/analysis.dart
2023-03-13 12:02:48 +08:00

47 lines
1.2 KiB
Dart

import 'dart:async';
import 'dart:io';
import 'package:countly_flutter/countly_config.dart';
import 'package:countly_flutter/countly_flutter.dart';
import 'package:logging/logging.dart';
import 'package:toolbox/core/build_mode.dart';
import 'utils/platform.dart';
class Analysis {
static const _url = 'https://countly.xuty.cc';
static const _key = '80372a2a66424b32d0ac8991bfa1ef058bd36b1f';
static bool _enabled = false;
static Future<void> init() async {
if (!BuildMode.isRelease) {
return;
}
if (isAndroid || isIOS) {
_enabled = true;
final config = CountlyConfig(_url, _key)
.setLoggingEnabled(false)
.enableCrashReporting();
await Countly.initWithConfig(config);
await Countly.start();
await Countly.giveAllConsent();
} else {
Logger('COUNTLY')
.info('Unsupported platform ${Platform.operatingSystem}');
}
}
static void recordView(String view) {
if (_enabled) {
Countly.recordView(view);
}
}
static void recordException(Object exception, [bool fatal = false]) {
if (_enabled) {
Countly.logException(exception.toString(), !fatal, null);
}
}
}