startUXCam static method

Future<void> startUXCam()

Initialize UXCam

Implementation

static Future<void> startUXCam() async {
  if (kIsWeb || !Platform.isAndroid && !Platform.isIOS) return;

  if (_uxCamInitializing) return;
  _uxCamInitializing = true;
  try {
    assert(DSAppState.isInitialized, 'call DSAppState.preInit() before');
    reportEvent('uxcam starting');
    await FlutterUxcam.optIntoSchematicRecordings(); // Confirm that you have user permission for screen recording
    final config = FlutterUxConfig(
      userAppKey: _uxCamKey,
      enableAutomaticScreenNameTagging: false,
    );
    await FlutterUxcam.startWithConfiguration(config);
    reportEvent('uxcam started');

    DSAppState.registerStateCallback((old, state) async {
      switch (state) {
        case AppLifecycleState.resumed:
          await FlutterUxcam.allowShortBreakForAnotherApp(false);
          break;
        case AppLifecycleState.hidden:
          await FlutterUxcam.allowShortBreakForAnotherApp(true);
          break;
        default:
      }
    });

    unawaited(FlutterUxcam.setUserIdentity(yandexId));
    _uxCamRunning = true;
  } finally {
    _uxCamInitializing = false;
  }
}