diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 12ced804..0ef45c2b 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
+
diff --git a/lib/config/config.dart b/lib/config/config.dart
index 81c5f2e4..730cb049 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -243,6 +243,9 @@ const GET_USER_TERMS = '/Services/Patients.svc/REST/GetUserTermsAndConditions';
const UPDATE_HEALTH_TERMS =
'/services/Patients.svc/REST/UpdatePateintHealthSummaryReport';
+const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts';
+
+
//URL to get medicine and pharmacies list
const CHANNEL = 3;
const GENERAL_ID = 'Cs2020@2016\$2958';
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 7d067ab7..d81c6693 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -1337,4 +1337,16 @@ const Map localizedValues = {
"cancelOrderMsg": {"en": "Are you sure!! want to cancel this order", "ar": "هل أنت واثق!! تريد إلغاء هذا الطلب"},
"processDoneSuccessfully": {"en": "Process Done Successfully", "ar": "تمت العملية بنجاح"},
"selectHomeHealthCareServices": {"en": "Select Home Health Care Services", "ar": " حدد خدمات الرعاية الصحية المنزلية"},
+ "weekly": {
+ "en": "Weekly",
+ "ar": "أسبوعي"
+ },
+ "monthly": {
+ "en": "Monthly",
+ "ar": "شهري"
+ },
+ "yearly": {
+ "en": "Yearly",
+ "ar": "سنوي"
+ },
};
diff --git a/lib/pages/medical/smart_watch_health_data/health_data_list.dart b/lib/pages/medical/smart_watch_health_data/health_data_list.dart
index f7a7d437..3d6f5295 100644
--- a/lib/pages/medical/smart_watch_health_data/health_data_list.dart
+++ b/lib/pages/medical/smart_watch_health_data/health_data_list.dart
@@ -1,8 +1,10 @@
import 'package:diplomaticquarterapp/models/SmartWatch/HealthData.dart';
+import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/stepsTracker.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:fit_kit/fit_kit.dart';
import 'package:flutter/material.dart';
@@ -85,21 +87,26 @@ class _HealthDataListState extends State {
Divider(
color: Colors.grey[500],
),
- Row(
- children: [
- Container(
- child: Image.asset(
- "assets/images/SmartWatches/heartrate_icon.png",
- width: 60.0,
- height: 60.0),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
- child: Text("Steps",
- style: TextStyle(
- fontSize: 20.0, fontWeight: FontWeight.bold)),
- ),
- ],
+ InkWell(
+ onTap: () {
+ navigateToStepsTracker(StepsTracker());
+ },
+ child: Row(
+ children: [
+ Container(
+ child: Image.asset(
+ "assets/images/SmartWatches/heartrate_icon.png",
+ width: 60.0,
+ height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
+ child: Text("Steps",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
),
Divider(
color: Colors.grey[500],
@@ -170,6 +177,10 @@ class _HealthDataListState extends State {
));
}
+ navigateToStepsTracker(Widget page) {
+ Navigator.push(context, FadePage(page: page));
+ }
+
void readLast() async {
final result = await FitKit.readLast(DataType.DISTANCE);
print(result);
@@ -241,6 +252,35 @@ class _HealthDataListState extends State {
}
});
GifLoaderDialogUtils.hideDialog(context);
+ readSleepDataAndroid();
+ }
+ }
+
+ void readSleepDataAndroid() async {
+ GifLoaderDialogUtils.showMyDialog(context);
+ sleepListAndroid.clear();
+ if (await FitKit.requestPermissions(dataTypes)) {
+ print("Sleep Data");
+ final results = await FitKit.read(
+ DataType.SLEEP,
+ dateFrom: DateTime.now().subtract(Duration(days: 10)),
+ dateTo: DateTime.now(),
+ limit: 20,
+ );
+ print(results);
+ sleepListAndroid = results;
+ sleepListAndroid.forEach((element) {
+ if (element.value != 0) {
+ addDataToHealthDataArray(
+ 6,
+ 0,
+ DateUtil.convertDateToString(element.dateFrom),
+ element.value.toString(),
+ transactionsListID);
+ transactionsListID++;
+ }
+ });
+ GifLoaderDialogUtils.hideDialog(context);
readEnergyAndroid();
}
}
diff --git a/lib/pages/medical/smart_watch_health_data/stepsTracker.dart b/lib/pages/medical/smart_watch_health_data/stepsTracker.dart
new file mode 100644
index 00000000..eec41a35
--- /dev/null
+++ b/lib/pages/medical/smart_watch_health_data/stepsTracker.dart
@@ -0,0 +1,91 @@
+import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+
+class StepsTracker extends StatefulWidget {
+ @override
+ _StepsTrackerState createState() => _StepsTrackerState();
+}
+
+class _StepsTrackerState extends State
+ with SingleTickerProviderStateMixin {
+ TabController _tabController;
+
+ @override
+ void initState() {
+ _tabController = new TabController(length: 3, vsync: this);
+ WidgetsBinding.instance.addPostFrameCallback((_) {
+ getYearlyStepsData();
+ });
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: "Steps",
+ isShowDecPage: false,
+ body: Container(
+ child: Column(
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ TabBar(
+ tabs: [
+ Tab(text: TranslationBase.of(context).weekly),
+ Tab(text: TranslationBase.of(context).monthly),
+ Tab(text: TranslationBase.of(context).yearly),
+ ],
+ controller: _tabController,
+ ),
+ Expanded(
+ child: new TabBarView(
+ physics: NeverScrollableScrollPhysics(),
+ children: [
+ getWeeklyStepsDetails(),
+ getMonthlyStepsDetails(),
+ getYearlyStepsDetails()
+ ],
+ controller: _tabController,
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ getYearlyStepsData() {
+ DoctorsListService service = new DoctorsListService();
+ GifLoaderDialogUtils.showMyDialog(context);
+ service.getPatientHealthDataStats(6, 3, context).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['Med_GetYearStepsTransactionsStsList']);
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ AppToast.showErrorToast(message: err);
+ print(err);
+ });
+ }
+
+ getWeeklyStepsDetails() {
+ return Container(
+ child: Text("Weekly"),
+ );
+ }
+
+ getMonthlyStepsDetails() {
+ return Container(
+ child: Text("Monthly"),
+ );
+ }
+
+ getYearlyStepsDetails() {
+ return Container(
+ child: Text("Yearly"),
+ );
+ }
+}
diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart
index a320cf6b..702a524e 100644
--- a/lib/services/appointment_services/GetDoctorsList.dart
+++ b/lib/services/appointment_services/GetDoctorsList.dart
@@ -41,7 +41,8 @@ class DoctorsListService extends BaseService {
long = await this.sharedPref.getDouble(USER_LONG);
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ var languageID =
+ await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Request req = appGlobal.getPublicRequest();
request = {
"LanguageID": languageID == 'ar' ? 1 : 2,
@@ -105,7 +106,8 @@ class DoctorsListService extends BaseService {
long = await this.sharedPref.getDouble(USER_LONG);
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ var languageID =
+ await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Request req = appGlobal.getPublicRequest();
request = {
"LanguageID": languageID == 'ar' ? 1 : 2,
@@ -145,7 +147,8 @@ class DoctorsListService extends BaseService {
Future