collectDataDispatcher function

void collectDataDispatcher()

Implementation

@pragma('vm:entry-point')
void collectDataDispatcher() {
  Workmanager().executeTask((task, inputData) async {
    print('Run collectDataDispatcher ${DateTime.now()}');

    final aclDatabase = ACLDatabase();

    try {
      // 1. Collect battery
      await BatteryAuditHelper.collectBatteryAudit(aclDatabase);
      // 2. Collect network
      await NetworkAuditHelper.collectNetworkAudit(aclDatabase);
      // 3. Collect device resource
      await DeviceResourceHelper.collectDeviceResourceAudit(aclDatabase);
      // 4. Collect app usage
      await AppUsageAuditHelper.collectAppUsageAudit(aclDatabase);
      // 5. Collect location
      await LocationAuditHelper.collectLocationAudit(db: aclDatabase);
      // 6. Collect notification
      await NotificationAuditHelper.collectNotificationAudit(aclDatabase);
    } catch (e) {
      print(e);
    }

    // try sync data when it run first time in day
    try {
      await SyncDataHelper.syncFromLastTime(aclDatabase);
    } catch (e) {
      print('collectDataDispatcher error sync data');
      print(e);
    }
    return Future.value(true);
  });
}