User agreement updates done.

merge-update-with-lab-changes
haroon amjad 10 months ago
parent d865bd9c3b
commit 0dc32e061f

@ -2174,7 +2174,6 @@ const Map localizedValues = {
"termsConditions19": {"en": "3.5 We reserve the right to disable your ability to make enquiries through the Sites for a period, the duration of which is at sole discretion in the following circumstances:", "ar": "3-5 نحن نحتفظ بالحق في تعطيل قدرتك على إرسال الاستفسارات من خلال المواقع لأي فترة يتم تحديد مدتها وفقًا لتقديرنا الخاص في الحالات التالية:"},
"termsConditions19a": {"en": "a) you fail to attend three (3) appointments booked and confirmed through the Sites. ", "ar": "(1) في حال أخفقت في حضور ثلاثة (3) مواعيد تم حجزها وتأكيدها من خلال المواقع. "},
"termsConditions19b": {"en": "b) we determine at our sole discretion to do so for whatever reason.", "ar": "(2) في حال ارتأينا القيام بذلك وفقاً لتقديرنا المنفرد لأي سبب كان."},
"termsHeading5": {"en": "4. PURCHASE CONDITIONS", "ar": "4. شروط الشراء"},
"termsConditions20": {"en": "4.1 The Sites must not be used for speculative, false, or fraudulent purchases. You warrant, represent and undertake that all information you provide about yourself and about anyone else is true and accurate when you are making payments to the Sites. ", "ar": "4-1 يتعين عدم استخدام المواقع لإجراء مشتريات مضاربة أو خاطئة أو احتيالية. أنت تضمن وتقر وتتعهد بأن جميع المعلومات التي تقدمها عن نفسك وحول أي شخص آخر هي معلومات صحيحة ودقيقة عند سدادك لمدفوعات عبر المواقع."},
"termsConditions21": {"en": "4.2 Services purchased through the Sites as a result of visits to the Sites made by you will be subject to the policy that applies to the particular services purchased by you (Policy). In the event of any discrepancy between these Terms of Use and the relevant Policy, the terms of the Policy will prevail, but only to the extent of the inconsistency. If there is a Policy for any particular service, it will be made clear to you before you access the service.", "ar": "4-2 الخدمات التي تم شراؤها من خلال المواقع نتيجة لزياراتك إلى المواقع، ستكون خاضعة للسياسة التي تنطبق على الخدمات المعينة التي تم شراؤها من جانبك (السياسة). في حالة وجود أي تباين بين شروط الاستخدام هذه والسياسة ذات الصلة، فإنه يُعتد بشروط السياسة، ولكن فقط في حدود ذلك التعارض . إذا كانت هناك سياسة محددة لأي خدمة معينة، فسيتم توضيحها لك قبل دخولك إلى الخدمة."},
@ -2224,7 +2223,10 @@ const Map localizedValues = {
"termsHeading10": {"en": "9.TERMINATION", "ar": "9. الإنهاء"},
"termsConditions42": {"en": "9.1 We may discontinue any service at any time or terminate your access to one or more services at any time for any reason, with or without notice to you and without incurring any liability to you, however that liability may arise.", "ar": "9-1 يجوز لنا التوقف عن توفير أي خدمة أو أنهاء حقك في الدخول إلى أي خدمة أو أكثر في أي وقت ولأي سبب سواء بموجب إخطار نرسله لك أو بدونه ودون أنت نتحمل أي مسؤولية تجاهك، بغض النظر عن كيفية نشوء تلك المسؤولية."},
"termsConditions43": {"en": "9.2 All restrictions and all disclaimers and exclusions and limitations of our liability will survive any termination. Upon termination, you must not directly or indirectly access or use the services.", "ar": "9-2 ستظل جميع القيود وجميع إخلاءات الطرف من المسؤولية والاستثناءات والقيود الخاصة بمسؤوليتنا سارية بعد أي إنهاء. عند الإنهاء، يتعين عليك عدم الدخول إلى الخدمات سواء بشكل مباشر أو غير مباشر."},
"termsConditions44": {"en": "9.2 All restrictions and all disclaimers and exclusions and limitations of our liability will survive any termination. Upon termination, you must not directly or indirectly access or use the services.", "ar": "9-2 ستظل جميع القيود وجميع إخلاءات الطرف من المسؤولية والاستثناءات والقيود الخاصة بمسؤوليتنا سارية بعد أي إنهاء. عند الإنهاء، يتعين عليك عدم الدخول إلى الخدمات سواء بشكل مباشر أو غير مباشر."},
"termsHeading11": {"en": "10. INDEMNITY", "ar": "10. ضمان التعويض"},
"termsConditions44": {"en": "You indemnify us in full in respect of any liability incurred by us or suffered by us for any loss, cost, damage or expense, as a result of your breach of these Online Services Terms of Use. Where you use our services inappropriately or maliciously, you agree that you will indemnify us against any losses suffered by us or any third parties as a result of or in connection with such use.", "ar": "أنت تلتزم بضمان تعويضنا بشكل الكامل فيما يتعلق بأي مسؤولية تترتب علينا أو نتحملها عن أي خسارة أو تكلفة أو ضرر أو مصاريف، نتيجة لإخلالك بشروط استخدام الخدمات الالكترونية هذه. عندما تستخدم خدماتنا بشكل غير مناسب أو ضار، فإنك توافق على أنك ستعوضنا عن أي خسائر نتكبدها نحن أو أي طرف ثالث نتيجة هذا الاستخدام أو فيما يتعلق به."},
"termsHeading12": {"en": "11. GENERAL", "ar": "11. أحكام عامة"},
"termsConditions45": {"en": "As noted above, these Online Services Terms of Use are subject to the General Terms and form part of the same agreement. You should ensure you have read the General Terms. In particular, please note the following sections, as they relate to the online services, Website Terms of Use: 2) No Warranties; 3) Submission of Content; 12) Limitation of Liability; 13) Indemnity; 14) Availability of the Site; 15) Privacy; 18) General. App User Agreement: 1.4) use of location data.", "ar": "11-1 كما هو مذكور أعلاه، تخضع شروط استخدام الخدمات الالكترونية هذه للشروط العامة وتشكل جزءاً من نفس الاتفاقية. يتعين عليك الحرص على قراءة الشروط العامة بتمعن. على وجه الخصوص، يرجى التمعن في الأقسام التالية، من حيث صلتها بالخدمات الالكترونية, شروط استخدام الموقع الإلكتروني: 2) انعدام الضمانات؛ 3) تقديم المحتوى؛ 12) حدود المسؤولية؛ 13) ضمان التعويض؛ 14) توافر الموقع؛ 15) الخصوصية؛ 18) أحكام عامة. اتفاقية مستخدم التطبيق: 1-4) استخدام بيانات تحديد المواقع."},
"termsConditionsRead": {"en": "I have read these Online Services Terms of Use and all other terms and conditions referred to in them. I understand that by ticking this box and proceeding to use the services I will be bound by these Terms & Conditions and that they govern the services to be provided to me. I consent to the receipt of the online services and the use of my personal information, including sensitive personal information, for the purposes set out above and in accordance with the Privacy Policy.", "ar": "لقد قرأت شروط وأحكام الخدمات الالكترونية عبر الانترنت هذه وجميع البنود والشروط الأخرى المشار إليها فيها. أدرك أنه بمجرد وضع إشارة صح في هذا المربع والاستمرار في استخدام الخدمات، سأكون ملزماً بهذه الشروط والأحكام وأنها تحكم الخدمات التي سيتم تقديمها لي. أوافق على تلقي الخدمات الالكترونية عبر الانترنت واستخدام معلوماتي الشخصية، بما في ذلك المعلومات الشخصية الحساسة، للأغراض الموضحة أعلاه ووفقاً لسياسة الخصوصية."},
};

@ -1,29 +1,40 @@
import 'package:diplomaticquarterapp/core/viewModels/TermsConditionsViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';
import 'package:provider/provider.dart';
class UserAgreementPage extends StatelessWidget {
class UserAgreementPage extends StatefulWidget {
@override
State<UserAgreementPage> createState() => _UserAgreementPageState();
}
class _UserAgreementPageState extends State<UserAgreementPage> {
late ProjectViewModel projectViewModel;
bool acceptTerms = false;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return BaseView<TermsConditionsViewModel>(
onModelReady: (model) => model.getUserTermsAndConditions(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
isShowDecPage: false,
appBarTitle: TranslationBase.of(context).termsConditions,
body: SingleChildScrollView(
child: Padding(
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
isShowDecPage: false,
appBarTitle: TranslationBase.of(context).termsConditions,
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -448,18 +459,65 @@ class UserAgreementPage extends StatelessWidget {
style: TextStyle(fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(12.0),
Text(
TranslationBase.of(context).termsHeading11,
style: TextStyle(
fontSize: 20, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(12.0),
Text(
TranslationBase.of(context).termsConditions44,
style: TextStyle(fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(12.0),
Text(
TranslationBase.of(context).termsHeading12,
style: TextStyle(
fontSize: 20, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(12.0),
Text(
TranslationBase.of(context).termsConditions45,
style: TextStyle(fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
mHeight(24.0),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Checkbox(
value: acceptTerms,
onChanged: (v) {
setState(() => acceptTerms = v!);
}),
Expanded(
child: Text(
TranslationBase.of(context).termsConditionsRead,
style: TextStyle(
fontSize: 16, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24),
),
),
],
),
mHeight(75.0),
],
),
)
// Html(
// data: model.userAgreementContent,
// ),
)),
),
),
bottomSheet: Container(
color: CustomColors.white,
padding: EdgeInsets.fromLTRB(12.0, 1.0, 12.0, 25.0),
child: DefaultButton(
TranslationBase.of(context).acceptLbl.toUpperCase(),
acceptTerms
? () {
Navigator.pop(context);
}
: null,
color: CustomColors.green,
disabledColor: CustomColors.grey2,
),
),
),
);
}
}

@ -3352,7 +3352,11 @@ class TranslationBase {
String get termsHeading10 => localizedValues["termsHeading10"][locale.languageCode];
String get termsConditions42 => localizedValues["termsConditions42"][locale.languageCode];
String get termsConditions43 => localizedValues["termsConditions43"][locale.languageCode];
String get termsHeading11 => localizedValues["termsHeading11"][locale.languageCode];
String get termsConditions44 => localizedValues["termsConditions44"][locale.languageCode];
String get termsHeading12 => localizedValues["termsHeading12"][locale.languageCode];
String get termsConditions45 => localizedValues["termsConditions45"][locale.languageCode];
String get termsConditionsRead => localizedValues["termsConditionsRead"][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

Loading…
Cancel
Save