This commit is contained in:
Hamza-Ayed
2023-12-10 00:01:36 +03:00
parent db3123320b
commit ba90f96e77
24 changed files with 465 additions and 184 deletions

View File

@@ -41,11 +41,8 @@ class SosConnect extends StatelessWidget {
onTap: () {
launchCommunication(
'whatsapp',
'962' +
box.read(BoxName
.phoneDriver), //todo add number from driver
'Hello this is Captain'.tr +
' ${box.read(BoxName.nameDriver)}');
'+962${box.read(BoxName.phoneDriver)}', //todo add number from driver
'${'Hello this is Captain'.tr} ${box.read(BoxName.nameDriver)}');
},
child: const Icon(
FontAwesome.whatsapp,

View File

@@ -11,7 +11,7 @@ import 'map_widget.dart/cash_confirm_bottom_page.dart';
import 'map_widget.dart/driver_card_from_passenger.dart';
import 'map_widget.dart/google_map_passenger_widget.dart';
import 'map_widget.dart/left_main_menu_icons.dart'; //Ml@6Pt@11
import 'map_widget.dart/main_bottom_Menu_map.dart';
import 'map_widget.dart/main_bottom_menu_map.dart';
import 'map_widget.dart/map_menu_widget.dart';
import 'map_widget.dart/menu_map_page.dart';
import 'map_widget.dart/payment_method.page.dart';
@@ -99,17 +99,19 @@ class PickerIconOnMap extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned(
bottom: 0,
top: 0,
left: 0,
right: 0,
child: controller.isPickerShown
? const Icon(
Icons.add_location,
color: Colors.purple,
)
: const SizedBox(),
));
builder: (controller) => controller.isPickerShown
? Positioned(
bottom: 0,
top: 0,
left: 0,
right: 0,
child: controller.isPickerShown
? const Icon(
Icons.add_location,
color: Colors.purple,
)
: const SizedBox(),
)
: const SizedBox());
}
}

View File

