Connected the SmartRing
parent
55b93feda3
commit
6fd429c883
@ -0,0 +1,181 @@
|
|||||||
|
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/checkme_all_in_one_info_screen.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_models/ble_devices_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/medical/my_trackers/my_trackers_view_model/my_trackers_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class SmartRingAllInOneConnectScreen extends StatefulWidget {
|
||||||
|
final BluetoothDevice deviceModel;
|
||||||
|
|
||||||
|
const SmartRingAllInOneConnectScreen({this.deviceModel});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<SmartRingAllInOneConnectScreen> createState() => _SmartRingAllInOneConnectScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _SmartRingAllInOneConnectScreenState extends State<SmartRingAllInOneConnectScreen> {
|
||||||
|
MyTrackersViewModel myTrackersVm;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
myTrackersVm = context.read<MyTrackersViewModel>();
|
||||||
|
myTrackersVm.connectSmartRingDevice(widget.deviceModel);
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
myTrackersVm.disConnectAndesfitDevice(widget.deviceModel);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
String getTrackerNameByEnum(TrackerTypeEnum trackerTypeEnum) {
|
||||||
|
switch (trackerTypeEnum) {
|
||||||
|
case TrackerTypeEnum.OxymeterTracker:
|
||||||
|
return "Oxymeter";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.BloodPressureTracker:
|
||||||
|
return "Blood Pressure";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.BloodSugarTracker:
|
||||||
|
return "Blood Glucose";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.ECGTracker:
|
||||||
|
return "ECG";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.WeightScale:
|
||||||
|
return "Weight Scale";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.Temperature:
|
||||||
|
return "Temperature";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.Spirometer:
|
||||||
|
return "Spirometer";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.SmartRing:
|
||||||
|
return "Smart Ring";
|
||||||
|
|
||||||
|
case TrackerTypeEnum.AllInOneTracker:
|
||||||
|
return "All in One";
|
||||||
|
}
|
||||||
|
return "All in One";
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> onTrackerTypePressed(TrackerTypeEnum trackerTypeEnum, MyTrackersViewModel myTrackersViewModel) async {
|
||||||
|
switch (trackerTypeEnum) {
|
||||||
|
case TrackerTypeEnum.BloodPressureTracker:
|
||||||
|
case TrackerTypeEnum.BloodSugarTracker:
|
||||||
|
myTrackersViewModel.getCheckMeUsersListDialog(trackerTypeEnum, context);
|
||||||
|
break;
|
||||||
|
case TrackerTypeEnum.OxymeterTracker:
|
||||||
|
myTrackersViewModel.getOxiDataFromCheckMePro();
|
||||||
|
Navigator.of(context).push(FadePage(page: CheckMeAllInOneInfoScreen(trackerTypeEnum)));
|
||||||
|
break;
|
||||||
|
case TrackerTypeEnum.ECGTracker:
|
||||||
|
myTrackersViewModel.getECGDataFromCheckMePro();
|
||||||
|
Navigator.of(context).push(FadePage(page: CheckMeAllInOneInfoScreen(trackerTypeEnum)));
|
||||||
|
break;
|
||||||
|
case TrackerTypeEnum.Temperature:
|
||||||
|
myTrackersViewModel.getTempDataFromCheckMePro();
|
||||||
|
Navigator.of(context).push(FadePage(page: CheckMeAllInOneInfoScreen(trackerTypeEnum)));
|
||||||
|
break;
|
||||||
|
case TrackerTypeEnum.Spirometer:
|
||||||
|
case TrackerTypeEnum.WeightScale:
|
||||||
|
case TrackerTypeEnum.SmartRing:
|
||||||
|
case TrackerTypeEnum.AllInOneTracker:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget buildAllInOneUI(MyTrackersViewModel myTrackersViewModel) {
|
||||||
|
return Expanded(
|
||||||
|
child: ListView(
|
||||||
|
children: [
|
||||||
|
if (myTrackersViewModel.checkMeProUsersList == null) ...[
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(24.0),
|
||||||
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
"Some animation with the instruction",
|
||||||
|
style: TextStyle(fontSize: 9.0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
] else ...[
|
||||||
|
Center(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
GridView.builder(
|
||||||
|
shrinkWrap: true,
|
||||||
|
primary: false,
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 2 / 2, crossAxisSpacing: 12, mainAxisSpacing: 12),
|
||||||
|
padding: EdgeInsets.zero,
|
||||||
|
itemCount: myTrackersViewModel.checkMeProTrackers.length,
|
||||||
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () => onTrackerTypePressed(myTrackersViewModel.checkMeProTrackers[index], myTrackersViewModel),
|
||||||
|
child: MedicalProfileItem(
|
||||||
|
title: getTrackerNameByEnum(myTrackersViewModel.checkMeProTrackers[index]),
|
||||||
|
imagePath: 'tracker.svg',
|
||||||
|
subTitle: "",
|
||||||
|
isEnable: true,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
appBarTitle: "${widget.deviceModel.name}",
|
||||||
|
showNewAppBar: true,
|
||||||
|
isShowDecPage: false,
|
||||||
|
showNewAppBarTitle: true,
|
||||||
|
backgroundColor: Color(0xffF8F8F8),
|
||||||
|
body: Padding(
|
||||||
|
padding: const EdgeInsets.all(24.0),
|
||||||
|
child: Consumer(
|
||||||
|
builder: (BuildContext context, MyTrackersViewModel myTrackersViewModel, Widget child) {
|
||||||
|
return Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
buildAllInOneUI(myTrackersViewModel),
|
||||||
|
if (myTrackersViewModel.checkMeProUsersList != null) ...[
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: DefaultButton(
|
||||||
|
"Disconnect with ${widget.deviceModel.name}",
|
||||||
|
() async {
|
||||||
|
myTrackersVm.disConnectDevice();
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
textColor: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue