Files
driver_tripz/lib/views/auth/captin/login_captin.dart
Hamza-Ayed 1d2ceed031 11/21/1
2023-11-21 18:20:31 +03:00

406 lines
18 KiB
Dart

import 'dart:convert';
import 'package:animated_text_kit/animated_text_kit.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:get/get.dart';
import 'package:ride/controller/functions/llama_ai.dart';
import 'package:ride/env/env.dart';
import '../../../constant/api_key.dart';
import '../../../constant/box_name.dart';
import '../../../constant/char_map.dart';
import '../../../constant/colors.dart';
import '../../../constant/credential.dart';
import '../../../constant/info.dart';
import '../../../constant/style.dart';
import '../../../controller/auth/captin/login_captin_controller.dart';
import '../../../controller/auth/login_controller.dart';
import '../../../main.dart';
import '../../widgets/elevated_btn.dart';
import '../../widgets/my_scafold.dart';
import '../../widgets/mycircular.dart';
import 'register_captin.dart';
class LoginCaptin extends StatelessWidget {
final controller = Get.put(LoginController());
LoginCaptin({super.key});
@override
Widget build(BuildContext context) {
Get.put(LoginCaptinController());
return GetBuilder<LoginCaptinController>(
builder: (controller) => MyScafolld(
title: 'Login Captin'.tr,
isleading: true,
body: [
if (box.read(BoxName.agreeTerms) != 'agreed')
agreedPage()
else
SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(25),
child: Container(
decoration: const BoxDecoration(
boxShadow: [
BoxShadow(
offset: Offset(3, 3),
color: AppColor.accentColor,
blurRadius: 3)
],
color: AppColor.secondaryColor,
),
child: Form(
key: controller.formKey,
child: Padding(
padding: const EdgeInsets.all(16.0),
child: SingleChildScrollView(
child: Column(
children: [
TextFormField(
keyboardType: TextInputType.emailAddress,
controller: controller.emailController,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: AppColor.primaryColor,
width: 2.0,
),
borderRadius: BorderRadius.circular(10),
),
fillColor: AppColor.accentColor,
hoverColor: AppColor.accentColor,
focusColor: AppColor.accentColor,
border: const OutlineInputBorder(
borderRadius: BorderRadius.all(
Radius.circular(12))),
labelText: 'Email'.tr,
hintText: 'Enter your email address'.tr,
),
validator: (value) {
if (value!.isEmpty ||
(!value.contains('@') ||
!value.contains('.'))) {
return 'Please enter Your Email.'.tr;
}
return null;
},
),
const SizedBox(
height: 30,
),
TextFormField(
keyboardType: TextInputType.phone,
cursorColor: AppColor.accentColor,
controller: controller.phoneController,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: AppColor.primaryColor,
width: 2.0,
),
borderRadius: BorderRadius.circular(10),
),
focusColor: AppColor.accentColor,
fillColor: AppColor.accentColor,
border: const OutlineInputBorder(
borderRadius: BorderRadius.all(
Radius.circular(12))),
labelText: 'Phone'.tr,
hintText: 'Enter your phone number'.tr,
),
validator: (value) {
if (value!.isEmpty ||
value.length != 10) {
return 'Please enter your phone number.'
.tr;
}
return null;
},
),
const SizedBox(
height: 15,
),
TextFormField(
obscureText: true,
keyboardType: TextInputType.emailAddress,
controller: controller.passwordController,
decoration: InputDecoration(
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: AppColor.primaryColor,
width: 2.0,
),
borderRadius: BorderRadius.circular(10),
),
fillColor: AppColor.accentColor,
hoverColor: AppColor.accentColor,
focusColor: AppColor.accentColor,
border: const OutlineInputBorder(
borderRadius: BorderRadius.all(
Radius.circular(12))),
labelText: 'Password'.tr,
hintText:
'Please enter your phone number.'.tr,
),
validator: (value) {
if (value!.isEmpty ||
(value.length > 6)) {
return 'Please enter Your Password.'.tr;
}
return null;
},
),
GetBuilder<LoginCaptinController>(
builder: (controller) => controller
.isloading
? const MyCircularProgressIndicator()
: MyElevatedButton(
onPressed: () {
if (controller
.formKey.currentState!
.validate()) {
controller.login();
}
},
title: 'Submit'.tr,
),
)
],
),
),
),
),
)),
Text(
'if you don\'t have account'.tr,
style: AppStyle.subtitle,
),
AnimatedTextKit(
onTap: () => Get.to(() => const RegisterCaptin()),
animatedTexts: [
TypewriterAnimatedText(
'Register Captin'.tr,
textStyle: AppStyle.headtitle2,
speed: const Duration(milliseconds: 200),
),
],
totalRepeatCount: 4,
pause: const Duration(milliseconds: 200),
displayFullTextOnTap: true,
stopPauseOnTap: true,
),
IconButton(
onPressed: () async {
// String v =
// await storage.read(key: BoxName.serverAPI) ?? '';
// print(v);
// sql.deleteAllData(TableName.faceDetectTimes);
// AC credentials = AC();
// String apiKey = AK.secretKey;
// // // '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';
// credentials.gAK();
// String? apiKeyf =
// await storage.read(key: BoxName.chatGPTkey);
// print(apiKeyf);
// String convertedString = credentials.c(apiKey, s);
// String convertedStrings = credentials.c(apiKey, s);
// print('Converted String s: $convertedStrings');
// String convertedStringC =
// credentials.c(convertedStrings, c);
// print('v: $v');
// 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH'
// 'AAAAinYllCo:APA91bF1shTpzSsSxqbfY6c60D8zs1ZsdIsl9ix6nl7GDdjCqWPRK0G0ub5SqFdb1jDpQDvQPxGg-697MWLo0sy3oYImBwBLObyhk0GjtNzyr0PbE3hI-pOvhf8Vp1xgUgBmofbZYXkH'
// // String convertedStringN = credentials.c(
// credentials.c(
// credentials.c(
// 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl', cs),
// cC),
// // cn);
// print('Converted v: $convertedStringN');
// //
// String retrievedStringN =
// credentials.r(convertedStringN, n);
// print('Retrieved String: $retrievedStringN');
// String retrievedStringC =
// credentials.r(retrievedStringN, c);
// print('Retrieved String: $retrievedStringC');
// String retrievedStringS = credentials.r(
// credentials.r(
// credentials.r(
// 'QFx0qy456juj3839xuy2194q629q1fj0y7XrXlBl',
// cn),
// cC),
// cs);
// print('Retrieved String: $retrievedStringS');
// if (retrievedStringS == apiKey) {
// print('same');
// }
// print(' AK is ' + AK.chatGPTkey); //
// print(' ENV is ' + Env.chatGPTkey); //
// // print('storage is ' + v); //
// print('storage is ' + apiKeyf!); //
String input = """
[PAN
I/flutter (28718): wOYARMAN
I/flutter (28718): 2018 CHEV
I/flutter (28718): ASN AORESS
I/flutter (28718): rmv
I/flutter (28718): REGISTRY MOTOR VEHICL ES
I/flutter (28718): NEGIS TRATNWIYPE
I/flutter (28718): RSNTN AORLS( OrreRCNT THAN MALINO)
I/flutter (28718): Passenger Normal Red
I/flutter (28718): 274
I/flutter (28718): SILVERADO
I/flutter (28718): ESSSENOSTOoN
I/flutter (28718): Neso WNRS) ANO MALING ADOSES
I/flutter (28718): 274 CHATTERTON AVE SOMERSET MA 02726-2939
I/flutter (28718): CHRISTOPHER D WALL
I/flutter (28718): 74 CHATTERTON AVE
I/flutter (28718): SOMERSET NA
I/flutter (28718): A 02726-2939
I/flutter (28718): OEL NUMICR
I/flutter (28718): RAIL NUMOER
I/flutter (28718): 4DGY18
I/flutter (28718): oooY aYE
I/flutter (28718): PU
I/flutter (28718): M.G.L. Chapter 90 Section 24B makes it a crime to alter this Certificate
I/flutter (28718): MASSACHUSETTS DEPARTMENT OF TRANSPORTATION
I/flutter (28718): his vehicle is newty acquired, it must be inspected within 7 days
I/flutter (28718): of registration
I/flutter (28718): CERTIFICATE OF REGISTRATION
I/flutter (28718): rECVE DATE
I/flutter (28718): 21-Sep-2023
I/flutter (28718): Cancel the registration plates if:
I/flutter (28718): COLoR
I/flutter (28718): BLACK
I/flutter (28718): CHANGE OF ADORESS
I/flutter (28718): TITLE NUMUER
I/flutter (28718): VEHICLE IDENTIFICATION NUMDCR
I/flutter (28718): EXPIRES ON
I/flutter (28718): 1GCVKREC7JZ169002
I/flutter (28718): TOTAL RE GISTERED WEIGHT FOR A COMMERCIAL VEICLE CR TRALER
I/flutter (28718): US DOT LMBER FOR COMMERCAL, VEHICLE
I/flutter (28718): HSURWCE COMPi
I/flutter (28718): PLYMOUTH ROCK ASSURANCE
I/flutter (28718): CORPORATION
I/flutter (28718): MAMUM SEATVG CAPACIIYFHVEGES FOK HRE
I/flutter (28718): | RESIDENTIAL
I/flutter (28718): Important information for vehicle owners
I/flutter (28718): oun f9nia Rogistrar of Motor Vehicles
I/flutter (28718): 31-Aug-2025
I/flutter (28718): MAILING
I/flutter (28718): Cert]""";
await LlamaAi().getExractionData(input);
},
icon: const Icon(
Icons.close,
color: AppColor.blueColor,
),
),
],
),
)
],
),
);
}
Padding agreedPage() {
return Padding(
padding: const EdgeInsets.all(16),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Image.asset(
'assets/images/notepad.png',
width: Get.width * .2,
),
SizedBox(
width: Get.width * .7,
child: Text(
'Accept Ride\'s Terms & Review Privacy Notice'.tr,
style: AppStyle.headtitle2,
),
),
],
),
const SizedBox(
height: 30,
),
RichText(
text: TextSpan(
text:
'By selecting "I Agree" below, I have reviewed and agree to the Terms of Use and acknowledge the ',
style: AppStyle.title,
children: <TextSpan>[
TextSpan(
text: 'Privacy Notice',
style: const TextStyle(
decoration: TextDecoration.underline,
color: AppColor.blueColor),
recognizer: TapGestureRecognizer()
..onTap = () {
Get.defaultDialog(
title: ''.tr,
content: const SizedBox(
height: 400,
width: 400,
child: SingleChildScrollView(
child: HtmlWidget(AppInformation.privacyPolicy),
),
));
}),
const TextSpan(
text: '. I am at least 18 years of age.',
),
],
),
),
const SizedBox(
height: 100,
),
GetBuilder<LoginController>(
builder: (controller) => Column(
children: [
Row(
children: [
Checkbox.adaptive(
autofocus: true,
tristate: true,
splashRadius: 25,
activeColor: AppColor.primaryColor,
value: controller.isAgreeTerms,
onChanged: (value) => controller.changeAgreeTerm(),
),
Text(
'I Agree'.tr,
style: controller.isAgreeTerms
? AppStyle.title
: AppStyle.title
.copyWith(color: AppColor.accentColor),
),
],
),
MyElevatedButton(
title: 'Submit'.tr,
onPressed: () => controller.saveAgreementTerms()),
],
),
)
],
),
);
}
}