@@ -21,8 +21,16 @@ GetBuilder<MapPassengerController> formSearchPlaces() {
const BoxDecoration(color: AppColor.secondaryColor),
child: TextField(
decoration: InputDecoration(
border: const OutlineInputBorder(
borderRadius: BorderRadius.only(),
gapPadding: 4,
borderSide: BorderSide(
color: AppColor.redColor,
width: 2,
)),
suffixIcon: const Icon(Icons.search),
hintText: 'Type here Place'.tr,
hintText: 'Search for your destination'.tr,
hintStyle: AppStyle.title,
hintMaxLines: 1,
prefixIcon: IconButton(
onPressed: () {
@@ -46,6 +54,19 @@ GetBuilder<MapPassengerController> formSearchPlaces() {
),
),
),
controller.places.isEmpty
? InkWell(
onTap: () {
controller.changeMainBottomMenuMap();
controller.changePickerShown();
},
child: Text(
'Choose from Map'.tr,
style:
AppStyle.title.copyWith(color: AppColor.blueColor),
),
)
: const SizedBox(),
Container(
height: controller.places.isNotEmpty ? controller.height : 0,
color: AppColor.secondaryColor,
@@ -60,6 +81,7 @@ GetBuilder<MapPassengerController> formSearchPlaces() {
title:
'${'Are You sure to ride to'.tr} ${res['name']}',
middleText: '',
titleStyle: AppStyle.title,
confirm: MyElevatedButton(
title: 'Confirm'.tr,
onPressed: () async {

View File

@@ -1,4 +1,3 @@
import 'package:animated_text_kit/animated_text_kit.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
@@ -67,80 +66,139 @@ class MainBottomMenuMap extends StatelessWidget {
child: DefaultTextStyle(
style: AppStyle.title,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
height: 30,
child: Text(
'${'Where to'.tr} ${box.read(BoxName.name)}')
// AnimatedTextKit(
// animatedTexts: [
// ScaleAnimatedText(
// '${'Where to'.tr} ${box.read(BoxName.name)}'),
// // WavyAnimatedText(
// // '${'Where to'.tr} ${box.read(BoxName.name)}'),
// // FlickerAnimatedText(
// // '${'Where to'.tr} ${box.read(BoxName.name)}'),
// // WavyAnimatedText(
// // '${'Where to'.tr} ${box.read(BoxName.name)}'),
// ],
// isRepeatingAnimation: true,
// onTap: () {
// print("Tap Event");
// },
// ),
child: controller.isPickerShown
? TextButton(
onPressed: () async {
controller.clearPolyline();
controller.data = [];
await controller.getMap(
'${controller.myLocation.latitude},${controller.myLocation.longitude}',
'${controller.newMyLocation.latitude},${controller.newMyLocation.longitude}',
);
controller.places = [];
controller.placeController.clear();
controller.showBottomSheet1();
Get.back();
controller.showBottomSheet1();
// controller.changeMainBottomMenuMap();
},
child: Row(
children: [
IconButton(
onPressed: () {
controller
.changeMainBottomMenuMap();
},
icon:
controller.isMainBottomMenuMap
? const Icon(
Icons
.arrow_circle_up_rounded,
size: 35,
)
: const Icon(
Icons
.arrow_circle_down_rounded,
size: 35,
),
),
Text(
"Click here to go to this location"
.tr,
style: AppStyle.title,
),
],
),
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
controller.noCarString == false
? Text(
'Nearest Car for you about '.tr)
: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(12),
color: AppColor.redColor,
),
child: Padding(
padding:
const EdgeInsets.all(6),
child: Text(
'No Car in your site. Sorry!'
.tr,
style: AppStyle.title
.copyWith(
color: AppColor
.secondaryColor),
)
: Column(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
SizedBox(
height: 30,
child: Row(
children: [
IconButton(
onPressed: () {
controller
.changeMainBottomMenuMap();
},
icon: controller
.isMainBottomMenuMap
? const Icon(
Icons
.arrow_circle_up_rounded,
size: 35,
)
: const Icon(
Icons
.arrow_circle_down_rounded,
size: 35,
),
),
),
Text(
'${'Where to'.tr} ${box.read(BoxName.name)}'),
],
)),
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
const SizedBox(
width: 10,
),
controller.noCarString == false
? Container(
decoration: BoxDecoration(
border: Border.all(
controller.noCarString == false
? Text(
'Nearest Car for you about '
.tr)
: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius
.circular(12),
color:
AppColor.redColor,
width: 3)),
child: Padding(
padding:
const EdgeInsets.all(4),
child: Text((controller
.nearestCar !=
null
? controller
.durationByPassenger
.toString()
: 'N/A')),
),
)
: const SizedBox(),
],
)
],
),
),
child: Padding(
padding:
const EdgeInsets
.all(6),
child: Text(
'No Car in your site. Sorry!'
.tr,
style: AppStyle.title
.copyWith(
color: AppColor
.secondaryColor),
),
),
),
controller.noCarString == false
? Container(
decoration: BoxDecoration(
border: Border.all(
color: AppColor
.redColor,
width: 3)),
child: Padding(
padding:
const EdgeInsets
.all(4),
child: Text((controller
.nearestCar !=
null
? controller
.durationByPassenger
.toString()
: 'N/A')),
),
)
: const SizedBox(),
],
)
],
),
),
)),
),

View File

