Skip to content

Commit

Permalink
feat: date range in health import without lib
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiasn committed Mar 16, 2024
1 parent 574b239 commit fa6deb5
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 109 deletions.
2 changes: 2 additions & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,8 @@
"settingsHabitsStoryLabel": "Habit completion story",
"settingsHabitsTitle": "Habits",
"settingsHealthImportTitle": "Health Import",
"settingsHealthImportFromDate": "Start",
"settingsHealthImportToDate": "End",
"settingsLogsTitle": "Logs",
"settingsMaintenanceTitle": "Maintenance",
"settingsMatrixDeleteLabel": "Delete",
Expand Down
183 changes: 92 additions & 91 deletions lib/pages/settings/health_import_page.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
// ignore_for_file: avoid_dynamic_calls

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:lotti/get_it.dart';
import 'package:lotti/logic/health_import.dart';
import 'package:lotti/pages/settings/sliver_box_adapter_page.dart';
import 'package:lotti/themes/colors.dart';
import 'package:lotti/widgets/date_time/datetime_field.dart';
import 'package:lotti/widgets/misc/buttons.dart';
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
import 'package:tinycolor2/tinycolor2.dart';

const spaceBetweenButtons = 10.0;

Expand All @@ -30,99 +26,104 @@ class _HealthImportPageState extends State<HealthImportPage> {
super.initState();
}

void _onSelectionChanged(DateRangePickerSelectionChangedArgs args) {
setState(() {
if (args.value is PickerDateRange) {
_dateFrom = args.value.startDate as DateTime;
_dateTo = (args.value.endDate ?? args.value.startDate) as DateTime;
}
});
}

@override
Widget build(BuildContext context) {
final localizations = AppLocalizations.of(context)!;

return SliverBoxAdapterPage(
title: localizations.settingsHealthImportTitle,
showBackButton: true,
child: Column(
children: <Widget>[
SfDateRangePicker(
backgroundColor: cardColor.lighten(40),
onSelectionChanged: _onSelectionChanged,
enableMultiView: true,
selectionMode: DateRangePickerSelectionMode.range,
initialSelectedRange: PickerDateRange(
_dateFrom,
_dateTo,
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
children: <Widget>[
DateTimeField(
dateTime: _dateFrom,
labelText: localizations.settingsHealthImportFromDate,
setDateTime: (DateTime value) {
setState(() {
_dateFrom = value;
});
},
mode: CupertinoDatePickerMode.date,
),
const SizedBox(height: 20),
DateTimeField(
dateTime: _dateTo,
labelText: localizations.settingsHealthImportToDate,
setDateTime: (DateTime value) {
setState(() {
_dateTo = value;
});
},
mode: CupertinoDatePickerMode.date,
),
const SizedBox(height: 20),
RoundedButton(
'Import Activity Data',
onPressed: () {
_healthImport.getActivityHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Sleep Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: sleepTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Heart Rate Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: heartRateTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Blood Pressure Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: bpTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Body Measurement Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: bodyMeasurementTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Workout Data',
onPressed: () {
_healthImport.getWorkoutsHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
);
},
),
),
const SizedBox(height: 20),
RoundedButton(
'Import Activity Data',
onPressed: () {
_healthImport.getActivityHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Sleep Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: sleepTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Heart Rate Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: heartRateTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Blood Pressure Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: bpTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Body Measurement Data',
onPressed: () {
_healthImport.fetchHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
types: bodyMeasurementTypes,
);
},
),
const SizedBox(height: spaceBetweenButtons),
RoundedButton(
'Import Workout Data',
onPressed: () {
_healthImport.getWorkoutsHealthData(
dateFrom: _dateFrom,
dateTo: _dateTo,
);
},
),
],
],
),
),
);
}
Expand Down
16 changes: 0 additions & 16 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2476,22 +2476,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.3.1"
syncfusion_flutter_core:
dependency: transitive
description:
name: syncfusion_flutter_core
sha256: "7666506885ebc8f62bb928ad4588a73e20caaff2b2cf2b2b56f67d98f4113525"
url: "https://pub.dev"
source: hosted
version: "24.2.9"
syncfusion_flutter_datepicker:
dependency: "direct main"
description:
name: syncfusion_flutter_datepicker
sha256: c010440ccef2beecb988684af3557c57ade8ea300d1177536f01059e3a16ce5d
url: "https://pub.dev"
source: hosted
version: "24.2.9"
synchronized:
dependency: transitive
description:
Expand Down
3 changes: 1 addition & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: lotti
description: Achieve your goals and keep your data private with Lotti.
publish_to: 'none'
version: 0.9.434+2398
version: 0.9.435+2399

msix_config:
display_name: LottiApp
Expand Down Expand Up @@ -140,7 +140,6 @@ dependencies:
share_plus: ^7.0.0
sqflite: ^2.0.1
sqlite3_flutter_libs: ^0.5.15
syncfusion_flutter_datepicker: ^24.1.43
timezone: ^0.9.1
tinycolor2: ^3.0.0
url_launcher: ^6.1.2
Expand Down

0 comments on commit fa6deb5

Please sign in to comment.