feat: Implement selfie verification feature with camera preview, countdown, and error handling
- Added CameraPreviewWidget for real-time camera feed and face detection. - Created CapturedSelfieView to display captured selfies and verification results. - Introduced CountdownOverlayWidget to manage countdown during face verification. - Developed DebugPanel for troubleshooting liveness detection issues. - Implemented ErrorStateWidget to handle and display error messages. - Added InstructionBanner to guide users through the verification process. - Created VerificationProgressWidget to show progress of verification steps.
This commit is contained in:
parent
0ee2d72134
commit
8f781740e7
|
@ -1,16 +1,11 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:mapbox_maps_flutter/mapbox_maps_flutter.dart';
|
||||
import 'package:sigap/app.dart';
|
||||
import 'package:sigap/src/utils/constants/app_routes.dart';
|
||||
|
||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import 'navigation_menu.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
final widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@ import 'package:get/get.dart';
|
|||
import 'package:sigap/navigation_menu.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/email-verification/email_verification_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/forgot-password/forgot_password.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/liveness_detection_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/registraion_form_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/liveness_detection_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/main/registraion_form_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signin/signin_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/signup_with_role_screen.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/main/signup_with_role_screen.dart';
|
||||
import 'package:sigap/src/features/onboarding/presentasion/pages/location-warning/location_warning_screen.dart';
|
||||
import 'package:sigap/src/features/onboarding/presentasion/pages/onboarding/onboarding_screen.dart';
|
||||
import 'package:sigap/src/features/onboarding/presentasion/pages/role-selection/role_selection_screen.dart';
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/others/email_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/others/forgot_password_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/other/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/email-verification/email_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/forgot-password/forgot_password_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signin/signin_controller.dart';
|
||||
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/signup_with_role_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/signup_with_role_controller.dart';
|
||||
|
||||
class AuthControllerBindings extends Bindings {
|
||||
@override
|
||||
|
|
|
@ -4,13 +4,13 @@ import 'package:get_storage/get_storage.dart';
|
|||
import 'package:logger/logger.dart';
|
||||
import 'package:sigap/src/cores/services/supabase_service.dart';
|
||||
import 'package:sigap/src/features/auth/data/repositories/authentication_repository.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/officer-information/officer_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/officer-information/unit_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/viewer-information/personal_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/officer-information/officer_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/officer-information/unit_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/viewer-information/personal_info_controller.dart';
|
||||
import 'package:sigap/src/features/daily-ops/data/models/index.dart';
|
||||
import 'package:sigap/src/features/personalization/data/models/index.dart';
|
||||
import 'package:sigap/src/features/personalization/data/models/models/user_metadata_model.dart';
|
|
@ -4,9 +4,9 @@ import 'package:flutter/material.dart';
|
|||
import 'package:get/get.dart';
|
||||
import 'package:get_storage/get_storage.dart';
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:sigap/src/features/personalization/data/models/models/user_metadata_model.dart';
|
||||
import 'package:sigap/src/features/auth/data/repositories/authentication_repository.dart';
|
||||
import 'package:sigap/src/features/personalization/data/models/index.dart';
|
||||
import 'package:sigap/src/features/personalization/data/models/models/user_metadata_model.dart';
|
||||
import 'package:sigap/src/features/personalization/data/repositories/roles_repository.dart';
|
||||
import 'package:sigap/src/utils/constants/app_routes.dart';
|
||||
import 'package:sigap/src/utils/helpers/network_manager.dart';
|
|
@ -1,11 +1,11 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/face_model.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/viewer-information/personal_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/viewer-information/personal_info_controller.dart';
|
||||
|
||||
class IdentityVerificationController extends GetxController {
|
||||
// Singleton instance
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/administrative_division.dart';
|
||||
import 'package:sigap/src/features/map/data/repositories/location_repository.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/widgets/city_selection.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/widgets/city_selection.dart';
|
||||
|
||||
class LocationSelectionController extends GetxController {
|
||||
final AdiminstrativeLocationRepository _AdiminstrativeLocationRepository =
|
|
@ -3,7 +3,7 @@ import 'package:get/get.dart';
|
|||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:sigap/src/cores/services/edge_function_service.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/face_model.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
|
||||
/// Service for handling facial verification
|
||||
/// This class serves as a bridge between UI controllers and face detection functionality
|
|
@ -4,8 +4,8 @@ import 'package:get/get.dart';
|
|||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:sigap/src/cores/services/edge_function_service.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/face_model.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/app_routes.dart';
|
||||
|
||||
class SelfieVerificationController extends GetxController {
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/others/email_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/email-verification/email_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_button.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_header.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/otp_input_field.dart';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/others/forgot_password_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/forgot-password/forgot_password_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_button.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_header.dart';
|
||||
import 'package:sigap/src/shared/widgets/text/custom_text_field.dart';
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/id_card_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/identity_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/personal_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/selfie_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/officer/officer_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/officer/unit_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/id-card-verification/id_card_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/identity_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/officer-information/officer_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/officer-information/unit_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/personal-information/personal_info_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/selfie_verification_step.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_button.dart';
|
||||
import 'package:sigap/src/shared/widgets/indicators/step_indicator/step_indicator.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
|
@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/signup_with_role_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/signup_with_role_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_button.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/auth_divider.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/widgets/password_field.dart';
|
|
@ -2,9 +2,8 @@ import 'package:flutter/material.dart';
|
|||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/kta_model.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/ktp_model.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/id-card-verification/id_card_verification_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/image_upload/image_source_dialog.dart';
|
||||
import 'package:sigap/src/shared/widgets/image_upload/image_uploader.dart';
|
||||
import 'package:sigap/src/shared/widgets/info/tips_container.dart';
|
||||
|
@ -120,7 +119,6 @@ class IdCardVerificationStep extends StatelessWidget {
|
|||
hasConfirmed: controller.hasConfirmedIdCard.value,
|
||||
onConfirm: controller.confirmIdCardImage,
|
||||
onTryAnother: controller.clearIdCardImage,
|
||||
|
||||
),
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
|
@ -142,9 +140,7 @@ class IdCardVerificationStep extends StatelessWidget {
|
|||
'$idCardType Verification',
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.headlineSmall?.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
).textTheme.headlineSmall?.copyWith(fontWeight: FontWeight.bold),
|
||||
),
|
||||
const SizedBox(height: TSizes.sm),
|
||||
Text(
|
||||
|
@ -312,9 +308,7 @@ class IdCardVerificationStep extends StatelessWidget {
|
|||
'Extracted $cardType Information',
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.titleMedium?.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -333,17 +327,12 @@ class IdCardVerificationStep extends StatelessWidget {
|
|||
'$label:',
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.bodyMedium?.copyWith(
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
).textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: TSizes.sm),
|
||||
Expanded(
|
||||
child: Text(
|
||||
value,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
child: Text(value, style: Theme.of(context).textTheme.bodyMedium),
|
||||
),
|
||||
],
|
||||
),
|
|
@ -1,11 +1,10 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/widgets/identity_verification/id_info_form.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/widgets/id_info_form.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/form_section_header.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/administrative_division.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/others/location_selection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/location_selection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/form_section_header.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/verification_status.dart';
|
||||
import 'package:sigap/src/shared/widgets/info/tips_container.dart';
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/widgets/identity_verification/place_of_birth_field.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/widgets/identity_verification/verification_status_message.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/widgets/place_of_birth_field.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/widgets/verification_status_message.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/date_picker_field.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/gender_selection.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/verification_status.dart';
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/data/models/administrative_division.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/widgets/city_selection.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/identity-verification/widgets/city_selection.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/buttons/custom_elevated_button.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/identity-verification/identity_verification_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/verification/validation_message_card.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/officer-information/officer_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/officer-information/officer_info_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/form_section_header.dart';
|
||||
import 'package:sigap/src/shared/widgets/text/custom_text_field.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
@ -26,7 +26,7 @@ class OfficerInfoStep extends StatelessWidget {
|
|||
title: 'Officer Information',
|
||||
subtitle: 'Please provide your officer details',
|
||||
),
|
||||
|
||||
|
||||
const SizedBox(height: TSizes.spaceBtwItems),
|
||||
|
||||
// NRP field
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/officer-information/unit_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/officer-information/unit_info_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/dropdown/custom_dropdown.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/form_section_header.dart';
|
||||
import 'package:sigap/src/shared/widgets/text/custom_text_field.dart';
|
|
@ -1,8 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/viewer-information/personal_info_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/viewer-information/personal_info_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/form/form_section_header.dart';
|
||||
import 'package:sigap/src/shared/widgets/text/custom_text_field.dart';
|
||||
import 'package:sigap/src/utils/constants/sizes.dart';
|
||||
|
@ -27,7 +26,7 @@ class PersonalInfoStep extends StatelessWidget {
|
|||
title: 'Personal Information',
|
||||
subtitle: 'Please provide your personal details',
|
||||
),
|
||||
|
||||
|
||||
const SizedBox(height: TSizes.spaceBtwItems),
|
||||
|
||||
// First Name field
|
|
@ -2,15 +2,15 @@ import 'dart:developer' as dev;
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/camera_preview_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/captured_selfie_view.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/countdown_overlay_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/debug_panel.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/error_state_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/instruction_banner.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/registration-form/basic/widgets/verification_progress_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/camera_preview_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/captured_selfie_view.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/countdown_overlay_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/debug_panel.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/error_state_widget.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/instruction_banner.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/pages/signup/step/selfie-verification/widgets/verification_progress_widget.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class LivenessDetectionPage extends StatelessWidget {
|
|
@ -1,8 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/basic/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/main/registration_form_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/facial_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/shared/widgets/image_upload/image_uploader.dart';
|
||||
import 'package:sigap/src/shared/widgets/info/tips_container.dart';
|
||||
import 'package:sigap/src/shared/widgets/verification/validation_message_card.dart';
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:camera/camera.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class CameraPreviewWidget extends StatelessWidget {
|
|
@ -3,8 +3,8 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class CapturedSelfieView extends StatefulWidget {
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class CountdownOverlayWidget extends StatelessWidget {
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
|
||||
/// Shows the debug panel for liveness detection
|
||||
void showLivenessDebugPanel(
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class ErrorStateWidget extends StatelessWidget {
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class InstructionBanner extends StatelessWidget {
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/utils/constants/colors.dart';
|
||||
|
||||
class VerificationProgressWidget extends StatelessWidget {
|
|
@ -2,8 +2,8 @@ import 'dart:developer' as dev;
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/selfie-verification/selfie_verification_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/face_liveness_detection_controller.dart';
|
||||
import 'package:sigap/src/features/auth/presentasion/controllers/signup/step/selfie-verification/selfie_verification_controller.dart';
|
||||
|
||||
/// Utility class for debugging the liveness detection and verification process
|
||||
class LivenessDebugUtils {
|
||||
|
|
Loading…
Reference in New Issue