pgs_health_plugin 0.0.3 copy "pgs_health_plugin: ^0.0.3" to clipboard
pgs_health_plugin: ^0.0.3 copied to clipboard

outdated

A new Flutter plugin.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:pgs_health_plugin/pgs_health_plugin.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  HealthData _hearRateData;
  String heartRate = '0';

  HealthData _bloodPressureSystolicData;
  String bloodPressureSystolic = '0';

  HealthData _bloodPressureDiastolicData;
  String bloodPressureDiastolic = '0';

  HealthData _pulseOximeterData;
  String pulseOximeter = '0';

  HealthData _bloodSugarData;
  String bloodSugar = '0';

  HealthData _waterData;
  String water = '0';

  HealthData _sleepData;
  String sleep = '0';

  HealthData _mindfulnessData;
  String mindfulness = '0';

  HealthData _caloriesData;
  String calories = '0';

  List<HealthData> _stepsData;
  String steps = '0';

  String stepsToday = '0';
  String stepsLastWeek = '0';
  String stepsLastMonth = '0';
  List<HealthData> resultStepToday;
  List<HealthData> resultStepLastWeek;
  List<HealthData> resultStepLastMonth;

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    bool permission;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      permission = await PgsHealthPlugin.requestPermissions(DataType.values);

      final resultHeartRate =
          await PgsHealthPlugin.readLast(DataType.HEART_RATE);
      if (resultHeartRate != null) {
        _hearRateData = resultHeartRate;
      }

      final resultBloodPressureSystolic =
          await PgsHealthPlugin.readLast(DataType.BLOOD_PRESSURE_SYSTOLIC);
      if (resultBloodPressureSystolic != null) {
        _bloodPressureSystolicData = resultBloodPressureSystolic;
      }

      final resultBloodPressureDiastolic =
          await PgsHealthPlugin.readLast(DataType.BLOOD_PRESSURE_DIASTOLIC);
      if (resultBloodPressureDiastolic != null) {
        _bloodPressureDiastolicData = resultBloodPressureDiastolic;
      }

      final resultPulseOximeter =
          await PgsHealthPlugin.readLast(DataType.BLOOD_OXYGEN);
      if (resultPulseOximeter != null) {
        _pulseOximeterData = resultPulseOximeter;
      }

      final resultBloodSugar =
          await PgsHealthPlugin.readLast(DataType.BLOOD_SUGAR);
      if (resultBloodSugar != null) {
        _bloodSugarData = resultBloodSugar;
      }

      final resultWater = await PgsHealthPlugin.readLast(DataType.WATER);
      if (resultWater != null) {
        _waterData = resultWater;
      }

      final resultSleep = await PgsHealthPlugin.readLast(DataType.SLEEP);
      if (resultSleep != null) {
        _sleepData = resultSleep;
      }

      final resultMindfulness =
          await PgsHealthPlugin.readLast(DataType.MINDFULNESS);
      if (resultMindfulness != null) {
        _mindfulnessData = resultMindfulness;
      }

      final resultCalories =
          await PgsHealthPlugin.readLast(DataType.ACTIVE_ENERGY_BURNED);
      if (resultCalories != null) {
        _caloriesData = resultCalories;
      }

      final results = await PgsHealthPlugin.read(
        DataType.STEP_COUNT,
        dateFrom: DateTime.now().subtract(Duration(days: 1)),
        dateTo: DateTime.now(),
      );
      final todayDate = DateTime.now();

      // Today Steps
      resultStepToday = await PgsHealthPlugin.readStats(DataType.STEP_COUNT,
          dateFrom: todayDate, dateTo: todayDate, interval: 1);

      // Today Last Week
      print(todayDate.weekday);
      resultStepLastWeek = await PgsHealthPlugin.readStats(DataType.STEP_COUNT,
          dateFrom: todayDate.subtract(Duration(days: todayDate.weekday)),
          dateTo: todayDate,
          interval: 1);

      // Today Last Month
      resultStepLastMonth = await PgsHealthPlugin.readStats(DataType.STEP_COUNT,
          dateFrom: DateTime(todayDate.year, todayDate.month, 1),
          dateTo: todayDate,
          interval: 1);

      //_stepsData = results;
    } on PlatformException {
      permission = false;
    }

    print(permission);

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      // Heart Rate
      if (_hearRateData != null) {
        heartRate = _hearRateData.value.toString();
      }

      // Blood Pressure Systolic
      if (_bloodPressureSystolicData != null) {
        bloodPressureSystolic = _bloodPressureSystolicData.value.toString();
      }

      // Blood Pressure Diastolic
      if (_bloodPressureDiastolicData != null) {
        bloodPressureDiastolic = _bloodPressureDiastolicData.value.toString();
      }

      // Pulse Oximeter
      if (_pulseOximeterData != null) {
        pulseOximeter = _pulseOximeterData.value.toString();
      }

      // Blood Sugar
      if (_bloodSugarData != null) {
        bloodSugar = _bloodSugarData.value.toString();
      }

      // Water
      if (_waterData != null) {
        water = _waterData.value.toString();
      }

      // Sleep
      if (_sleepData != null) {
        Duration sleepDuration =
            _sleepData.dateTo.difference(_sleepData.dateFrom);

        sleep = sleepDuration.toString().split('.')[0];
      }

      // Mindfulness
      if (_mindfulnessData != null) {
        Duration mindfulnessDuration =
            _mindfulnessData.dateTo.difference(_mindfulnessData.dateFrom);

        mindfulness = mindfulnessDuration.toString().split('.')[0];
      }

      // Calories
      if (_caloriesData != null) {
        calories = _caloriesData.value.toString();
      }

      // Steps
      if (_stepsData != null) {
        int todaySteps = 0;

        _stepsData.forEach((f) {
          todaySteps += f.value.toInt();
        });

        steps = todaySteps.toString();
      }

      // Steps Today
      if (resultStepToday != null) {
        stepsToday = resultStepToday[0].value.toString();
      }

      // Steps Last Week
      if (resultStepLastWeek != null) {
        int totalSteps = 0;
        int count = 0;

        resultStepLastWeek.forEach((f) {
          totalSteps += f.value.toInt();
          count++;
        });
        stepsLastWeek = (totalSteps / count).toString();
      }

      // Steps Last Month
      if (resultStepLastMonth != null) {
        int totalSteps = 0;
        int count = 0;
        resultStepLastMonth.forEach((f) {
          totalSteps += f.value.toInt();
          count++;
        });
        stepsLastMonth = (totalSteps / count).toString();
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('Heart Rate : $heartRate'),
              Text(
                  'Blood Pressure : $bloodPressureSystolic/$bloodPressureDiastolic'),
              Text('Pulse Oximeter : $pulseOximeter'),
              Text('Blood Sugar : $bloodSugar'),
              Text('Water : $water'),
              Text('Sleep : $sleep'),
              Text('Mindfulness : $mindfulness'),
              Text('Steps : $steps'),
              Text('Calories : $calories'),
              Card(
                child: Column(
                  children: <Widget>[
                    Text("Steps"),
                    Text("Today : $stepsToday"),
                    Text("Last Week : $stepsLastWeek"),
                    Text("Last Month : $stepsLastMonth")
                  ],
                ),
              )
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A new Flutter plugin.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on pgs_health_plugin