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