voice search

merge-update-with-lab-changes
Sultan Khan 5 years ago
parent 79502de682
commit 5c859034d6

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 97 KiB

@ -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<AllHabibMedicalService> {
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'),

@ -42,16 +42,16 @@ class _DoctorProfileState extends State<DoctorProfile>
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();

@ -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<SearchResults> {
var event = RobotProvider();
// var event = RobotProvider();
List<DoctorList> tempList = [];
@override
void initState() {
event.controller.stream.listen((p) {});
// event.controller.stream.listen((p) {});
super.initState();
}
@ -41,9 +41,13 @@ class _SearchResultsState extends State<SearchResults> {
...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,

@ -26,7 +26,7 @@ class _SearchByClinicState extends State<SearchByClinic> {
bool nearestAppo = false;
String dropdownValue;
String projectDropdownValue;
var event = RobotProvider();
// var event = RobotProvider();
List<ListClinicCentralized> clinicsList = [];
List<HospitalsModel> projectsList = [];
bool isMobileAppDentalAllow = false;

@ -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<LandingPage> 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<LandingPage> 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<LandingPage> with WidgetsBindingObserver {
);
}
triggerRobot() {
// event.setValue({"doctor_id": '40036'});
}
getText(currentTab) {
switch (currentTab) {
case 0:

File diff suppressed because one or more lines are too long

@ -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()
};

@ -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: <Widget>[
IconButton(
icon: Icon(FontAwesomeIcons.home),
color: Colors.white,
onPressed: () {
Navigator.of(context).popUntil(ModalRoute.withName('/'));
},
),
centerTitle: true,
actions: <Widget>[
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: <Widget>[body, buildAppLoaderWidget(isLoading)]);
// return body; //Stack(children: <Widget>[body, buildAppLoaderWidget(isLoading)]);
return Stack(children: <Widget>[body, FloatingSearchButton()]);
}
}

@ -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<FloatingSearchButton>
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: <Widget>[
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: () {},
// ),
],
));
}

@ -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);

@ -146,7 +146,9 @@ flutter:
- assets/images/login/
- assets/json/
- assets/sounds/
- assets/images/symptom.svg
- assets/images/robort_svg.svg
fonts:
- family: WorkSans

Loading…
Cancel
Save