Compare commits

..

No commits in common. '4285d29d187bf76c1a3e3aa1fc7f6bdbf53e5452' and '1c7df8d8c1f764c90fa9cf7f0eae8a089763c0af' have entirely different histories.

@ -233,14 +233,10 @@
inputFileListPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
); );
inputPaths = (
);
name = "[CP] Copy Pods Resources"; name = "[CP] Copy Pods Resources";
outputFileListPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
); );
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
@ -269,14 +265,10 @@
inputFileListPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
); );
inputPaths = (
);
name = "[CP] Embed Pods Frameworks"; name = "[CP] Embed Pods Frameworks";
outputFileListPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
); );
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
@ -402,7 +394,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5; CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = F3XW3W7X9G; DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -620,7 +612,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5; CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = F3XW3W7X9G; DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -724,7 +716,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5; CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = F3XW3W7X9G; DEVELOPMENT_TEAM = 99Z3UD3LJM;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_USER_SCRIPT_SANDBOXING = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;

@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart'; import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/notification/notification_manger.dart';
@ -105,7 +105,6 @@ class _DashboardViewState extends State<DashboardView> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final user = Provider.of<UserProvider>(context, listen: false).user; final user = Provider.of<UserProvider>(context, listen: false).user;
bool isEngineer = (user?.type) == UsersTypes.engineer; bool isEngineer = (user?.type) == UsersTypes.engineer;
///Need to check which info need to show on dashboard for quality user. ///Need to check which info need to show on dashboard for quality user.
bool isQualityUser = (user?.type) == UsersTypes.qualityUser; bool isQualityUser = (user?.type) == UsersTypes.qualityUser;
@ -142,13 +141,7 @@ class _DashboardViewState extends State<DashboardView> {
bottom: 20.toScreenHeight, bottom: 20.toScreenHeight,
child: GestureDetector( child: GestureDetector(
onTap: () async { onTap: () async {
var availability = await FlutterNfcKit.nfcAvailability; bool isNfcSupported = await NfcManager.instance.isAvailable();
bool isNfcSupported = false;
if (availability != NFCAvailability.available) {
isNfcSupported = false;
} else {
isNfcSupported = true;
}
SwipeGeneralUtils.instance.showSwipeTypeBottomSheetSheet(isNfcSupported: isNfcSupported); SwipeGeneralUtils.instance.showSwipeTypeBottomSheetSheet(isNfcSupported: isNfcSupported);
}, },
child: CircularAnimatedContainer( child: CircularAnimatedContainer(

@ -19,7 +19,7 @@ import 'package:google_api_availability/google_api_availability.dart';
// import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; // import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
// import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart'; // import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart';
// import 'package:mohem_flutter_app/widgets/loading_dialog.dart'; // import 'package:mohem_flutter_app/widgets/loading_dialog.dart';
// import 'package:nfc_manager/nfc_manager.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart';
import 'package:test_sa/views/widgets/dialogs/confirm_dialog.dart'; import 'package:test_sa/views/widgets/dialogs/confirm_dialog.dart';
@ -415,45 +415,45 @@ class Utils {
// } // }
// return selectedDate; // return selectedDate;
// } // }
//Unused code....
// static void readNFc({required Function(String) onRead}) { static void readNFc({required Function(String) onRead}) {
// NfcManager.instance.startSession( NfcManager.instance.startSession(
// onDiscovered: (NfcTag tag) async { onDiscovered: (NfcTag tag) async {
// String identifier = ''; String identifier = '';
//
// try { try {
// final dynamic tagDynamic = tag; final dynamic tagDynamic = tag;
// final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map); final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map);
//
// if (Platform.isAndroid) { if (Platform.isAndroid) {
// if (tagData.containsKey('nfca')) { if (tagData.containsKey('nfca')) {
// final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>; final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>;
// if (nfcaData.containsKey('identifier')) { if (nfcaData.containsKey('identifier')) {
// final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List); final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List);
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// } }
// } }
// } else { } else {
// if (tagData.containsKey('mifare')) { if (tagData.containsKey('mifare')) {
// final mifareData = tagData['mifare'] as Map<dynamic, dynamic>; final mifareData = tagData['mifare'] as Map<dynamic, dynamic>;
// if (mifareData.containsKey('identifier')) { if (mifareData.containsKey('identifier')) {
// final List<int> idBytes = List<int>.from(mifareData['identifier'] as List); final List<int> idBytes = List<int>.from(mifareData['identifier'] as List);
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// } }
// } }
// } }
// } catch (e) { } catch (e) {
// print('Error reading NFC: $e'); print('Error reading NFC: $e');
// } }
//
// NfcManager.instance.stopSession(); NfcManager.instance.stopSession();
// onRead(identifier); onRead(identifier);
// }, },
// pollingOptions: {NfcPollingOption.iso14443}, pollingOptions: {NfcPollingOption.iso14443},
// ).catchError((err) { ).catchError((err) {
// print(err); print(err);
// }); });
// } }
//HUAWEI DECISION MAKING //HUAWEI DECISION MAKING
static Future<bool> isGoogleServicesAvailable() async { static Future<bool> isGoogleServicesAvailable() async {

@ -1,9 +1,6 @@
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
@ -27,18 +24,7 @@ class _NonHmgEmployeeSwipeViewState extends State<NonHmgEmployeeSwipeView> {
} }
void checkForNfcAndLocationPermission() async { void checkForNfcAndLocationPermission() async {
// isNfcEnabled = await NfcManager.instance.isAvailable(); isNfcEnabled = await NfcManager.instance.isAvailable();
try {
var availability = await FlutterNfcKit.nfcAvailability;
if (availability != NFCAvailability.available) {
isNfcEnabled = false;
} else {
isNfcEnabled = true;
}
} catch (e) {
log('error checking NFC availability: $e');
isNfcEnabled = false;
}
} }
@override @override

@ -1,6 +1,5 @@
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
@ -25,18 +24,7 @@ class _NonHmgEmployeeSwipeViewState extends State<NonHmgEmployeeSwipeView> {
} }
void checkForNfcAndLocationPermission() async { void checkForNfcAndLocationPermission() async {
// isNfcEnabled = await NfcManager.instance.isAvailable(); isNfcEnabled = await NfcManager.instance.isAvailable();
try {
var availability = await FlutterNfcKit.nfcAvailability;
if (availability != NFCAvailability.available) {
isNfcEnabled = false;
} else {
isNfcEnabled = true;
}
} catch (e) {
log('error checking NFC availability: $e');
isNfcEnabled = false;
}
} }
@override @override

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_nfc_kit/flutter_nfc_kit.dart'; import 'package:nfc_manager/nfc_manager.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
@ -119,32 +119,12 @@ class _SwipeViewState extends State<SwipeView> {
SwipeHistoryView().expanded, SwipeHistoryView().expanded,
], ],
), ),
// void checkForNfcAndLocationPermission() async {
// // isNfcEnabled = await NfcManager.instance.isAvailable();
// try {
// var availability = await FlutterNfcKit.nfcAvailability;
// if (availability != NFCAvailability.available) {
// isNfcEnabled = false;
// } else {
// isNfcEnabled = true;
// }
// } catch (e) {
// log('error checking NFC availability: $e');
// isNfcEnabled = false;
// }
// }
Positioned( Positioned(
right: 20.toScreenWidth, right: 20.toScreenWidth,
bottom: 60.toScreenHeight, bottom: 60.toScreenHeight,
child: GestureDetector( child: GestureDetector(
onTap: () async { onTap: () async {
var availability = await FlutterNfcKit.nfcAvailability; bool isNfcSupported = await NfcManager.instance.isAvailable();
bool isNfcSupported = false;
if (availability != NFCAvailability.available) {
isNfcSupported = false;
} else {
isNfcSupported = true;
}
SwipeGeneralUtils.instance.showSwipeTypeBottomSheetSheet(isNfcSupported: isNfcSupported); SwipeGeneralUtils.instance.showSwipeTypeBottomSheetSheet(isNfcSupported: isNfcSupported);
}, },
child: CircularAnimatedContainer( child: CircularAnimatedContainer(

@ -10,8 +10,7 @@ import 'package:geolocator/geolocator.dart';
import 'package:google_api_availability/google_api_availability.dart'; import 'package:google_api_availability/google_api_availability.dart';
import 'package:huawei_location/huawei_location.dart'; import 'package:huawei_location/huawei_location.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:nfc_manager/nfc_manager.dart';
// import 'package:nfc_manager/nfc_manager.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -409,6 +408,7 @@ class SwipeGeneralUtils {
try { try {
showNfcReader(context, onNcfScan: (String? nfcId) async { showNfcReader(context, onNcfScan: (String? nfcId) async {
log('nfc id from sheet: $nfcId'); log('nfc id from sheet: $nfcId');
if (nfcId == null || nfcId.isEmpty) return; if (nfcId == null || nfcId.isEmpty) return;
try { try {
await _processNfcAttendance(nfcId, latitude, longitude, context); await _processNfcAttendance(nfcId, latitude, longitude, context);
@ -697,44 +697,44 @@ class SwipeGeneralUtils {
} }
//older code.. //older code..
// void readNFc({Function(String)? onRead}) { void readNFc({Function(String)? onRead}) {
// NfcManager.instance.startSession( NfcManager.instance.startSession(
// onDiscovered: (NfcTag tag) async { onDiscovered: (NfcTag tag) async {
// String identifier = ''; String identifier = '';
//
// try { try {
// final dynamic tagDynamic = tag; final dynamic tagDynamic = tag;
// final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map); final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map);
//
// if (Platform.isAndroid) { if (Platform.isAndroid) {
// if (tagData.containsKey('nfca')) { if (tagData.containsKey('nfca')) {
// final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>; final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>;
// if (nfcaData.containsKey('identifier')) { if (nfcaData.containsKey('identifier')) {
// final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List); final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List);
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// } }
// } }
// } else { } else {
// if (tagData.containsKey('mifare')) { if (tagData.containsKey('mifare')) {
// final mifareData = tagData['mifare'] as Map<dynamic, dynamic>; final mifareData = tagData['mifare'] as Map<dynamic, dynamic>;
// if (mifareData.containsKey('identifier')) { if (mifareData.containsKey('identifier')) {
// final List<int> idBytes = List<int>.from(mifareData['identifier'] as List); final List<int> idBytes = List<int>.from(mifareData['identifier'] as List);
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// } }
// } }
// } }
// } catch (e) { } catch (e) {
// print('Error reading NFC: $e'); print('Error reading NFC: $e');
// } }
//
// NfcManager.instance.stopSession(); NfcManager.instance.stopSession();
// onRead!(identifier); onRead!(identifier);
// }, },
// pollingOptions: {NfcPollingOption.iso14443}, pollingOptions: {NfcPollingOption.iso14443},
// ).catchError((err) { ).catchError((err) {
// print(err); print(err);
// }); });
// } }
//HUAWEI DECISION MAKING //HUAWEI DECISION MAKING
Future<bool> isGoogleServicesAvailable() async { Future<bool> isGoogleServicesAvailable() async {

@ -1,249 +1,247 @@
//TODO delete unused file import 'dart:async';
import 'dart:io';
// import 'dart:async';
// import 'dart:io'; import 'package:flutter/material.dart';
// import 'package:nfc_manager/nfc_manager.dart';
// import 'package:flutter/material.dart';
// // import 'package:nfc_manager/nfc_manager.dart'; void showNfcReader(BuildContext context, {required Function(String? nfcId) onNcfScan}) {
// showModalBottomSheet(
// void showNfcReader(BuildContext context, {required Function(String? nfcId) onNcfScan}) { context: context,
// showModalBottomSheet( enableDrag: false,
// context: context, isDismissible: false,
// enableDrag: false, shape: RoundedRectangleBorder(
// isDismissible: false, borderRadius: BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)),
// shape: const RoundedRectangleBorder( ),
// borderRadius: BorderRadius.only(topLeft: Radius.circular(12), topRight: Radius.circular(12)), backgroundColor: Colors.white,
// ), builder: (context) {
// backgroundColor: Colors.white, return NfcLayout(
// builder: (context) { onNcfScan: onNcfScan,
// return NfcLayout( );
// onNcfScan: onNcfScan, },
// ); );
// }, }
// );
// } class NfcLayout extends StatefulWidget {
// final Function(String? nfcId) onNcfScan;
// class NfcLayout extends StatefulWidget {
// final Function(String? nfcId) onNcfScan; const NfcLayout({super.key, required this.onNcfScan});
//
// const NfcLayout({super.key, required this.onNcfScan}); @override
// _NfcLayoutState createState() => _NfcLayoutState();
// @override }
// _NfcLayoutState createState() => _NfcLayoutState();
// } class _NfcLayoutState extends State<NfcLayout> {
// bool _reading = false;
// class _NfcLayoutState extends State<NfcLayout> { Widget? mainWidget;
// bool _reading = false; String? nfcId;
// Widget? mainWidget;
// String? nfcId; @override
// void initState() {
// @override super.initState();
// void initState() {
// super.initState(); NfcManager.instance.startSession(
// onDiscovered: (NfcTag tag) async {
// NfcManager.instance.startSession( String? identifier;
// onDiscovered: (NfcTag tag) async {
// String? identifier; // Access tag identifier from the tag data
// // In nfc_manager 4.1.1, access data via dynamic cast to bypass protected member
// // Access tag identifier from the tag data try {
// // In nfc_manager 4.1.1, access data via dynamic cast to bypass protected member final dynamic tagDynamic = tag;
// try { final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map);
// final dynamic tagDynamic = tag;
// final Map<String, dynamic> tagData = Map<String, dynamic>.from(tagDynamic.data as Map); if (Platform.isAndroid) {
// // For Android, try NfcA technology first
// if (Platform.isAndroid) { if (tagData.containsKey('nfca')) {
// // For Android, try NfcA technology first final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>;
// if (tagData.containsKey('nfca')) { if (nfcaData.containsKey('identifier')) {
// final nfcaData = tagData['nfca'] as Map<dynamic, dynamic>; final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List);
// if (nfcaData.containsKey('identifier')) { identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// final List<int> idBytes = List<int>.from(nfcaData['identifier'] as List); }
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); }
// } // Fallback to other technologies if NfcA is not available
// } if (identifier == null && tagData.containsKey('nfcb')) {
// // Fallback to other technologies if NfcA is not available final nfcbData = tagData['nfcb'] as Map<dynamic, dynamic>;
// if (identifier == null && tagData.containsKey('nfcb')) { if (nfcbData.containsKey('identifier')) {
// final nfcbData = tagData['nfcb'] as Map<dynamic, dynamic>; final List<int> idBytes = List<int>.from(nfcbData['identifier'] as List);
// if (nfcbData.containsKey('identifier')) { identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// final List<int> idBytes = List<int>.from(nfcbData['identifier'] as List); }
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); }
// } } else {
// } // For iOS, try MiFare technology
// } else { if (tagData.containsKey('mifare')) {
// // For iOS, try MiFare technology final mifareData = tagData['mifare'] as Map<dynamic, dynamic>;
// if (tagData.containsKey('mifare')) { if (mifareData.containsKey('identifier')) {
// final mifareData = tagData['mifare'] as Map<dynamic, dynamic>; final List<int> idBytes = List<int>.from(mifareData['identifier'] as List);
// if (mifareData.containsKey('identifier')) { identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// final List<int> idBytes = List<int>.from(mifareData['identifier'] as List); }
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); }
// } // Fallback to iso15693 for iOS
// } if (identifier == null && tagData.containsKey('iso15693')) {
// // Fallback to iso15693 for iOS final iso15693Data = tagData['iso15693'] as Map<dynamic, dynamic>;
// if (identifier == null && tagData.containsKey('iso15693')) { if (iso15693Data.containsKey('identifier')) {
// final iso15693Data = tagData['iso15693'] as Map<dynamic, dynamic>; final List<int> idBytes = List<int>.from(iso15693Data['identifier'] as List);
// if (iso15693Data.containsKey('identifier')) { identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// final List<int> idBytes = List<int>.from(iso15693Data['identifier'] as List); }
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); }
// } }
// }
// } // Universal fallback: try Ndef if available
// if (identifier == null && tagData.containsKey('ndef')) {
// // Universal fallback: try Ndef if available final ndefData = tagData['ndef'] as Map<dynamic, dynamic>;
// if (identifier == null && tagData.containsKey('ndef')) { if (ndefData.containsKey('identifier')) {
// final ndefData = tagData['ndef'] as Map<dynamic, dynamic>; final List<int> idBytes = List<int>.from(ndefData['identifier'] as List);
// if (ndefData.containsKey('identifier')) { identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join('');
// final List<int> idBytes = List<int>.from(ndefData['identifier'] as List); }
// identifier = idBytes.map((e) => e.toRadixString(16).padLeft(2, '0')).join(''); }
// } } catch (e) {
// } print('Error reading NFC tag: $e');
// } catch (e) { }
// print('Error reading NFC tag: $e');
// } nfcId = identifier;
//
// nfcId = identifier; setState(() {
// _reading = true;
// setState(() { mainWidget = doneNfc();
// _reading = true; });
// mainWidget = doneNfc();
// }); Future.delayed(const Duration(seconds: 1), () {
// NfcManager.instance.stopSession();
// Future.delayed(const Duration(seconds: 1), () { Navigator.pop(context);
// NfcManager.instance.stopSession(); widget.onNcfScan(nfcId);
// Navigator.pop(context); });
// widget.onNcfScan(nfcId); },
// }); pollingOptions: {NfcPollingOption.iso14443},
// }, ).catchError((err) {
// pollingOptions: {NfcPollingOption.iso14443}, print(err);
// ).catchError((err) { });
// print(err); }
// });
// } @override
// Widget build(BuildContext context) {
// @override (mainWidget == null && !_reading) ? mainWidget = scanNfc() : mainWidget = doneNfc();
// Widget build(BuildContext context) { return AnimatedSwitcher(duration: Duration(milliseconds: 500), child: mainWidget);
// (mainWidget == null && !_reading) ? mainWidget = scanNfc() : mainWidget = doneNfc(); }
// return AnimatedSwitcher(duration: Duration(milliseconds: 500), child: mainWidget);
// } Widget scanNfc() {
// return Container(
// Widget scanNfc() { key: ValueKey(1),
// return Container( child: Column(
// key: ValueKey(1), mainAxisSize: MainAxisSize.min,
// child: Column( children: <Widget>[
// mainAxisSize: MainAxisSize.min, SizedBox(
// children: <Widget>[ height: 30,
// SizedBox( ),
// height: 30, Text(
// ), "Ready To Scan",
// Text( style: TextStyle(
// "Ready To Scan", fontWeight: FontWeight.bold,
// style: TextStyle( fontSize: 24,
// fontWeight: FontWeight.bold, ),
// fontSize: 24, ),
// ), SizedBox(
// ), height: 30,
// SizedBox( ),
// height: 30, Image.asset(
// ), "assets/images/nfc_dummy.png",
// Image.asset( height: MediaQuery.of(context).size.width / 3,
// "assets/images/nfc_dummy.png", width: double.infinity,
// height: MediaQuery.of(context).size.width / 3, ),
// width: double.infinity, SizedBox(
// ), height: 30,
// SizedBox( ),
// height: 30, Text(
// ), "Approach an NFC Tag",
// Text( style: TextStyle(
// "Approach an NFC Tag", fontSize: 18,
// style: TextStyle( ),
// fontSize: 18, ),
// ), SizedBox(
// ), height: 30,
// SizedBox( ),
// height: 30, ButtonTheme(
// ), minWidth: MediaQuery.of(context).size.width / 1.2,
// ButtonTheme( height: 45.0,
// minWidth: MediaQuery.of(context).size.width / 1.2, buttonColor: Colors.grey[300],
// height: 45.0, shape: RoundedRectangleBorder(
// buttonColor: Colors.grey[300], borderRadius: BorderRadius.circular(6),
// shape: RoundedRectangleBorder( ),
// borderRadius: BorderRadius.circular(6), child: TextButton(
// ), onPressed: () {
// child: TextButton( NfcManager.instance.stopSession();
Navigator.pop(context);
},
// elevation: 0,
child: Text("CANCEL"),
),
),
SizedBox(
height: 30,
),
],
),
);
}
Widget doneNfc() {
return Container(
key: ValueKey(2),
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
SizedBox(
height: 30,
),
Text(
"Successfully Scanned",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 24,
),
),
SizedBox(
height: 30,
),
Image.asset(
// "assets/icons/nfc/ic_done.png",
"assets/images/done_dummy.jpeg",
height: MediaQuery.of(context).size.width / 3,
width: double.infinity,
),
SizedBox(
height: 30,
),
Text(
"Approach an NFC Tag",
style: TextStyle(
fontSize: 18,
),
),
SizedBox(
height: 30,
),
ButtonTheme(
minWidth: MediaQuery.of(context).size.width / 1.2,
height: 45.0,
buttonColor: Colors.grey[300],
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6),
),
child: TextButton(
// onPressed: () { // onPressed: () {
// NfcManager.instance.stopSession(); // _stream?.cancel();
// widget.onNcfScan(nfcId);
// Navigator.pop(context); // Navigator.pop(context);
// }, // },
// // elevation: 0, onPressed: null,
// child: Text("CANCEL"), // elevation: 0,
// ), child: Text("DONE"),
// ), ),
// SizedBox( ),
// height: 30, SizedBox(
// ), height: 30,
// ], ),
// ), ],
// ); ),
// } );
// }
// Widget doneNfc() { }
// return Container(
// key: ValueKey(2),
// child: Column(
// mainAxisSize: MainAxisSize.min,
// children: <Widget>[
// SizedBox(
// height: 30,
// ),
// Text(
// "Successfully Scanned",
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 24,
// ),
// ),
// SizedBox(
// height: 30,
// ),
// Image.asset(
// // "assets/icons/nfc/ic_done.png",
// "assets/images/done_dummy.jpeg",
// height: MediaQuery.of(context).size.width / 3,
// width: double.infinity,
// ),
// SizedBox(
// height: 30,
// ),
// Text(
// "Approach an NFC Tag",
// style: TextStyle(
// fontSize: 18,
// ),
// ),
// SizedBox(
// height: 30,
// ),
// ButtonTheme(
// minWidth: MediaQuery.of(context).size.width / 1.2,
// height: 45.0,
// buttonColor: Colors.grey[300],
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(6),
// ),
// child: TextButton(
// // onPressed: () {
// // _stream?.cancel();
// // widget.onNcfScan(nfcId);
// // Navigator.pop(context);
// // },
// onPressed: null,
// // elevation: 0,
// child: Text("DONE"),
// ),
// ),
// SizedBox(
// height: 30,
// ),
// ],
// ),
// );
// }
// }

@ -1070,6 +1070,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.0" version: "0.4.0"
ndef_record:
dependency: transitive
description:
name: ndef_record
sha256: "210ffb12284961cab9e44b99462143316d9a20cd992581170706069ef77d74a6"
url: "https://pub.dev"
source: hosted
version: "1.4.2"
nested: nested:
dependency: transitive dependency: transitive
description: description:
@ -1078,6 +1086,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
nfc_manager:
dependency: "direct main"
description:
name: nfc_manager
sha256: "24c78b0e5702da53e7f8794d073624c0bee7cd99924f257cbd11f5d1c5866879"
url: "https://pub.dev"
source: hosted
version: "4.1.1"
objective_c: objective_c:
dependency: transitive dependency: transitive
description: description:
@ -1948,5 +1964,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.10.3 <4.0.0" dart: ">=3.11.0 <4.0.0"
flutter: ">=3.38.4" flutter: ">=3.38.4"

@ -96,7 +96,7 @@ dependencies:
huawei_push: ^6.14.0+300 huawei_push: ^6.14.0+300
huawei_location: ^6.16.0+300 huawei_location: ^6.16.0+300
geolocator: ^9.0.2 geolocator: ^9.0.2
# nfc_manager: ^4.1.1 nfc_manager: ^4.1.1
flutter_nfc_kit: ^3.6.2 flutter_nfc_kit: ^3.6.2
wifi_iot: ^0.3.19+2 wifi_iot: ^0.3.19+2

Loading…
Cancel
Save