This commit is contained in:
Hamza Aleghwairyeen
2024-04-03 18:01:20 +03:00
parent a17ef6a7e6
commit 8370d3bd73
6 changed files with 186 additions and 80 deletions

View File

@@ -481,7 +481,7 @@ class MyTranslation extends Translations {
'Accept Order': "‏اقبل الطلب", 'Accept Order': "‏اقبل الطلب",
'reject your order.': "رفض طلبك.", 'reject your order.': "رفض طلبك.",
'Bottom Bar Example': "مثال لشريط الأسفل", 'Bottom Bar Example': "مثال لشريط الأسفل",
'Statistics': "الإحصائيات", 'Statistics': "الإحصائيات",'Available for rides':'‏مشاوير متاحة',
'Scan Id': "مسح الهوية", 'Scan Id': "مسح الهوية",
'Camera not initilaized yet': "الكاميرا لم تُثبت بعد", 'Camera not initilaized yet': "الكاميرا لم تُثبت بعد",
'Scan ID MklGoogle': "مسح هوية MklGoogle", 'Scan ID MklGoogle': "مسح هوية MklGoogle",

View File

@@ -0,0 +1,27 @@
import 'dart:convert';
import 'package:get/get.dart';
import '../../constant/links.dart';
import '../functions/crud.dart';
class RideAvailableController extends GetxController {
bool isLoading = false;
Map rideAvalibleMap = {};
getRideAvalible() async {
isLoading = true;
var res = await CRUD().get(link: AppLink.getRideWaiting, payload: {});
if (res != 'failure') {
rideAvalibleMap = jsonDecode(res);
print(rideAvalibleMap);
isLoading = false;
update();
}
}
@override
void onInit() {
getRideAvalible();
super.onInit();
}
}

View File

@@ -18,15 +18,15 @@ class HistoryCaptain extends StatelessWidget {
title: 'History Page'.tr, title: 'History Page'.tr,
body: [ body: [
GetBuilder<HistoryCaptainController>( GetBuilder<HistoryCaptainController>(
builder: (historyCaptainController) => Expanded( builder: (historyCaptainController) => historyCaptainController
child: historyCaptainController.isloading .isloading
? const MyCircularProgressIndicator() ? const MyCircularProgressIndicator()
: ListView.builder( : ListView.builder(
itemCount: historyCaptainController itemCount:
.historyData['message'].length, historyCaptainController.historyData['message'].length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
var list = historyCaptainController var list = historyCaptainController.historyData['message']
.historyData['message'][index]; [index];
return InkWell( return InkWell(
onTap: () { onTap: () {
list['status'] != 'Cancel' list['status'] != 'Cancel'
@@ -44,12 +44,10 @@ class HistoryCaptain extends StatelessWidget {
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Column( Column(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: [ children: [
Text( Text(
'OrderId'.tr, 'OrderId'.tr,
@@ -62,8 +60,7 @@ class HistoryCaptain extends StatelessWidget {
], ],
), ),
Column( Column(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: [ children: [
Text( Text(
'created time'.tr, 'created time'.tr,
@@ -78,14 +75,13 @@ class HistoryCaptain extends StatelessWidget {
Text( Text(
list['status'], list['status'],
style: list['status'] == 'Apply' style: list['status'] == 'Apply'
? AppStyle.title.copyWith( ? AppStyle.title
color: AppColor.greenColor) .copyWith(color: AppColor.greenColor)
: list['status'] == 'Refused' : list['status'] == 'Refused'
? AppStyle.title.copyWith( ? AppStyle.title.copyWith(
color: AppColor.redColor) color: AppColor.redColor)
: AppStyle.title.copyWith( : AppStyle.title.copyWith(
color: color: AppColor.yellowColor),
AppColor.yellowColor),
), ),
], ],
), ),
@@ -93,7 +89,6 @@ class HistoryCaptain extends StatelessWidget {
), ),
); );
}, },
),
)) ))
], ],
isleading: true, isleading: true,

View File

@@ -2,10 +2,9 @@ import 'package:SEFER/constant/api_key.dart';
import 'package:SEFER/constant/links.dart'; import 'package:SEFER/constant/links.dart';
import 'package:SEFER/constant/style.dart'; import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/home/captin/home_captain_controller.dart'; import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
import 'package:SEFER/views/notification/available_rides_page.dart';
import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:SEFER/views/widgets/mycircular.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_rating_bar/flutter_rating_bar.dart'; import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -145,6 +144,15 @@ class DrawerCaptain extends StatelessWidget {
// Handle history of trip item tap // Handle history of trip item tap
}, },
), ),
ListTile(
leading: const Icon(Icons.phonelink_ring_rounded),
title: Text('Available for rides'.tr),
onTap: () {
Get.to(() => const AvailableRidesPage(),
transition: Transition.rightToLeftWithFade);
// Handle history of trip item tap
},
),
ListTile( ListTile(
leading: const Icon(Icons.notifications), leading: const Icon(Icons.notifications),
title: Text('Notifications'.tr), title: Text('Notifications'.tr),

View File

@@ -399,8 +399,8 @@ class OrderRequestPage extends StatelessWidget {
); );
orderRequestController.addRideToNotificationDriverString( orderRequestController.addRideToNotificationDriverString(
myList[16].toString(), myList[16].toString(),
myList[0].toString(), myList[29].toString(),
myList[1].toString(), myList[30].toString(),
'${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}', '${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}',
'${DateTime.now().hour}:${DateTime.now().minute}', '${DateTime.now().hour}:${DateTime.now().minute}',
myList[2].toString(), myList[2].toString(),

View File

@@ -0,0 +1,76 @@
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/notification/ride_available_controller.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class AvailableRidesPage extends StatelessWidget {
const AvailableRidesPage({super.key});
@override
Widget build(BuildContext context) {
Get.put(RideAvailableController());
return GetBuilder<RideAvailableController>(
builder: (rideAvailableController) {
return MyScafolld(
title: 'Available for rides'.tr,
body: [
rideAvailableController.rideAvalibleMap['message'].length < 1
? ListView.builder(
itemCount: rideAvailableController
.rideAvalibleMap['message'].length,
itemBuilder: (BuildContext context, int index) {
var list = rideAvailableController
.rideAvalibleMap['message'][index];
return Container(
decoration: AppStyle.boxDecoration1,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(
'Price: ${list['start_location']}',
style: AppStyle.title,
),
Text(
'Price: ${list['end_location']}',
style: AppStyle.title,
),
const SizedBox(height: 4),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text('${'Price:'.tr}${list['price']} \$'),
const SizedBox(height: 4),
Text(
'${list['carType']}',
style: AppStyle.title
.copyWith(color: AppColor.greenColor),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text('📈 ${list['passengerRate']}',
style: AppStyle.title),
const SizedBox(height: 4),
Text(
'📍 ${list['distance']}${'KM'.tr}',
style: AppStyle.title
.copyWith(color: AppColor.greenColor),
),
],
)
],
),
);
})
: Center(
child: Text('text'),
)
],
isleading: true);
});
}
}