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( 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( 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( 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( 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()), ], ), ) ], ), ); } }