@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:get/get_rx/src/rx_typedefs/rx_typedefs.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/views/auth/captin/register_captin.dart';
import 'package:ride/views/home/my_wallet/passenger_wallet.dart';
import 'package:ride/views/home/profile/feed_back_page.dart';
import 'package:ride/views/home/profile/order_history.dart';
@@ -159,9 +161,11 @@ class MapMenuWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
IconMainPageMap(
onTap: () {},
title: 'Settings',
icon: Icons.settings,
onTap: () {
Get.to(const RegisterCaptin());
},
title: 'Captain',
icon: WeatherIcons.wi_moon_14,
),
IconMainPageMap(
onTap: () {

View File

@@ -126,7 +126,7 @@ class MyCreditCardWidget extends StatelessWidget {
Get.put(CreditCardController());
return GetBuilder<CreditCardController>(
builder: (controller) => Container(
height: Get.height * .35,
height: Get.height * .4,
width: Get.width * .9,
decoration: const BoxDecoration(
color: AppColor.secondaryColor,
@@ -344,6 +344,9 @@ class MyCreditCardWidget extends StatelessWidget {
),
],
),
// const SizedBox(
// height: 20,
// ),
MyElevatedButton(
title: 'Save'.tr,
onPressed: () {

View File

@@ -150,7 +150,7 @@ class RideBeginPassenger extends StatelessWidget {
}));
} else {
controller.sendWhatsapp(
box.read(BoxName.sosPhonePassenger));
box.read(BoxName.sosPhonePassenger).toString());
}
},
icon: const Icon(

View File

@@ -78,37 +78,37 @@ class PassengerWallet extends StatelessWidget {
const SizedBox(
height: 10,
),
GetBuilder<CreditCardController>(
builder: (creditCardController) => Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MyElevatedButton(
title: 'Save Credit Card'.tr,
onPressed: () async {
if (controller.formKey.currentState!
.validate()) {
SecureStorage().saveData(
BoxName.cardNumber,
creditCardController
.cardNumberController.text);
SecureStorage().saveData(
BoxName.cardHolderName,
creditCardController
.cardHolderNameController.text);
SecureStorage().saveData(
BoxName.cvvCode,
creditCardController
.cvvCodeController.text);
SecureStorage().saveData(
BoxName.expiryDate,
creditCardController
.expiryDateController.text);
}
},
),
],
)),
// MyElevatedButton(
// GetBuilder<CreditCardController>(
// builder: (creditCardController) => Row(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// MyElevatedButton(
// title: 'Save Credit Card'.tr,
// onPressed: () async {
// if (controller.formKey.currentState!
// .validate()) {
// SecureStorage().saveData(
// BoxName.cardNumber,
// creditCardController
// .cardNumberController.text);
// SecureStorage().saveData(
// BoxName.cardHolderName,
// creditCardController
// .cardHolderNameController.text);
// SecureStorage().saveData(
// BoxName.cvvCode,
// creditCardController
// .cvvCodeController.text);
// SecureStorage().saveData(
// BoxName.expiryDate,
// creditCardController
// .expiryDateController.text);
// }
// },
// ),
// ],
// )),
// // MyElevatedButton(
// title: 'Charge your Wallet',
// onPressed: () {
// Get.defaultDialog(
@@ -197,7 +197,23 @@ class PassengerWallet extends StatelessWidget {
},
),
)),
PassengerWalletDialoge()
PassengerWalletDialoge(),
GetBuilder<PaymentController>(
builder: (controller) => Positioned(
top: 440,
right: 100,
left: 100,
child: Column(
children: [
MyElevatedButton(
title: 'createConnectAccount',
onPressed: () {
controller.createConnectAccount();
},
),
],
),
))
],
);
}

View File

