From d6db216d2dc75da33fa22596e792b5d89035ddc6 Mon Sep 17 00:00:00 2001 From: Alejandro Lara Date: Fri, 19 Jun 2026 08:57:58 -0600 Subject: [PATCH] Se agrego el sdk para el pda de honeywell --- android/app/src/main/AndroidManifest.xml | 36 +- .../example/qrscanner/HoneywellScanManager.kt | 160 ++++++++ .../qrscanner/HoneywellScanReceiver.kt | 19 + .../com/example/qrscanner/MainActivity.kt | 56 ++- .../example/qrscanner/QrScannerApplication.kt | 10 + android/honeywell/build.gradle | 2 + android/honeywell/honeywell.aar | Bin 0 -> 117890 bytes android/settings.gradle.kts | 1 + assets/sounds/scan.wav | Bin 5336 -> 15954 bytes assets/sounds/success.wav | Bin 26504 -> 31830 bytes assets/sounds/warning.wav | Bin 35324 -> 42414 bytes lib/main.dart | 24 +- lib/screens/home_screen.dart | 74 +++- lib/screens/login_screen.dart | 21 +- lib/screens/scanner_screen.dart | 353 +++++++++++++++++- lib/services/feedback_service.dart | 89 ++++- lib/services/hardware_scanner_service.dart | 62 +++ lib/services/scan_launch_service.dart | 62 +++ lib/services/scan_navigation_service.dart | 137 +++++++ pubspec.lock | 8 + pubspec.yaml | 1 + 21 files changed, 1038 insertions(+), 77 deletions(-) create mode 100644 android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanManager.kt create mode 100644 android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanReceiver.kt create mode 100644 android/app/src/main/kotlin/com/example/qrscanner/QrScannerApplication.kt create mode 100644 android/honeywell/build.gradle create mode 100644 android/honeywell/honeywell.aar create mode 100644 lib/services/hardware_scanner_service.dart create mode 100644 lib/services/scan_launch_service.dart create mode 100644 lib/services/scan_navigation_service.dart diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 2fbd078..1bc651f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,13 +1,16 @@ - + + + android:usesCleartextTraffic="true" + tools:replace="android:label"> - + + + + - + + + + + + + + - - + \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanManager.kt b/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanManager.kt new file mode 100644 index 0000000..2ce43f7 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanManager.kt @@ -0,0 +1,160 @@ +package com.example.qrscanner + +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import io.flutter.plugin.common.EventChannel + +object HoneywellScanManager { + const val ACTION_BARCODE_DATA = "com.example.qrscanner.action.BARCODE_DATA" + const val EXTRA_SCAN_DATA = "scan_data" + + private const val PREFS = "honeywell_scan_bridge" + private const val PENDING_KEY = "pending_scan" + + private const val ACTION_CLAIM_SCANNER = "com.honeywell.aidc.action.ACTION_CLAIM_SCANNER" + private const val ACTION_RELEASE_SCANNER = "com.honeywell.aidc.action.ACTION_RELEASE_SCANNER" + private const val EXTRA_SCANNER = "com.honeywell.aidc.extra.EXTRA_SCANNER" + private const val EXTRA_PROPERTIES = "com.honeywell.aidc.extra.EXTRA_PROPERTIES" + private const val SCANNER_PACKAGE = "com.intermec.datacollectionservice" + + @Volatile + private var eventSink: EventChannel.EventSink? = null + + fun setEventSink(sink: EventChannel.EventSink?) { + eventSink = sink + } + + fun isSupported(context: Context): Boolean { + return try { + context.packageManager.getPackageInfo(SCANNER_PACKAGE, 0) + true + } catch (_: PackageManager.NameNotFoundException) { + false + } + } + + fun claimScanner(context: Context) { + if (!isSupported(context)) return + + val properties = Bundle().apply { + putBoolean("DPR_DATA_INTENT", true) + putString("DPR_DATA_INTENT_ACTION", ACTION_BARCODE_DATA) + putBoolean("DPR_LAUNCH_BROWSER", false) + putBoolean("DEC_QR_ENABLED", true) + putBoolean("DEC_AZTEC_ENABLED", false) + putBoolean("DEC_CODABAR_ENABLED", false) + putBoolean("DEC_CODE39_ENABLED", false) + putBoolean("DEC_CODE93_ENABLED", false) + putBoolean("DEC_CODE128_ENABLED", false) + putBoolean("DEC_DATAMATRIX_ENABLED", false) + putBoolean("DEC_EAN8_ENABLED", false) + putBoolean("DEC_EAN13_ENABLED", false) + putBoolean("DEC_MAXICODE_ENABLED", false) + putBoolean("DEC_PDF417_ENABLED", false) + putBoolean("DEC_RSS_14_ENABLED", false) + putBoolean("DEC_RSS_EXPANDED_ENABLED", false) + putBoolean("DEC_UPCA_ENABLE", false) + putBoolean("DEC_UPCE0_ENABLED", false) + } + + sendScannerBroadcast( + context, + Intent(ACTION_CLAIM_SCANNER) + .setPackage(SCANNER_PACKAGE) + .putExtra(EXTRA_SCANNER, "dcs.scanner.imager") + .putExtra(EXTRA_PROPERTIES, properties), + ) + } + + fun releaseScanner(context: Context) { + if (!isSupported(context)) return + sendScannerBroadcast(context, Intent(ACTION_RELEASE_SCANNER)) + } + + fun handleBarcodeIntent(context: Context, intent: Intent?) { + val data = extractScanData(intent) ?: return + deliverScan(context, data) + } + + fun deliverScan(context: Context, data: String) { + val trimmed = data.trim() + if (trimmed.isEmpty()) return + + storePendingScan(context, trimmed) + eventSink?.success(trimmed) + } + + fun launchAppWithScan(context: Context, data: String) { + val trimmed = data.trim() + if (trimmed.isEmpty()) return + + storePendingScan(context, trimmed) + + val launchIntent = Intent(context, MainActivity::class.java).apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK or + Intent.FLAG_ACTIVITY_SINGLE_TOP or + Intent.FLAG_ACTIVITY_CLEAR_TOP + putExtra(EXTRA_SCAN_DATA, trimmed) + } + context.startActivity(launchIntent) + } + + fun consumePendingScan(context: Context): String? { + val prefs = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) + val stored = prefs.getString(PENDING_KEY, null)?.trim() + if (!stored.isNullOrEmpty()) { + prefs.edit().remove(PENDING_KEY).apply() + return stored + } + return null + } + + private fun storePendingScan(context: Context, data: String) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) + .edit() + .putString(PENDING_KEY, data) + .apply() + } + + private fun extractScanData(intent: Intent?): String? { + if (intent == null) return null + + intent.getStringExtra(EXTRA_SCAN_DATA)?.let { return it } + + if (intent.action == ACTION_BARCODE_DATA) { + val version = intent.getIntExtra("version", 0) + if (version >= 1) { + return intent.getStringExtra("data") + } + } + + return intent.getStringExtra("data") + } + + private fun sendScannerBroadcast(context: Context, intent: Intent) { + if (Build.VERSION.SDK_INT < 26) { + context.sendBroadcast(intent) + return + } + + val matches = context.packageManager.queryBroadcastReceivers(intent, PackageManager.MATCH_DEFAULT_ONLY) + if (matches.isEmpty()) { + context.sendBroadcast(intent) + return + } + + for (resolveInfo in matches) { + val explicit = Intent(intent).apply { + component = ComponentName( + resolveInfo.activityInfo.applicationInfo.packageName, + resolveInfo.activityInfo.name, + ) + } + context.sendBroadcast(explicit) + } + } +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanReceiver.kt b/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanReceiver.kt new file mode 100644 index 0000000..66a54e6 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/qrscanner/HoneywellScanReceiver.kt @@ -0,0 +1,19 @@ +package com.example.qrscanner + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent + +class HoneywellScanReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action != HoneywellScanManager.ACTION_BARCODE_DATA) return + + val version = intent.getIntExtra("version", 0) + if (version < 1) return + + val data = intent.getStringExtra("data")?.trim().orEmpty() + if (data.isEmpty()) return + + HoneywellScanManager.launchAppWithScan(context, data) + } +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/example/qrscanner/MainActivity.kt b/android/app/src/main/kotlin/com/example/qrscanner/MainActivity.kt index ca0660c..3eb974e 100644 --- a/android/app/src/main/kotlin/com/example/qrscanner/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/qrscanner/MainActivity.kt @@ -1,5 +1,59 @@ package com.example.qrscanner import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MethodChannel -class MainActivity : FlutterActivity() +class MainActivity : FlutterActivity() { + companion object { + private const val METHOD_CHANNEL = "com.example.qrscanner/scan_launch" + private const val EVENT_CHANNEL = "com.example.qrscanner/scan_events" + } + + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { + super.configureFlutterEngine(flutterEngine) + + MethodChannel(flutterEngine.dartExecutor.binaryMessenger, METHOD_CHANNEL) + .setMethodCallHandler { call, result -> + when (call.method) { + "isSupported" -> result.success(HoneywellScanManager.isSupported(this)) + "claimScanner" -> { + HoneywellScanManager.claimScanner(this) + result.success(true) + } + "releaseScanner" -> { + HoneywellScanManager.releaseScanner(this) + result.success(true) + } + "consumePendingScan" -> { + result.success(HoneywellScanManager.consumePendingScan(this)) + } + else -> result.notImplemented() + } + } + + EventChannel(flutterEngine.dartExecutor.binaryMessenger, EVENT_CHANNEL) + .setStreamHandler(object : EventChannel.StreamHandler { + override fun onListen(arguments: Any?, events: EventChannel.EventSink?) { + HoneywellScanManager.setEventSink(events) + } + + override fun onCancel(arguments: Any?) { + HoneywellScanManager.setEventSink(null) + } + }) + } + + override fun onNewIntent(intent: android.content.Intent) { + super.onNewIntent(intent) + setIntent(intent) + HoneywellScanManager.handleBarcodeIntent(this, intent) + } + + override fun onResume() { + super.onResume() + HoneywellScanManager.claimScanner(this) + HoneywellScanManager.handleBarcodeIntent(this, intent) + } +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/example/qrscanner/QrScannerApplication.kt b/android/app/src/main/kotlin/com/example/qrscanner/QrScannerApplication.kt new file mode 100644 index 0000000..cf6376d --- /dev/null +++ b/android/app/src/main/kotlin/com/example/qrscanner/QrScannerApplication.kt @@ -0,0 +1,10 @@ +package com.example.qrscanner + +import android.app.Application + +class QrScannerApplication : Application() { + override fun onCreate() { + super.onCreate() + HoneywellScanManager.claimScanner(this) + } +} \ No newline at end of file diff --git a/android/honeywell/build.gradle b/android/honeywell/build.gradle new file mode 100644 index 0000000..073f934 --- /dev/null +++ b/android/honeywell/build.gradle @@ -0,0 +1,2 @@ +configurations.maybeCreate("default") +artifacts.add("default", file('honeywell.aar')) \ No newline at end of file diff --git a/android/honeywell/honeywell.aar b/android/honeywell/honeywell.aar new file mode 100644 index 0000000000000000000000000000000000000000..0b267ac85039b570f3fd2c27f0c5d96ca193ca51 GIT binary patch literal 117890 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⋘5HjPvc9Y%o;0tUKesm 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

v#4N;@H^S@cdko&)EYPpV+6U&-EaXwIEW};D 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�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 OCIUUkeH2)yF#rJU5h(Bg literal 0 HcmV?d00001 diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts index c21f0c5..ea6d5e3 100644 --- a/android/settings.gradle.kts +++ b/android/settings.gradle.kts @@ -24,3 +24,4 @@ plugins { } include(":app") +include(":honeywell") diff --git a/assets/sounds/scan.wav b/assets/sounds/scan.wav index 298f9899a645cd35ea05635ccab498eeaa54c240..1adcbcfa604cacdaf6875511e1a01c1f6d51e718 100644 GIT binary patch literal 15954 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 aKE&OoK#Yn@Y@La}9PWy7DloX<=>Gr_EDELo literal 5336 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 diff --git a/assets/sounds/warning.wav b/assets/sounds/warning.wav index c4c35506325d70be251bc2c1338a01aa8781d1bc..b41f18ec8460871598a70bc58ede6f09149c6a73 100644 GIT binary patch literal 42414 zcmeI4O=whC7>3WC%*>sid(RDlHbF4BQEIExu}Yu|p^`LZnnBToXtNL_HZ_9MMYNS} z3tCeUEG;1mODSqCtp$xjL50%dLQ#y`DsfXHq7kw8+&lk&w`bFBNx{k(A7(SmVqngE zKkxaz=f0aVy}iee39)(I;M*g+$Ck7TAq@TM`9X+-TMQ8rtsIo zkotXgc;84@I<=}RwJMz!JBG)Gx9M*YVoppO=R%V$pM*C@Qc+=EF%QT3;z9gmqAxj{ z++#hlw%eEOrE*N3m2=W@UUA-VQqE$hA*bb6a=onB6ZWh2Pu6m4B3VxiCQiivioG5i zF(;zGMjnN&@bZ?P&{kuw7!ST}oUh-h<*V)0wUyEGWa&n+tvFQpJ|E8S%-!}k`nSDN z&-6~KT`H|Y>YjVUz2@F=mD{fR)aUB1>hg|yZT=CzGdGnR%o~NN!iU8*rJyujK3Vy+ zI#SEjQ;nB{AmA7A9}#ur5tV`JO+TW;q8ZS2C{?sKw+Ze?++n$uGiP9O!gPyy9TP}q zs?5EabKxn|6K+!Ec^K*meQi|4fcP;mgJJE7(ox@6`=i=bovaA$i}HJ^ zyL7I&qIjaPOnalO&i|6@&pq}(^H*wrlmp&cuc9uf18R%*NU@dg{^{P-E-BZwPs&3# za647E+M~YFUMY*b?cOQR@Q3`LwO`7?TsgNp{~-T`>UDuxVl+$JUbFE*o$-0ceV5q$v);oXmsF;gsgXFL6qo($iw$h$Ui)SbCQ9 zDH%t`k#S^Pv+>^4CF&A&iMm8xdLEzFp?Xujsoqp?syEepp+1pHkE6%YmC z?nU;dKnXlgN}#i;eNLJsmN=#Pc;;|QoYK?sUm})>C1UAWI-ZenWE>es#{J{Oi1y|l mx6mfK^f-DPJ&qnnkNYp4%qRhr07~FR-0h;5&`bZXUiusLO-EM% literal 35324 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 createState() => _MyAppState(); +} + +class _MyAppState extends State { + @override + void initState() { + super.initState(); + ScanNavigationService.instance.initialize(); + } + + @override + void dispose() { + ScanNavigationService.instance.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { return MaterialApp( title: 'QR Scanner', debugShowCheckedModeBanner: false, theme: AppTheme.darkTheme, + navigatorKey: ScanNavigationService.instance.navigatorKey, + navigatorObservers: [homeRouteObserver], home: const LoginScreen(), ); } diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart index 6555771..c293b54 100644 --- a/lib/screens/home_screen.dart +++ b/lib/screens/home_screen.dart @@ -3,9 +3,14 @@ import 'package:qrscanner/models/auth_session.dart'; import 'package:qrscanner/screens/login_screen.dart'; import 'package:qrscanner/screens/scanner_screen.dart'; import 'package:qrscanner/services/auth_service.dart'; +import 'package:qrscanner/services/hardware_scanner_service.dart'; +import 'package:qrscanner/services/scan_launch_service.dart'; import 'package:qrscanner/theme/app_theme.dart'; -class HomeScreen extends StatelessWidget { +final RouteObserver> homeRouteObserver = + RouteObserver>(); + +class HomeScreen extends StatefulWidget { const HomeScreen({ super.key, required this.session, @@ -13,7 +18,29 @@ class HomeScreen extends StatelessWidget { final AuthSession session; + @override + State createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + bool _hardwareAvailable = false; + + @override + void initState() { + super.initState(); + _checkHardware(); + } + + Future _checkHardware() async { + final available = await ScanLaunchService.instance.isSupported(); + if (mounted) { + setState(() => _hardwareAvailable = available); + } + } + Future _logout(BuildContext context) async { + await HardwareScannerService.instance.ensureStopped(); + await ScanLaunchService.instance.releaseScanner(); await AuthService().clearSession(); if (!context.mounted) return; @@ -30,11 +57,12 @@ class HomeScreen extends StatelessWidget { ); } - void _openScanner(BuildContext context) { - Navigator.of(context).push( + Future _openScanner(BuildContext context) async { + await Navigator.of(context).push( PageRouteBuilder( + settings: const RouteSettings(name: '/scanner'), pageBuilder: (context, animation, secondaryAnimation) => - ScannerScreen(session: session), + ScannerScreen(session: widget.session), transitionsBuilder: (context, animation, secondaryAnimation, child) { return FadeTransition( opacity: animation, @@ -57,7 +85,7 @@ class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final expiresHours = (session.expiresIn / 3600).round(); + final expiresHours = (widget.session.expiresIn / 3600).round(); return Scaffold( body: Stack( @@ -140,7 +168,7 @@ class HomeScreen extends StatelessWidget { ), const SizedBox(height: 28), Text( - 'Hola, ${session.username}', + 'Hola, ${widget.session.username}', style: Theme.of(context).textTheme.headlineSmall?.copyWith( fontWeight: FontWeight.bold, @@ -175,6 +203,40 @@ class HomeScreen extends StatelessWidget { ), ), ), + if (_hardwareAvailable) ...[ + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 14, + vertical: 8, + ), + decoration: BoxDecoration( + color: AppTheme.primary.withValues(alpha: 0.12), + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: AppTheme.primary.withValues(alpha: 0.25), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.barcode_reader, + size: 16, + color: AppTheme.primary.withValues(alpha: 0.9), + ), + const SizedBox(width: 8), + Text( + 'Escáner activo · abre la app al escanear', + style: TextStyle( + color: Colors.white.withValues(alpha: 0.7), + fontSize: 12, + ), + ), + ], + ), + ), + ], const SizedBox(height: 48), _ScanButton(onPressed: () => _openScanner(context)), ], diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart index 57353b1..c7489f4 100644 --- a/lib/screens/login_screen.dart +++ b/lib/screens/login_screen.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:qrscanner/config/api_config.dart'; import 'package:qrscanner/models/auth_session.dart'; -import 'package:qrscanner/screens/home_screen.dart'; import 'package:qrscanner/services/auth_service.dart'; +import 'package:qrscanner/services/scan_launch_service.dart'; +import 'package:qrscanner/services/scan_navigation_service.dart'; import 'package:qrscanner/theme/app_theme.dart'; class LoginScreen extends StatefulWidget { @@ -47,6 +48,7 @@ class _LoginScreenState extends State curve: Curves.easeOutCubic, )); _animationController.forward(); + ScanLaunchService.instance.claimScanner(); _checkStoredSession(); } @@ -54,7 +56,7 @@ class _LoginScreenState extends State final session = await _authService.loadStoredSession(); if (!mounted || session == null) return; - _goToHome(session); + await ScanNavigationService.instance.navigateToHome(session); } @override @@ -83,7 +85,7 @@ class _LoginScreenState extends State if (!mounted) return; if (response.success && response.accessToken != null) { - _goToHome( + await ScanNavigationService.instance.navigateToHome( AuthSession.fromLoginResponse( response.copyWith( username: response.username ?? _usernameController.text.trim(), @@ -109,19 +111,6 @@ class _LoginScreenState extends State } } - void _goToHome(AuthSession session) { - Navigator.of(context).pushReplacement( - PageRouteBuilder( - pageBuilder: (context, animation, secondaryAnimation) => - HomeScreen(session: session), - transitionsBuilder: (context, animation, secondaryAnimation, child) { - return FadeTransition(opacity: animation, child: child); - }, - transitionDuration: const Duration(milliseconds: 400), - ), - ); - } - @override Widget build(BuildContext context) { return Scaffold( diff --git a/lib/screens/scanner_screen.dart b/lib/screens/scanner_screen.dart index e7aa8db..05ce8c9 100644 --- a/lib/screens/scanner_screen.dart +++ b/lib/screens/scanner_screen.dart @@ -1,25 +1,33 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; import 'package:qrscanner/models/auth_session.dart'; import 'package:qrscanner/models/pass_code.dart'; import 'package:qrscanner/models/scan_response.dart'; import 'package:qrscanner/services/feedback_service.dart'; +import 'package:qrscanner/services/hardware_scanner_service.dart'; import 'package:qrscanner/services/pass_code_service.dart'; import 'package:qrscanner/theme/app_theme.dart'; enum _ScanPhase { scanning, processing, success, warning } +enum _ScannerInput { loading, camera, hardware } + const double _scanWindowSize = 260; const double _scanWindowRadius = 28; const Alignment _scanWindowAlignment = Alignment(0, -0.12); +const Duration _resultDisplayDuration = Duration(seconds: 5); class ScannerScreen extends StatefulWidget { const ScannerScreen({ super.key, required this.session, + this.initialCode, }); final AuthSession session; + final String? initialCode; @override State createState() => _ScannerScreenState(); @@ -27,21 +35,21 @@ class ScannerScreen extends StatefulWidget { class _ScannerScreenState extends State with TickerProviderStateMixin { - final _scannerController = MobileScannerController( - detectionSpeed: DetectionSpeed.normal, - detectionTimeoutMs: 500, - facing: CameraFacing.back, - formats: const [BarcodeFormat.qrCode], - autoZoom: true, - ); + MobileScannerController? _cameraController; + final _hardwareScanner = HardwareScannerService.instance; final _passCodeService = PassCodeService(); final _feedbackService = FeedbackService(); + _ScannerInput _inputMode = _ScannerInput.loading; + bool _hardwareAvailable = false; + bool _isInitialSetup = true; + bool _isSwitchingInput = false; _ScanPhase _phase = _ScanPhase.scanning; bool _isHandlingDetection = false; String? _lastScannedCode; String? _message; PassCode? _passCode; + Timer? _resultAutoDismissTimer; late final AnimationController _scanLineController; late final AnimationController _resultController; @@ -76,8 +84,158 @@ class _ScannerScreenState extends State parent: _resultController, curve: Curves.easeOutBack, )); + _initializeScannerInput(); } + Future _initializeScannerInput() async { + _hardwareAvailable = await HardwareScannerService.isAvailable(); + if (!mounted) return; + + if (_hardwareAvailable) { + await _activateHardwareMode(showLoading: true); + } else { + await _activateCameraMode(showLoading: true); + } + + final pendingCode = widget.initialCode?.trim(); + if (!mounted || pendingCode == null || pendingCode.isEmpty) return; + + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) _processScan(pendingCode); + }); + } + + MobileScannerController _createCameraController() { + return MobileScannerController( + autoStart: false, + detectionSpeed: DetectionSpeed.normal, + detectionTimeoutMs: 500, + facing: CameraFacing.back, + formats: const [BarcodeFormat.qrCode], + autoZoom: true, + ); + } + + Future _activateHardwareMode({bool showLoading = false}) async { + if (!mounted) return; + if (showLoading) { + setState(() => _inputMode = _ScannerInput.loading); + } + + try { + try { + await _cameraController?.stop(); + } catch (_) {} + await _cameraController?.dispose(); + _cameraController = null; + _scanLineController.stop(); + + await Future.delayed(const Duration(milliseconds: 300)); + + final started = await _hardwareScanner.activate(onScan: _onRawScan); + if (!mounted) return; + + if (started) { + setState(() { + _inputMode = _ScannerInput.hardware; + _isInitialSetup = false; + }); + return; + } + + await _activateCameraMode( + showLoading: showLoading, + fallbackFromHardware: true, + ); + } finally { + if (mounted && _inputMode == _ScannerInput.loading) { + setState(() { + _inputMode = _ScannerInput.hardware; + _isInitialSetup = false; + }); + } + } + } + + Future _activateCameraMode({ + bool showLoading = false, + bool fallbackFromHardware = false, + }) async { + if (!mounted) return; + if (showLoading) { + setState(() => _inputMode = _ScannerInput.loading); + } + + try { + await _hardwareScanner.pause(); + await Future.delayed(const Duration(milliseconds: 300)); + + try { + await _cameraController?.stop(); + } catch (_) {} + await _cameraController?.dispose(); + _cameraController = _createCameraController(); + + if (!_scanLineController.isAnimating) { + _scanLineController.repeat(); + } + + if (!mounted) return; + setState(() { + _inputMode = _ScannerInput.camera; + _isInitialSetup = false; + }); + + await Future.delayed(const Duration(milliseconds: 200)); + + try { + await _cameraController!.start(); + } catch (_) { + if (!mounted) return; + if (!fallbackFromHardware) { + await _activateHardwareMode(); + } + } + } finally { + if (mounted && _inputMode == _ScannerInput.loading) { + setState(() { + _inputMode = _ScannerInput.camera; + _isInitialSetup = false; + }); + } + } + } + + Future _toggleScannerInput() async { + if (!_hardwareAvailable || + _phase != _ScanPhase.scanning || + _isSwitchingInput || + _inputMode == _ScannerInput.loading) { + return; + } + + setState(() => _isSwitchingInput = true); + try { + if (_inputMode == _ScannerInput.hardware) { + await _activateCameraMode(); + } else if (_inputMode == _ScannerInput.camera) { + await _activateHardwareMode(); + } + } finally { + if (mounted) { + setState(() => _isSwitchingInput = false); + } else { + _isSwitchingInput = false; + } + } + } + + bool get _showsScannerInput => + _phase == _ScanPhase.scanning || + _phase == _ScanPhase.processing || + _phase == _ScanPhase.success || + _phase == _ScanPhase.warning; + Rect _scanWindowRect(Size size) { final center = _scanWindowAlignment.alongSize(size); return Rect.fromCenter( @@ -87,23 +245,58 @@ class _ScannerScreenState extends State ); } + void _cancelAutoDismiss() { + _resultAutoDismissTimer?.cancel(); + _resultAutoDismissTimer = null; + } + + void _scheduleAutoDismiss() { + _cancelAutoDismiss(); + _resultAutoDismissTimer = Timer(_resultDisplayDuration, () { + if (!mounted) return; + if (_phase == _ScanPhase.success || _phase == _ScanPhase.warning) { + unawaited(_scanAgain()); + } + }); + } + @override void dispose() { + _cancelAutoDismiss(); _scanLineController.dispose(); _resultController.dispose(); - _scannerController.dispose(); + _cameraController?.dispose(); + _hardwareScanner.deactivate(); _feedbackService.dispose(); super.dispose(); } - Future _onDetect(BarcodeCapture capture) async { - if (_phase != _ScanPhase.scanning || _isHandlingDetection) return; + void _onRawScan(String rawValue) { + _processScan(rawValue); + } + Future _onDetect(BarcodeCapture capture) async { final rawValue = capture.barcodes.firstOrNull?.rawValue?.trim(); if (rawValue == null || rawValue.isEmpty) return; + await _processScan(rawValue); + } + + Future _processScan(String rawValue) async { + if (_isHandlingDetection || _phase == _ScanPhase.processing) return; final code = _extractCode(rawValue); - if (code.isEmpty || code == _lastScannedCode) return; + if (code.isEmpty) return; + + final showingResult = + _phase == _ScanPhase.success || _phase == _ScanPhase.warning; + + if (showingResult) { + _cancelAutoDismiss(); + _resultController.reset(); + } else { + if (_phase != _ScanPhase.scanning) return; + if (code == _lastScannedCode) return; + } _isHandlingDetection = true; setState(() { @@ -114,7 +307,9 @@ class _ScannerScreenState extends State }); _scanLineController.stop(); - await _scannerController.stop(); + if (_inputMode == _ScannerInput.camera) { + await _cameraController?.stop(); + } await _feedbackService.onCodeDetected(); try { @@ -166,9 +361,15 @@ class _ScannerScreenState extends State } await _resultController.forward(); + _scheduleAutoDismiss(); + + if (_inputMode == _ScannerInput.camera) { + await _cameraController?.start(); + } } Future _scanAgain() async { + _cancelAutoDismiss(); _resultController.reset(); _isHandlingDetection = false; setState(() { @@ -177,8 +378,10 @@ class _ScannerScreenState extends State _message = null; _passCode = null; }); - _scanLineController.repeat(); - await _scannerController.start(); + if (_inputMode == _ScannerInput.camera) { + _scanLineController.repeat(); + await _cameraController?.start(); + } } @override @@ -203,16 +406,45 @@ class _ScannerScreenState extends State ), title: const Text('Escanear pase'), centerTitle: true, + actions: [ + if (_hardwareAvailable && _phase == _ScanPhase.scanning) + IconButton( + tooltip: _inputMode == _ScannerInput.hardware + ? 'Usar cámara' + : 'Usar escáner Honeywell', + icon: _isSwitchingInput + ? const SizedBox( + width: 22, + height: 22, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : Icon( + _inputMode == _ScannerInput.hardware + ? Icons.camera_alt_outlined + : Icons.barcode_reader, + ), + onPressed: _isSwitchingInput ? null : _toggleScannerInput, + ), + ], ), body: Stack( fit: StackFit.expand, children: [ - if (_phase == _ScanPhase.scanning || _phase == _ScanPhase.processing) + if (_inputMode == _ScannerInput.loading && _isInitialSetup) + const Center( + child: CircularProgressIndicator(color: AppTheme.primary), + ), + if (_showsScannerInput && + _inputMode == _ScannerInput.camera && + _cameraController != null) LayoutBuilder( builder: (context, constraints) { final scanRect = _scanWindowRect(constraints.biggest); return MobileScanner( - controller: _scannerController, + controller: _cameraController!, onDetect: _onDetect, scanWindow: scanRect, overlayBuilder: (context, constraints) { @@ -236,8 +468,8 @@ class _ScannerScreenState extends State ); }, ), - if (_phase != _ScanPhase.scanning && _phase != _ScanPhase.processing) - Container(color: AppTheme.backgroundDark), + if (_showsScannerInput && _inputMode == _ScannerInput.hardware) + _buildHardwareScannerView(), AnimatedContainer( duration: const Duration(milliseconds: 450), curve: Curves.easeOutCubic, @@ -256,7 +488,7 @@ class _ScannerScreenState extends State ), ), ), - if (_phase == _ScanPhase.scanning) + if (_phase == _ScanPhase.scanning && _inputMode != _ScannerInput.loading) SafeArea( child: Align( alignment: Alignment.bottomCenter, @@ -452,11 +684,92 @@ class _ScannerScreenState extends State ); } + Widget _buildHardwareScannerView() { + return Container( + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + AppTheme.backgroundDark, + Color(0xFF0D1B2A), + Color(0xFF12182B), + ], + ), + ), + child: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 36), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 120, + height: 120, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(28), + color: AppTheme.primary.withValues(alpha: 0.12), + border: Border.all( + color: AppTheme.primary.withValues(alpha: 0.35), + ), + ), + child: const Icon( + Icons.barcode_reader, + size: 56, + color: AppTheme.primary, + ), + ), + const SizedBox(height: 28), + Text( + 'Escáner Honeywell', + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 12), + Text( + 'Presiona el botón lateral del EDA51 para leer el código QR del pase.', + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyLarge?.copyWith( + color: Colors.white.withValues(alpha: 0.6), + height: 1.5, + ), + ), + const SizedBox(height: 20), + Container( + padding: + const EdgeInsets.symmetric(horizontal: 14, vertical: 8), + decoration: BoxDecoration( + color: Colors.white.withValues(alpha: 0.06), + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: Colors.white.withValues(alpha: 0.08), + ), + ), + child: Text( + 'Sensor dedicado · Honeywell ScanPal EDA51', + style: TextStyle( + color: Colors.white.withValues(alpha: 0.45), + fontSize: 12, + ), + ), + ), + ], + ), + ), + ), + ); + } + Widget _buildHint() { + final message = _inputMode == _ScannerInput.hardware + ? 'Presiona el botón lateral para escanear' + : 'Apunta la cámara al código QR del pase'; + return Padding( padding: const EdgeInsets.symmetric(horizontal: 32), child: Text( - 'Apunta la cámara al código QR del pase', + message, textAlign: TextAlign.center, style: TextStyle( color: Colors.white.withValues(alpha: 0.65), diff --git a/lib/services/feedback_service.dart b/lib/services/feedback_service.dart index e53aa55..0bcf3c5 100644 --- a/lib/services/feedback_service.dart +++ b/lib/services/feedback_service.dart @@ -1,43 +1,92 @@ +import 'dart:io'; + import 'package:audioplayers/audioplayers.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:vibration/vibration.dart'; class FeedbackService { - FeedbackService() : _player = AudioPlayer() { - _player.setReleaseMode(ReleaseMode.stop); + FeedbackService() { + _configurePlayers(); } - final AudioPlayer _player; + final AudioPlayer _scanPlayer = AudioPlayer(); + final AudioPlayer _successPlayer = AudioPlayer(); + final AudioPlayer _warningPlayer = AudioPlayer(); + + static final AudioContext _loudContext = AudioContext( + android: AudioContextAndroid( + isSpeakerphoneOn: true, + audioMode: AndroidAudioMode.normal, + contentType: AndroidContentType.sonification, + usageType: AndroidUsageType.alarm, + audioFocus: AndroidAudioFocus.gain, + ), + iOS: AudioContextIOS( + category: AVAudioSessionCategory.playback, + options: { + AVAudioSessionOptions.mixWithOthers, + AVAudioSessionOptions.duckOthers, + }, + ), + ); + + Future _configurePlayers() async { + for (final player in [_scanPlayer, _successPlayer, _warningPlayer]) { + await player.setReleaseMode(ReleaseMode.stop); + await player.setPlayerMode(PlayerMode.lowLatency); + await player.setVolume(1.0); + await player.setAudioContext(_loudContext); + } + } Future onCodeDetected() async { await Future.wait([ - _play('sounds/scan.wav'), - _vibratePattern(const [0, 40]), + _play(_scanPlayer, 'sounds/scan.wav'), + _vibratePattern(const [0, 80]), + HapticFeedback.mediumImpact(), ]); } Future onSuccess() async { await Future.wait([ - _play('sounds/success.wav'), - _vibratePattern(const [0, 90, 70, 140]), + _playSuccessSequence(), + _vibratePattern(const [0, 120, 60, 180]), + HapticFeedback.heavyImpact(), ]); - await HapticFeedback.heavyImpact(); } Future onWarning() async { await Future.wait([ - _play('sounds/warning.wav'), - _vibratePattern(const [0, 120, 80, 120, 80, 120]), + _playWarningSequence(), + _vibratePattern(const [0, 180, 80, 180, 80, 220]), + HapticFeedback.heavyImpact(), ]); - await HapticFeedback.mediumImpact(); } - Future _play(String asset) async { + Future _playSuccessSequence() async { + await _play(_successPlayer, 'sounds/success.wav'); + if (!kIsWeb && Platform.isAndroid) { + await Future.delayed(const Duration(milliseconds: 120)); + await _play(_successPlayer, 'sounds/success.wav'); + } + } + + Future _playWarningSequence() async { + for (var i = 0; i < 2; i++) { + await _play(_warningPlayer, 'sounds/warning.wav'); + if (i == 0) { + await Future.delayed(const Duration(milliseconds: 140)); + } + } + } + + Future _play(AudioPlayer player, String asset) async { try { - await _player.stop(); - await _player.play(AssetSource(asset)); + await player.stop(); + await player.play(AssetSource(asset)); } catch (_) { - // Ignore audio errors on devices without speaker routing. + await SystemSound.play(SystemSoundType.alert); } } @@ -51,7 +100,7 @@ class FeedbackService { final intensities = pattern .asMap() .entries - .map((entry) => entry.key.isOdd ? 180 : 0) + .map((entry) => entry.key.isOdd ? 255 : 0) .toList(); await Vibration.vibrate( pattern: pattern, @@ -62,11 +111,15 @@ class FeedbackService { await Vibration.vibrate(pattern: pattern); } catch (_) { - await HapticFeedback.selectionClick(); + await HapticFeedback.heavyImpact(); } } Future dispose() async { - await _player.dispose(); + await Future.wait([ + _scanPlayer.dispose(), + _successPlayer.dispose(), + _warningPlayer.dispose(), + ]); } } \ No newline at end of file diff --git a/lib/services/hardware_scanner_service.dart b/lib/services/hardware_scanner_service.dart new file mode 100644 index 0000000..800aba1 --- /dev/null +++ b/lib/services/hardware_scanner_service.dart @@ -0,0 +1,62 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:qrscanner/services/scan_launch_service.dart'; + +typedef HardwareScanCallback = void Function(String rawValue); + +/// Integración con el escáner físico Honeywell vía Intent API nativa (EDA51). +class HardwareScannerService { + HardwareScannerService._(); + + static final HardwareScannerService instance = HardwareScannerService._(); + + final _scanLaunch = ScanLaunchService.instance; + + HardwareScanCallback? _onScan; + void Function(Exception error)? _onError; + StreamSubscription? _scanSubscription; + bool _active = false; + + bool get isActive => _active; + + static Future isAvailable() => instance._scanLaunch.isSupported(); + + Future activate({ + required HardwareScanCallback onScan, + void Function(Exception error)? onError, + }) async { + if (kIsWeb || !Platform.isAndroid) return false; + + _onScan = onScan; + _onError = onError; + + await _scanLaunch.claimScanner(); + await _scanSubscription?.cancel(); + _scanSubscription = _scanLaunch.scanStream.listen( + (code) => _onScan?.call(code), + onError: (Object error) => _onError?.call(Exception(error.toString())), + ); + + _active = true; + return _scanLaunch.isSupported(); + } + + Future pause() async { + _active = false; + } + + Future deactivate() async { + await _scanSubscription?.cancel(); + _scanSubscription = null; + _onScan = null; + _onError = null; + _active = false; + } + + Future ensureStopped() async { + await deactivate(); + await _scanLaunch.releaseScanner(); + } +} \ No newline at end of file diff --git a/lib/services/scan_launch_service.dart b/lib/services/scan_launch_service.dart new file mode 100644 index 0000000..43971fd --- /dev/null +++ b/lib/services/scan_launch_service.dart @@ -0,0 +1,62 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +class ScanLaunchService { + ScanLaunchService._(); + + static final ScanLaunchService instance = ScanLaunchService._(); + + static const _methodChannel = MethodChannel('com.example.qrscanner/scan_launch'); + static const _eventChannel = EventChannel('com.example.qrscanner/scan_events'); + + Stream? _scanStream; + + bool get isAndroid => !kIsWeb && Platform.isAndroid; + + Stream get scanStream { + _scanStream ??= _eventChannel + .receiveBroadcastStream() + .where((event) => event is String && event.trim().isNotEmpty) + .map((event) => (event as String).trim()); + return _scanStream!; + } + + Future isSupported() async { + if (!isAndroid) return false; + try { + final supported = await _methodChannel.invokeMethod('isSupported'); + return supported ?? false; + } catch (_) { + return false; + } + } + + Future claimScanner() async { + if (!isAndroid) return; + try { + await _methodChannel.invokeMethod('claimScanner'); + } catch (_) {} + } + + Future releaseScanner() async { + if (!isAndroid) return; + try { + await _methodChannel.invokeMethod('releaseScanner'); + } catch (_) {} + } + + Future consumePendingScan() async { + if (!isAndroid) return null; + try { + final code = await _methodChannel.invokeMethod('consumePendingScan'); + final trimmed = code?.trim(); + if (trimmed == null || trimmed.isEmpty) return null; + return trimmed; + } catch (_) { + return null; + } + } +} \ No newline at end of file diff --git a/lib/services/scan_navigation_service.dart b/lib/services/scan_navigation_service.dart new file mode 100644 index 0000000..5b99d36 --- /dev/null +++ b/lib/services/scan_navigation_service.dart @@ -0,0 +1,137 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:qrscanner/models/auth_session.dart'; +import 'package:qrscanner/screens/home_screen.dart'; +import 'package:qrscanner/screens/scanner_screen.dart'; +import 'package:qrscanner/services/auth_service.dart'; +import 'package:qrscanner/services/scan_launch_service.dart'; + +class ScanNavigationService { + ScanNavigationService._(); + + static final ScanNavigationService instance = ScanNavigationService._(); + + final GlobalKey navigatorKey = GlobalKey(); + + final AuthService _authService = AuthService(); + StreamSubscription? _scanSubscription; + String? _pendingCode; + bool _handlingScan = false; + bool _scannerOpen = false; + + String? get pendingCode => _pendingCode; + + void setPendingCode(String code) { + final trimmed = code.trim(); + if (trimmed.isEmpty) return; + _pendingCode = trimmed; + } + + String? takePendingCode() { + final code = _pendingCode; + _pendingCode = null; + return code; + } + + Future initialize() async { + await ScanLaunchService.instance.claimScanner(); + + final pending = await ScanLaunchService.instance.consumePendingScan(); + if (pending != null) { + setPendingCode(pending); + } + + await _scanSubscription?.cancel(); + _scanSubscription = ScanLaunchService.instance.scanStream.listen( + (code) => unawaited(handleScan(code)), + ); + } + + Future dispose() async { + await _scanSubscription?.cancel(); + _scanSubscription = null; + } + + Future handleScan(String code, {AuthSession? session}) async { + final trimmed = code.trim(); + if (trimmed.isEmpty || _handlingScan) return; + + _handlingScan = true; + try { + setPendingCode(trimmed); + + final activeSession = session ?? + _authService.currentSession ?? + await _authService.loadStoredSession(); + + if (activeSession == null) return; + + final navigator = navigatorKey.currentState; + if (navigator == null) return; + + takePendingCode(); + + if (_scannerOpen) return; + + _scannerOpen = true; + try { + await navigator.push( + PageRouteBuilder( + settings: const RouteSettings(name: '/scanner'), + pageBuilder: (context, animation, secondaryAnimation) => + ScannerScreen( + session: activeSession, + initialCode: trimmed, + ), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return FadeTransition( + opacity: animation, + child: SlideTransition( + position: Tween( + begin: const Offset(0, 0.06), + end: Offset.zero, + ).animate(CurvedAnimation( + parent: animation, + curve: Curves.easeOutCubic, + )), + child: child, + ), + ); + }, + transitionDuration: const Duration(milliseconds: 380), + ), + ); + } finally { + _scannerOpen = false; + } + } finally { + _handlingScan = false; + } + } + + Future openPendingScanAfterAuth(AuthSession session) async { + final code = takePendingCode(); + if (code == null) return; + await handleScan(code, session: session); + } + + Future navigateToHome(AuthSession session) async { + final navigator = navigatorKey.currentState; + if (navigator == null) return; + + await navigator.pushAndRemoveUntil( + PageRouteBuilder( + pageBuilder: (context, animation, secondaryAnimation) => + HomeScreen(session: session), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return FadeTransition(opacity: animation, child: child); + }, + transitionDuration: const Duration(milliseconds: 400), + ), + (route) => false, + ); + + await openPendingScanAfterAuth(session); + } +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index b231bc5..16dd122 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -208,6 +208,14 @@ packages: description: flutter source: sdk version: "0.0.0" + honeywell_scanner: + dependency: "direct main" + description: + name: honeywell_scanner + sha256: a2bf8600e8e33887e268df20d300d9341aed708179a3be74bc2acc9f8806a7c1 + url: "https://pub.dev" + source: hosted + version: "8.0.0" hooks: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e0bbd60..c882168 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,6 +39,7 @@ dependencies: mobile_scanner: ^7.0.1 shared_preferences: ^2.3.3 vibration: ^3.1.3 + honeywell_scanner: ^8.0.0 dev_dependencies: flutter_test: