This commit is contained in:
Hamza-Ayed
2024-03-01 00:23:50 +03:00
parent fbb3fe478c
commit ad062d9ad7
42 changed files with 2478 additions and 1485 deletions

View File

@@ -26,6 +26,6 @@ class PassengerLocationMapPage extends StatelessWidget {
const SosConnect(),
const GoogleMapApp(),
],
isleading: true);
isleading: false);
}
}

View File

@@ -1,4 +1,13 @@
import 'package:SEFER/constant/api_key.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
@@ -11,9 +20,17 @@ import 'package:SEFER/views/home/my_wallet/walet_captain.dart';
import 'package:SEFER/views/home/profile/profile_captain.dart';
import 'package:SEFER/views/notification/notification_captain.dart';
import '../../../../controller/functions/upload_image.dart';
class DrawerCaptain extends StatelessWidget {
ImageController imageController = Get.put(ImageController());
@override
Widget build(BuildContext context) {
String writeText(int times) {
return '*' * times;
}
return Drawer(
child: Column(
children: [
@@ -24,18 +41,84 @@ class DrawerCaptain extends StatelessWidget {
gradient: LinearGradient(
colors: [
AppColor.greenColor,
AppColor.yellowColor
], // Define your gradient colors
AppColor.yellowColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
),
accountName: Text(box.read(BoxName.nameDriver)),
accountEmail: Text(box.read(BoxName.emailDriver)),
currentAccountPicture: const CircleAvatar(
backgroundImage: AssetImage('path_to_profile_image'),
), //todo image from server
currentAccountPictureSize: const Size.square(100),
arrowColor: AppColor.deepPurpleAccent,
accountName: Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Row(
children: [
Text(
box.read(BoxName.nameDriver),
style: AppStyle.title,
),
const Spacer(),
Column(
children: [
Text(
Get.find<HomeCaptainController>().rating,
style: AppStyle.number.copyWith(color: Colors.amber),
),
Container(
// width: Get.width * .4,
padding: const EdgeInsets.symmetric(
horizontal: 4, vertical: 1),
color: AppColor.greenColor,
child: RatingBar.builder(
initialRating: double.parse(
Get.find<HomeCaptainController>().rating),
minRating: 1,
direction: Axis.horizontal,
itemCount: 5,
itemSize: 20,
itemPadding:
const EdgeInsets.symmetric(horizontal: 2),
itemBuilder: (context, _) => const Icon(
Icons.star,
color: Colors.amber,
),
onRatingUpdate: (rating) {}),
),
],
),
],
),
),
accountEmail: Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Text(
box.read(BoxName.emailDriver),
style: AppStyle.title,
),
),
currentAccountPicture: Stack(
children: [
GetBuilder<ImageController>(builder: (imageController) {
return imageController.isloading
? const MyCircularProgressIndicator()
: ClipOval(
child: Image.network(
'${AK.serverPHP}/portrate_captain_image/${box.read(BoxName.driverID)}.jpg'));
}),
Positioned(
right: 0,
top: 0,
child: IconButton(
onPressed: () {
imageController.choosImage(AppLink.uploadImage1);
},
icon: const Icon(Icons.edit),
),
),
],
),
),
ListTile(
leading: const Icon(Icons.account_balance_wallet),
title: Text('Wallet'.tr),

View File

@@ -27,7 +27,7 @@ class HomeCaptain extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(OrderRequestController());
Get.put(HomeCaptainController());
return Scaffold(
appBar: AppBar(
backgroundColor: AppColor.greenColor,
@@ -135,7 +135,7 @@ class HomeCaptain extends StatelessWidget {
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Entypo.wallet,
@@ -156,15 +156,19 @@ class HomeCaptain extends StatelessWidget {
style: AppStyle.title,
),
Container(
color: AppColor.greenColor,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6),
color: AppColor.greenColor,
),
child: Padding(
padding:
const EdgeInsets.symmetric(horizontal: 8),
padding: const EdgeInsets.symmetric(
horizontal: 8, vertical: 2),
child: Text(
'Ride Today :'.tr +
'Ride Today : '.tr +
Get.find<HomeCaptainController>()
.countRideToday,
style: AppStyle.title,
style: AppStyle.title
.copyWith(color: AppColor.secondaryColor),
),
),
),

View File

@@ -16,6 +16,7 @@ class GoogleDriverMap extends StatelessWidget {
@override
Widget build(BuildContext context) {
// Get.put(MapDriverController());
return Padding(
padding: const EdgeInsets.all(8.0),
child: GetBuilder<MapDriverController>(
@@ -24,11 +25,12 @@ class GoogleDriverMap extends StatelessWidget {
initialCameraPosition: CameraPosition(
// bearing: 45,
target: locationController.myLocation,
zoom: 15,
zoom: 16,
tilt: 40,
),
onCameraMoveStarted: () {},
onCameraMove: (position) {
locationController.myLocation = position.target;
// locationController.myLocation = position.target;
print(position);
},
minMaxZoomPreference: const MinMaxZoomPreference(6, 18),

View File

@@ -1,5 +1,7 @@
import 'package:SEFER/controller/functions/location_controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/colors.dart';
@@ -8,10 +10,12 @@ import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/home/captin/map_driver_controller.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../../../constant/style.dart';
import '../../../../controller/functions/launch.dart';
import '../../../../controller/home/captin/widget/call_page.dart';
import 'google_map_app.dart';
class PassengerInfoWindow extends StatelessWidget {
const PassengerInfoWindow({
@@ -87,6 +91,24 @@ class PassengerInfoWindow extends StatelessWidget {
Icons.email,
color: AppColor.redColor,
)),
const SizedBox(
width: 25,
),
Container(
decoration:
AppStyle.boxDecoration,
child: IconButton(
onPressed: () {
controller
.openGoogleMapFromDriverToPassenger();
},
icon: const Icon(
MaterialCommunityIcons
.map_marker_radius,
size: 35,
color: AppColor.blueColor,
),
)),
],
),
],
@@ -165,7 +187,7 @@ class PassengerInfoWindow extends StatelessWidget {
60
? AppColor.redColor
: AppColor.greenColor,
minHeight: 50,
minHeight: 35,
borderRadius: BorderRadius.circular(15),
value: controller.progressToPassenger
.toDouble(),

View File

@@ -1,4 +1,8 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/controller/profile/setting_controller.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/views/lang/languages.dart';
@@ -9,6 +13,7 @@ class SettingsCaptain extends StatelessWidget {
@override
Widget build(BuildContext context) {
Get.put(SettingController());
return MyScafolld(
title: 'Settings'.tr,
body: [
@@ -20,14 +25,39 @@ class SettingsCaptain extends StatelessWidget {
'Language'.tr,
style: AppStyle.headTitle2,
),
subtitle: Text('you can change languge of app'.tr),
onTap: () => Get.to(const Language()),
),
// ListTile(
// leading: const Icon(Icons.notifications),
// title: const Text('Notifications'),
// onTap: () =>
// Navigator.pushNamed(context, '/notification-settings'),
// ),
const Divider(
endIndent: 44,
indent: 44,
),
ListTile(
leading: const Icon(
MaterialCommunityIcons.map_marker_radius,
color: AppColor.redColor,
),
title: Text(
'Google Map App'.tr,
style: AppStyle.headTitle2,
),
subtitle: Text(
'If you want to make Google Map App run dirctly when you apply order'
.tr),
trailing:
GetBuilder<SettingController>(builder: (settingController) {
return CupertinoSwitch(
value: settingController.isGoogleMapsEnabled,
onChanged: (bool value) {
settingController.onChangMapApp();
},
);
}),
),
const Divider(
endIndent: 44,
indent: 44,
),
// ListTile(
// leading: const Icon(Icons.account_circle),
// title: const Text('Account'),