diff --git a/assets/images/CloseIcon.png b/assets/images/CloseIcon.png
new file mode 100644
index 00000000..b8e68fea
Binary files /dev/null and b/assets/images/CloseIcon.png differ
diff --git a/assets/images/book.svg b/assets/images/book.svg
new file mode 100644
index 00000000..d4679486
--- /dev/null
+++ b/assets/images/book.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/images/robort_svg.svg b/assets/images/robort_svg.svg
new file mode 100644
index 00000000..07d3d4b4
--- /dev/null
+++ b/assets/images/robort_svg.svg
@@ -0,0 +1,82 @@
+
diff --git a/assets/images/symptom.svg b/assets/images/symptom.svg
new file mode 100644
index 00000000..aa670da1
--- /dev/null
+++ b/assets/images/symptom.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
index 616b5fd8..24df0bf6 100644
--- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
+++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
@@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dar
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
+import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -199,9 +200,8 @@ class _AllHabibMedicalServiceState extends State {
title: TranslationBase.of(context).todoList,
),
ServicesContainer(
- onTap: () => Navigator.push(
- context,
- FadePage(),
+ onTap: () => Navigator.of(context).pushNamed(
+ SYMPTOM_CHECKER,
),
imageLocation: 'assets/images/new-design/body_icon.png',
title: 'Symptom Checker'),
diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart
index d3b6fc7c..c51ce5a6 100644
--- a/lib/pages/BookAppointment/DoctorProfile.dart
+++ b/lib/pages/BookAppointment/DoctorProfile.dart
@@ -42,16 +42,16 @@ class _DoctorProfileState extends State
vsync: this,
initialIndex: widget.isOpenAppt == true ? 1 : 0);
- event.controller.stream.listen((p) {
- if (p['clinic_id'] != null &&
- p['doctor_id'] != null &&
- p['project_id'] != null) {
- setState(() {
- // need to take the data from here
- // dropdownValue = p['clinic_id'];
- });
- }
- });
+ // event.controller.stream.listen((p) {
+ // if (p['clinic_id'] != null &&
+ // p['doctor_id'] != null &&
+ // p['project_id'] != null) {
+ // setState(() {
+ // // need to take the data from here
+ // // dropdownValue = p['clinic_id'];
+ // });
+ // }
+ // });
_tabController = new TabController(length: 2, vsync: this);
widget.authUser = new AuthenticatedUser();
getPatientData();
diff --git a/lib/pages/BookAppointment/SearchResults.dart b/lib/pages/BookAppointment/SearchResults.dart
index 2b5fac17..e9767072 100644
--- a/lib/pages/BookAppointment/SearchResults.dart
+++ b/lib/pages/BookAppointment/SearchResults.dart
@@ -1,6 +1,6 @@
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart';
-import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
+// import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -18,12 +18,12 @@ class SearchResults extends StatefulWidget {
}
class _SearchResultsState extends State {
- var event = RobotProvider();
+ // var event = RobotProvider();
List tempList = [];
@override
void initState() {
- event.controller.stream.listen((p) {});
+ // event.controller.stream.listen((p) {});
super.initState();
}
@@ -41,9 +41,13 @@ class _SearchResultsState extends State {
...List.generate(
widget.patientDoctorAppointmentListHospital.length,
(index) => AppExpandableNotifier(
- title: widget
- .patientDoctorAppointmentListHospital[index].filterName + " - " +widget
- .patientDoctorAppointmentListHospital[index].distanceInKMs + " " + TranslationBase.of(context).km,
+ title: widget.patientDoctorAppointmentListHospital[index]
+ .filterName +
+ " - " +
+ widget.patientDoctorAppointmentListHospital[index]
+ .distanceInKMs +
+ " " +
+ TranslationBase.of(context).km,
bodyWidget: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart
index e844d4d1..9d833db1 100644
--- a/lib/pages/BookAppointment/components/SearchByClinic.dart
+++ b/lib/pages/BookAppointment/components/SearchByClinic.dart
@@ -26,7 +26,7 @@ class _SearchByClinicState extends State {
bool nearestAppo = false;
String dropdownValue;
String projectDropdownValue;
- var event = RobotProvider();
+ // var event = RobotProvider();
List clinicsList = [];
List projectsList = [];
bool isMobileAppDentalAllow = false;
diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart
index ad8ae6a5..abe89a30 100644
--- a/lib/pages/landing/landing_page.dart
+++ b/lib/pages/landing/landing_page.dart
@@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/pages/livecare/incoming_call.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/medical/my_admissions_page.dart';
import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart';
+import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
@@ -19,6 +20,7 @@ import 'package:diplomaticquarterapp/widgets/drawer/app_drawer_widget.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/svg.dart';
import 'package:permission_handler/permission_handler.dart';
import 'home_page.dart';
@@ -38,7 +40,7 @@ class _LandingPageState extends State with WidgetsBindingObserver {
ProjectViewModel projectProvider;
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
final authService = new AuthProvider();
-
+ var event = RobotProvider();
bool isPageNavigated = false;
_changeCurrentTab(int tab) {
@@ -280,6 +282,19 @@ class _LandingPageState extends State with WidgetsBindingObserver {
);
},
),
+ actions: [
+ IconButton(
+ iconSize: 50,
+ icon: SvgPicture.asset(
+ 'assets/images/robort_svg.svg',
+ height: 100,
+ width: 100,
+ ),
+ onPressed: () {
+ triggerRobot();
+ } //do something,
+ )
+ ],
centerTitle: true,
),
drawer: SafeArea(child: AppDrawer()),
@@ -306,6 +321,10 @@ class _LandingPageState extends State with WidgetsBindingObserver {
);
}
+ triggerRobot() {
+ // event.setValue({"doctor_id": '40036'});
+ }
+
getText(currentTab) {
switch (currentTab) {
case 0:
diff --git a/lib/pages/symptom-checker/symtom-checker.dart b/lib/pages/symptom-checker/symtom-checker.dart
new file mode 100644
index 00000000..f7475abf
--- /dev/null
+++ b/lib/pages/symptom-checker/symtom-checker.dart
@@ -0,0 +1,43 @@
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+
+class SymptomChecker extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: 'Symptom Checker',
+ body: Center(
+ child: SvgPicture.string(
+ '''''')));
+ }
+}
diff --git a/lib/routes.dart b/lib/routes.dart
index 27161669..8d109983 100644
--- a/lib/routes.dart
+++ b/lib/routes.dart
@@ -10,6 +10,7 @@ import 'package:diplomaticquarterapp/pages/login/login.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/pages/family/add-family_type.dart';
import 'package:diplomaticquarterapp/pages/family/add-family-member.dart';
+import 'package:diplomaticquarterapp/pages/symptom-checker/symtom-checker.dart';
const String INIT_ROUTE = '/';
const String HOME = '/';
@@ -25,6 +26,7 @@ const String MY_FAMILIY = 'my-family';
const String ADD_FAMILY_MEMBER_TYPE = 'add-family-member-type';
const String ADD_FAMILY_MEMBER = 'add-family-member';
const String LIVE_CARE = 'live-care';
+const String SYMPTOM_CHECKER = 'symptom-checker';
var routes = {
HOME: (_) => LandingPage(),
WELCOME_LOGIN: (_) => WelcomeLogin(),
@@ -37,5 +39,6 @@ var routes = {
MY_FAMILIY: (_) => MyFamily(),
ADD_FAMILY_MEMBER_TYPE: (_) => AddFamilyMemberType(),
ADD_FAMILY_MEMBER: (_) => AddMember(),
- LIVE_CARE: (_) => LiveCareHome()
+ LIVE_CARE: (_) => LiveCareHome(),
+ SYMPTOM_CHECKER: (_) => SymptomChecker()
};
diff --git a/lib/widgets/others/app_scaffold_widget.dart b/lib/widgets/others/app_scaffold_widget.dart
index eda27361..0c9c12ed 100644
--- a/lib/widgets/others/app_scaffold_widget.dart
+++ b/lib/widgets/others/app_scaffold_widget.dart
@@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:diplomaticquarterapp/widgets/robo-search/robosearch.dart';
import 'package:diplomaticquarterapp/widgets/robo-search/search.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
@@ -41,44 +42,44 @@ class AppScaffold extends StatelessWidget {
AppGlobal.context = context;
return Scaffold(
- backgroundColor: Theme.of(context).scaffoldBackgroundColor,
- appBar: isShowAppBar
- ? AppBar(
- elevation: 0,
- backgroundColor: Theme.of(context).appBarTheme.color,
- textTheme: TextTheme(
- headline6: TextStyle(
- color: Colors.white, fontWeight: FontWeight.bold),
- ),
- title: Text(appBarTitle.toUpperCase()),
- leading: Builder(
- builder: (BuildContext context) {
- return ArrowBack();
+ backgroundColor: Theme.of(context).scaffoldBackgroundColor,
+ appBar: isShowAppBar
+ ? AppBar(
+ elevation: 0,
+ backgroundColor: Theme.of(context).appBarTheme.color,
+ textTheme: TextTheme(
+ headline6:
+ TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
+ ),
+ title: Text(appBarTitle.toUpperCase()),
+ leading: Builder(
+ builder: (BuildContext context) {
+ return ArrowBack();
+ },
+ ),
+ centerTitle: true,
+ actions: [
+ IconButton(
+ icon: Icon(FontAwesomeIcons.home),
+ color: Colors.white,
+ onPressed: () {
+ Navigator.of(context).popUntil(ModalRoute.withName('/'));
},
),
- centerTitle: true,
- actions: [
- IconButton(
- icon: Icon(FontAwesomeIcons.home),
- color: Colors.white,
- onPressed: () {
- Navigator.of(context).popUntil(ModalRoute.withName('/'));
- },
- ),
- ],
- )
- : null,
- body: baseViewModel != null
- ? NetworkBaseView(
- child: buildBodyWidget(),
- baseViewModel: baseViewModel,
- )
- : buildBodyWidget(),
- bottomSheet: bottomSheet,
- bottomNavigationBar:
- this.isBottomBar == true ? BottomBarSearch() : SizedBox()
- //floatingActionButton: FloatingSearchButton(),
- );
+ ],
+ )
+ : null,
+ body: baseViewModel != null
+ ? NetworkBaseView(
+ child: buildBodyWidget(),
+ baseViewModel: baseViewModel,
+ )
+ : buildBodyWidget(),
+ bottomSheet: bottomSheet,
+ // bottomNavigationBar:
+ // this.isBottomBar == true ? BottomBarSearch() : SizedBox()
+ // floatingActionButton: FloatingSearchButton(),
+ );
}
buildAppLoaderWidget(bool isLoading) {
@@ -86,6 +87,7 @@ class AppScaffold extends StatelessWidget {
}
buildBodyWidget() {
- return body; //Stack(children: [body, buildAppLoaderWidget(isLoading)]);
+ // return body; //Stack(children: [body, buildAppLoaderWidget(isLoading)]);
+ return Stack(children: [body, FloatingSearchButton()]);
}
}
diff --git a/lib/widgets/others/floating_button_search.dart b/lib/widgets/others/floating_button_search.dart
index 34b1240e..37a3e3c0 100644
--- a/lib/widgets/others/floating_button_search.dart
+++ b/lib/widgets/others/floating_button_search.dart
@@ -1,17 +1,93 @@
import 'package:diplomaticquarterapp/widgets/robo-search/robosearch.dart';
import 'package:diplomaticquarterapp/widgets/robo-search/search.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+
+class FloatingSearchButton extends StatefulWidget {
+ @override
+ _FloatingSearchButton createState() => _FloatingSearchButton();
+}
+
+class _FloatingSearchButton extends State
+ with TickerProviderStateMixin {
+ Offset position = Offset(30.0, 40.0);
+ AlignmentDirectional _ironManAlignment = AlignmentDirectional(0.0, 0.7);
+
+ @override
+ void initState() {
+ // TODO: implement initState
+ super.initState();
+ }
-class FloatingSearchButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return Padding(
- padding: const EdgeInsets.only(bottom: 80),
- child: FloatingActionButton(
- child: Icon(Icons.mic),
- onPressed: () {
- SearchBot();
- },
+ return Positioned(
+ left: position.dx,
+ top: position.dy,
+ child: Draggable(
+ feedback: Container(child: getStack()),
+ child: Container(
+ child: AnimatedContainer(
+ duration: Duration(seconds: 2),
+ alignment: _ironManAlignment,
+ child: getStack(),
+ )),
+ childWhenDragging: Container(
+ color: Colors.transparent,
+ ),
+ onDragEnd: (details) {
+ setState(() {
+ position = details.offset;
+ });
+ }));
+
+ // Draggable(
+ // feedback: getStack(),
+ // childWhenDragging: Container(),
+ // child: getStack(),
+ // onDragEnd: (drag) {
+ // setState(() {
+ // top = top + drag.offset.dy < 0 ? 0 : top + drag.offset.dy;
+ // left = left + drag.offset.dx < 0 ? 0 : left + drag.offset.dx;
+ // });
+ // });
+ }
+
+ Widget getStack() {
+ return Container(
+ height: 150,
+ width: 150,
+ child: Stack(
+ children: [
+ Positioned(
+ top: 10,
+ right: 0,
+ child: GestureDetector(
+ onTap: () {
+ print("hi");
+ setState(() {
+ _ironManAlignment = AlignmentDirectional(0.0, -0.20);
+ });
+ }, // handle your image tap here
+ child: Image.asset(
+ 'assets/images/CloseIcon.png',
+ fit: BoxFit.cover, // this is the solution for border
+ width: 30.0,
+ height: 30.0,
+ )),
+ ),
+ GestureDetector(
+ onTap: () {
+ // animationController.forward();
+ }, // handle your image tap here
+ child: SvgPicture.asset('assets/images/robort_svg.svg'))
+ // new RawMaterialButton(
+ // // shape: new CircleBorder(),
+ // elevation: 1.0,
+ // child: SvgPicture.asset('assets/images/robort_svg.svg'),
+ // onPressed: () {},
+ // ),
+ ],
));
}
diff --git a/lib/widgets/robo-search/search.dart b/lib/widgets/robo-search/search.dart
index b6426b6d..c1ce33d1 100644
--- a/lib/widgets/robo-search/search.dart
+++ b/lib/widgets/robo-search/search.dart
@@ -30,7 +30,7 @@ class SearchBot with ChangeNotifier {
}
SearchProvider searchProvider = new SearchProvider();
- RobotProvider eventProvider = RobotProvider();
+ // RobotProvider eventProvider = RobotProvider();
bool isLoading = false;
bool isError = false;
final SpeechToText speech = SpeechToText();
@@ -203,19 +203,19 @@ class SearchBot with ChangeNotifier {
type: 1,
)));
break;
- case '103':
- eventProvider.setValue({"clinic_id": understand});
- break;
-
- case '104':
- eventProvider.setValue({"project_id": understand});
- break;
- case '105':
- eventProvider.setValue({"doctor_id": understand});
- break;
+ // case '103':
+ // eventProvider.setValue({"clinic_id": understand});
+ // break;
+
+ // case '104':
+ // eventProvider.setValue({"project_id": understand});
+ // break;
+ // case '105':
+ // eventProvider.setValue({"doctor_id": understand});
+ // break;
default:
{
- eventProvider.setValue({"doctor_id": '40036'});
+ //eventProvider.setValue({"doctor_id": '40036'});
//eventProvider.setValue();
// if (result['CommandNumber'] == '0') {
// searchProvider.setData(understand);
diff --git a/pubspec.yaml b/pubspec.yaml
index 9b9588fd..75d9b1fd 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -146,7 +146,9 @@ flutter:
- assets/images/login/
- assets/json/
- assets/sounds/
-
+ - assets/images/symptom.svg
+ - assets/images/robort_svg.svg
+
fonts:
- family: WorkSans