CheckMe Pro BLE implementation

dev_3.3_BLE
haroon amjad 2 years ago
parent 322d0a8b5d
commit 32b32e34fd

@ -1,4 +1,5 @@
import 'dart:developer';
import 'dart:io';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/andesfit_device_types/andesfit_all_in-one_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/andesfit_device_types/andesfit_blood_pressure_connect_screen.dart';
@ -6,6 +7,7 @@ import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_s
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/andesfit_device_types/andesfit_spirometer_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/andesfit_device_types/andesfit_temperature_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/andesfit_device_types/andesfit_weigth_scale_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/lepu_device_types/all_in_one_tracker_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/lepu_device_types/bloodpressure_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/lepu_device_types/ecg_connect_screen.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_device_type_screens/lepu_device_types/oxymeter_connect_screen.dart';
@ -36,8 +38,9 @@ class _BleDevicesScreenState extends State<BleDevicesScreen> {
@override
void initState() {
myTrackersVm = context.read<MyTrackersViewModel>();
myTrackersVm.startSearchingForTracker();
myTrackersVm.startTimerForNativeScan();
myTrackersVm.startSearchingForTracker(); // Lepu devices
if (Platform.isIOS && myTrackersVm.currentSelectedTrackerType != TrackerTypeEnum.AllInOneTracker) myTrackersVm.startTimerForNativeScan();
super.initState();
}
@ -111,6 +114,10 @@ class _BleDevicesScreenState extends State<BleDevicesScreen> {
}
break;
case TrackerTypeEnum.AllInOneTracker:
if (Platform.isIOS) {
Navigator.pushReplacement(context, FadePage(page: AndesAllInOneConnectScreenIos(deviceModel: device)));
return;
}
if (myTrackersVm.isDeviceFromAndesFit(device.name)) {
Navigator.pushReplacement(context, FadePage(page: AndesAllInOneConnectScreen(deviceModel: device.andesfitBluetoothDevice)));
return;

@ -0,0 +1,109 @@
import 'package:diplomaticquarterapp/extensions/string_extensions.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/ble_models/ble_devices_model.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
import 'package:diplomaticquarterapp/pages/medical/my_trackers/my_trackers_view_model/my_trackers_view_model.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class AndesAllInOneConnectScreenIos extends StatefulWidget {
final BleDeviceModel deviceModel;
const AndesAllInOneConnectScreenIos({this.deviceModel});
@override
State<AndesAllInOneConnectScreenIos> createState() => _AndesAllInOneConnectScreenState();
}
class _AndesAllInOneConnectScreenState extends State<AndesAllInOneConnectScreenIos> {
MyTrackersViewModel myTrackersVm;
@override
void initState() {
myTrackersVm = context.read<MyTrackersViewModel>();
myTrackersVm.connectDevice(widget.deviceModel);
super.initState();
}
@override
void dispose() {
myTrackersVm.disConnectDevice();
super.dispose();
}
Widget buildWeightScaleUI(MyTrackersViewModel myTrackersViewModel) {
return Expanded(
child: ListView(
children: [
if (myTrackersViewModel.andesfitWeightScaleData == null && (myTrackersViewModel.isAndesfitDeviceConnected != null && myTrackersViewModel.isAndesfitDeviceConnected)) ...[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
mHeight(24.0),
Column(
children: [
Text("Please Wait", style: TextStyle(fontSize: 20)),
],
),
mHeight(24.0),
],
),
] else if (false) ...[
// Add the UI here for All In One Monitor
] else ...[
Padding(
padding: const EdgeInsets.all(24.0),
child: Center(
child: Text(
"Some animation with the instruction",
style: TextStyle(fontSize: 9.0),
),
),
)
],
],
),
);
}
@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: [
// buildWeightScaleUI(myTrackersViewModel),
Row(
children: [
Expanded(
child: DefaultButton(
"Disconnect with ${widget.deviceModel.name}",
() async {
myTrackersVm.disConnectDevice();
Navigator.pop(context);
},
textColor: Colors.white,
),
),
],
),
],
);
},
),
),
);
}
}
Loading…
Cancel
Save