9/17/1
This commit is contained in:
@@ -15,6 +15,7 @@ import '../../controller/home/menu_controller.dart';
|
||||
import 'map_widget.dart/buttom_sheet_map_show.dart';
|
||||
import 'map_widget.dart/cash_confirm_bottom_page.dart';
|
||||
import 'map_widget.dart/driver_card_from_passenger.dart';
|
||||
import 'map_widget.dart/driver_time_arrive_passenger.dart';
|
||||
import 'map_widget.dart/left_main_menu_icons.dart';
|
||||
import 'map_widget.dart/main_bottom_Menu_map.dart';
|
||||
import 'map_widget.dart/map_menu_widget.dart';
|
||||
@@ -285,6 +286,7 @@ class MapPage extends StatelessWidget {
|
||||
const CashConfirmPageShown(),
|
||||
const PaymentMethodPage(),
|
||||
timerForCancellTripFromPassenger(),
|
||||
const DriverTimeArrivePassenger(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -20,35 +20,15 @@ GetBuilder<MapController> hexagonClipper() {
|
||||
duration: const Duration(microseconds: 300),
|
||||
height: 250,
|
||||
width: 250,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.primaryColor.withOpacity(0.25),
|
||||
blurRadius: 4,
|
||||
spreadRadius: 2,
|
||||
offset: const Offset(0, 4),
|
||||
),
|
||||
BoxShadow(
|
||||
color: AppColor.accentColor.withOpacity(0.5),
|
||||
offset: const Offset(-5, -5),
|
||||
blurRadius: 5,
|
||||
spreadRadius: 2,
|
||||
),
|
||||
BoxShadow(
|
||||
color: AppColor.secondaryColor.withOpacity(0.2),
|
||||
offset: const Offset(5, 5),
|
||||
blurRadius: 5,
|
||||
spreadRadius: 2,
|
||||
),
|
||||
],
|
||||
gradient: const LinearGradient(
|
||||
colors: [AppColor.greenColor, AppColor.secondaryColor],
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
border: Border.all(),
|
||||
color: AppColor.secondaryColor,
|
||||
borderRadius: BorderRadius.circular(15)),
|
||||
decoration: AppStyle.boxDecoration(),
|
||||
// gradient: const LinearGradient(
|
||||
// colors: [AppColor.greenColor, AppColor.secondaryColor],
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomCenter,
|
||||
// ),
|
||||
// border: Border.all(),
|
||||
// color: AppColor.secondaryColor,
|
||||
// borderRadius: BorderRadius.circular(15)),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:ride/views/home/map_widget.dart/hexegone_clipper.dart';
|
||||
|
||||
import '../../../constant/style.dart';
|
||||
import '../../../controller/home/map_page_controller.dart';
|
||||
|
||||
class DriverTimeArrivePassenger extends StatelessWidget {
|
||||
const DriverTimeArrivePassenger({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GetBuilder<MapController>(
|
||||
builder: (controller) {
|
||||
return controller.remainingTime == 0
|
||||
? Positioned.directional(
|
||||
bottom: Get.height * .35,
|
||||
end: Get.width * .05,
|
||||
textDirection: Get.locale!.languageCode == 'ar'
|
||||
? TextDirection.rtl
|
||||
: TextDirection.ltr,
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Container(
|
||||
decoration: AppStyle.boxDecoration(),
|
||||
// width: 50,
|
||||
// height: 50,
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.only(
|
||||
start: 5, end: 5),
|
||||
child: Text(
|
||||
controller.duratioByPassenger.toString(),
|
||||
style: AppStyle.title,
|
||||
),
|
||||
))
|
||||
],
|
||||
),
|
||||
)
|
||||
: const SizedBox();
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -34,3 +34,19 @@ class HexagonClipper extends CustomClipper<Path> {
|
||||
@override
|
||||
bool shouldReclip(HexagonClipper oldClipper) => false;
|
||||
}
|
||||
|
||||
class ArrowClipper extends CustomClipper<Path> {
|
||||
@override
|
||||
Path getClip(Size size) {
|
||||
final path = Path();
|
||||
path.moveTo(0, size.height / 2);
|
||||
path.lineTo(size.width / 2, 0);
|
||||
path.lineTo(size.width, size.height / 2);
|
||||
path.lineTo(size.width / 2, size.height);
|
||||
path.close();
|
||||
return path;
|
||||
}
|
||||
|
||||
@override
|
||||
bool shouldReclip(ArrowClipper oldClipper) => false;
|
||||
}
|
||||
|
||||
@@ -32,23 +32,7 @@ class MapMenuWidget extends StatelessWidget {
|
||||
opacity: 1, // Adjust the opacity value as needed
|
||||
child: AnimatedContainer(
|
||||
width: Get.width * .6,
|
||||
decoration: const BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(12)),
|
||||
color: AppColor.secondaryColor,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: AppColor.accentColor,
|
||||
offset: Offset(-3, -3),
|
||||
blurRadius: 0,
|
||||
spreadRadius: 0,
|
||||
blurStyle: BlurStyle.outer),
|
||||
BoxShadow(
|
||||
color: AppColor.accentColor,
|
||||
offset: Offset(3, 3),
|
||||
blurRadius: 0,
|
||||
spreadRadius: 0,
|
||||
blurStyle: BlurStyle.outer)
|
||||
]),
|
||||
decoration: AppStyle.boxDecoration(),
|
||||
transform: Matrix4.translationValues(
|
||||
controller.heightMenu * .1, 1, 1),
|
||||
curve: Curves.easeOutCubic,
|
||||
|
||||
@@ -10,9 +10,9 @@ GetBuilder<MapController> timerForCancellTripFromPassenger() {
|
||||
final isNearEnd =
|
||||
controller.remainingTime <= 5; // Define a threshold for "near end"
|
||||
|
||||
return controller.shouldFetch == false
|
||||
return controller.remainingTime > 0 && controller.remainingTime != 25
|
||||
? Positioned(
|
||||
bottom: Get.height * .3,
|
||||
bottom: Get.height * .35,
|
||||
left: Get.width * .05,
|
||||
child: Stack(
|
||||
alignment: Alignment.center,
|
||||
|
||||
@@ -4,11 +4,13 @@ import 'package:get/get.dart';
|
||||
import 'package:ride/constant/links.dart';
|
||||
import 'package:ride/constant/style.dart';
|
||||
import 'package:ride/controller/functions/crud.dart';
|
||||
import 'package:ride/controller/functions/toast.dart';
|
||||
import 'package:ride/controller/payment/payment_controller.dart';
|
||||
import 'package:ride/views/widgets/my_scafold.dart';
|
||||
import 'package:flutter_paypal/flutter_paypal.dart';
|
||||
import '../../../constant/box_name.dart';
|
||||
import '../../../constant/colors.dart';
|
||||
import '../../../constant/info.dart';
|
||||
import '../../../controller/functions/secure_storage.dart';
|
||||
import '../../../controller/home/payment/credit_card_Controller.dart';
|
||||
import '../../../main.dart';
|
||||
@@ -57,10 +59,17 @@ class PassengerWallet extends StatelessWidget {
|
||||
]),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
child: Text(
|
||||
'You Have ${box.read(BoxName.passengerWalletTotal).toString()} JD in SEFER Wallet',
|
||||
style: AppStyle.title,
|
||||
),
|
||||
child:
|
||||
box.read(BoxName.passengerWalletTotal) == null
|
||||
? Text(
|
||||
'You Dont Have Any amount in ${AppInfo.appName} Wallet!'
|
||||
.tr,
|
||||
style: AppStyle.title,
|
||||
)
|
||||
: Text(
|
||||
'You Have ${box.read(BoxName.passengerWalletTotal).toString()} JD in ${AppInfo.appName} Wallet',
|
||||
style: AppStyle.title,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -306,94 +315,112 @@ class PassengerWallet extends StatelessWidget {
|
||||
MyElevatedButton(
|
||||
title: 'Pay with Your PayPal',
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
UsePaypal(
|
||||
sandboxMode: true,
|
||||
clientId:
|
||||
"AW1TdvpSGbIM5iP4HJNI5TyTmwpY9Gv9dYw8_8yW5lYIbCqf326vrkrp0ce9TAqjEGMHiV3OqJM_aRT0",
|
||||
secretKey:
|
||||
"EHHtTDjnmTZATYBPiGzZC_AZUfMpMAzj2VZUeqlFUrRJA_C0pQNCxDccB5qoRQSEdcOnnKQhycuOWdP9",
|
||||
returnURL:
|
||||
"https://samplesite.com/return",
|
||||
cancelURL:
|
||||
"https://samplesite.com/cancel",
|
||||
transactions: [
|
||||
{
|
||||
"amount": {
|
||||
//sb-opsju26682403@personal.example.com
|
||||
"total":
|
||||
'${controller.selectedAmount}',
|
||||
"currency": "USD",
|
||||
"details": {
|
||||
"subtotal":
|
||||
if (controller.selectedAmount != 0) {
|
||||
print(controller.selectedAmount);
|
||||
controller.changePromoSheetDialogue();
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
UsePaypal(
|
||||
sandboxMode: true,
|
||||
clientId:
|
||||
"AW1TdvpSGbIM5iP4HJNI5TyTmwpY9Gv9dYw8_8yW5lYIbCqf326vrkrp0ce9TAqjEGMHiV3OqJM_aRT0",
|
||||
secretKey:
|
||||
"EHHtTDjnmTZATYBPiGzZC_AZUfMpMAzj2VZUeqlFUrRJA_C0pQNCxDccB5qoRQSEdcOnnKQhycuOWdP9",
|
||||
returnURL:
|
||||
"https://samplesite.com/return",
|
||||
cancelURL:
|
||||
"https://samplesite.com/cancel",
|
||||
transactions: [
|
||||
{
|
||||
"amount": {
|
||||
//sb-opsju26682403@personal.example.com
|
||||
"total":
|
||||
'${controller.selectedAmount}',
|
||||
"shipping": '0',
|
||||
"shipping_discount": 0
|
||||
}
|
||||
},
|
||||
"description":
|
||||
"The payment transaction description.",
|
||||
"payment_options": const {
|
||||
"allowed_payment_method":
|
||||
"INSTANT_FUNDING_SOURCE"
|
||||
},
|
||||
"item_list": {
|
||||
"items": [
|
||||
{
|
||||
"name": "Sefer Wallet ",
|
||||
"quantity": 1,
|
||||
"price":
|
||||
"currency": "USD",
|
||||
"details": {
|
||||
"subtotal":
|
||||
'${controller.selectedAmount}',
|
||||
"currency": "USD"
|
||||
"shipping": '0',
|
||||
"shipping_discount": 0
|
||||
}
|
||||
],
|
||||
|
||||
// shipping address is not required though
|
||||
"shipping_address": const {
|
||||
"recipient_name":
|
||||
"SEFER Wallet",
|
||||
"line1": "Shafa Badran",
|
||||
"line2": "",
|
||||
"city": "Amman",
|
||||
"country_code": "JO",
|
||||
"postal_code": "13112",
|
||||
"phone": "+962798583052",
|
||||
"state": "Amman"
|
||||
},
|
||||
"description":
|
||||
"The payment transaction description.",
|
||||
"payment_options": const {
|
||||
"allowed_payment_method":
|
||||
"INSTANT_FUNDING_SOURCE"
|
||||
},
|
||||
"item_list": {
|
||||
"items": [
|
||||
{
|
||||
"name":
|
||||
"${AppInfo.appName} Wallet ",
|
||||
"quantity": 1,
|
||||
"price":
|
||||
'${controller.selectedAmount}',
|
||||
"currency": "USD"
|
||||
}
|
||||
],
|
||||
|
||||
// shipping address is not required though
|
||||
"shipping_address": const {
|
||||
"recipient_name":
|
||||
"${AppInfo.appName} Wallet",
|
||||
"line1": "Shafa Badran",
|
||||
"line2": "",
|
||||
"city": "Amman",
|
||||
"country_code": "JO",
|
||||
"postal_code": "13112",
|
||||
"phone": "+962798583052",
|
||||
"state": "Amman"
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
note:
|
||||
"Contact us for any questions on your order.",
|
||||
onSuccess: (Map params) async {
|
||||
print("onSuccess: $params");
|
||||
await CRUD().post(
|
||||
link: AppLink
|
||||
.addPassengersWallet,
|
||||
payload: {
|
||||
'passenger_id': box
|
||||
.read(
|
||||
BoxName.pasengerID)
|
||||
.toString(),
|
||||
'balance': controller
|
||||
.selectedAmount
|
||||
.toString()
|
||||
});
|
||||
controller
|
||||
.changePromoSheetDialogue();
|
||||
await controller
|
||||
.getPassengerWallet();
|
||||
},
|
||||
onError: (error) {
|
||||
print("onError: $error");
|
||||
},
|
||||
onCancel: (params) {
|
||||
print('cancelled: $params');
|
||||
}),
|
||||
),
|
||||
);
|
||||
],
|
||||
note:
|
||||
"Contact us for any questions on your order.",
|
||||
onSuccess: (Map params) async {
|
||||
print("onSuccess: $params");
|
||||
await CRUD().post(
|
||||
link: AppLink
|
||||
.addPassengersWallet,
|
||||
payload: {
|
||||
'passenger_id': box
|
||||
.read(BoxName
|
||||
.pasengerID)
|
||||
.toString(),
|
||||
'balance': controller
|
||||
.selectedAmount
|
||||
.toString()
|
||||
});
|
||||
controller
|
||||
.changePromoSheetDialogue();
|
||||
await controller
|
||||
.getPassengerWallet();
|
||||
},
|
||||
onError: (error) {
|
||||
print("onError: $error");
|
||||
Toast.show(
|
||||
context,
|
||||
' $error'.tr,
|
||||
AppColor.redColor);
|
||||
},
|
||||
onCancel: (params) {
|
||||
print('cancelled: $params');
|
||||
Toast.show(
|
||||
context,
|
||||
'Pyament Cancelled .'.tr,
|
||||
AppColor.yellowColor);
|
||||
}),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
Toast.show(
|
||||
context,
|
||||
'You will choose one of above !'.tr,
|
||||
AppColor.redColor);
|
||||
}
|
||||
// controller.changePromoSheetDialogue();
|
||||
// Get.to(() {
|
||||
// UsePaypal(
|
||||
|
||||
@@ -197,8 +197,21 @@ class OrderRequestPage extends StatelessWidget {
|
||||
MyElevatedButton(
|
||||
title: 'Refuse Order'.tr,
|
||||
onPressed: () async {
|
||||
List<String> bodyToPassenger = [
|
||||
box.read(BoxName.driverID).toString(),
|
||||
box.read(BoxName.nameDriver).toString(),
|
||||
box.read(BoxName.tokenDriver).toString(),
|
||||
];
|
||||
timerController.refuseOrder(
|
||||
myList[6].toString(), body.toString());
|
||||
FirebasMessagesController()
|
||||
.sendNotificanToPassengerToken(
|
||||
'Refused Ride',
|
||||
arguments['DriverList'][9].toString(),
|
||||
arguments['DriverList'][9].toString(),
|
||||
// box.read(BoxName.tokenDriver).toString(),
|
||||
bodyToPassenger,
|
||||
);
|
||||
},
|
||||
kolor: AppColor.redColor,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user