6/5/1
This commit is contained in:
@@ -55,8 +55,8 @@ android {
|
|||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdkVersion 22
|
minSdkVersion 22
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode 28
|
versionCode 30
|
||||||
versionName '1.4.93'
|
versionName '1.5.30'
|
||||||
// manifestPlaceholders = [mapsApiKey: 'android/app/src/main/AndroidManifest.xml']
|
// manifestPlaceholders = [mapsApiKey: 'android/app/src/main/AndroidManifest.xml']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>31</string>
|
<string>32</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>4.0.02</string>
|
<string>4.0.32</string>
|
||||||
<key>FirebaseAppDelegateProxyEnabled</key>
|
<key>FirebaseAppDelegateProxyEnabled</key>
|
||||||
<string>NO</string>
|
<string>NO</string>
|
||||||
<key>GMSApiKey</key>
|
<key>GMSApiKey</key>
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ class BoxName {
|
|||||||
static const String durationData = 'durationData';
|
static const String durationData = 'durationData';
|
||||||
static const String rideStaticDriverData = 'rideStaticDriverData';
|
static const String rideStaticDriverData = 'rideStaticDriverData';
|
||||||
static const String lastTimeStaticThrottle = 'lastTimeStaticThrottle';
|
static const String lastTimeStaticThrottle = 'lastTimeStaticThrottle';
|
||||||
|
static const String lastTimeCaptainWalletCashOut =
|
||||||
|
'lastTimeCaptainWalletCashOut';
|
||||||
static const String tipPercentage = 'tipPercentage';
|
static const String tipPercentage = 'tipPercentage';
|
||||||
static const String accountIdStripeConnect = "accountIdStripeConnect";
|
static const String accountIdStripeConnect = "accountIdStripeConnect";
|
||||||
static const String faceDetectTimes = "faceDetectTimes";
|
static const String faceDetectTimes = "faceDetectTimes";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ class AppColor {
|
|||||||
static const Color primaryColor = Colors.black; // Slightly softer red
|
static const Color primaryColor = Colors.black; // Slightly softer red
|
||||||
static const Color secondaryColor = Color.fromARGB(255, 255, 255, 255);
|
static const Color secondaryColor = Color.fromARGB(255, 255, 255, 255);
|
||||||
static const Color accentColor =
|
static const Color accentColor =
|
||||||
Color.fromARGB(255, 185, 169, 169); // Google Green
|
Color.fromARGB(255, 231, 84, 84); // Google Green
|
||||||
static const Color backgroundColor =
|
static const Color backgroundColor =
|
||||||
Color(0xFFF5F5F5); // Light grey background
|
Color(0xFFF5F5F5); // Light grey background
|
||||||
static const Color redColor = Color(0xFFEA4335); // Google Red
|
static const Color redColor = Color(0xFFEA4335); // Google Red
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:SEFER/constant/box_name.dart';
|
import 'package:SEFER/constant/box_name.dart';
|
||||||
import 'package:SEFER/main.dart';
|
import 'package:SEFER/main.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'colors.dart';
|
import 'colors.dart';
|
||||||
|
|
||||||
class AppStyle {
|
class AppStyle {
|
||||||
@@ -8,22 +9,30 @@ class AppStyle {
|
|||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 40,
|
fontSize: 40,
|
||||||
color: AppColor.accentColor,
|
color: AppColor.accentColor,
|
||||||
fontFamily: box.read(BoxName.lang) == 'ar' ? 'mohanad' : 'josefin');
|
fontFamily: box.read(BoxName.lang) == 'ar'
|
||||||
|
? 'mohanad'
|
||||||
|
: GoogleFonts.josefinSans().fontFamily);
|
||||||
static TextStyle headTitle2 = TextStyle(
|
static TextStyle headTitle2 = TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 26,
|
fontSize: 26,
|
||||||
color: AppColor.primaryColor,
|
color: AppColor.primaryColor,
|
||||||
fontFamily: box.read(BoxName.lang) == 'ar' ? 'mohanad' : 'josefin');
|
fontFamily: box.read(BoxName.lang) == 'ar'
|
||||||
|
? 'mohanad'
|
||||||
|
: GoogleFonts.josefinSans().fontFamily);
|
||||||
static TextStyle title = TextStyle(
|
static TextStyle title = TextStyle(
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
fontSize: box.read(BoxName.lang) == 'ar' ? 14 : 16,
|
fontSize: box.read(BoxName.lang) == 'ar' ? 14 : 16,
|
||||||
color: AppColor.primaryColor,
|
color: AppColor.primaryColor,
|
||||||
fontFamily: box.read(BoxName.lang) == 'ar' ? 'mohanad' : 'josefin');
|
fontFamily: box.read(BoxName.lang) == 'ar'
|
||||||
|
? 'mohanad'
|
||||||
|
: GoogleFonts.josefinSans().fontFamily);
|
||||||
static TextStyle subtitle = TextStyle(
|
static TextStyle subtitle = TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
color: AppColor.primaryColor,
|
color: AppColor.primaryColor,
|
||||||
fontFamily: box.read(BoxName.lang) == 'ar' ? 'mohanad' : 'josefin');
|
fontFamily: box.read(BoxName.lang) == 'ar'
|
||||||
|
? 'mohanad'
|
||||||
|
: GoogleFonts.josefinSans().fontFamily);
|
||||||
static TextStyle number = const TextStyle(
|
static TextStyle number = const TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
|
import 'package:SEFER/constant/colors.dart';
|
||||||
import 'package:SEFER/controller/functions/location_background_controller.dart';
|
import 'package:SEFER/controller/functions/location_background_controller.dart';
|
||||||
import 'package:SEFER/views/auth/captin/cards/sms_signup.dart';
|
import 'package:SEFER/views/auth/captin/cards/sms_signup.dart';
|
||||||
import 'package:SEFER/views/auth/captin/register_captin.dart';
|
import 'package:SEFER/views/auth/captin/register_captin.dart';
|
||||||
@@ -178,6 +179,7 @@ class LoginCaptinController extends GetxController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print('res is null');
|
print('res is null');
|
||||||
|
Get.snackbar('failure'.tr, '', backgroundColor: AppColor.redColor);
|
||||||
isloading = false;
|
isloading = false;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class GoogleSignInHelper {
|
|||||||
if (googleUser != null) {
|
if (googleUser != null) {
|
||||||
await _handleSignUp(googleUser);
|
await _handleSignUp(googleUser);
|
||||||
// if (box.read(BoxName.countryCode) == 'Egypt') {
|
// if (box.read(BoxName.countryCode) == 'Egypt') {
|
||||||
Get.find<LoginCaptinController>().loginFromSignInGoogle(
|
await Get.find<LoginCaptinController>().loginFromSignInGoogle(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.emailDriver).toString(),
|
box.read(BoxName.emailDriver).toString(),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class SmsEgyptController extends GetxController {
|
|||||||
"password": AK.smsPasswordEgypt, //'E)Pu=an/@Z',
|
"password": AK.smsPasswordEgypt, //'E)Pu=an/@Z',
|
||||||
"message": "${AppInformation.appName} app code is $otp\ncopy it to app",
|
"message": "${AppInformation.appName} app code is $otp\ncopy it to app",
|
||||||
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r',
|
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r',
|
||||||
"sender": "Sefer", // todo add sefer sender name
|
"sender": "SEFER EGY", // todo add sefer sender name
|
||||||
"receiver": "2$phone"
|
"receiver": "2$phone"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:SEFER/views/widgets/elevated_btn.dart';
|
||||||
import 'package:fl_chart/fl_chart.dart';
|
import 'package:fl_chart/fl_chart.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:SEFER/constant/box_name.dart';
|
import 'package:SEFER/constant/box_name.dart';
|
||||||
@@ -85,6 +86,7 @@ class DurationController extends GetxController {
|
|||||||
link: AppLink.getRidesDriverByDay,
|
link: AppLink.getRidesDriverByDay,
|
||||||
payload: {'driver_id': box.read(BoxName.driverID)},
|
payload: {'driver_id': box.read(BoxName.driverID)},
|
||||||
);
|
);
|
||||||
|
if (res != 'failure') {
|
||||||
jsonData2 = jsonDecode(res);
|
jsonData2 = jsonDecode(res);
|
||||||
var jsonResponse = jsonDecode(res) as Map<String, dynamic>;
|
var jsonResponse = jsonDecode(res) as Map<String, dynamic>;
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
@@ -113,6 +115,17 @@ class DurationController extends GetxController {
|
|||||||
chartRidePriceDriver = spotsDriverPrices;
|
chartRidePriceDriver = spotsDriverPrices;
|
||||||
|
|
||||||
update(); // Notify the observers about the data and loading state change
|
update(); // Notify the observers about the data and loading state change
|
||||||
|
} else {
|
||||||
|
Get.defaultDialog(
|
||||||
|
title: 'No data yet!'.tr,
|
||||||
|
middleText: '',
|
||||||
|
confirm: MyElevatedButton(
|
||||||
|
title: 'OK'.tr,
|
||||||
|
onPressed: () {
|
||||||
|
Get.back();
|
||||||
|
Get.back();
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DurationData> parseData(List<dynamic> json) {
|
List<DurationData> parseData(List<dynamic> json) {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ class LocaleController extends GetxController {
|
|||||||
Locale? language;
|
Locale? language;
|
||||||
String countryCode = '';
|
String countryCode = '';
|
||||||
void restartApp() {
|
void restartApp() {
|
||||||
|
// Get.offAll(MyApp);
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ class MyTranslation extends Translations {
|
|||||||
@override
|
@override
|
||||||
Map<String, Map<String, String>> get keys => {
|
Map<String, Map<String, String>> get keys => {
|
||||||
"ar": {
|
"ar": {
|
||||||
|
"fromBudget": "من الميزانية",
|
||||||
|
"You must restart the app to change the language.":
|
||||||
|
"يجب إعادة تشغيل التطبيق لتغيير اللغة",
|
||||||
|
"hours before trying again.": "ساعة قبل المحاولة مرة أخرى",
|
||||||
"Transaction failed": "فشل المعاملة",
|
"Transaction failed": "فشل المعاملة",
|
||||||
"Wallet Type": "نوع المحفظة",
|
"Wallet Type": "نوع المحفظة",
|
||||||
"Enter your wallet number": "أدخل رقم محفظتك",
|
"Enter your wallet number": "أدخل رقم محفظتك",
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
child: GetBuilder<DurationController>(
|
child: GetBuilder<DurationController>(
|
||||||
builder: (durationController) => durationController.isLoading
|
builder: (durationController) => durationController.isLoading
|
||||||
? const Center(child: MyCircularProgressIndicator())
|
? const Center(child: MyCircularProgressIndicator())
|
||||||
|
: durationController.jsonData1.isEmpty ||
|
||||||
|
durationController.jsonData2.isEmpty
|
||||||
|
? Center(
|
||||||
|
child: Text('No data yet!'.tr),
|
||||||
|
)
|
||||||
: ListView(
|
: ListView(
|
||||||
// mainAxisAlignment: MainAxisAlignment.start,
|
// mainAxisAlignment: MainAxisAlignment.start,
|
||||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
@@ -46,11 +51,12 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
isStepLineChart: true,
|
isStepLineChart: true,
|
||||||
spots: durationController.chartData,
|
spots: durationController.chartData,
|
||||||
isCurved: true,
|
isCurved: true,
|
||||||
color:
|
color: Colors
|
||||||
Colors.deepPurpleAccent, // Custom color
|
.deepPurpleAccent, // Custom color
|
||||||
barWidth: 3, // Thinner line
|
barWidth: 3, // Thinner line
|
||||||
dotData: const FlDotData(
|
dotData: const FlDotData(
|
||||||
show: true), // Show dots on each point
|
show:
|
||||||
|
true), // Show dots on each point
|
||||||
belowBarData: BarAreaData(
|
belowBarData: BarAreaData(
|
||||||
// Add gradient fill below the line
|
// Add gradient fill below the line
|
||||||
show: true,
|
show: true,
|
||||||
@@ -81,7 +87,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
leftTitles: AxisTitles(
|
leftTitles: AxisTitles(
|
||||||
axisNameWidget: Text(
|
axisNameWidget: Text(
|
||||||
'Counts of Hours on days'.tr,
|
'Counts of Hours on days'.tr,
|
||||||
@@ -89,7 +96,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
),
|
),
|
||||||
gridData: const FlGridData(
|
gridData: const FlGridData(
|
||||||
show: true,
|
show: true,
|
||||||
@@ -97,9 +105,10 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
borderData: FlBorderData(
|
borderData: FlBorderData(
|
||||||
show: true,
|
show: true,
|
||||||
border: const Border(
|
border: const Border(
|
||||||
bottom:
|
bottom: BorderSide(
|
||||||
BorderSide(color: AppColor.accentColor),
|
color: AppColor.accentColor),
|
||||||
left: BorderSide(color: AppColor.accentColor),
|
left: BorderSide(
|
||||||
|
color: AppColor.accentColor),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -122,11 +131,12 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
LineChartBarData(
|
LineChartBarData(
|
||||||
spots: durationController.chartRideCount,
|
spots: durationController.chartRideCount,
|
||||||
// isCurved: true,
|
// isCurved: true,
|
||||||
color:
|
color: Colors
|
||||||
Colors.deepPurpleAccent, // Custom color
|
.deepPurpleAccent, // Custom color
|
||||||
barWidth: 3, // Thinner line
|
barWidth: 3, // Thinner line
|
||||||
dotData: const FlDotData(
|
dotData: const FlDotData(
|
||||||
show: true), // Show dots on each point
|
show:
|
||||||
|
true), // Show dots on each point
|
||||||
belowBarData: BarAreaData(
|
belowBarData: BarAreaData(
|
||||||
// Add gradient fill below the line
|
// Add gradient fill below the line
|
||||||
show: true,
|
show: true,
|
||||||
@@ -160,7 +170,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
leftTitles: AxisTitles(
|
leftTitles: AxisTitles(
|
||||||
axisNameWidget: Text(
|
axisNameWidget: Text(
|
||||||
'Counts of rides on days'.tr,
|
'Counts of rides on days'.tr,
|
||||||
@@ -168,7 +179,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
),
|
),
|
||||||
gridData: const FlGridData(
|
gridData: const FlGridData(
|
||||||
show: true,
|
show: true,
|
||||||
@@ -176,9 +188,10 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
borderData: FlBorderData(
|
borderData: FlBorderData(
|
||||||
show: true,
|
show: true,
|
||||||
border: const Border(
|
border: const Border(
|
||||||
bottom:
|
bottom: BorderSide(
|
||||||
BorderSide(color: AppColor.accentColor),
|
color: AppColor.accentColor),
|
||||||
left: BorderSide(color: AppColor.accentColor),
|
left: BorderSide(
|
||||||
|
color: AppColor.accentColor),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -200,16 +213,17 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
lineBarsData: [
|
lineBarsData: [
|
||||||
LineChartBarData(
|
LineChartBarData(
|
||||||
isStepLineChart: true,
|
isStepLineChart: true,
|
||||||
spots:
|
spots: durationController
|
||||||
durationController.chartRidePriceDriver,
|
.chartRidePriceDriver,
|
||||||
isCurved: true,
|
isCurved: true,
|
||||||
isStrokeCapRound: true,
|
isStrokeCapRound: true,
|
||||||
preventCurveOverShooting: true,
|
preventCurveOverShooting: true,
|
||||||
color:
|
color: Colors
|
||||||
Colors.deepPurpleAccent, // Custom color
|
.deepPurpleAccent, // Custom color
|
||||||
barWidth: 3, // Thinner line
|
barWidth: 3, // Thinner line
|
||||||
dotData: const FlDotData(
|
dotData: const FlDotData(
|
||||||
show: true), // Show dots on each point
|
show:
|
||||||
|
true), // Show dots on each point
|
||||||
belowBarData: BarAreaData(
|
belowBarData: BarAreaData(
|
||||||
// Add gradient fill below the line
|
// Add gradient fill below the line
|
||||||
show: true,
|
show: true,
|
||||||
@@ -243,7 +257,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
leftTitles: AxisTitles(
|
leftTitles: AxisTitles(
|
||||||
axisNameWidget: Text(
|
axisNameWidget: Text(
|
||||||
'Counts of budgets on days'.tr,
|
'Counts of budgets on days'.tr,
|
||||||
@@ -251,7 +266,8 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
axisNameSize: 30,
|
axisNameSize: 30,
|
||||||
sideTitles: const SideTitles(
|
sideTitles: const SideTitles(
|
||||||
reservedSize: 30, showTitles: true)),
|
reservedSize: 30,
|
||||||
|
showTitles: true)),
|
||||||
),
|
),
|
||||||
gridData: const FlGridData(
|
gridData: const FlGridData(
|
||||||
show: true,
|
show: true,
|
||||||
@@ -259,9 +275,10 @@ class RideCalculateDriver extends StatelessWidget {
|
|||||||
borderData: FlBorderData(
|
borderData: FlBorderData(
|
||||||
show: true,
|
show: true,
|
||||||
border: const Border(
|
border: const Border(
|
||||||
bottom:
|
bottom: BorderSide(
|
||||||
BorderSide(color: AppColor.accentColor),
|
color: AppColor.accentColor),
|
||||||
left: BorderSide(color: AppColor.accentColor),
|
left: BorderSide(
|
||||||
|
color: AppColor.accentColor),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
|
import 'package:SEFER/controller/home/captin/home_captain_controller.dart';
|
||||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||||
|
|
||||||
import '../../../../../constant/char_map.dart';
|
|
||||||
import '../../../../../constant/colors.dart';
|
import '../../../../../constant/colors.dart';
|
||||||
import '../../../../../constant/credential.dart';
|
|
||||||
import '../../../../Rate/ride_calculate_driver.dart';
|
import '../../../../Rate/ride_calculate_driver.dart';
|
||||||
import '../../../../../controller/functions/location_controller.dart';
|
import '../../../../../controller/functions/location_controller.dart';
|
||||||
|
|
||||||
@@ -23,7 +21,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
// duration: const Duration(microseconds: 200),
|
// duration: const Duration(microseconds: 200),
|
||||||
// width: controller.widthMapTypeAndTraffic,
|
// width: controller.widthMapTypeAndTraffic,
|
||||||
// decoration: BoxDecoration(
|
// decoration: BoxDecoration(
|
||||||
// border: Border.all(),
|
// border: Border.all(color: AppColor.accentColor),
|
||||||
// color: AppColor.secondaryColor,
|
// color: AppColor.secondaryColor,
|
||||||
// borderRadius: BorderRadius.circular(15)),
|
// borderRadius: BorderRadius.circular(15)),
|
||||||
// child: IconButton(
|
// child: IconButton(
|
||||||
@@ -56,7 +54,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
duration: const Duration(microseconds: 200),
|
duration: const Duration(microseconds: 200),
|
||||||
width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
border: Border.all(),
|
border: Border.all(color: AppColor.accentColor),
|
||||||
color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
@@ -67,6 +65,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.satellite_alt,
|
Icons.satellite_alt,
|
||||||
size: 29,
|
size: 29,
|
||||||
|
color: AppColor.accentColor,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -78,7 +77,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
border: Border.all(),
|
border: Border.all(color: AppColor.accentColor),
|
||||||
borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -88,6 +87,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.streetview_sharp,
|
Icons.streetview_sharp,
|
||||||
size: 29,
|
size: 29,
|
||||||
|
color: AppColor.accentColor,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -99,7 +99,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
border: Border.all(),
|
border: Border.all(color: AppColor.accentColor),
|
||||||
borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -112,6 +112,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.location_on,
|
Icons.location_on,
|
||||||
size: 29,
|
size: 29,
|
||||||
|
color: AppColor.accentColor,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -123,7 +124,7 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
border: Border.all(),
|
border: Border.all(color: AppColor.accentColor),
|
||||||
borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -147,7 +148,11 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
'');
|
'');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
icon: const Icon(FontAwesome5.chart_bar),
|
icon: const Icon(
|
||||||
|
FontAwesome5.chart_bar,
|
||||||
|
size: 29,
|
||||||
|
color: AppColor.accentColor,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:SEFER/constant/colors.dart';
|
|
||||||
|
|
||||||
class DrawerMenuPage extends StatelessWidget {
|
|
||||||
const DrawerMenuPage({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Container(
|
|
||||||
height: 500,
|
|
||||||
color: AppColor.secondaryColor.withOpacity(.5),
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
height: 100,
|
|
||||||
color: AppColor.secondaryColor,
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
color: Colors.transparent,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
200
lib/views/home/my_wallet/card_wallet_widget.dart
Normal file
200
lib/views/home/my_wallet/card_wallet_widget.dart
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
import '../../../constant/box_name.dart';
|
||||||
|
import '../../../constant/colors.dart';
|
||||||
|
import '../../../constant/info.dart';
|
||||||
|
import '../../../constant/style.dart';
|
||||||
|
import '../../../controller/home/payment/captain_wallet_controller.dart';
|
||||||
|
import '../../../controller/home/payment/paymob_payout.dart';
|
||||||
|
import '../../../main.dart';
|
||||||
|
import '../../widgets/elevated_btn.dart';
|
||||||
|
import '../../widgets/my_textField.dart';
|
||||||
|
import 'walet_captain.dart';
|
||||||
|
|
||||||
|
class CardSeferWalletDriver extends StatelessWidget {
|
||||||
|
const CardSeferWalletDriver({
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
GetBuilder<CaptainWalletController>(builder: (captainWalletController) {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () async {
|
||||||
|
final now = DateTime.now();
|
||||||
|
DateTime? lastRequestTime =
|
||||||
|
box.read(BoxName.lastTimeCaptainWalletCashOut);
|
||||||
|
|
||||||
|
if (lastRequestTime == null ||
|
||||||
|
now.difference(lastRequestTime).inHours >= 24) {
|
||||||
|
// Update the last request time to now
|
||||||
|
lastRequestTime = now;
|
||||||
|
await box.write(
|
||||||
|
BoxName.lastTimeCaptainWalletCashOut, lastRequestTime);
|
||||||
|
box.write(BoxName.cvvCode, 1111);
|
||||||
|
if (double.parse(
|
||||||
|
Get.find<CaptainWalletController>().totalAmountVisa) >
|
||||||
|
100) {
|
||||||
|
Get.defaultDialog(
|
||||||
|
barrierDismissible: false,
|
||||||
|
title: 'Do you want to collect your earnings?'.tr,
|
||||||
|
titleStyle: AppStyle.title,
|
||||||
|
content: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'Total wallet is '.tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
width: 5,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
Get.find<CaptainWalletController>()
|
||||||
|
.totalAmountVisa,
|
||||||
|
style: AppStyle.number,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 5,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'Wallet Type'.tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
width: 5,
|
||||||
|
),
|
||||||
|
MyDropDown(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Form(
|
||||||
|
key: captainWalletController.formKey,
|
||||||
|
child: MyTextForm(
|
||||||
|
controller: captainWalletController.issurWallet,
|
||||||
|
label: "Enter your wallet number".tr,
|
||||||
|
hint: "Enter your wallet number".tr,
|
||||||
|
type: TextInputType.phone,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
confirm: MyElevatedButton(
|
||||||
|
title: 'Ok'.tr,
|
||||||
|
onPressed: () async {
|
||||||
|
if (captainWalletController.formKey.currentState!
|
||||||
|
.validate()) {
|
||||||
|
if (double.parse(Get.find<CaptainWalletController>()
|
||||||
|
.totalAmountVisa) >
|
||||||
|
100) {
|
||||||
|
Get.back();
|
||||||
|
String amountAfter5LE = (double.parse(
|
||||||
|
Get.find<CaptainWalletController>()
|
||||||
|
.totalAmountVisa) -
|
||||||
|
5)
|
||||||
|
.toStringAsFixed(0);
|
||||||
|
await Get.put(PaymobPayout())
|
||||||
|
.payToWalletDriverAll(
|
||||||
|
amountAfter5LE,
|
||||||
|
captainWalletController.issurWallet.toString(),
|
||||||
|
captainWalletController.issurWallet.toString(),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Get.snackbar(
|
||||||
|
'${'The Amount is less than'.tr}${box.read(BoxName.countryCode) == 'Egypt' ? '100' : '20'}',
|
||||||
|
'',
|
||||||
|
backgroundColor: AppColor.yellowColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
kolor: AppColor.greenColor,
|
||||||
|
),
|
||||||
|
cancel: MyElevatedButton(
|
||||||
|
title: 'cancel'.tr,
|
||||||
|
onPressed: () {
|
||||||
|
Get.back();
|
||||||
|
},
|
||||||
|
kolor: AppColor.redColor,
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
Get.snackbar(
|
||||||
|
'${'The Amount is less than'.tr}${box.read(BoxName.countryCode) == 'Egypt' ? '100' : '20'}',
|
||||||
|
'',
|
||||||
|
backgroundColor: AppColor.yellowColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Optionally show a message or handle the throttling case
|
||||||
|
final hoursLeft = 24 - now.difference(lastRequestTime).inHours;
|
||||||
|
Get.snackbar(
|
||||||
|
'${'Please wait'.tr} $hoursLeft ${"hours before trying again.".tr}',
|
||||||
|
'');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
width: Get.width * .85,
|
||||||
|
height: Get.height * .25,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppColor.deepPurpleAccent,
|
||||||
|
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
||||||
|
gradient: const LinearGradient(
|
||||||
|
colors: [AppColor.blueColor, AppColor.primaryColor]),
|
||||||
|
),
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'${AppInformation.appName} Wallet',
|
||||||
|
style: AppStyle.headTitle
|
||||||
|
.copyWith(color: AppColor.primaryColor),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
'${Get.find<CaptainWalletController>().totalAmountVisa}\$' ??
|
||||||
|
'0.0 \$',
|
||||||
|
style: AppStyle.headTitle2,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
box.read(BoxName.nameDriver),
|
||||||
|
style: AppStyle.title,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"Cash Out".tr,
|
||||||
|
style: AppStyle.title,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,6 +18,7 @@ import 'package:path/path.dart';
|
|||||||
|
|
||||||
import '../../../controller/payment/driver_payment_controller.dart';
|
import '../../../controller/payment/driver_payment_controller.dart';
|
||||||
import '../../widgets/my_scafold.dart';
|
import '../../widgets/my_scafold.dart';
|
||||||
|
import 'card_wallet_widget.dart';
|
||||||
import 'points_captain.dart';
|
import 'points_captain.dart';
|
||||||
import 'weekly_payment_page.dart';
|
import 'weekly_payment_page.dart';
|
||||||
|
|
||||||
@@ -424,157 +425,6 @@ class WalletCaptain extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CardSeferWalletDriver extends StatelessWidget {
|
|
||||||
const CardSeferWalletDriver({
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
GetBuilder<CaptainWalletController>(builder: (captainWalletController) {
|
|
||||||
return InkWell(
|
|
||||||
onTap: () {
|
|
||||||
Get.defaultDialog(
|
|
||||||
barrierDismissible: false,
|
|
||||||
title: 'Do you want to collect your earnings?'.tr,
|
|
||||||
titleStyle: AppStyle.title,
|
|
||||||
content: Column(
|
|
||||||
children: [
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
'Total wallet is '.tr,
|
|
||||||
style: AppStyle.title,
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
width: 5,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
Get.find<CaptainWalletController>().totalAmountVisa,
|
|
||||||
style: AppStyle.number,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
'Wallet Type'.tr,
|
|
||||||
style: AppStyle.title,
|
|
||||||
),
|
|
||||||
const SizedBox(
|
|
||||||
width: 5,
|
|
||||||
),
|
|
||||||
MyDropDown(),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Form(
|
|
||||||
key: captainWalletController.formKey,
|
|
||||||
child: MyTextForm(
|
|
||||||
controller: captainWalletController.issurWallet,
|
|
||||||
label: "Enter your wallet number".tr,
|
|
||||||
hint: "Enter your wallet number".tr,
|
|
||||||
type: TextInputType.phone,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
confirm: MyElevatedButton(
|
|
||||||
title: 'Ok'.tr,
|
|
||||||
onPressed: () async {
|
|
||||||
if (captainWalletController.formKey.currentState!
|
|
||||||
.validate()) {
|
|
||||||
if (double.parse(Get.find<CaptainWalletController>()
|
|
||||||
.totalAmountVisa) >
|
|
||||||
100) {
|
|
||||||
Get.back();
|
|
||||||
await Get.put(PaymobPayout()).payToWalletDriverAll(
|
|
||||||
Get.find<CaptainWalletController>().totalAmountVisa,
|
|
||||||
captainWalletController.issurWallet.toString(),
|
|
||||||
captainWalletController.issurWallet.toString(),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
Get.snackbar(
|
|
||||||
'${'The Amount is less than'.tr}${box.read(BoxName.countryCode) == 'Egypt' ? '100' : '20'}',
|
|
||||||
'',
|
|
||||||
backgroundColor: AppColor.yellowColor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
kolor: AppColor.greenColor,
|
|
||||||
),
|
|
||||||
cancel: MyElevatedButton(
|
|
||||||
title: 'cancel'.tr,
|
|
||||||
onPressed: () {
|
|
||||||
Get.back();
|
|
||||||
},
|
|
||||||
kolor: AppColor.redColor,
|
|
||||||
));
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: Get.width * .85,
|
|
||||||
height: Get.height * .25,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: AppColor.deepPurpleAccent,
|
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
|
||||||
gradient: const LinearGradient(
|
|
||||||
colors: [AppColor.blueColor, AppColor.primaryColor]),
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
||||||
children: [
|
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
'${AppInformation.appName} Wallet',
|
|
||||||
style: AppStyle.headTitle
|
|
||||||
.copyWith(color: AppColor.primaryColor),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
'${Get.find<CaptainWalletController>().totalAmountVisa}\$' ??
|
|
||||||
'0.0 \$',
|
|
||||||
style: AppStyle.headTitle2,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.all(8.0),
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
box.read(BoxName.nameDriver),
|
|
||||||
style: AppStyle.title,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"Cash Out".tr,
|
|
||||||
style: AppStyle.title,
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class MyDropDown extends StatefulWidget {
|
class MyDropDown extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
_MyDropDownState createState() => _MyDropDownState();
|
_MyDropDownState createState() => _MyDropDownState();
|
||||||
|
|||||||
@@ -52,8 +52,11 @@ class WeeklyPaymentPage extends StatelessWidget {
|
|||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 10,
|
height: 10,
|
||||||
),
|
),
|
||||||
SizedBox(
|
Padding(
|
||||||
height: Get.height * .8,
|
padding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 10, vertical: 5),
|
||||||
|
child: SizedBox(
|
||||||
|
height: Get.height * .75,
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
itemCount: controller.weeklyList.length,
|
itemCount: controller.weeklyList.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
@@ -74,8 +77,12 @@ class WeeklyPaymentPage extends StatelessWidget {
|
|||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child: Text(
|
child: Text(
|
||||||
list['paymentMethod'] == 'Remainder'
|
list['paymentMethod'] ==
|
||||||
|
'Remainder'
|
||||||
? 'Remainder'.tr
|
? 'Remainder'.tr
|
||||||
|
: list['paymentMethod'] ==
|
||||||
|
'fromBudget'
|
||||||
|
? 'fromBudget'.tr
|
||||||
: list['paymentMethod'],
|
: list['paymentMethod'],
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
@@ -111,6 +118,7 @@ class WeeklyPaymentPage extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ class Language extends StatelessWidget {
|
|||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
MyElevatedButton(
|
MyElevatedButton(
|
||||||
title: 'العربية',
|
title: 'العربية',
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
controller.changeLang("ar");
|
await controller.changeLang("ar");
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
title: 'You should restart app to change language'.tr,
|
title: 'You should restart app to change language'.tr,
|
||||||
titleStyle: AppStyle.title,
|
titleStyle: AppStyle.title,
|
||||||
|
|||||||
@@ -227,7 +227,7 @@
|
|||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastSwiftUpdateCheck = 0920;
|
LastSwiftUpdateCheck = 0920;
|
||||||
LastUpgradeCheck = 1300;
|
LastUpgradeCheck = 1510;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
331C80D4294CF70F00263BE5 = {
|
331C80D4294CF70F00263BE5 = {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1300"
|
LastUpgradeVersion = "1510"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@@ -840,6 +840,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.2"
|
||||||
|
google_fonts:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: google_fonts
|
||||||
|
sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.0.4"
|
||||||
google_identity_services_web:
|
google_identity_services_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ dependencies:
|
|||||||
path: ^1.8.3
|
path: ^1.8.3
|
||||||
# lottie: ^2.5.0
|
# lottie: ^2.5.0
|
||||||
intl: ^0.18.1
|
intl: ^0.18.1
|
||||||
# google_fonts: ^ 4.0.4
|
google_fonts: ^ 4.0.4
|
||||||
http: ^0.13.6
|
http: ^0.13.6
|
||||||
get: ^4.6.5
|
get: ^4.6.5
|
||||||
get_storage: ^2.1.1
|
get_storage: ^2.1.1
|
||||||
|
|||||||
Reference in New Issue
Block a user