import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:ride/constant/colors.dart'; import 'package:ride/constant/style.dart'; import 'package:ride/constant/table_names.dart'; import 'package:ride/controller/functions/ocr_controller.dart'; import 'package:ride/main.dart'; import 'package:ride/views/auth/captin/car_license_page.dart'; import 'package:ride/views/widgets/elevated_btn.dart'; import 'package:ride/views/widgets/my_scafold.dart'; import 'package:ride/views/widgets/mycircular.dart'; class AiPage extends StatelessWidget { ScanDocumentsByApi scanDocumentsByApi = Get.put(ScanDocumentsByApi()); AiPage({super.key}); @override Widget build(BuildContext context) { return MyScafolld( title: 'AI Page'.tr, body: [ Positioned( top: 3, left: Get.width * .2, right: Get.width * .2, child: MyElevatedButton( title: 'Take Picture Of ID Card'.tr, onPressed: () { scanDocumentsByApi.scanDocumentsByApi(); }, )), GetBuilder( builder: (scanDocumentsByApi) => scanDocumentsByApi .responseMap.isNotEmpty ? Positioned( top: Get.height * .06, left: Get.width * .051, right: Get.width * .051, child: scanDocumentsByApi.isLoading ? Column( children: [ const MyCircularProgressIndicator(), Text( 'We are process picture please wait '.tr, style: AppStyle.title, ) ], ) : Column( children: [ Container( decoration: AppStyle.boxDecoration, height: Get.height * .4, child: Padding( padding: const EdgeInsets.all(5), child: scanDocumentsByApi.responseMap.isEmpty ? Center( child: Text( 'There is no data yet.'.tr, style: AppStyle.title, ), ) : Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Name :${scanDocumentsByApi.name}', style: AppStyle.subtitle, ), Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Drivers License Class: ${scanDocumentsByApi.licenseClass}', style: AppStyle.title, ), Image.memory( scanDocumentsByApi .imageSignature, width: 100, height: 30, ), ], ), ], ), ], ), Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Document Number: ${scanDocumentsByApi.documentNo}', style: AppStyle.title, ), Image.memory( scanDocumentsByApi .imagePortrait, width: 60, ), ]), Text( 'Address: ${scanDocumentsByApi.address}', style: AppStyle.title, ), Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Height: ${scanDocumentsByApi.height}', style: AppStyle.subtitle, ), Text( 'Postal Code: ${scanDocumentsByApi.postalCode}', style: AppStyle.subtitle, ), Text( 'Sex: ${scanDocumentsByApi.sex}', style: AppStyle.subtitle, ), ], ), Text( 'Territorial Code: ${scanDocumentsByApi.stateCode}', style: AppStyle.subtitle, ), Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Expiry Date: ${scanDocumentsByApi.expireDate}', style: DateTime.parse( scanDocumentsByApi .responseMap['data'] ['ocr'][ 'dateOfExpiry'] .toString()) .isBefore( scanDocumentsByApi .now) ? AppStyle.title.copyWith( color: AppColor.redColor) : AppStyle.title.copyWith( color: AppColor .greenColor), ), Text( 'Date of Birth: ${scanDocumentsByApi.dob}', style: AppStyle.title, ), ], ), ], ), ), ), DateTime.parse(scanDocumentsByApi .responseMap['data']['ocr'] ['dateOfExpiry'] .toString()) .isBefore(scanDocumentsByApi.now) ? Text( 'You can\'t continue with us .\nYou should renew Driver license', style: AppStyle.title .copyWith(color: AppColor.redColor), ) : MyElevatedButton( title: 'Detect Your Face '.tr, onPressed: () => scanDocumentsByApi .checkMatchFaceApi(), ), scanDocumentsByApi.res.isEmpty ? const SizedBox() : scanDocumentsByApi.res['data']['result'] .toString() == 'Same' ? MyElevatedButton( onPressed: () => Get.to(() => CarLicensePage()), title: 'Go to next step\nscan Car License.' .tr, kolor: AppColor.greenColor, ) : const SizedBox(), MyElevatedButton( title: 'get sql data', kolor: AppColor.yellowColor, onPressed: () { sql.deleteAllData(TableName.faceDetectTimes); sql .getAllData(TableName.faceDetectTimes) .then((value) => print(value[0]['faceDetectTimes'])); }, ) ], ), ) : Positioned( top: Get.height * .06, left: Get.width * .051, right: Get.width * .051, child: scanDocumentsByApi.isLoading ? Column( children: [ const MyCircularProgressIndicator(), Text( 'We are process picture please wait '.tr, style: AppStyle.title, ) ], ) : Column( children: [ Container( decoration: AppStyle.boxDecoration, height: Get.height * .35, child: Padding( padding: const EdgeInsets.all(5), child: Center( child: Text( 'There is no data yet.'.tr, style: AppStyle.title, ), )), ), ], ), ), ), ], isleading: true); } }