25-1/25/1-secure and links
This commit is contained in:
@@ -11,6 +11,8 @@ class BoxName {
|
|||||||
static const String gender = "gender";
|
static const String gender = "gender";
|
||||||
static const String phoneWallet = "phoneWallet";
|
static const String phoneWallet = "phoneWallet";
|
||||||
static const String locationName = "locationName";
|
static const String locationName = "locationName";
|
||||||
|
static const String basicLink = "basicLink";
|
||||||
|
static const String paymentLink = "paymentLink";
|
||||||
static const String isSavedPhones = "IsSavedPhones";
|
static const String isSavedPhones = "IsSavedPhones";
|
||||||
static const String isTest = "isTest";
|
static const String isTest = "isTest";
|
||||||
static const String carType = "carType";
|
static const String carType = "carType";
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
class AppInformation {
|
class AppInformation {
|
||||||
static const String companyName = 'Swifti';
|
static const String companyName = 'Sefer';
|
||||||
static const String appName = 'Swifti DRIVER';
|
static const String appName = 'Sefer DRIVER';
|
||||||
static const String appVersion = 'Swifti Captain';
|
static const String appVersion = 'Sefer Captain';
|
||||||
static const String phoneNumber = '962798583052';
|
static const String phoneNumber = '962798583052';
|
||||||
static const String linkedInProfile =
|
static const String linkedInProfile =
|
||||||
'https://www.linkedin.com/in/hamza-ayed/';
|
'https://www.linkedin.com/in/hamza-ayed/';
|
||||||
static const String website = 'https://Swifti.live';
|
static const String website = 'https://Sefer.live';
|
||||||
static const String email = 'hamzaayed@Swifti.live';
|
static const String email = 'hamzaayed@Sefer.live';
|
||||||
static const String complaintPrompt =
|
static const String complaintPrompt =
|
||||||
'for this data for complaint from driver or passenger i collect all data i want you analyze this complaint and show what is reason and what is solution .this data collected from many table to find solution if payment in visa not complete and if ride status is finished it will be paymnet in payment table if ride status is not finished there is no need to pay and payment table is null for this ride and if paymentFromPaymentTable not null and visa type not cash the payment sucssessed . if ratingpassenger is low or passengr rating drivers low grade then dont mine of this passenger ,look at driver too like passengerratingdriver with rating or ratingtopassenger .in json add status of complaint and message to passenger and message to driver and message to call center write in arabic in json output with key in english .for output please just json i want';
|
'for this data for complaint from driver or passenger i collect all data i want you analyze this complaint and show what is reason and what is solution .this data collected from many table to find solution if payment in visa not complete and if ride status is finished it will be paymnet in payment table if ride status is not finished there is no need to pay and payment table is null for this ride and if paymentFromPaymentTable not null and visa type not cash the payment sucssessed . if ratingpassenger is low or passengr rating drivers low grade then dont mine of this passenger ,look at driver too like passengerratingdriver with rating or ratingtopassenger .in json add status of complaint and message to passenger and message to driver and message to call center write in arabic in json output with key in english .for output please just json i want';
|
||||||
|
|
||||||
@@ -78,10 +78,10 @@ class AppInformation {
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 style="color: black;font: 45px/50px MuseoSans900, Open Sans, sans-serif;">Terms and Conditions</h1>
|
<h1 style="color: black;font: 45px/50px MuseoSans900, Open Sans, sans-serif;">Terms and Conditions</h1>
|
||||||
<p><strong>1 TERMS OF USE</strong></p>
|
<p><strong>1 TERMS OF USE</strong></p>
|
||||||
<p>By downloading, browsing, accessing or using the Mobile Application; “Swifti”, Users agree to be bound by these Terms and Conditions of Use. We reserve the right to amend these terms and conditions at any time. If the User disagrees with any of these Terms and Conditions of Use, the User must immediately discontinue their access to the Mobile Application and their use of the services offered on the Mobile Application. Continued use of the Mobile Application will constitute acceptance of these Terms and Conditions of Use, as may be amended from time to time.</p>
|
<p>By downloading, browsing, accessing or using the Mobile Application; “Sefer”, Users agree to be bound by these Terms and Conditions of Use. We reserve the right to amend these terms and conditions at any time. If the User disagrees with any of these Terms and Conditions of Use, the User must immediately discontinue their access to the Mobile Application and their use of the services offered on the Mobile Application. Continued use of the Mobile Application will constitute acceptance of these Terms and Conditions of Use, as may be amended from time to time.</p>
|
||||||
<p><strong>2.1. DEFINITIONS</strong></p>
|
<p><strong>2.1. DEFINITIONS</strong></p>
|
||||||
<p>In these Terms and Conditions of Use, the following capitalized terms shall have the following meanings, except where the context otherwise requires:</p>
|
<p>In these Terms and Conditions of Use, the following capitalized terms shall have the following meanings, except where the context otherwise requires:</p>
|
||||||
<p>“Mobile Application” or “Swifti” refers to the smartphone software through which the company mediates services between Users and Service Providers.</p>
|
<p>“Mobile Application” or “Sefer” refers to the smartphone software through which the company mediates services between Users and Service Providers.</p>
|
||||||
<p>"Account" means an account created by a User or a Service Provider on the Mobile Application as part of Registration.</p>
|
<p>"Account" means an account created by a User or a Service Provider on the Mobile Application as part of Registration.</p>
|
||||||
<p> “Service Providers” refers to the individuals or companies registered within the Company to provide products or services approved and mediated by the Company/Mobile Application and that are requested/purchased by “Users”. “Service Provider” means any one of them.</p>
|
<p> “Service Providers” refers to the individuals or companies registered within the Company to provide products or services approved and mediated by the Company/Mobile Application and that are requested/purchased by “Users”. “Service Provider” means any one of them.</p>
|
||||||
<p>"Users" means users of the Mobile Application, including you and "User" means any one of them. “Users” also includes Service Providers using the Mobile Application version dedicated to the use of Service Providers.</p>
|
<p>"Users" means users of the Mobile Application, including you and "User" means any one of them. “Users” also includes Service Providers using the Mobile Application version dedicated to the use of Service Providers.</p>
|
||||||
@@ -90,8 +90,8 @@ class AppInformation {
|
|||||||
<p>"Redemption" means the act of redeeming such products or services.</p>
|
<p>"Redemption" means the act of redeeming such products or services.</p>
|
||||||
<p>"Register" means to create an Account on the Mobile Application and "Registration" means the act of creating such an Account.</p>
|
<p>"Register" means to create an Account on the Mobile Application and "Registration" means the act of creating such an Account.</p>
|
||||||
<p>"Services" means all the services provided by Service Providers via the Mobile Application and mediated by the Company to Users, and "Service" means any one of them.</p>
|
<p>"Services" means all the services provided by Service Providers via the Mobile Application and mediated by the Company to Users, and "Service" means any one of them.</p>
|
||||||
<p><strong>2.2. WHAT IS THE MOBILE APPLICATION, “Swifti”?</strong></p>
|
<p><strong>2.2. WHAT IS THE MOBILE APPLICATION, “Sefer”?</strong></p>
|
||||||
<p>The “Swifti” Mobile Application consists in a specialize service with the purpose to schedule/match the Service Provider with the User, however without creating any employee relationship with the Service Provider, meaning that the Mobile Application should be considered only as a service mediator with the purpose of scheduling/matching between Users and Service Providers for the latter to fulfill the service requested by Users. Through the system, the Company allows, totally free of charge, the Users to sign up and request the desired available services from Service Providers in a more efficient way than the conventional existing methods. The Service Providers, by their means, can register on the Mobile Application dedicated for Service Providers through the methods indicated by the Company, pending an evaluation from the Company and the necessary documentation when signing up in accordance with guidelines set by the Transportation General Authority (TGA) to provide services through the Mobile Application. The Service Provider will pay a profit margin fee determined by the Company -in knowledge of the Service Provider- per completed service. Users can pay their ride fare using Apple Pay as an additional payment method in Saudi Arabia on iPhones</p>
|
<p>The “Sefer” Mobile Application consists in a specialize service with the purpose to schedule/match the Service Provider with the User, however without creating any employee relationship with the Service Provider, meaning that the Mobile Application should be considered only as a service mediator with the purpose of scheduling/matching between Users and Service Providers for the latter to fulfill the service requested by Users. Through the system, the Company allows, totally free of charge, the Users to sign up and request the desired available services from Service Providers in a more efficient way than the conventional existing methods. The Service Providers, by their means, can register on the Mobile Application dedicated for Service Providers through the methods indicated by the Company, pending an evaluation from the Company and the necessary documentation when signing up in accordance with guidelines set by the Transportation General Authority (TGA) to provide services through the Mobile Application. The Service Provider will pay a profit margin fee determined by the Company -in knowledge of the Service Provider- per completed service. Users can pay their ride fare using Apple Pay as an additional payment method in Saudi Arabia on iPhones</p>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p><strong>3. GENERAL ISSUES ABOUT THE MOBILE APPLICATION AND THE SERVICES</strong></p>
|
<p><strong>3. GENERAL ISSUES ABOUT THE MOBILE APPLICATION AND THE SERVICES</strong></p>
|
||||||
<p><strong>3.1 Applicability of terms and conditions:</strong> The use of any Services and/or the Mobile Application and the making of any Redemptions are subject to these Terms and Conditions of Use.</p>
|
<p><strong>3.1 Applicability of terms and conditions:</strong> The use of any Services and/or the Mobile Application and the making of any Redemptions are subject to these Terms and Conditions of Use.</p>
|
||||||
@@ -146,7 +146,7 @@ class AppInformation {
|
|||||||
<p><strong>7.3 </strong>We do not give any warranty that the Services and the Mobile Application are free from viruses or anything else which may have a harmful effect on any technology.</p>
|
<p><strong>7.3 </strong>We do not give any warranty that the Services and the Mobile Application are free from viruses or anything else which may have a harmful effect on any technology.</p>
|
||||||
<p><strong>7.4 </strong>We reserve the right to change, modify, substitute, suspend or remove without notice any information or Services on the Mobile Application from time to time. Users’ access to the Mobile Application and/or the Services may also be occasionally restricted to allow for repairs, maintenance or the introduction of new facilities or services. We will attempt to restore such access as soon as we reasonably can. For the avoidance of doubt, we reserve the right to withdraw any information or Services from the Mobile Application at any time.</p>
|
<p><strong>7.4 </strong>We reserve the right to change, modify, substitute, suspend or remove without notice any information or Services on the Mobile Application from time to time. Users’ access to the Mobile Application and/or the Services may also be occasionally restricted to allow for repairs, maintenance or the introduction of new facilities or services. We will attempt to restore such access as soon as we reasonably can. For the avoidance of doubt, we reserve the right to withdraw any information or Services from the Mobile Application at any time.</p>
|
||||||
<p><strong>7.5 </strong>We reserve the right to block access to and/or to edit or remove any material which in our reasonable opinion may give rise to a breach of these Terms and Conditions of Use.</p>
|
<p><strong>7.5 </strong>We reserve the right to block access to and/or to edit or remove any material which in our reasonable opinion may give rise to a breach of these Terms and Conditions of Use.</p>
|
||||||
<p><strong>7.6</strong> The acceptance and denial of the service request may occur at first by the Service Provider, who can accept or deny the service when receiving a notification for a request. The User may cancel the contract for any reason which may or may not apply cancellation fees for which the conditions and amount is determined and communicated by the Company. Both recognize that “Swifti” is not liable for any delays, cancellations, failure to cancel the contract and miscommunication between the User and the Service Provider, nor for any delay or failure in the delivery of services from the Service Provider.</p>
|
<p><strong>7.6</strong> The acceptance and denial of the service request may occur at first by the Service Provider, who can accept or deny the service when receiving a notification for a request. The User may cancel the contract for any reason which may or may not apply cancellation fees for which the conditions and amount is determined and communicated by the Company. Both recognize that “Sefer” is not liable for any delays, cancellations, failure to cancel the contract and miscommunication between the User and the Service Provider, nor for any delay or failure in the delivery of services from the Service Provider.</p>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p><strong>8. SUSPENSION AND TERMINATION</strong></p>
|
<p><strong>8. SUSPENSION AND TERMINATION</strong></p>
|
||||||
<p><strong>8.1</strong> If the User uses (or others, with the User’s permission use) the Mobile Application, any Services in contravention of these Terms and Conditions of Use, we may suspend their use of the Services and/or Mobile Application.</p>
|
<p><strong>8.1</strong> If the User uses (or others, with the User’s permission use) the Mobile Application, any Services in contravention of these Terms and Conditions of Use, we may suspend their use of the Services and/or Mobile Application.</p>
|
||||||
@@ -197,10 +197,10 @@ class AppInformation {
|
|||||||
<p><strong>(f)</strong> We will protect personal information by reasonable security safeguards against loss or theft, as well as unauthorized access, disclosure, copying, use or modification.</p>
|
<p><strong>(f)</strong> We will protect personal information by reasonable security safeguards against loss or theft, as well as unauthorized access, disclosure, copying, use or modification.</p>
|
||||||
<p><strong>(g) </strong>The Company further reserves the right to use all legal means possible and to identify the Users, as well as to request, at any time, additional data and documents it considers appropriate in order to verify personal data informed by the user.</p>
|
<p><strong>(g) </strong>The Company further reserves the right to use all legal means possible and to identify the Users, as well as to request, at any time, additional data and documents it considers appropriate in order to verify personal data informed by the user.</p>
|
||||||
<p>We are committed to conducting our business in accordance with these principles in order to ensure that the confidentiality of personal information is protected and maintained.</p>
|
<p>We are committed to conducting our business in accordance with these principles in order to ensure that the confidentiality of personal information is protected and maintained.</p>
|
||||||
<p><strong>14.3 Social logins policy</strong><br>Our Services offers you the ability to register and login using Facebook. Where you choose to do this, we will receive certain profile information about you from your social media provider. The profile Information may include your name and social token.<br>We will use the information we receive only to associate your social token with your Swifti account or for the purposes that are described in this privacy policy. <br><br><strong>14.4 Account and data deletion</strong><br>Based on the applicable laws of your country, you may have the right to request the deletion of your personal data in some circumstances. If you want to delete your account or personal data in the application, please contact us via e-mail: support@mobile-app.store. We will respond to your request within 30 days.</p>
|
<p><strong>14.3 Social logins policy</strong><br>Our Services offers you the ability to register and login using Facebook. Where you choose to do this, we will receive certain profile information about you from your social media provider. The profile Information may include your name and social token.<br>We will use the information we receive only to associate your social token with your Sefer account or for the purposes that are described in this privacy policy. <br><br><strong>14.4 Account and data deletion</strong><br>Based on the applicable laws of your country, you may have the right to request the deletion of your personal data in some circumstances. If you want to delete your account or personal data in the application, please contact us via e-mail: support@mobile-app.store. We will respond to your request within 30 days.</p>
|
||||||
<p><strong>15. In-Ride Policy</strong></p>
|
<p><strong>15. In-Ride Policy</strong></p>
|
||||||
<p><strong>15.1 Smoking Policy: </strong></p>
|
<p><strong>15.1 Smoking Policy: </strong></p>
|
||||||
<p>No smoking or other use of tobacco products (including, but not limited to, cigarettes, pipes, cigars, snuff, or chewing tobacco) is permitted during rides. No cigarette butts or other traces of smell, litter, or tobacco use should be present in the vehicle. <img style="width: 5%;" id="content-img" src="https://classic.Swiftime.com/media/48/download/No_Smoking.svg?v=1%22" alt="image"> </p>
|
<p>No smoking or other use of tobacco products (including, but not limited to, cigarettes, pipes, cigars, snuff, or chewing tobacco) is permitted during rides. No cigarette butts or other traces of smell, litter, or tobacco use should be present in the vehicle. <img style="width: 5%;" id="content-img" src="https://classic.Seferme.com/media/48/download/No_Smoking.svg?v=1%22" alt="image"> </p>
|
||||||
<p><strong>15.2 COVID-19 Policy:</strong> Face masks must be always worn during rides.</p>
|
<p><strong>15.2 COVID-19 Policy:</strong> Face masks must be always worn during rides.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -217,33 +217,33 @@ class AppInformation {
|
|||||||
<div class="container py-5">
|
<div class="container py-5">
|
||||||
<div class="row jordan d-none">
|
<div class="row jordan d-none">
|
||||||
<div class="col-12 d-flex d-md-block justify-content-around">
|
<div class="col-12 d-flex d-md-block justify-content-around">
|
||||||
<a href="https://www.facebook.com/SwiftiJO/">
|
<a href="https://www.facebook.com/SeferJO/">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-facebook.f8f61bdf0e60.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-facebook.f8f61bdf0e60.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://twitter.com/Swiftijo">
|
<a href="https://twitter.com/Seferjo">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-twitter.4b0a1cfb3df3.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-twitter.4b0a1cfb3df3.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.instagram.com/Swiftijo">
|
<a href="https://www.instagram.com/Seferjo">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-instagram.ac0030197dc2.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-instagram.ac0030197dc2.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.linkedin.com/company/Swiftime">
|
<a href="https://www.linkedin.com/company/Seferme">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-linkedin.5c2c9d4e5afe.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-linkedin.5c2c9d4e5afe.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row ksa d-none">
|
<div class="row ksa d-none">
|
||||||
<div class="col-12 d-flex d-md-block justify-content-around">
|
<div class="col-12 d-flex d-md-block justify-content-around">
|
||||||
<a href="https://www.facebook.com/SwiftiSA/">
|
<a href="https://www.facebook.com/SeferSA/">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-facebook.f8f61bdf0e60.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-facebook.f8f61bdf0e60.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://twitter.com/Swiftiksa">
|
<a href="https://twitter.com/Seferksa">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-twitter.4b0a1cfb3df3.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-twitter.4b0a1cfb3df3.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.instagram.com/Swiftiksa">
|
<a href="https://www.instagram.com/Seferksa">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-instagram.ac0030197dc2.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-instagram.ac0030197dc2.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.linkedin.com/company/Swiftime">
|
<a href="https://www.linkedin.com/company/Seferme">
|
||||||
<img class="max-height-35 me-2" src="/static/images/Swifti-linkedin.5c2c9d4e5afe.png" alt="My image">
|
<img class="max-height-35 me-2" src="/static/images/Sefer-linkedin.5c2c9d4e5afe.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -257,13 +257,13 @@ class AppInformation {
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-7 d-flex justify-content-end mt-5 mt-md-1">
|
<div class="col-md-7 d-flex justify-content-end mt-5 mt-md-1">
|
||||||
<a href="https://apps.apple.com/app/easy-%D8%A5%D9%8A%D8%B2%D9%8A-taxi-private-car/id1178701124">
|
<a href="https://apps.apple.com/app/easy-%D8%A5%D9%8A%D8%B2%D9%8A-taxi-private-car/id1178701124">
|
||||||
<img class="footer-svg" src="/static/images/Swifti-app-store.5a6b3be7f5a8.png" alt="My image">
|
<img class="footer-svg" src="/static/images/Sefer-app-store.5a6b3be7f5a8.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://play.google.com/store/apps/details?id=me.com.easytaxi">
|
<a href="https://play.google.com/store/apps/details?id=me.com.easytaxi">
|
||||||
<img class="footer-svg" src="/static/images/Swifti-play-store.4cdeaea30113.png" alt="My image">
|
<img class="footer-svg" src="/static/images/Sefer-play-store.4cdeaea30113.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://appgallery.huawei.com/#/app/C101160149">
|
<a href="https://appgallery.huawei.com/#/app/C101160149">
|
||||||
<img class="footer-svg" src="/static/images/Swifti-app-gallery.771b4c2853de.png" alt="My image">
|
<img class="footer-svg" src="/static/images/Sefer-app-gallery.771b4c2853de.png" alt="My image">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2338,7 +2338,7 @@ double nearestDistance = double.infinity;</span>
|
|||||||
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span title="Swifti" class="c12b5a4e69860bc968b47223fd-history-item-text-from">Swifti</span>
|
<span title="Sefer" class="c12b5a4e69860bc968b47223fd-history-item-text-from">Sefer</span>
|
||||||
<span title="سفر" class="c12b5a4e69860bc968b47223fd-history-item-text-to">سفر</span>
|
<span title="سفر" class="c12b5a4e69860bc968b47223fd-history-item-text-to">سفر</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
||||||
@@ -2362,8 +2362,8 @@ double nearestDistance = double.infinity;</span>
|
|||||||
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span title="write short description for my app Swifti in en and ar and tr" class="c12b5a4e69860bc968b47223fd-history-item-text-from">write short description for my app Swifti in en and ar and tr</span>
|
<span title="write short description for my app Sefer in en and ar and tr" class="c12b5a4e69860bc968b47223fd-history-item-text-from">write short description for my app Sefer in en and ar and tr</span>
|
||||||
<span title="اكتب وصفًا مختصرًا لتطبيقي Swifti باللغة en وar وtr" class="c12b5a4e69860bc968b47223fd-history-item-text-to">اكتب وصفًا مختصرًا لتطبيقي Swifti باللغة en وar وtr</span>
|
<span title="اكتب وصفًا مختصرًا لتطبيقي Sefer باللغة en وar وtr" class="c12b5a4e69860bc968b47223fd-history-item-text-to">اكتب وصفًا مختصرًا لتطبيقي Sefer باللغة en وar وtr</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
||||||
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
||||||
@@ -2386,8 +2386,8 @@ double nearestDistance = double.infinity;</span>
|
|||||||
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span title="Swifti, güvenilir ve uygun fiyatlı sürücülerle buluşan bir taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-from">Swifti, güvenilir ve uygun fiyatlı sürücülerle buluşan bir taksi çağırma uygulamasıdır.</span>
|
<span title="Sefer, güvenilir ve uygun fiyatlı sürücülerle buluşan bir taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-from">Sefer, güvenilir ve uygun fiyatlı sürücülerle buluşan bir taksi çağırma uygulamasıdır.</span>
|
||||||
<span title="Swifti, güvenilir ve uygun fiyatlı sürüculerle bluşan bil taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-to">Swifti, güvenilir ve uygun fiyatlı sürüculerle bluşan bil taksi çağırma uygulamasıdır.</span>
|
<span title="Sefer, güvenilir ve uygun fiyatlı sürüculerle bluşan bil taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-to">Sefer, güvenilir ve uygun fiyatlı sürüculerle bluşan bil taksi çağırma uygulamasıdır.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
||||||
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
||||||
@@ -2410,7 +2410,7 @@ double nearestDistance = double.infinity;</span>
|
|||||||
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span title="Swifti, sizi bölgenizdeki güvenilir ve uygun fiyatlı sürücülerle buluşturan bir taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-from">Swifti, sizi bölgenizdeki güvenilir ve uygun fiyatlı sürücülerle buluşturan bir taksi çağırma uygulamasıdır.</span>
|
<span title="Sefer, sizi bölgenizdeki güvenilir ve uygun fiyatlı sürücülerle buluşturan bir taksi çağırma uygulamasıdır." class="c12b5a4e69860bc968b47223fd-history-item-text-from">Sefer, sizi bölgenizdeki güvenilir ve uygun fiyatlı sürücülerle buluşturan bir taksi çağırma uygulamasıdır.</span>
|
||||||
<span title="علاوة على ذلك، فإن جميع أفراد العائلة والأصدقاء يستمتعون بالمزيد من الراحة من خلال سيارات الأجرة." class="c12b5a4e69860bc968b47223fd-history-item-text-to">علاوة على ذلك، فإن جميع أفراد العائلة والأصدقاء يستمتعون بالمزيد من الراحة من خلال سيارات الأجرة.</span>
|
<span title="علاوة على ذلك، فإن جميع أفراد العائلة والأصدقاء يستمتعون بالمزيد من الراحة من خلال سيارات الأجرة." class="c12b5a4e69860bc968b47223fd-history-item-text-to">علاوة على ذلك، فإن جميع أفراد العائلة والأصدقاء يستمتعون بالمزيد من الراحة من خلال سيارات الأجرة.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
||||||
@@ -2458,8 +2458,8 @@ double nearestDistance = double.infinity;</span>
|
|||||||
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
<span title="Arabic (Egypt)" class="c12b5a4e69860bc968b47223fd-history-lng-name-to">Arabic (Egypt)</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span title="Swifti: Ride-hailing app for a seamless and affordable travel experience" class="c12b5a4e69860bc968b47223fd-history-item-text-from">Swifti: Ride-hailing app for a seamless and affordable travel experience</span>
|
<span title="Sefer: Ride-hailing app for a seamless and affordable travel experience" class="c12b5a4e69860bc968b47223fd-history-item-text-from">Sefer: Ride-hailing app for a seamless and affordable travel experience</span>
|
||||||
<span title="Swifti: تطبيق نقل الركاب لتجربة سفر سلسة وبأسعار معقولة" class="c12b5a4e69860bc968b47223fd-history-item-text-to">Swifti: تطبيق نقل الركاب لتجربة سفر سلسة وبأسعار معقولة</span>
|
<span title="Sefer: تطبيق نقل الركاب لتجربة سفر سلسة وبأسعار معقولة" class="c12b5a4e69860bc968b47223fd-history-item-text-to">Sefer: تطبيق نقل الركاب لتجربة سفر سلسة وبأسعار معقولة</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
<div class="c12b5a4e69860bc968b47223fd-history-item-remove">
|
||||||
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
<img src="chrome-extension://mnlohknjofogcljbcknkakphddjpijak/assets/Images/delete-icon.svg" alt="delete history element">
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ import 'box_name.dart';
|
|||||||
class AppLink {
|
class AppLink {
|
||||||
static String serverPHP = box.read('serverPHP');
|
static String serverPHP = box.read('serverPHP');
|
||||||
|
|
||||||
static String seferPaymentServer =
|
static String seferPaymentServer = box.read(BoxName.paymentLink);
|
||||||
'https://wallet.sefer.live/seferpw.shop/sefer/';
|
|
||||||
static String seferPaymentServer0 = box.read('seferPaymentServer');
|
static String seferPaymentServer0 = box.read('seferPaymentServer');
|
||||||
// static final String seferPaymentServer0 = Env.seferPaymentServer;
|
// static final String seferPaymentServer0 = Env.seferPaymentServer;
|
||||||
// static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
// static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
||||||
@@ -21,11 +20,13 @@ class AppLink {
|
|||||||
// static final String seferPaymentServer0 = Env.seferCairoServer;
|
// static final String seferPaymentServer0 = Env.seferCairoServer;
|
||||||
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
|
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
|
||||||
// static final String seferGizaServer = Env.seferGizaServer;
|
// static final String seferGizaServer = Env.seferGizaServer;
|
||||||
static final String endPoint = box.read(BoxName.serverChosen);
|
static final String endPoint =
|
||||||
|
box.read(BoxName.serverChosen) ?? box.read(BoxName.basicLink);
|
||||||
|
// 'https://server.sefer.live/sefer.click/sefer';
|
||||||
static final String server = endPoint;
|
static final String server = endPoint;
|
||||||
static String seferCairoServer = endPoint;
|
static String seferCairoServer = endPoint;
|
||||||
static String seferGizaServer = box.read('seferGizaServer');
|
static String seferGizaServer = box.read('Giza');
|
||||||
static String seferAlexandriaServer = box.read('seferAlexandriaServer');
|
static String seferAlexandriaServer = box.read('Alexandria');
|
||||||
// static final String server = Env.serverPHP;
|
// static final String server = Env.serverPHP;
|
||||||
|
|
||||||
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
||||||
|
|||||||
@@ -123,10 +123,8 @@ class GoogleSignInHelper {
|
|||||||
|
|
||||||
static Future<void> _handleSignUp(GoogleSignInAccount user) async {
|
static Future<void> _handleSignUp(GoogleSignInAccount user) async {
|
||||||
// Store driver information
|
// Store driver information
|
||||||
box.write(
|
box.write(BoxName.driverID,
|
||||||
BoxName.driverID,
|
(user.id) ?? 'Unknown ID'); // Ensure there's a fallback value
|
||||||
encryptionHelper.encryptData(user.id) ??
|
|
||||||
'Unknown ID'); // Ensure there's a fallback value
|
|
||||||
box.write(BoxName.emailDriver,
|
box.write(BoxName.emailDriver,
|
||||||
encryptionHelper.encryptData(user.email) ?? 'Unknown Email');
|
encryptionHelper.encryptData(user.email) ?? 'Unknown Email');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:sefer_driver/constant/box_name.dart';
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/auth/login_page.dart';
|
|
||||||
|
|
||||||
import '../../models/model/onboarding_model.dart';
|
import '../../models/model/onboarding_model.dart';
|
||||||
import '../../views/auth/captin/login_captin.dart';
|
import '../../views/auth/captin/login_captin.dart';
|
||||||
@@ -23,7 +22,7 @@ class OnBoardingControllerImp extends OnBoardingController {
|
|||||||
|
|
||||||
if (currentPage > onBoardingList.length - 1) {
|
if (currentPage > onBoardingList.length - 1) {
|
||||||
box.write(BoxName.onBoarding, 'yes');
|
box.write(BoxName.onBoarding, 'yes');
|
||||||
Get.offAll(LoginCaptin());
|
Get.offAll(() => LoginCaptin());
|
||||||
} else {
|
} else {
|
||||||
pageController.animateToPage(currentPage,
|
pageController.animateToPage(currentPage,
|
||||||
duration: const Duration(milliseconds: 900), curve: Curves.easeInOut);
|
duration: const Duration(milliseconds: 900), curve: Curves.easeInOut);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import '../../print.dart';
|
|||||||
import '../home/captin/home_captain_controller.dart';
|
import '../home/captin/home_captain_controller.dart';
|
||||||
import '../home/payment/captain_wallet_controller.dart';
|
import '../home/payment/captain_wallet_controller.dart';
|
||||||
import 'crud.dart';
|
import 'crud.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
|
|
||||||
class LocationController extends GetxController {
|
class LocationController extends GetxController {
|
||||||
LocationData? _currentLocation;
|
LocationData? _currentLocation;
|
||||||
@@ -89,7 +90,8 @@ class LocationController extends GetxController {
|
|||||||
latitude <= maxLatitude &&
|
latitude <= maxLatitude &&
|
||||||
longitude >= minLongitude &&
|
longitude >= minLongitude &&
|
||||||
longitude <= maxLongitude) {
|
longitude <= maxLongitude) {
|
||||||
box.write(BoxName.serverChosen, locationData['server_link']);
|
box.write(BoxName.serverChosen,
|
||||||
|
encryptionHelper.decryptData(locationData['server_link']));
|
||||||
// Log.print(
|
// Log.print(
|
||||||
// 'locationData----server_link: ${locationData['server_link']}');
|
// 'locationData----server_link: ${locationData['server_link']}');
|
||||||
return locationData['name'];
|
return locationData['name'];
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
import '../../constant/box_name.dart';
|
import '../../constant/box_name.dart';
|
||||||
import '../../constant/links.dart';
|
import '../../constant/links.dart';
|
||||||
@@ -44,7 +45,19 @@ class AppInitializer {
|
|||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
links = List<Map<String, dynamic>>.from(jsonDecode(res)['message']);
|
links = List<Map<String, dynamic>>.from(jsonDecode(res)['message']);
|
||||||
await box.remove(BoxName.locationName);
|
await box.remove(BoxName.locationName);
|
||||||
|
await box.remove(BoxName.basicLink);
|
||||||
|
await box.remove(links[4]['name']);
|
||||||
|
await box.remove(links[1]['name']);
|
||||||
|
await box.remove(links[2]['name']);
|
||||||
await box.write(BoxName.locationName, links);
|
await box.write(BoxName.locationName, links);
|
||||||
|
await box.write(BoxName.basicLink,
|
||||||
|
encryptionHelper.decryptData(links[0]['server_link']));
|
||||||
|
await box.write(links[2]['name'],
|
||||||
|
encryptionHelper.decryptData(links[2]['server_link']));
|
||||||
|
await box.write(links[1]['name'],
|
||||||
|
encryptionHelper.decryptData(links[1]['server_link']));
|
||||||
|
await box.write(BoxName.paymentLink,
|
||||||
|
encryptionHelper.decryptData(links[4]['server_link']));
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('Error fetching or decoding location data: $e');
|
print('Error fetching or decoding location data: $e');
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import 'package:sefer_driver/main.dart';
|
|||||||
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../constant/colors.dart';
|
|
||||||
|
|
||||||
class AssuranceHealthController extends GetxController {
|
class AssuranceHealthController extends GetxController {
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
Map tripCount = {};
|
Map tripCount = {};
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:sefer_driver/constant/box_name.dart';
|
|||||||
import 'package:sefer_driver/constant/colors.dart';
|
import 'package:sefer_driver/constant/colors.dart';
|
||||||
import 'package:sefer_driver/constant/links.dart';
|
import 'package:sefer_driver/constant/links.dart';
|
||||||
import 'package:sefer_driver/controller/functions/crud.dart';
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/encrypt_decrypt.dart';
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
||||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||||
@@ -41,14 +42,14 @@ class RatingController extends GetxController {
|
|||||||
"name": box.read(BoxName.driverID) != null
|
"name": box.read(BoxName.driverID) != null
|
||||||
? box.read(BoxName.nameDriver)
|
? box.read(BoxName.nameDriver)
|
||||||
: box.read(BoxName.name),
|
: box.read(BoxName.name),
|
||||||
"email": box.read(BoxName.driverID) == null
|
"email": encryptionHelper
|
||||||
? box.read(BoxName.email).toString()
|
.decryptData(box.read(BoxName.emailDriver))
|
||||||
: box.read(BoxName.emailDriver).toString(),
|
.toString(),
|
||||||
"phone": box.read(BoxName.driverID) == null
|
"phone": encryptionHelper
|
||||||
? box.read(BoxName.phone)
|
.decryptData(box.read(BoxName.phoneDriver))
|
||||||
: box.read(BoxName.phoneDriver),
|
.toString(),
|
||||||
"userId": box.read(BoxName.driverID) ?? box.read(BoxName.passengerID),
|
"userId": box.read(BoxName.driverID),
|
||||||
"userType": box.read(BoxName.driverID) != null ? "driver" : "passenger",
|
"userType": "driver",
|
||||||
"rating": rating.toString(),
|
"rating": rating.toString(),
|
||||||
"comment": comment.text.isEmpty
|
"comment": comment.text.isEmpty
|
||||||
? 'nothing'
|
? 'nothing'
|
||||||
@@ -66,7 +67,7 @@ class RatingController extends GetxController {
|
|||||||
|
|
||||||
if (parsedResponse['status'] == 'success') {
|
if (parsedResponse['status'] == 'success') {
|
||||||
// Display a success message
|
// Display a success message
|
||||||
await CRUD().post(link: AppLink.sendEmailRateingApp, payload: {
|
CRUD().post(link: AppLink.sendEmailRateingApp, payload: {
|
||||||
"name": payload["name"],
|
"name": payload["name"],
|
||||||
"email": payload["email"],
|
"email": payload["email"],
|
||||||
"rating": rating.toString(),
|
"rating": rating.toString(),
|
||||||
|
|||||||
BIN
lib/env.zip
Normal file
BIN
lib/env.zip
Normal file
Binary file not shown.
@@ -24,6 +24,7 @@ import 'controller/firebase/firbase_messge.dart';
|
|||||||
import 'controller/firebase/local_notification.dart';
|
import 'controller/firebase/local_notification.dart';
|
||||||
import 'controller/functions/location_controller.dart';
|
import 'controller/functions/location_controller.dart';
|
||||||
import 'controller/functions/secure_storage.dart';
|
import 'controller/functions/secure_storage.dart';
|
||||||
|
import 'controller/home/payment/captain_wallet_controller.dart';
|
||||||
import 'controller/local/local_controller.dart';
|
import 'controller/local/local_controller.dart';
|
||||||
import 'controller/local/translations.dart';
|
import 'controller/local/translations.dart';
|
||||||
import 'controller/payment/paymob/paymob_wallet.dart';
|
import 'controller/payment/paymob/paymob_wallet.dart';
|
||||||
@@ -124,7 +125,8 @@ void main() async {
|
|||||||
|
|
||||||
await GetStorage.init();
|
await GetStorage.init();
|
||||||
Stripe.publishableKey = AK.publishableKeyStripe;
|
Stripe.publishableKey = AK.publishableKeyStripe;
|
||||||
|
final AppInitializer initializer = AppInitializer();
|
||||||
|
await initializer.initializeApp();
|
||||||
PermissionStatus status1 = await Permission.location.status;
|
PermissionStatus status1 = await Permission.location.status;
|
||||||
if (status1.isGranted) {
|
if (status1.isGranted) {
|
||||||
await LocationController().startLocationUpdates();
|
await LocationController().startLocationUpdates();
|
||||||
@@ -183,8 +185,6 @@ void main() async {
|
|||||||
userTokenExpiration: 200,
|
userTokenExpiration: 200,
|
||||||
iFrameID: 837992,
|
iFrameID: 837992,
|
||||||
);
|
);
|
||||||
final AppInitializer initializer = AppInitializer();
|
|
||||||
await initializer.initializeApp();
|
|
||||||
runApp(MyApp());
|
runApp(MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
||||||
import 'package:sefer_driver/constant/colors.dart';
|
import 'package:sefer_driver/constant/colors.dart';
|
||||||
import 'package:sefer_driver/constant/style.dart';
|
import 'package:sefer_driver/constant/style.dart';
|
||||||
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
|
import 'package:sefer_driver/controller/auth/captin/register_captin_controller.dart';
|
||||||
@@ -7,7 +10,11 @@ import 'package:sefer_driver/views/widgets/my_textField.dart';
|
|||||||
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||||
|
|
||||||
|
import '../../../../controller/functions/crud.dart';
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
|
import '../../../../print.dart';
|
||||||
import '../../../Rate/rate_app_page.dart';
|
import '../../../Rate/rate_app_page.dart';
|
||||||
|
|
||||||
class SmsSignupEgypt extends StatelessWidget {
|
class SmsSignupEgypt extends StatelessWidget {
|
||||||
@@ -113,7 +120,101 @@ class SmsSignupEgypt extends StatelessWidget {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.to(RatingScreen());
|
Get.to(RatingScreen());
|
||||||
}),
|
}),
|
||||||
)
|
),
|
||||||
|
IconButton(
|
||||||
|
onPressed: () async {
|
||||||
|
// final plainText =
|
||||||
|
// 'https://server.sefer.live/sefer.click/sefer';
|
||||||
|
// debugPrint('Plain Text: $plainText');
|
||||||
|
|
||||||
|
// Encrypt the data
|
||||||
|
// final encryptedData = encryptionHelper.encryptData(plainText);
|
||||||
|
// debugPrint('Encrypted: $encryptedData');
|
||||||
|
|
||||||
|
// Decrypt the data
|
||||||
|
// final decryptedData = encryptionHelper.decryptData(
|
||||||
|
// encryptedData); // Use the encryptedData variable
|
||||||
|
// debugPrint('Decrypted: $decryptedData');
|
||||||
|
// box.remove('DriversSecure');
|
||||||
|
var drivers0 = await CRUD().get(
|
||||||
|
link:
|
||||||
|
'https://server.sefer.live/sefer.click/sefer/auth/captin/getAllDriverSecure.php',
|
||||||
|
payload: {});
|
||||||
|
var decodedDriver;
|
||||||
|
if (drivers0 != 'failure') {
|
||||||
|
decodedDriver = jsonDecode(drivers0);
|
||||||
|
|
||||||
|
// box.write('DriversSecure', decodedDriver['message']);
|
||||||
|
}
|
||||||
|
var drivers = decodedDriver['message'];
|
||||||
|
Log.print('drivers.length: ${drivers.length}');
|
||||||
|
for (var i = 0; i < drivers.length; i++) {
|
||||||
|
Log.print('drivers: ${drivers[i]['id']}');
|
||||||
|
var payload = {
|
||||||
|
"phone": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['phone'].toString()),
|
||||||
|
"email": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['email'].toString()),
|
||||||
|
"gender": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['gender'].toString()),
|
||||||
|
"license_type": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['license_type'].toString()),
|
||||||
|
"national_number": encryptionHelper.encryptData(
|
||||||
|
drivers[i]['national_number'].toString()),
|
||||||
|
"name_arabic": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['name_arabic'].toString()),
|
||||||
|
"name_english": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['name_english'].toString()),
|
||||||
|
"address": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['address'].toString()),
|
||||||
|
"card_id": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['card_id'].toString()),
|
||||||
|
"occupation": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['occupation'].toString()),
|
||||||
|
"religion": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['religion'].toString()),
|
||||||
|
"birthdate": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['birthdate'].toString()),
|
||||||
|
"site": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['site'].toString()),
|
||||||
|
"first_name": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['first_name'].toString()),
|
||||||
|
"last_name": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['last_name'].toString()),
|
||||||
|
"education": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['education'].toString()),
|
||||||
|
"employmentType": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['employmentType'].toString()),
|
||||||
|
"maritalStatus": (drivers[i]['maritalStatus'].toString()),
|
||||||
|
"fullNameMaritial": encryptionHelper.encryptData(
|
||||||
|
drivers[i]['fullNameMaritial'].toString()),
|
||||||
|
'id': drivers[i]['id'].toString()
|
||||||
|
};
|
||||||
|
print(payload);
|
||||||
|
// if (drivers[i]['id'].toString() !=
|
||||||
|
// '01002165502a9sHC1tbrUrUw') {
|
||||||
|
var result = await CRUD().post(
|
||||||
|
link:
|
||||||
|
'https://server.sefer.live/sefer.click/sefer/auth/captin/updateDriverSecure.php',
|
||||||
|
payload: payload);
|
||||||
|
if (result != 'failure') {
|
||||||
|
print(result);
|
||||||
|
} else {
|
||||||
|
print('failure');
|
||||||
|
}
|
||||||
|
Future.delayed(Duration(microseconds: 200));
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
MyDialog().getDialog('title', 'midTitle', () {
|
||||||
|
Get.back();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
|
FontAwesome5.grin_tears,
|
||||||
|
size: 29,
|
||||||
|
color: AppColor.blueColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -486,7 +486,7 @@ class UserAccountHeader extends StatelessWidget {
|
|||||||
: ClipRRect(
|
: ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(50),
|
borderRadius: BorderRadius.circular(50),
|
||||||
child: Image.network(
|
child: Image.network(
|
||||||
'${AppLink.seferCairoServer}/portrate_captain_image/${encryptionHelper.decryptData(box.read(BoxName.driverID))}.jpg',
|
'${AppLink.seferCairoServer}/portrate_captain_image/${(box.read(BoxName.driverID))}.jpg',
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import 'package:bubble_head/bubble.dart';
|
|||||||
import '../../../../constant/colors.dart';
|
import '../../../../constant/colors.dart';
|
||||||
import '../../../../constant/info.dart';
|
import '../../../../constant/info.dart';
|
||||||
import '../../../../constant/style.dart';
|
import '../../../../constant/style.dart';
|
||||||
import '../../../../controller/functions/encrypt_decrypt.dart';
|
|
||||||
import '../../../../controller/functions/location_controller.dart';
|
import '../../../../controller/functions/location_controller.dart';
|
||||||
import '../../../../controller/functions/overlay_permisssion.dart';
|
import '../../../../controller/functions/overlay_permisssion.dart';
|
||||||
import '../../../../controller/functions/package_info.dart';
|
import '../../../../controller/functions/package_info.dart';
|
||||||
@@ -24,7 +23,6 @@ import '../../../widgets/circle_container.dart';
|
|||||||
import '../driver_map_page.dart';
|
import '../driver_map_page.dart';
|
||||||
import 'widget/connect.dart';
|
import 'widget/connect.dart';
|
||||||
import 'widget/left_menu_map_captain.dart';
|
import 'widget/left_menu_map_captain.dart';
|
||||||
import '../../../../controller/home/payment/captain_wallet_controller.dart';
|
|
||||||
import '../../../../main.dart';
|
import '../../../../main.dart';
|
||||||
|
|
||||||
class HomeCaptain extends StatelessWidget {
|
class HomeCaptain extends StatelessWidget {
|
||||||
@@ -229,7 +227,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'${"Today".tr}: ${encryptionHelper.decryptData(homeCaptainController.totalMoneyToday)}',
|
'${"Today".tr}: ${(homeCaptainController.totalMoneyToday)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: AppColor.greenColor,
|
color: AppColor.greenColor,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -253,7 +251,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'${AppInformation.appName}: ${encryptionHelper.decryptData(homeCaptainController.totalMoneyInSEFER)}',
|
'${AppInformation.appName}: ${(homeCaptainController.totalMoneyInSEFER)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: AppColor.yellowColor,
|
color: AppColor.yellowColor,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -268,7 +266,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Total Points is'.tr}: ${encryptionHelper.decryptData(homeCaptainController.totalPoints)}',
|
'${'Total Points is'.tr}: ${(homeCaptainController.totalPoints)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
@@ -279,19 +277,15 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
horizontal: 12, vertical: 6),
|
horizontal: 12, vertical: 6),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
color: int.parse(encryptionHelper.decryptData(
|
color: int.parse((homeCaptainController
|
||||||
homeCaptainController
|
.countRideToday)) <
|
||||||
.countRideToday)) <
|
|
||||||
5
|
5
|
||||||
? AppColor.accentColor
|
? AppColor.accentColor
|
||||||
: int.parse(encryptionHelper.decryptData(
|
: int.parse((homeCaptainController
|
||||||
homeCaptainController
|
.countRideToday)) >
|
||||||
.countRideToday)) >
|
|
||||||
5 &&
|
5 &&
|
||||||
int.parse(
|
int.parse((homeCaptainController
|
||||||
encryptionHelper.decryptData(
|
.countRideToday)) <
|
||||||
homeCaptainController
|
|
||||||
.countRideToday)) <
|
|
||||||
10
|
10
|
||||||
? AppColor.yellowColor
|
? AppColor.yellowColor
|
||||||
: AppColor.greenColor,
|
: AppColor.greenColor,
|
||||||
@@ -305,7 +299,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
'${"Ride Today : ".tr}: ${encryptionHelper.decryptData(homeCaptainController.countRideToday)}',
|
'${"Ride Today : ".tr}: ${(homeCaptainController.countRideToday)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -356,8 +350,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
encryptionHelper.decryptData(
|
(homeCaptainController.stringActiveDuration),
|
||||||
homeCaptainController.stringActiveDuration),
|
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: AppColor.greenColor,
|
color: AppColor.greenColor,
|
||||||
@@ -378,8 +371,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
encryptionHelper.decryptData(
|
(homeCaptainController.totalDurationToday),
|
||||||
homeCaptainController.totalDurationToday),
|
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: AppColor.accentColor,
|
color: AppColor.accentColor,
|
||||||
|
|||||||
@@ -24,16 +24,16 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
captainWalletController.getCaptainWalletFromBuyPoints();
|
captainWalletController.getCaptainWalletFromBuyPoints();
|
||||||
return Center(
|
return Center(
|
||||||
child: GetBuilder<HomeCaptainController>(
|
child: GetBuilder<HomeCaptainController>(
|
||||||
builder: (homeCaptainController) => double.parse(encryptionHelper
|
builder: (homeCaptainController) => double.parse(
|
||||||
.decryptData(captainWalletController.totalPoints)) <
|
(captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? CupertinoButton(
|
? CupertinoButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
// backgroundColor: CupertinoColors.destructiveRed,
|
// backgroundColor: CupertinoColors.destructiveRed,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
title: double.parse(encryptionHelper.decryptData(
|
title: double.parse(
|
||||||
captainWalletController.totalPoints)) <
|
(captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? 'You dont have Points'.tr
|
? 'You dont have Points'.tr
|
||||||
: 'You Are Stopped For this Day !'.tr,
|
: 'You Are Stopped For this Day !'.tr,
|
||||||
@@ -42,9 +42,8 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
double.parse(encryptionHelper.decryptData(
|
double.parse((captainWalletController
|
||||||
captainWalletController
|
.totalPoints)) <
|
||||||
.totalPoints)) <
|
|
||||||
-300
|
-300
|
||||||
? await Get.find<TextToSpeechController>()
|
? await Get.find<TextToSpeechController>()
|
||||||
.speakText(
|
.speakText(
|
||||||
@@ -58,9 +57,8 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
icon: const Icon(Icons.headphones),
|
icon: const Icon(Icons.headphones),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
double.parse(encryptionHelper.decryptData(
|
double.parse((captainWalletController
|
||||||
captainWalletController
|
.totalPoints)) <
|
||||||
.totalPoints)) <
|
|
||||||
-300
|
-300
|
||||||
? 'You must be recharge your Account'.tr
|
? 'You must be recharge your Account'.tr
|
||||||
: 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!'
|
: 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!'
|
||||||
@@ -69,8 +67,8 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
confirm: double.parse(encryptionHelper.decryptData(
|
confirm: double.parse(
|
||||||
captainWalletController.totalPoints)) <
|
(captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? MyElevatedButton(
|
? MyElevatedButton(
|
||||||
title: 'Recharge my Account'.tr,
|
title: 'Recharge my Account'.tr,
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:sefer_driver/constant/box_name.dart';
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -9,6 +12,7 @@ import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart
|
|||||||
|
|
||||||
import '../../../../../constant/colors.dart';
|
import '../../../../../constant/colors.dart';
|
||||||
import '../../../../../controller/functions/encrypt_decrypt.dart';
|
import '../../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
|
import '../../../../../print.dart';
|
||||||
import '../../../../Rate/ride_calculate_driver.dart';
|
import '../../../../Rate/ride_calculate_driver.dart';
|
||||||
|
|
||||||
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
||||||
@@ -101,19 +105,88 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
child: Builder(builder: (context) {
|
child: Builder(builder: (context) {
|
||||||
return IconButton(
|
return IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final plainText = 'Al-sayyd';
|
// final plainText =
|
||||||
debugPrint('Plain Text: $plainText');
|
// 'https://server.sefer.live/sefer.click/sefer';
|
||||||
|
// debugPrint('Plain Text: $plainText');
|
||||||
|
|
||||||
// Encrypt the data
|
// Encrypt the data
|
||||||
final encryptedData = encryptionHelper.encryptData(plainText);
|
// final encryptedData = encryptionHelper.encryptData(plainText);
|
||||||
debugPrint('Encrypted: $encryptedData');
|
// debugPrint('Encrypted: $encryptedData');
|
||||||
|
|
||||||
// Decrypt the data
|
// Decrypt the data
|
||||||
final decryptedData = encryptionHelper.decryptData(
|
// final decryptedData = encryptionHelper.decryptData(
|
||||||
encryptedData); // Use the encryptedData variable
|
// encryptedData); // Use the encryptedData variable
|
||||||
debugPrint('Decrypted: $decryptedData');
|
// debugPrint('Decrypted: $decryptedData');
|
||||||
// rlyouFVUqI7TEhu9UEMangaIViglSgxLk3/d1c0Yo7g=
|
// box.remove('DriversSecure');
|
||||||
// rlyouFVUqI7TEhu9UEMangaIViglSgxLk3/d1c0Yo7g=
|
var drivers0 = await CRUD().post(
|
||||||
|
link:
|
||||||
|
'https://server.sefer.live/sefer.click/sefer/auth/captin/getAllDriverSecure.php',
|
||||||
|
payload: {});
|
||||||
|
var decodedDriver;
|
||||||
|
if (drivers0 != 'failure') {
|
||||||
|
decodedDriver = jsonDecode(drivers0);
|
||||||
|
|
||||||
|
// box.write('DriversSecure', decodedDriver['message']);
|
||||||
|
}
|
||||||
|
var drivers = decodedDriver['message'];
|
||||||
|
Log.print('drivers.length: ${drivers.length}');
|
||||||
|
for (var i = 0; i < drivers.length; i++) {
|
||||||
|
Log.print('drivers: ${drivers[i]['id']}');
|
||||||
|
var payload = {
|
||||||
|
"phone": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['phone'].toString()),
|
||||||
|
"email": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['email'].toString()),
|
||||||
|
"gender": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['gender'].toString()),
|
||||||
|
"license_type": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['license_type'].toString()),
|
||||||
|
"national_number": encryptionHelper.encryptData(
|
||||||
|
drivers[i]['national_number'].toString()),
|
||||||
|
"name_arabic": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['name_arabic'].toString()),
|
||||||
|
"name_english": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['name_english'].toString()),
|
||||||
|
"address": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['address'].toString()),
|
||||||
|
"card_id": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['card_id'].toString()),
|
||||||
|
"occupation": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['occupation'].toString()),
|
||||||
|
"religion": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['religion'].toString()),
|
||||||
|
"birthdate": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['birthdate'].toString()),
|
||||||
|
"site": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['site'].toString()),
|
||||||
|
"first_name": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['first_name'].toString()),
|
||||||
|
"last_name": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['last_name'].toString()),
|
||||||
|
"education": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['education'].toString()),
|
||||||
|
"employmentType": encryptionHelper
|
||||||
|
.encryptData(drivers[i]['employmentType'].toString()),
|
||||||
|
"maritalStatus": (drivers[i]['maritalStatus'].toString()),
|
||||||
|
"fullNameMaritial": encryptionHelper.encryptData(
|
||||||
|
drivers[i]['fullNameMaritial'].toString()),
|
||||||
|
'id': drivers[i]['id'].toString()
|
||||||
|
};
|
||||||
|
print(payload);
|
||||||
|
// if (drivers[i]['id'].toString() !=
|
||||||
|
// '01002165502a9sHC1tbrUrUw') {
|
||||||
|
var result = await CRUD().post(
|
||||||
|
link:
|
||||||
|
'https://server.sefer.live/sefer.click/sefer/auth/captin/updateDriverSecure.php',
|
||||||
|
payload: payload);
|
||||||
|
if (result != 'failure') {
|
||||||
|
print(result);
|
||||||
|
} else {
|
||||||
|
print('failure');
|
||||||
|
}
|
||||||
|
Future.delayed(Duration(microseconds: 200));
|
||||||
|
// }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
FontAwesome5.grin_tears,
|
FontAwesome5.grin_tears,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:sefer_driver/constant/style.dart';
|
import 'package:sefer_driver/constant/style.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/encrypt_decrypt.dart';
|
||||||
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
||||||
import 'package:sefer_driver/views/auth/captin/criminal_documents_page.dart';
|
import 'package:sefer_driver/views/auth/captin/criminal_documents_page.dart';
|
||||||
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
||||||
@@ -79,8 +80,9 @@ class ProfileCaptain extends StatelessWidget {
|
|||||||
''),
|
''),
|
||||||
phoneNumber:
|
phoneNumber:
|
||||||
controller.captainProfileData['phone'] ?? '',
|
controller.captainProfileData['phone'] ?? '',
|
||||||
email:
|
email: encryptionHelper.decryptData(
|
||||||
controller.captainProfileData['email'] ?? '',
|
controller.captainProfileData['email']) ??
|
||||||
|
'',
|
||||||
birthdate:
|
birthdate:
|
||||||
controller.captainProfileData['birthdate'] ??
|
controller.captainProfileData['birthdate'] ??
|
||||||
'',
|
'',
|
||||||
@@ -105,8 +107,8 @@ class ProfileCaptain extends StatelessWidget {
|
|||||||
expirationDate: controller
|
expirationDate: controller
|
||||||
.captainProfileData['expiration_date'] ??
|
.captainProfileData['expiration_date'] ??
|
||||||
'',
|
'',
|
||||||
ratingCount: controller
|
ratingCount: int.parse(controller
|
||||||
.captainProfileData['ratingCount'] ??
|
.captainProfileData['ratingCount']) ??
|
||||||
0,
|
0,
|
||||||
ratingDriver: controller
|
ratingDriver: controller
|
||||||
.captainProfileData['ratingDriver'] !=
|
.captainProfileData['ratingDriver'] !=
|
||||||
@@ -116,7 +118,9 @@ class ProfileCaptain extends StatelessWidget {
|
|||||||
.toString()) ??
|
.toString()) ??
|
||||||
0
|
0
|
||||||
: null,
|
: null,
|
||||||
age: controller.captainProfileData['age'] ?? 0,
|
age: int.parse(
|
||||||
|
controller.captainProfileData['age']) ??
|
||||||
|
0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user