@@ -57,7 +57,7 @@ class PassengerWalletDialoge extends StatelessWidget {
},
),
Text(
'10 and get 4% discount'.tr,
'10\$ and get 3% discount'.tr,
style: AppStyle.title,
),
],
@@ -78,7 +78,7 @@ class PassengerWalletDialoge extends StatelessWidget {
},
),
Text(
'20 and get 6% discount'.tr,
'20\$ and get 4% discount'.tr,
style: AppStyle.title,
),
],
@@ -98,7 +98,7 @@ class PassengerWalletDialoge extends StatelessWidget {
},
),
Text(
'40 and get 8% discount'.tr,
'40\$ and get 6% discount'.tr,
style: AppStyle.title,
),
],
@@ -118,7 +118,7 @@ class PassengerWalletDialoge extends StatelessWidget {
},
),
Text(
'100 and get 11% discount'.tr,
'100\$ and get 9% discount'.tr,
style: AppStyle.title,
),
],
@@ -142,9 +142,12 @@ class PassengerWalletDialoge extends StatelessWidget {
onPressed: () {
if (controller.selectedAmount != 0) {
controller.makePaymentStripe(
controller.selectedAmount as int,
'USD',
() => controller.addPassengerWallet());
controller.selectedAmount as int, 'USD',
() {
controller.addPassengerWallet();
controller.changePromoSheetDialogue();
controller.getPassengerWallet();
});
} else {
Toast.show(
context,

View File

@@ -1,13 +1,15 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/home/payment/captain_wallet_controller.dart';
import 'package:ride/controller/home/payment/credit_card_controller.dart';
import 'package:ride/views/home/map_widget.dart/payment_method.page.dart';
import 'package:ride/controller/payment/payment_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import 'package:ride/views/widgets/mycircular.dart';
import '../../../controller/payment/payment_controller.dart';
import '../../widgets/my_scafold.dart';
import 'points_captain.dart';
@@ -88,6 +90,33 @@ class WaletCaptain extends StatelessWidget {
),
],
)),
const SizedBox(
height: 30,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MyElevatedButton(
title: 'Create Wallet to recive your money',
onPressed: () async {
PaymentController paymentController =
Get.find<PaymentController>();
paymentController.createConnectAccount();
}),
],
),
TextButton(
onPressed: () async {
PaymentController paymentController =
Get.put(PaymentController());
await paymentController.createTransactionToCaptain(
'1000',
box.read(BoxName.accountIdStripeConnect));
},
child: const Text(
"Pay to Captain",
),
)
],
),
))

View File

@@ -58,14 +58,12 @@ class OrderHistory extends StatelessWidget {
onTap: () {
String mapUrl =
'https://www.google.com/maps/dir/${rides['start_location']}/${rides['end_location']}/';
print(mapUrl);
// print(mapUrl);
launchUrl1(mapUrl);
},
child: Column(
children: [
Text(rides['start_location']),
Text(rides['end_location']),
],
child: Text(
'Click here to Show it in Map',
style: AppStyle.title,
),
),
Column(
@@ -81,12 +79,13 @@ class OrderHistory extends StatelessWidget {
Text(
rides['status'],
style: rides['status'] != 'Canceled'
? AppStyle.subtitle
? AppStyle.subtitle.copyWith(
color: AppColor.greenColor)
: AppStyle.subtitle
.copyWith(color: AppColor.redColor),
),
Text(
rides['price'],
'Price is ${rides['price']}',
style: AppStyle.subtitle,
),
],

View File

@@ -20,11 +20,6 @@ class PassengerProfilePage extends StatelessWidget {
Get.put(ProfileController());
return MyScafolld(
isleading: true,
action: MyElevatedButton(
title: 'Delete My Account'.tr,
onPressed: () {
LogOut().deleteMyAccount(box.read(BoxName.passengerID).toString());
}),
title: 'My Profile'.tr,
body: [
GetBuilder<ProfileController>(
@@ -184,6 +179,7 @@ class PassengerProfilePage extends StatelessWidget {
controller.prfoileData['sosPhone']);
},
),
// const Spacer(),
],
),
),
@@ -191,13 +187,24 @@ class PassengerProfilePage extends StatelessWidget {
)),
Positioned(
left: 70,
bottom: 5,
bottom: 240,
right: 70,
child: MyElevatedButton(
title: 'Sign Out'.tr,
onPressed: () {
LogOut().logOut();
}),
),
Positioned(
left: 70,
bottom: 140,
right: 70,
child: MyElevatedButton(
title: 'Delete My Account'.tr,
onPressed: () {
LogOut()
.deleteMyAccount(box.read(BoxName.passengerID).toString());
}),
)
],
);

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import '../../constant/box_name.dart';
import '../../main.dart';
@@ -29,18 +30,8 @@ class NotificationPage extends StatelessWidget {
),
body: [
Container(
color: AppColor.accentColor.withOpacity(.7),
decoration: AppStyle.boxDecoration,
),
Positioned(
top: 100,
bottom: 100,
left: 50,
right: 50,
child: Container(
height: Get.height * .6,
color: AppColor.secondaryColor,
),
)
],
);
}