formica_tracker 1.0.0 copy "formica_tracker: ^1.0.0" to clipboard
formica_tracker: ^1.0.0 copied to clipboard

Formica Tracker SDK bridge library for Android and iOS - Fraud detection and device intelligence

example/lib/main.dart

import 'dart:async';
import 'dart:collection';
import 'package:flutter/material.dart';
import 'package:formica_tracker/formica_tracker.dart';
import 'package:formica_tracker/tracker/request_config.dart';
import 'constants.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool _initialized = false;
  bool _nativeEventListenerActive = false;
  final List<Map<String, dynamic>> _nativeEvents = [];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Center(
          child: Column(
            children: [
              ElevatedButton(
                onPressed: _handleInitialize,
                child: Text('TrackerManager.initialize'),
              ),

              Divider(),

              Text('initialized: $_initialized'),
              ElevatedButton(
                onPressed: _handleIsInitialized,
                child: Text('TrackerManager.isInitialized'),
              ),

              Divider(),

              ElevatedButton(
                onPressed: _handleTriggerCustomEvent,
                child: Text('TrakcerManager.triggerCustomEvent'),
              ),

              Divider(),

              ElevatedButton(
                onPressed: _handleTriggerCustomEventSync,
                child: Text('TrakcerManager.triggerCustomEventSync'),
              ),

              Divider(),

              ElevatedButton(
                onPressed: _handleSetUserDefinedValues,
                child: Text('TrackerManager.setUserDefinedValues'),
              ),

              Divider(),

              ElevatedButton(
                onPressed: _getUserDefinedValues,
                child: Text('TrackerManager.getUserDefinedValues'),
              ),

              Divider(),

              Text(
                'Native Event Listener: ${_nativeEventListenerActive ? "Active" : "Inactive"}',
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  ElevatedButton(
                    onPressed: _handleSetNativeEventListener,
                    child: Text('Set Native Event Listener'),
                  ),
                  ElevatedButton(
                    onPressed: _handleRemoveNativeEventListener,
                    child: Text('Remove Event Listener'),
                  ),
                ],
              ),

              Divider(),

              Text('Native Events Received: ${_nativeEvents.length}'),
              Expanded(
                child: ListView.builder(
                  itemCount: _nativeEvents.length,
                  itemBuilder: (context, index) {
                    final event = _nativeEvents[index];
                    return ListTile(
                      title: Text(event['eventName'] ?? 'Unknown Event'),
                      subtitle: Text(event['data'].toString()),
                      dense: true,
                    );
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

  Future<void> _handleInitialize() async {
    await TrackerManager.initialize(
      apiKey: apiKey,
      serviceUrl: serviceUrl,
      tenant: tenant,
    );
  }

  Future<void> _handleIsInitialized() async {
    _initialized = await TrackerManager.isInitialized();
    setState(() {});
  }

  Future<void> _handleTriggerCustomEvent() async {
    final HashMap<String, dynamic> args = HashMap.from({
      'testKey': 'testValue',
    });
    await TrackerManager.triggerCustomEvent('testKey', args);
  }

  Future<void> _handleTriggerCustomEventSync() async {
    final HashMap<String, dynamic> args = HashMap.from({
      'testKey': 'testValue',
    });
    final result = await TrackerManager.triggerCustomEventSync(
      'testKey',
      args,
      RequestConfig(0),
    );

    debugPrint('requestId: ${result.requestId}');
  }

  Future<void> _handleSetUserDefinedValues() async {
    await TrackerManager.setUserDefinedValues("TEST_KEY", 'TEST_VALUE');
  }

  Future<void> _getUserDefinedValues() async {
    final result = await TrackerManager.getUserDefinedValues();
    debugPrint(result.toString());
  }

  Future<void> _handleSetNativeEventListener() async {
    try {
      await TrackerManager.setNativeEventListener((event) {
        setState(() {
          _nativeEvents.add(event);
          _nativeEventListenerActive = true;
        });
        debugPrint('Native event received: $event');
      });

      setState(() {
        _nativeEventListenerActive = true;
      });
    } catch (e) {
      debugPrint('Error setting native event listener: $e');
    }
  }

  Future<void> _handleRemoveNativeEventListener() async {
    try {
      await TrackerManager.removeNativeEventListener();
      setState(() {
        _nativeEventListenerActive = false;
      });
    } catch (e) {
      debugPrint('Error removing native event listener: $e');
    }
  }

  @override
  void dispose() {
    super.dispose();
  }
}
0
likes
150
points
0
downloads

Publisher

unverified uploader

Weekly Downloads

Formica Tracker SDK bridge library for Android and iOS - Fraud detection and device intelligence

Homepage

Documentation

API reference

License

unknown (license)

Dependencies

flutter, freezed_annotation, json_annotation, plugin_platform_interface

More

Packages that depend on formica_tracker

Packages that implement formica_tracker