Merge branch 'develop_liyi' into canary_release
This commit is contained in:
commit
2f6efb09d5
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "بعد إعادة الضبط ، سيتم حذف الأوردة المشطية للقفل. هل أنت متأكد أنك تريد إعادة الضبط ؟",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "بعد إعادة الضبط ، سيتم حذف الأوردة المشطية للقفل. هل أنت متأكد أنك تريد إعادة الضبط ؟",
|
||||||
"在线": "الإنترنت",
|
"在线": "الإنترنت",
|
||||||
"离线": "غير متصل",
|
"离线": "غير متصل",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "След нулиране, метакарпалните вени на ключалката ще бъдат изтрити. Сигурен ли сте, че искате да се възстанови?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "След нулиране, метакарпалните вени на ключалката ще бъдат изтрити. Сигурен ли сте, че искате да се възстанови?",
|
||||||
"在线": "Онлайн",
|
"在线": "Онлайн",
|
||||||
"离线": "Офлайн",
|
"离线": "Офлайн",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "ব্যান্ডোটারআইসেট, হাসিপাল রিরিইনস্ফথেলকবইল্ডজেডড।?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "ব্যান্ডোটারআইসেট, হাসিপাল রিরিইনস্ফথেলকবইল্ডজেডড।?",
|
||||||
"在线": "কনলাইন",
|
"在线": "কনলাইন",
|
||||||
"离线": "দেউন্টলাইনCity in Ontario Canada",
|
"离线": "দেউন্টলাইনCity in Ontario Canada",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po resetování budou metakarpální žíly zámku odstraněny. Jste si jistý, že chcete resetovat?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po resetování budou metakarpální žíly zámku odstraněny. Jste si jistý, že chcete resetovat?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Efter nulstilling, de metacarpal vener i låsen vil blive slettet. Er du sikker på at du vil nulstille?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Efter nulstilling, de metacarpal vener i låsen vil blive slettet. Er du sikker på at du vil nulstille?",
|
||||||
"在线": "OnlineComment",
|
"在线": "OnlineComment",
|
||||||
"离线": "OfflineComment",
|
"离线": "OfflineComment",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nach dem Zurücksetzen werden die Mittelhand adern des Schlosses gelöscht. Sind Sie sicher, dass Sie zurücksetzen wollen?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nach dem Zurücksetzen werden die Mittelhand adern des Schlosses gelöscht. Sind Sie sicher, dass Sie zurücksetzen wollen?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Μετά την επαναφορά, οι μετακάρπιες φλέβες της κλειδαριάς θα διαγραφούν. Είστε σίγουροι ότι θέλετε να επαναφέρετε;",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Μετά την επαναφορά, οι μετακάρπιες φλέβες της κλειδαριάς θα διαγραφούν. Είστε σίγουροι ότι θέλετε να επαναφέρετε;",
|
||||||
"在线": "Σε απευθείας σύνδεση",
|
"在线": "Σε απευθείας σύνδεση",
|
||||||
"离线": "Εκτός σύνδεσης:",
|
"离线": "Εκτός σύνδεσης:",
|
||||||
|
|||||||
@ -1080,6 +1080,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "After reset, the metacarpal veins of the lock will be deleted. Are you sure you want to reset?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "After reset, the metacarpal veins of the lock will be deleted. Are you sure you want to reset?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
@ -1148,5 +1150,6 @@
|
|||||||
"暂无最新记录": "There are currently no latest records available",
|
"暂无最新记录": "There are currently no latest records available",
|
||||||
"请将手机切换至2.4G WiFi进行手动连接": "Please switch your phone to 2.4G WiFi for manual connection",
|
"请将手机切换至2.4G WiFi进行手动连接": "Please switch your phone to 2.4G WiFi for manual connection",
|
||||||
"请确保网络是2.4GHz Wi-Fi": "Please ensure that the network is 2.4GHz Wi Fi",
|
"请确保网络是2.4GHz Wi-Fi": "Please ensure that the network is 2.4GHz Wi Fi",
|
||||||
|
"是否要远程开锁": "Do you want to unlock remotely",
|
||||||
"网关添加成功": "Gateway added successfully"
|
"网关添加成功": "Gateway added successfully"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Después del reinicio, se eliminarán las venas metacarpiales de la cerradura. ¿Está seguro de que desea restablecer?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Después del reinicio, se eliminarán las venas metacarpiales de la cerradura. ¿Está seguro de que desea restablecer?",
|
||||||
"在线": "En línea",
|
"在线": "En línea",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Pärast lähtestamist kustutatakse luku metakarpaalveenid. Kas tõesti soovid lähtestada?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Pärast lähtestamist kustutatakse luku metakarpaalveenid. Kas tõesti soovid lähtestada?",
|
||||||
"在线": "Võrgus",
|
"在线": "Võrgus",
|
||||||
"离线": "Mitte ühendust",
|
"离线": "Mitte ühendust",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Kun lukko on nollattu, metakarppinen suoneet poistetaan. Haluatko varmasti palauttaa?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Kun lukko on nollattu, metakarppinen suoneet poistetaan. Haluatko varmasti palauttaa?",
|
||||||
"在线": "Verkossa",
|
"在线": "Verkossa",
|
||||||
"离线": "Offline-verkosto",
|
"离线": "Offline-verkosto",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Après réinitialisation, les veines métacarpiennes de la serrure seront supprimées. Êtes-vous sûr de vouloir réinitialiser?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Après réinitialisation, les veines métacarpiennes de la serrure seront supprimées. Êtes-vous sûr de vouloir réinitialiser?",
|
||||||
"在线": "En ligne",
|
"在线": "En ligne",
|
||||||
"离线": "Hors ligne",
|
"离线": "Hors ligne",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "לאחר איפוס, הורידים של המנעול יימחקו. אתה בטוח שברצונך לאפס?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "לאחר איפוס, הורידים של המנעול יימחקו. אתה בטוח שברצונך לאפס?",
|
||||||
"在线": "באינטרנט",
|
"在线": "באינטרנט",
|
||||||
"离线": "מנותק",
|
"离线": "מנותק",
|
||||||
|
|||||||
@ -1080,6 +1080,8 @@
|
|||||||
"印度尼西亚语": "बाहसा इंडोनेशिया",
|
"印度尼西亚语": "बाहसा इंडोनेशिया",
|
||||||
"芬兰语": "सूमी",
|
"芬兰语": "सूमी",
|
||||||
"丹麦语": "मूर्ख व्यक्ति",
|
"丹麦语": "मूर्ख व्यक्ति",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "रीसेट के बाद, लॉक के मेटाकार्पल नसों को हटा दिया जाएगा। क्या आप निश्चित रूप से रीसेट करना चाहते हैं?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "रीसेट के बाद, लॉक के मेटाकार्पल नसों को हटा दिया जाएगा। क्या आप निश्चित रूप से रीसेट करना चाहते हैं?",
|
||||||
"在线": "ऑनलाइन",
|
"在线": "ऑनलाइन",
|
||||||
"离线": "ऑफ़लाइन",
|
"离线": "ऑफ़लाइन",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "索米",
|
"芬兰语": "索米",
|
||||||
"丹麦语": "丹斯克",
|
"丹麦语": "丹斯克",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置後,鎖的掌靜脈將被刪除。 你確定要重置啊?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置後,鎖的掌靜脈將被刪除。 你確定要重置啊?",
|
||||||
"在线": "在線",
|
"在线": "在線",
|
||||||
"离线": "離線",
|
"离线": "離線",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nakon resetiranja, metakarpalne vene brave će biti izbrisane. Jeste li sigurni da želite resetiranje?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Nakon resetiranja, metakarpalne vene brave će biti izbrisane. Jeste li sigurni da želite resetiranje?",
|
||||||
"在线": "Na internetu",
|
"在线": "Na internetu",
|
||||||
"离线": "Odspojeno",
|
"离线": "Odspojeno",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "A reset után a zár metakarpális erei törlődnek. Biztos vagy benne, hogy vissza akarsz állítani?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "A reset után a zár metakarpális erei törlődnek. Biztos vagy benne, hogy vissza akarsz állítani?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Setelah mengulang, pembuluh darah metakarpal dari kunci akan dihapus. Yakin ingin mengatur ulang?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Setelah mengulang, pembuluh darah metakarpal dari kunci akan dihapus. Yakin ingin mengatur ulang?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Dopo il reset, le vene metacarpali della serratura verranno cancellate. Sei sicuro di voler reimpostare?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Dopo il reset, le vene metacarpali della serratura verranno cancellate. Sei sicuro di voler reimpostare?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "リセット後、ロックの中手骨静脈が削除されます。リセットしてもよろしいですか。",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "リセット後、ロックの中手骨静脈が削除されます。リセットしてもよろしいですか。",
|
||||||
"在线": "オンライン",
|
"在线": "オンライン",
|
||||||
"离线": "オフライン",
|
"离线": "オフライン",
|
||||||
|
|||||||
@ -1081,6 +1081,8 @@
|
|||||||
"印度尼西亚语": "印度尼西亚语",
|
"印度尼西亚语": "印度尼西亚语",
|
||||||
"芬兰语": "芬兰语",
|
"芬兰语": "芬兰语",
|
||||||
"丹麦语": "丹麦语",
|
"丹麦语": "丹麦语",
|
||||||
|
"印地语": "印地语",
|
||||||
|
"乌尔都语": "乌尔都语",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?",
|
||||||
"在线": "在线",
|
"在线": "在线",
|
||||||
"离线": "离线",
|
"离线": "离线",
|
||||||
@ -1153,5 +1155,6 @@
|
|||||||
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
|
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
|
||||||
"请确保网络是2.4GHz Wi-Fi": "请确保网络是2.4GHz Wi-Fi",
|
"请确保网络是2.4GHz Wi-Fi": "请确保网络是2.4GHz Wi-Fi",
|
||||||
"已选": "已选",
|
"已选": "已选",
|
||||||
|
"是否要远程开锁": "是否要远程开锁",
|
||||||
"网关添加成功": "网关添加成功"
|
"网关添加成功": "网关添加成功"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Қайта ысырып тастағаннан соң бұғаттағы метакарпалар өшіріледі. Шынымен ысырып тастауды қалайсыз ба?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Қайта ысырып тастағаннан соң бұғаттағы метакарпалар өшіріледі. Шынымен ысырып тастауды қалайсыз ба?",
|
||||||
"在线": "Онлайн",
|
"在线": "Онлайн",
|
||||||
"离线": "Желіде емес",
|
"离线": "Желіде емес",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "재설정 후 잠금 장치의 중수골 정맥이 삭제됩니다. 당신은 당신이 재설정 하시겠습니까?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "재설정 후 잠금 장치의 중수골 정맥이 삭제됩니다. 당신은 당신이 재설정 하시겠습니까?",
|
||||||
"在线": "온라인",
|
"在线": "온라인",
|
||||||
"离线": "오프라인",
|
"离线": "오프라인",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po reset užrakto metakarpinės venos bus ištrintos. Ar tikrai norite atstatyti?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po reset užrakto metakarpinės venos bus ištrintos. Ar tikrai norite atstatyti?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Neprisijungęs",
|
"离线": "Neprisijungęs",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Selepas menetapkan semula, urat metacarpal kunci akan dipadamkan. Adakah anda pasti anda mahu menetapkan semula?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Selepas menetapkan semula, urat metacarpal kunci akan dipadamkan. Adakah anda pasti anda mahu menetapkan semula?",
|
||||||
"在线": "Dalam talian",
|
"在线": "Dalam talian",
|
||||||
"离线": "Luar talian",
|
"离线": "Luar talian",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Na reset worden de middenhandsbeenaders van het slot verwijderd. Weet je zeker dat je wilt resetten?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Na reset worden de middenhandsbeenaders van het slot verwijderd. Weet je zeker dat je wilt resetten?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po zresetowaniu żyły śródręcza zamka zostaną usunięte. Czy na pewno chcesz zresetować?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po zresetowaniu żyły śródręcza zamka zostaną usunięte. Czy na pewno chcesz zresetować?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Após a reinicialização, as veias do metacarpo do bloqueio serão excluídas. Tens a certeza que queres reiniciar?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Após a reinicialização, as veias do metacarpo do bloqueio serão excluídas. Tens a certeza que queres reiniciar?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "După resetare, venele metacarpale ale încuietorii vor fi şterse. Sigur doriți să resetați?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "După resetare, venele metacarpale ale încuietorii vor fi şterse. Sigur doriți să resetați?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Deconectat",
|
"离线": "Deconectat",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "После сброса пястные вены замка будут удалены. Вы уверены, что хотите сбросить?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "После сброса пястные вены замка будут удалены. Вы уверены, что хотите сбросить?",
|
||||||
"在线": "Онлайн",
|
"在线": "Онлайн",
|
||||||
"离线": "Оффлайн",
|
"离线": "Оффлайн",
|
||||||
@ -1150,5 +1152,6 @@
|
|||||||
"请扫描可视门铃码二维码": "Сканируйте код вызова",
|
"请扫描可视门铃码二维码": "Сканируйте код вызова",
|
||||||
"请确保网络是2.4GHz Wi-Fi": "Убедитесь, что сеть имеет 2,4 ГГц Wi - Fi",
|
"请确保网络是2.4GHz Wi-Fi": "Убедитесь, что сеть имеет 2,4 ГГц Wi - Fi",
|
||||||
"已选": "Выбранные",
|
"已选": "Выбранные",
|
||||||
|
"是否要远程开锁": "Нужно ли удалённо открывать замок",
|
||||||
"请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения"
|
"请将手机切换至2.4G WiFi进行手动连接": "Пожалуйста, переключите телефон на 2.4G WiFi для ручного подключения"
|
||||||
}
|
}
|
||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po resetovaní budú metakarpálne žily zámku vymazané. Ste si istí, že chcete obnoviť?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Po resetovaní budú metakarpálne žily zámku vymazané. Ste si istí, že chcete obnoviť?",
|
||||||
"在线": "Online",
|
"在线": "Online",
|
||||||
"离线": "Offline",
|
"离线": "Offline",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Након ресетовања, метакарпалне вене браве ће бити избрисане. Да ли сте сигурни да желите да ресетујете?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Након ресетовања, метакарпалне вене браве ће бити избрисане. Да ли сте сигурни да желите да ресетујете?",
|
||||||
"在线": "Онлине",
|
"在线": "Онлине",
|
||||||
"离线": "Ванмрежне",
|
"离线": "Ванмрежне",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Efter återställd, de metakarpal venerna i låset tas bort. Är du säker på att du vill återställa?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Efter återställd, de metakarpal venerna i låset tas bort. Är du säker på att du vill återställa?",
|
||||||
"在线": "Online:",
|
"在线": "Online:",
|
||||||
"离线": "Frånkoppling",
|
"离线": "Frånkoppling",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "หลังจากรีเซ็ตแล้วหลอดเลือดดำ metacarpal ของล็อคจะถูกลบออกคุณแน่ใจว่าอยากจะรีเซ็ต?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "หลังจากรีเซ็ตแล้วหลอดเลือดดำ metacarpal ของล็อคจะถูกลบออกคุณแน่ใจว่าอยากจะรีเซ็ต?",
|
||||||
"在线": "ออนไลน์ผ่าน",
|
"在线": "ออนไลน์ผ่าน",
|
||||||
"离线": "ออฟไลน์",
|
"离线": "ออฟไลน์",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Sıfırlamadan sonra, kilidin metacarpal damarları silinecektir. Sıfırlamak istediğine emin misin?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Sıfırlamadan sonra, kilidin metacarpal damarları silinecektir. Sıfırlamak istediğine emin misin?",
|
||||||
"在线": "Çevrimiçi",
|
"在线": "Çevrimiçi",
|
||||||
"离线": "Çevrimdışı",
|
"离线": "Çevrimdışı",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置後,鎖的掌靜脈將被刪除。 是否確實要重置?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置後,鎖的掌靜脈將被刪除。 是否確實要重置?",
|
||||||
"在线": "在線",
|
"在线": "在線",
|
||||||
"离线": "離線",
|
"离线": "離線",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Після скидання п'ясткові вени замку будуть видалені. Ви впевнені, що хочете скинути налаштування?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Після скидання п'ясткові вени замку будуть видалені. Ви впевнені, що хочете скинути налаштування?",
|
||||||
"在线": "Онлайн",
|
"在线": "Онлайн",
|
||||||
"离线": "Автономних",
|
"离线": "Автономних",
|
||||||
|
|||||||
@ -1080,6 +1080,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "ری سیٹ کرنے کے بعد ، لاک کی میٹاکارپل رگیں حذف کردی جائیں گی۔ کیا آپ واقعی دوبارہ ترتیب دینا چاہتے ہیں؟",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "ری سیٹ کرنے کے بعد ، لاک کی میٹاکارپل رگیں حذف کردی جائیں گی۔ کیا آپ واقعی دوبارہ ترتیب دینا چاہتے ہیں؟",
|
||||||
"在线": "آن لائن",
|
"在线": "آن لائن",
|
||||||
"离线": "آف لائن",
|
"离线": "آف لائن",
|
||||||
|
|||||||
@ -1078,6 +1078,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Sau khi đặt lại, các tĩnh mạch metacarpal của khóa sẽ bị xóa. Bạn có chắc muốn thiết lập lại không?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "Sau khi đặt lại, các tĩnh mạch metacarpal của khóa sẽ bị xóa. Bạn có chắc muốn thiết lập lại không?",
|
||||||
"在线": "Trực tuyến",
|
"在线": "Trực tuyến",
|
||||||
"离线": "Ngoại tuyến",
|
"离线": "Ngoại tuyến",
|
||||||
|
|||||||
@ -1081,6 +1081,8 @@
|
|||||||
"印度尼西亚语": "Bahasa Indonesia",
|
"印度尼西亚语": "Bahasa Indonesia",
|
||||||
"芬兰语": "Suomi",
|
"芬兰语": "Suomi",
|
||||||
"丹麦语": "Dansk",
|
"丹麦语": "Dansk",
|
||||||
|
"印地语": "हिंदीName",
|
||||||
|
"乌尔都语": "اوردو",
|
||||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?",
|
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?",
|
||||||
"在线": "在线",
|
"在线": "在线",
|
||||||
"离线": "离线",
|
"离线": "离线",
|
||||||
@ -1153,5 +1155,6 @@
|
|||||||
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
|
"请扫描可视门铃码二维码": "请扫描可视门铃码二维码",
|
||||||
"请确保网络是2.4GHz Wi-Fi": "请确保网络是2.4GHz Wi-Fi",
|
"请确保网络是2.4GHz Wi-Fi": "请确保网络是2.4GHz Wi-Fi",
|
||||||
"已选": "已选",
|
"已选": "已选",
|
||||||
|
"是否要远程开锁": "是否要远程开锁",
|
||||||
"网关添加成功": "网关添加成功"
|
"网关添加成功": "网关添加成功"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
@ -26,20 +25,23 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 监听设备返回的数据
|
// 监听设备返回的数据
|
||||||
late StreamSubscription<Reply> _replySubscription;
|
late StreamSubscription<Reply> _replySubscription;
|
||||||
|
|
||||||
void _initReplySubscription() {
|
void _initReplySubscription() {
|
||||||
_replySubscription = EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
|
_replySubscription =
|
||||||
|
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) async {
|
||||||
// 添加指纹开始
|
// 添加指纹开始
|
||||||
if((reply is SenderAddFingerprintWithTimeCycleCoercionReply) && (state.ifCurrentScreen.value == true)) {
|
if ((reply is SenderAddFingerprintWithTimeCycleCoercionReply) &&
|
||||||
|
(state.ifCurrentScreen.value == true)) {
|
||||||
_replyAddFingerprintBegin(reply);
|
_replyAddFingerprintBegin(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加指纹过程
|
// 添加指纹过程
|
||||||
if(reply is SenderAddFingerprintProcessReply) {
|
if (reply is SenderAddFingerprintProcessReply) {
|
||||||
_replyAddFingerprintProcess(reply);
|
_replyAddFingerprintProcess(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加指纹确认
|
// 添加指纹确认
|
||||||
if(reply is SenderAddFingerprintConfirmationReply) {
|
if (reply is SenderAddFingerprintConfirmationReply) {
|
||||||
_replyAddFingerprintConfirmation(reply);
|
_replyAddFingerprintConfirmation(reply);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -49,11 +51,10 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹开始,解析数据',
|
message: '添加指纹开始,解析数据',
|
||||||
detail: '添加指纹开始,解析数据 _replyAddFingerprintBegin:${reply.data}',
|
detail: '添加指纹开始,解析数据 _replyAddFingerprintBegin:${reply.data}',
|
||||||
upload: false
|
upload: false);
|
||||||
);
|
|
||||||
|
|
||||||
final int status = reply.data[2];
|
final int status = reply.data[2];
|
||||||
switch(status){
|
switch (status) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
state.ifConnectScuess.value = true;
|
state.ifConnectScuess.value = true;
|
||||||
@ -67,10 +68,13 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
//无权限
|
//无权限
|
||||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
final List<String>? privateKey =
|
||||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
final List<int> getPrivateKeyList =
|
||||||
|
changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
final List<String>? signKey =
|
||||||
|
await Storage.getStringList(saveBlueSignKey);
|
||||||
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||||
|
|
||||||
final List<int> token = reply.data.sublist(5, 9);
|
final List<int> token = reply.data.sublist(5, 9);
|
||||||
@ -78,30 +82,33 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
Storage.setStringList(saveBlueToken, saveStrList);
|
Storage.setStringList(saveBlueToken, saveStrList);
|
||||||
|
|
||||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||||
keyID:'1',
|
keyID: '1',
|
||||||
userID:await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
fingerNo:0,
|
fingerNo: 0,
|
||||||
useCountLimit:0xffff,
|
useCountLimit: 0xffff,
|
||||||
isForce:state.isCoerced.value == '1' ? 1 : 0, // 是否是胁迫
|
isForce: state.isCoerced.value == '1' ? 1 : 0,
|
||||||
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
// 是否是胁迫
|
||||||
operate: 0,
|
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
||||||
isRound:state.selectType.value == '2' ? 1: 0, // 是否是循环
|
operate: 0,
|
||||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
isRound: state.selectType.value == '2' ? 1 : 0,
|
||||||
startDate: int.parse(state.startDate.value)~/1000,
|
// 是否是循环
|
||||||
endDate: int.parse(state.endDate.value)~/1000,
|
weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
||||||
startTime:DateTool().dateToHNString(state.effectiveDateTime.value),
|
state.weekDay.value),
|
||||||
endTime:DateTool().dateToHNString(state.failureDateTime.value),
|
// 周循环
|
||||||
needAuthor:1,
|
startDate: int.parse(state.startDate.value) ~/ 1000,
|
||||||
signKey:signKeyDataList,
|
endDate: int.parse(state.endDate.value) ~/ 1000,
|
||||||
privateKey:getPrivateKeyList,
|
startTime: DateTool().dateToHNString(state.effectiveDateTime.value),
|
||||||
token: token,
|
endTime: DateTool().dateToHNString(state.failureDateTime.value),
|
||||||
isBeforeAddUser: false
|
needAuthor: 1,
|
||||||
);
|
signKey: signKeyDataList,
|
||||||
|
privateKey: getPrivateKeyList,
|
||||||
|
token: token,
|
||||||
|
isBeforeAddUser: false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
state.ifAddState.value = false;
|
state.ifAddState.value = false;
|
||||||
showToast('添加指纹失败'.tr, something: (){
|
showToast('添加指纹失败'.tr, something: () {
|
||||||
Get.back();
|
Get.back();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@ -112,13 +119,12 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹过程,解析数据',
|
message: '添加指纹过程,解析数据',
|
||||||
detail: '添加指纹过程,解析数据 _replyAddFingerprintProcess:${reply.data}',
|
detail: '添加指纹过程,解析数据 _replyAddFingerprintProcess:${reply.data}',
|
||||||
upload: false
|
upload: false);
|
||||||
);
|
|
||||||
final int status = reply.data[2];
|
final int status = reply.data[2];
|
||||||
switch(status){
|
switch (status) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
switch(reply.data[5]){
|
switch (reply.data[5]) {
|
||||||
case 0xff:
|
case 0xff:
|
||||||
// 注册指纹失败
|
// 注册指纹失败
|
||||||
showToast('退出添加'.tr);
|
showToast('退出添加'.tr);
|
||||||
@ -166,35 +172,37 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
Future<void> _replyAddFingerprintConfirmation(Reply reply) async {
|
Future<void> _replyAddFingerprintConfirmation(Reply reply) async {
|
||||||
final int status = reply.data[2];
|
final int status = reply.data[2];
|
||||||
final String getMobile = (await Storage.getMobile())!;
|
final String getMobile = (await Storage.getMobile())!;
|
||||||
switch(status){
|
switch (status) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
// var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString();
|
// var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString();
|
||||||
ApmHelper.instance.trackEvent('add_fingerprint', {
|
ApmHelper.instance.trackEvent('add_fingerprint', {
|
||||||
'lock_name':BlueManage().connectDeviceName,
|
'lock_name': BlueManage().connectDeviceName,
|
||||||
'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
'account':
|
||||||
'date':DateTool().getNowDateWithType(1),
|
getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
||||||
'add_fingerprint_result':'成功',
|
'date': DateTool().getNowDateWithType(1),
|
||||||
|
'add_fingerprint_result': '成功',
|
||||||
});
|
});
|
||||||
|
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹确认结果,解析数据',
|
message: '添加指纹确认结果,解析数据',
|
||||||
detail: '添加指纹确认结果,解析数据 _replyAddFingerprintConfirmation:${reply.data}',
|
detail:
|
||||||
upload: false
|
'添加指纹确认结果,解析数据 _replyAddFingerprintConfirmation:${reply.data}',
|
||||||
);
|
upload: false);
|
||||||
|
|
||||||
final List<int> fingerprintList = reply.data.sublist(reply.data.length - 2);
|
final List<int> fingerprintList =
|
||||||
|
reply.data.sublist(reply.data.length - 2);
|
||||||
final String fingerprintNum = listChangInt(fingerprintList).toString();
|
final String fingerprintNum = listChangInt(fingerprintList).toString();
|
||||||
state.regIndex.value++;
|
state.regIndex.value++;
|
||||||
if(state.fingerprintNumber.value == fingerprintNum){
|
if (state.fingerprintNumber.value == fingerprintNum) {
|
||||||
return;
|
return;
|
||||||
}else{
|
} else {
|
||||||
state.fingerprintNumber.value = fingerprintNum;
|
state.fingerprintNumber.value = fingerprintNum;
|
||||||
}
|
}
|
||||||
// if(state.isCoerced.value == "1"){
|
// if(state.isCoerced.value == "1"){
|
||||||
// 调用添加指纹接口
|
// 调用添加指纹接口
|
||||||
state.ifAddState.value = false;
|
state.ifAddState.value = false;
|
||||||
addFingerprintsData();
|
await addFingerprintsData();
|
||||||
// }else{
|
// }else{
|
||||||
// // 如果是胁迫指纹在 添加完之后以后再调用添加胁迫指纹的
|
// // 如果是胁迫指纹在 添加完之后以后再调用添加胁迫指纹的
|
||||||
// senderAddStressFingerprint();
|
// senderAddStressFingerprint();
|
||||||
@ -203,18 +211,19 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
ApmHelper.instance.trackEvent('add_fingerprint', {
|
ApmHelper.instance.trackEvent('add_fingerprint', {
|
||||||
'lock_name':BlueManage().connectDeviceName,
|
'lock_name': BlueManage().connectDeviceName,
|
||||||
'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
'account':
|
||||||
'date':DateTool().getNowDateWithType(1),
|
getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
||||||
'add_fingerprint_result':'失败-${reply.data}',
|
'date': DateTool().getNowDateWithType(1),
|
||||||
|
'add_fingerprint_result': '失败-${reply.data}',
|
||||||
});
|
});
|
||||||
|
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹确认结果,解析数据',
|
message: '添加指纹确认结果,解析数据',
|
||||||
detail: '添加指纹确认结果蓝牙返回失败结果,解析数据 _replyAddFingerprintConfirmation:${reply.data}',
|
detail:
|
||||||
|
'添加指纹确认结果蓝牙返回失败结果,解析数据 _replyAddFingerprintConfirmation:${reply.data}',
|
||||||
eventStr: '添加指纹事件蓝牙返回失败结果',
|
eventStr: '添加指纹事件蓝牙返回失败结果',
|
||||||
upload: true
|
upload: true);
|
||||||
);
|
|
||||||
state.ifAddState.value = false;
|
state.ifAddState.value = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -222,7 +231,8 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 添加指纹开始
|
// 添加指纹开始
|
||||||
Future<void> senderAddFingerprint() async {
|
Future<void> senderAddFingerprint() async {
|
||||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
final List<String>? privateKey =
|
||||||
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
||||||
@ -232,90 +242,104 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
final List<int> getTokenList = changeStringListToIntList(token!);
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
final String command = SenderAddFingerprintWithTimeCycleCoercionCommand(
|
final String command = SenderAddFingerprintWithTimeCycleCoercionCommand(
|
||||||
keyID:'1',
|
keyID: '1',
|
||||||
userID:await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
fingerNo:0,
|
fingerNo: 0,
|
||||||
useCountLimit:0xffff,
|
useCountLimit: 0xffff,
|
||||||
isForce:state.isCoerced.value == '1' ? 1 : 0, // 是否是胁迫
|
isForce: state.isCoerced.value == '1' ? 1 : 0,
|
||||||
|
// 是否是胁迫
|
||||||
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
||||||
operate: 0,
|
operate: 0,
|
||||||
isRound:state.selectType.value == '2' ? 1: 0, // 是否是循环
|
isRound: state.selectType.value == '2' ? 1 : 0,
|
||||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
// 是否是循环
|
||||||
startDate: int.parse(state.startDate.value)~/1000,
|
weekRound: DateTool()
|
||||||
endDate: int.parse(state.endDate.value)~/1000,
|
.accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value),
|
||||||
startTime:DateTool().dateToHNString(state.effectiveDateTime.value),
|
// 周循环
|
||||||
endTime:DateTool().dateToHNString(state.failureDateTime.value),
|
startDate: int.parse(state.startDate.value) ~/ 1000,
|
||||||
needAuthor:1,
|
endDate: int.parse(state.endDate.value) ~/ 1000,
|
||||||
signKey:signKeyDataList,
|
startTime: DateTool().dateToHNString(state.effectiveDateTime.value),
|
||||||
privateKey:getPrivateKeyList,
|
endTime: DateTool().dateToHNString(state.failureDateTime.value),
|
||||||
|
needAuthor: 1,
|
||||||
|
signKey: signKeyDataList,
|
||||||
|
privateKey: getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
).toString();
|
).toString();
|
||||||
|
|
||||||
showBlueConnetctToastTimer(action: () async {
|
showBlueConnetctToastTimer(action: () async {
|
||||||
final String getMobile = (await Storage.getMobile())!;
|
final String getMobile = (await Storage.getMobile())!;
|
||||||
ApmHelper.instance.trackEvent('add_fingerprint', {
|
ApmHelper.instance.trackEvent('add_fingerprint', {
|
||||||
'lock_name':BlueManage().connectDeviceName,
|
'lock_name': BlueManage().connectDeviceName,
|
||||||
'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
'account':
|
||||||
'date':DateTool().getNowDateWithType(1),
|
getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
||||||
'add_fingerprint_result':'超时',
|
'date': DateTool().getNowDateWithType(1),
|
||||||
|
'add_fingerprint_result': '超时',
|
||||||
});
|
});
|
||||||
|
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹超时处理-添加指纹失败',
|
message: '添加指纹超时处理-添加指纹失败',
|
||||||
detail: '添加指纹超时处理,断开连接,添加指纹失败--SenderAddFingerprintWithTimeCycleCoercionCommand:$command',
|
detail:
|
||||||
|
'添加指纹超时处理,断开连接,添加指纹失败--SenderAddFingerprintWithTimeCycleCoercionCommand:$command',
|
||||||
eventStr: '添加指纹事件超时',
|
eventStr: '添加指纹事件超时',
|
||||||
upload: true
|
upload: true);
|
||||||
);
|
|
||||||
Get.close(1);
|
Get.close(1);
|
||||||
});
|
});
|
||||||
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async {
|
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||||
if (deviceConnectionState == BluetoothConnectionState.connected){
|
(BluetoothConnectionState deviceConnectionState) async {
|
||||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
final List<String>? privateKey =
|
||||||
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
final List<int> getPrivateKeyList =
|
||||||
|
changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
final List<String>? signKey =
|
||||||
|
await Storage.getStringList(saveBlueSignKey);
|
||||||
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||||
|
|
||||||
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||||
final List<int> getTokenList = changeStringListToIntList(token!);
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand(
|
||||||
keyID:'1',
|
keyID: '1',
|
||||||
userID:await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
fingerNo:0,
|
fingerNo: 0,
|
||||||
useCountLimit:0xffff,
|
useCountLimit: 0xffff,
|
||||||
isForce:state.isCoerced.value == '1' ? 1 : 0, // 是否是胁迫
|
isForce: state.isCoerced.value == '1' ? 1 : 0,
|
||||||
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
// 是否是胁迫
|
||||||
operate: 0,
|
isAdmin: state.isAdministrator.value == '2' ? 1 : 0,
|
||||||
isRound:state.selectType.value == '2' ? 1: 0, // 是否是循环
|
operate: 0,
|
||||||
weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环
|
isRound: state.selectType.value == '2' ? 1 : 0,
|
||||||
startDate: int.parse(state.startDate.value)~/1000,
|
// 是否是循环
|
||||||
endDate: int.parse(state.endDate.value)~/1000,
|
weekRound: DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
||||||
startTime:DateTool().dateToHNString(state.effectiveDateTime.value),
|
state.weekDay.value),
|
||||||
endTime:DateTool().dateToHNString(state.failureDateTime.value),
|
// 周循环
|
||||||
needAuthor:1,
|
startDate: int.parse(state.startDate.value) ~/ 1000,
|
||||||
signKey:signKeyDataList,
|
endDate: int.parse(state.endDate.value) ~/ 1000,
|
||||||
privateKey:getPrivateKeyList,
|
startTime: DateTool().dateToHNString(state.effectiveDateTime.value),
|
||||||
token: getTokenList,
|
endTime: DateTool().dateToHNString(state.failureDateTime.value),
|
||||||
isBeforeAddUser: false
|
needAuthor: 1,
|
||||||
);
|
signKey: signKeyDataList,
|
||||||
}else if (deviceConnectionState == BluetoothConnectionState.disconnected){
|
privateKey: getPrivateKeyList,
|
||||||
|
token: getTokenList,
|
||||||
|
isBeforeAddUser: false);
|
||||||
|
} else if (deviceConnectionState ==
|
||||||
|
BluetoothConnectionState.disconnected) {
|
||||||
final String getMobile = (await Storage.getMobile())!;
|
final String getMobile = (await Storage.getMobile())!;
|
||||||
ApmHelper.instance.trackEvent('add_fingerprint', {
|
ApmHelper.instance.trackEvent('add_fingerprint', {
|
||||||
'lock_name':BlueManage().connectDeviceName,
|
'lock_name': BlueManage().connectDeviceName,
|
||||||
'account':getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
'account':
|
||||||
'date':DateTool().getNowDateWithType(1),
|
getMobile.isNotEmpty ? getMobile : (await Storage.getEmail())!,
|
||||||
'add_fingerprint_result':'断开',
|
'date': DateTool().getNowDateWithType(1),
|
||||||
|
'add_fingerprint_result': '断开',
|
||||||
});
|
});
|
||||||
|
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹断开连接-添加指纹失败',
|
message: '添加指纹断开连接-添加指纹失败',
|
||||||
detail: '添加指纹断开连接-添加指纹失败--SenderAddFingerprintWithTimeCycleCoercionCommand:$command',
|
detail:
|
||||||
|
'添加指纹断开连接-添加指纹失败--SenderAddFingerprintWithTimeCycleCoercionCommand:$command',
|
||||||
eventStr: '添加指纹事件断开连接',
|
eventStr: '添加指纹事件断开连接',
|
||||||
upload: true
|
upload: true);
|
||||||
);
|
|
||||||
|
|
||||||
if(state.ifCurrentScreen.value == true){
|
if (state.ifCurrentScreen.value == true) {
|
||||||
showBlueConnetctToast();
|
showBlueConnetctToast();
|
||||||
}
|
}
|
||||||
cancelBlueConnetctToastTimer();
|
cancelBlueConnetctToastTimer();
|
||||||
@ -326,27 +350,32 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 取消添加指纹
|
// 取消添加指纹
|
||||||
Future<void> senderCancelAddFingerprintCommand() async {
|
Future<void> senderCancelAddFingerprintCommand() async {
|
||||||
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState deviceConnectionState) async {
|
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||||
if (deviceConnectionState == BluetoothConnectionState.connected){
|
(BluetoothConnectionState deviceConnectionState) async {
|
||||||
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||||
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
final List<String>? privateKey =
|
||||||
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
final List<int> getPrivateKeyList =
|
||||||
|
changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
final List<String>? signKey =
|
||||||
|
await Storage.getStringList(saveBlueSignKey);
|
||||||
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||||
|
|
||||||
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||||
final List<int> getTokenList = changeStringListToIntList(token!);
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
IoSenderManage.senderCancelAddFingerprintCommand(
|
IoSenderManage.senderCancelAddFingerprintCommand(
|
||||||
keyID:'1',
|
keyID: '1',
|
||||||
userID:await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
needAuthor:1,
|
needAuthor: 1,
|
||||||
signKey:signKeyDataList,
|
signKey: signKeyDataList,
|
||||||
privateKey:getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
);
|
);
|
||||||
}else if (deviceConnectionState == BluetoothConnectionState.disconnected){
|
} else if (deviceConnectionState ==
|
||||||
if(state.ifCurrentScreen.value == true){
|
BluetoothConnectionState.disconnected) {
|
||||||
|
if (state.ifCurrentScreen.value == true) {
|
||||||
showBlueConnetctToast();
|
showBlueConnetctToast();
|
||||||
}
|
}
|
||||||
cancelBlueConnetctToastTimer();
|
cancelBlueConnetctToastTimer();
|
||||||
@ -356,53 +385,54 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 添加指纹
|
// 添加指纹
|
||||||
Future<void> addFingerprintsData() async{
|
Future<void> addFingerprintsData() async {
|
||||||
final AddFingerprintEntity entity = await ApiRepository.to.addFingerprintsData(
|
final AddFingerprintEntity entity =
|
||||||
|
await ApiRepository.to.addFingerprintsData(
|
||||||
lockId: state.lockId.value.toString(),
|
lockId: state.lockId.value.toString(),
|
||||||
endDate: state.endDate.value,
|
endDate: state.endDate.value,
|
||||||
addType:state.addType.value,
|
addType: state.addType.value,
|
||||||
fingerprintName: state.fingerprintName.value,
|
fingerprintName: state.fingerprintName.value,
|
||||||
fingerprintNumber: state.fingerprintNumber.value,
|
fingerprintNumber: state.fingerprintNumber.value,
|
||||||
fingerprintType: state.fingerprintType.value,
|
fingerprintType: state.fingerprintType.value,
|
||||||
isCoerced: state.isCoerced.value,
|
isCoerced: state.isCoerced.value,
|
||||||
startDate: state.startDate.value,
|
startDate: state.startDate.value,
|
||||||
weekDay: state.weekDay.value,
|
weekDay: state.weekDay.value,
|
||||||
fingerRight:state.isAdministrator.value == '2' ? 1 : 0,
|
fingerRight: state.isAdministrator.value == '2' ? 1 : 0,
|
||||||
startTime: int.parse(state.effectiveDateTime.value),
|
startTime: int.parse(state.effectiveDateTime.value),
|
||||||
endTime: int.parse(state.failureDateTime.value),
|
endTime: int.parse(state.failureDateTime.value),
|
||||||
);
|
);
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
updateFingerprintUserNoLoadData(entity.data!.fingerprintId.toString());
|
updateFingerprintUserNoLoadData(entity.data!.fingerprintId.toString());
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹调用接口成功',
|
message: '添加指纹调用接口成功',
|
||||||
detail: '添加指纹调用接口成功',
|
detail: '添加指纹调用接口成功',
|
||||||
eventStr: '添加指纹事件用接口成功',
|
eventStr: '添加指纹事件用接口成功',
|
||||||
upload: true
|
upload: true);
|
||||||
);
|
} else {
|
||||||
}else{
|
|
||||||
updateFingerprintUserNoLoadData(entity.data!.fingerprintId.toString());
|
updateFingerprintUserNoLoadData(entity.data!.fingerprintId.toString());
|
||||||
BuglyTool.uploadException(
|
BuglyTool.uploadException(
|
||||||
message: '添加指纹调用接口失败',
|
message: '添加指纹调用接口失败',
|
||||||
detail: '添加指纹调用接口添加指纹调用接口失败 - ${entity.errorMsg}',
|
detail: '添加指纹调用接口添加指纹调用接口失败 - ${entity.errorMsg}',
|
||||||
eventStr: '添加指纹事件接口失败',
|
eventStr: '添加指纹事件接口失败',
|
||||||
upload: true
|
upload: true);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新指纹用户账号
|
// 更新指纹用户账号
|
||||||
Future<void> updateFingerprintUserNoLoadData(String fingerprintId) async{
|
Future<void> updateFingerprintUserNoLoadData(String fingerprintId) async {
|
||||||
final LoginEntity entity = await ApiRepository.to.updateFingerprintUserNoLoadData(
|
final LoginEntity entity =
|
||||||
fingerprintId: fingerprintId,
|
await ApiRepository.to.updateFingerprintUserNoLoadData(
|
||||||
lockId: state.lockId.value.toString(),
|
fingerprintId: fingerprintId,
|
||||||
fingerprintUserNo: state.fingerprintNumber.value,
|
lockId: state.lockId.value.toString(),
|
||||||
|
fingerprintUserNo: state.fingerprintNumber.value,
|
||||||
);
|
);
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
showToast('添加成功'.tr, something: (){
|
showToast('添加成功'.tr, something: () {
|
||||||
if(state.fromType.value == 2){
|
if (state.fromType.value == 2) {
|
||||||
// 回调指纹号
|
// 回调指纹号
|
||||||
eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(state.fingerprintNumber.value));
|
eventBus.fire(ChickInAddStaffCardAndFingerprintBlockNumberEvent(
|
||||||
}else if(state.fromType.value == 1){
|
state.fingerprintNumber.value));
|
||||||
|
} else if (state.fromType.value == 1) {
|
||||||
eventBus.fire(OtherTypeRefreshListEvent());
|
eventBus.fire(OtherTypeRefreshListEvent());
|
||||||
}
|
}
|
||||||
Get.close(2);
|
Get.close(2);
|
||||||
@ -430,5 +460,4 @@ class AddFingerprintLogic extends BaseGetXController {
|
|||||||
|
|
||||||
_replySubscription.cancel();
|
_replySubscription.cancel();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
@ -23,6 +23,7 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 获取解析后的数据
|
// 获取解析后的数据
|
||||||
late StreamSubscription<Reply> _replySubscription;
|
late StreamSubscription<Reply> _replySubscription;
|
||||||
|
|
||||||
void _initReplySubscription() {
|
void _initReplySubscription() {
|
||||||
_replySubscription =
|
_replySubscription =
|
||||||
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
EventBusManager().eventBus!.on<Reply>().listen((Reply reply) {
|
||||||
@ -74,11 +75,15 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
userID: (await Storage.getUid())!,
|
userID: (await Storage.getUid())!,
|
||||||
fingerNo: state.deletFingerNo,
|
fingerNo: state.deletFingerNo,
|
||||||
useCountLimit: 0xffff,
|
useCountLimit: 0xffff,
|
||||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
operate: state.isDeletAll == true ? 3 : 2,
|
||||||
|
// 0:注册 1:修改 2:删除 3:删除全部
|
||||||
isAdmin: 0,
|
isAdmin: 0,
|
||||||
isForce: 0, // 是否是胁迫
|
isForce: 0,
|
||||||
isRound: 0, // 是否是循环
|
// 是否是胁迫
|
||||||
weekRound: 0, // 周循环
|
isRound: 0,
|
||||||
|
// 是否是循环
|
||||||
|
weekRound: 0,
|
||||||
|
// 周循环
|
||||||
startDate: 0x11223344,
|
startDate: 0x11223344,
|
||||||
endDate: 0x11223344,
|
endDate: 0x11223344,
|
||||||
startTime: '0',
|
startTime: '0',
|
||||||
@ -275,11 +280,15 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
userID: (await Storage.getUid())!,
|
userID: (await Storage.getUid())!,
|
||||||
fingerNo: state.deletFingerNo,
|
fingerNo: state.deletFingerNo,
|
||||||
useCountLimit: 0xffff,
|
useCountLimit: 0xffff,
|
||||||
operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部
|
operate: state.isDeletAll == true ? 3 : 2,
|
||||||
|
// 0:注册 1:修改 2:删除 3:删除全部
|
||||||
isAdmin: 0,
|
isAdmin: 0,
|
||||||
isForce: 0, // 是否是胁迫
|
isForce: 0,
|
||||||
isRound: 0, // 是否是循环
|
// 是否是胁迫
|
||||||
weekRound: 0, // 周循环
|
isRound: 0,
|
||||||
|
// 是否是循环
|
||||||
|
weekRound: 0,
|
||||||
|
// 周循环
|
||||||
startDate: 0x11223344,
|
startDate: 0x11223344,
|
||||||
endDate: 0x11223344,
|
endDate: 0x11223344,
|
||||||
startTime: '0',
|
startTime: '0',
|
||||||
@ -299,30 +308,31 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* //请求密码钥匙列表
|
* //请求密码钥匙列表
|
||||||
Future<PasswordKeyListEntity> mockNetworkDataRequest(
|
Future<PasswordKeyListEntity> mockNetworkDataRequest(
|
||||||
{required bool isRefresh}) async {
|
{required bool isRefresh}) async {
|
||||||
// 如果是下拉刷新,清空已有数据
|
// 如果是下拉刷新,清空已有数据
|
||||||
if (isRefresh) {
|
if (isRefresh) {
|
||||||
state.itemDataList.clear();
|
state.itemDataList.clear();
|
||||||
pageNo = 1;
|
pageNo = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
final PasswordKeyListEntity entity = await ApiRepository.to.passwordKeyList(
|
final PasswordKeyListEntity entity = await ApiRepository.to.passwordKeyList(
|
||||||
state.keyInfo.value.keyStatus.toString(),
|
state.keyInfo.value.keyStatus.toString(),
|
||||||
state.keyInfo.value.lockId.toString(),
|
state.keyInfo.value.lockId.toString(),
|
||||||
pageNo.toString(),
|
pageNo.toString(),
|
||||||
pageSize.toString(),
|
pageSize.toString(),
|
||||||
state.searchController.text);
|
state.searchController.text);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
// 更新数据列表
|
// 更新数据列表
|
||||||
state.itemDataList.addAll(entity.data!.itemList!);
|
state.itemDataList.addAll(entity.data!.itemList!);
|
||||||
// 更新页码
|
// 更新页码
|
||||||
pageNo++;
|
pageNo++;
|
||||||
}
|
}
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -390,6 +400,7 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 监听修改完详情之后刷新列表
|
// 监听修改完详情之后刷新列表
|
||||||
late StreamSubscription _teamEvent;
|
late StreamSubscription _teamEvent;
|
||||||
|
|
||||||
void _initRefreshAction() {
|
void _initRefreshAction() {
|
||||||
_teamEvent = eventBus
|
_teamEvent = eventBus
|
||||||
.on<OtherTypeRefreshListEvent>()
|
.on<OtherTypeRefreshListEvent>()
|
||||||
@ -450,6 +461,7 @@ class FingerprintListLogic extends BaseGetXController {
|
|||||||
_initReplySubscription();
|
_initReplySubscription();
|
||||||
|
|
||||||
_initRefreshAction();
|
_initRefreshAction();
|
||||||
|
getFingerprintsListData(isRefresh: true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,24 +31,9 @@ class _FingerprintListPageState extends State<FingerprintListPage>
|
|||||||
final FingerprintListLogic logic = Get.put(FingerprintListLogic());
|
final FingerprintListLogic logic = Get.put(FingerprintListLogic());
|
||||||
final FingerprintListState state = Get.find<FingerprintListLogic>().state;
|
final FingerprintListState state = Get.find<FingerprintListLogic>().state;
|
||||||
|
|
||||||
Future<void> getHttpData({required bool isRefresh}) async {
|
|
||||||
final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot);
|
|
||||||
if (isDemoMode == false) {
|
|
||||||
logic
|
|
||||||
.getFingerprintsListData(isRefresh: isRefresh)
|
|
||||||
.then((FingerprintListDataEntity value) {
|
|
||||||
if (mounted) {
|
|
||||||
setState(() {});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
getHttpData(isRefresh: true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -91,17 +76,17 @@ class _FingerprintListPageState extends State<FingerprintListPage>
|
|||||||
),
|
),
|
||||||
body: EasyRefreshTool(
|
body: EasyRefreshTool(
|
||||||
onRefresh: () {
|
onRefresh: () {
|
||||||
getHttpData(isRefresh: true);
|
logic.getFingerprintsListData(isRefresh: true);
|
||||||
},
|
},
|
||||||
onLoad: () {
|
onLoad: () {
|
||||||
getHttpData(isRefresh: false);
|
logic.getFingerprintsListData(isRefresh: false);
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
KeySearchWidget(
|
KeySearchWidget(
|
||||||
editingController: state.searchController,
|
editingController: state.searchController,
|
||||||
onSubmittedAction: () {
|
onSubmittedAction: () async {
|
||||||
getHttpData(isRefresh: true);
|
await logic.getFingerprintsListData(isRefresh: true);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@ -116,7 +101,8 @@ class _FingerprintListPageState extends State<FingerprintListPage>
|
|||||||
'lockId': state.lockId.value,
|
'lockId': state.lockId.value,
|
||||||
'fromType': 1 // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
'fromType': 1 // 1从添加钥匙列表进入 2从考勤添加员工入口进入
|
||||||
})!
|
})!
|
||||||
.then((value) => getHttpData(isRefresh: true));
|
.then((value) =>
|
||||||
|
logic.getFingerprintsListData(isRefresh: true));
|
||||||
// if (data != null) {
|
// if (data != null) {
|
||||||
// getHttpData(isRefresh: true);
|
// getHttpData(isRefresh: true);
|
||||||
// }
|
// }
|
||||||
@ -179,7 +165,7 @@ class _FingerprintListPageState extends State<FingerprintListPage>
|
|||||||
'fingerprintItemData': fingerprintItemData,
|
'fingerprintItemData': fingerprintItemData,
|
||||||
})!
|
})!
|
||||||
.then((value) {
|
.then((value) {
|
||||||
getHttpData(isRefresh: true);
|
logic.getFingerprintsListData(isRefresh: true);
|
||||||
});
|
});
|
||||||
// if (data == 'deletScuess') {
|
// if (data == 'deletScuess') {
|
||||||
// // state.fingerprintItemListData.removeWhere((FingerprintItemData item) => item.fingerprintId == fingerprintItemData.fingerprintId!);
|
// // state.fingerprintItemListData.removeWhere((FingerprintItemData item) => item.fingerprintId == fingerprintItemData.fingerprintId!);
|
||||||
|
|||||||
@ -55,7 +55,19 @@ class _LockDetailPageState extends State<LockDetailPage>
|
|||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
listeningAnimations();
|
state.animationController =
|
||||||
|
AnimationController(duration: const Duration(seconds: 1), vsync: this);
|
||||||
|
state.animationController!.repeat();
|
||||||
|
//动画开始、结束、向前移动或向后移动时会调用StatusListener
|
||||||
|
state.animationController!.addStatusListener((AnimationStatus status) {
|
||||||
|
if (status == AnimationStatus.completed) {
|
||||||
|
state.animationController!.reset();
|
||||||
|
state.animationController!.forward();
|
||||||
|
} else if (status == AnimationStatus.dismissed) {
|
||||||
|
state.animationController!.reset();
|
||||||
|
state.animationController!.forward();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
state.pageController.addListener(() {
|
state.pageController.addListener(() {
|
||||||
state.currentPage.value = state.pageController.page!.round();
|
state.currentPage.value = state.pageController.page!.round();
|
||||||
@ -1321,24 +1333,6 @@ class _LockDetailPageState extends State<LockDetailPage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> listeningAnimations() async {
|
|
||||||
await Future<void>.delayed(Duration.zero, () {
|
|
||||||
state.animationController = AnimationController(
|
|
||||||
duration: const Duration(seconds: 1), vsync: this);
|
|
||||||
state.animationController!.repeat();
|
|
||||||
//动画开始、结束、向前移动或向后移动时会调用StatusListener
|
|
||||||
state.animationController!.addStatusListener((AnimationStatus status) {
|
|
||||||
if (status == AnimationStatus.completed) {
|
|
||||||
state.animationController!.reset();
|
|
||||||
state.animationController!.forward();
|
|
||||||
} else if (status == AnimationStatus.dismissed) {
|
|
||||||
state.animationController!.reset();
|
|
||||||
state.animationController!.forward();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
String showElectricIcon(int electricnumber) {
|
String showElectricIcon(int electricnumber) {
|
||||||
if (electricnumber >= 100) {
|
if (electricnumber >= 100) {
|
||||||
return 'images/main/icon_lockElectricLevel_5.png';
|
return 'images/main/icon_lockElectricLevel_5.png';
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import 'package:star_lock/appRouters.dart';
|
|||||||
import 'package:star_lock/app_settings/app_settings.dart';
|
import 'package:star_lock/app_settings/app_settings.dart';
|
||||||
import 'package:star_lock/blue/io_gateway/io_gateway_configuringWifi.dart';
|
import 'package:star_lock/blue/io_gateway/io_gateway_configuringWifi.dart';
|
||||||
import 'package:star_lock/blue/io_gateway/io_gateway_getStatus.dart';
|
import 'package:star_lock/blue/io_gateway/io_gateway_getStatus.dart';
|
||||||
|
import 'package:star_lock/blue/io_protocol/io_updataLockSet.dart';
|
||||||
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
||||||
import 'package:star_lock/main/lockDetail/lockDetail/device_network_info.dart';
|
import 'package:star_lock/main/lockDetail/lockDetail/device_network_info.dart';
|
||||||
import 'package:star_lock/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifiEntity.dart';
|
import 'package:star_lock/main/lockDetail/lockSet/configuringWifi/configuringWifi/configuringWifiEntity.dart';
|
||||||
@ -20,6 +21,7 @@ import 'package:star_lock/mine/gateway/addGateway/selectGateway/getGatewayInfo_m
|
|||||||
import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart';
|
import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart';
|
||||||
import 'package:star_lock/talk/starChart/star_chart_manage.dart';
|
import 'package:star_lock/talk/starChart/star_chart_manage.dart';
|
||||||
import 'package:star_lock/tools/baseGetXController.dart';
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
|
import 'package:star_lock/tools/commonDataManage.dart';
|
||||||
|
|
||||||
import '../../../../../blue/blue_manage.dart';
|
import '../../../../../blue/blue_manage.dart';
|
||||||
import '../../../../../blue/io_protocol/io_configuringWifi.dart';
|
import '../../../../../blue/io_protocol/io_configuringWifi.dart';
|
||||||
@ -59,7 +61,8 @@ class ConfiguringWifiLogic extends BaseGetXController {
|
|||||||
peerId: peerId,
|
peerId: peerId,
|
||||||
);
|
);
|
||||||
if (entity.errorCode!.codeIsSuccessful) {
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
showToast('配网成功'.tr, something: () {
|
await _getUploadLockSet();
|
||||||
|
showToast('配网成功'.tr, something: () async {
|
||||||
eventBus
|
eventBus
|
||||||
.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value));
|
.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value));
|
||||||
// 设置锁的peerID
|
// 设置锁的peerID
|
||||||
@ -101,6 +104,10 @@ class ConfiguringWifiLogic extends BaseGetXController {
|
|||||||
if (reply is GatewayGetStatusReply) {
|
if (reply is GatewayGetStatusReply) {
|
||||||
_replyStatusInfo(reply);
|
_replyStatusInfo(reply);
|
||||||
}
|
}
|
||||||
|
// 上传数据获取锁设置
|
||||||
|
if (reply is UpdataLockSetReply) {
|
||||||
|
_replyUpdataLockSetReply(reply);
|
||||||
|
}
|
||||||
AppLog.log('蓝牙回调处理完毕${EasyLoading.isShow}');
|
AppLog.log('蓝牙回调处理完毕${EasyLoading.isShow}');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -389,6 +396,88 @@ class ConfiguringWifiLogic extends BaseGetXController {
|
|||||||
|
|
||||||
void _replyStatusInfo(reply) {}
|
void _replyStatusInfo(reply) {}
|
||||||
|
|
||||||
|
// 上传数据获取设置
|
||||||
|
Future<void> _getUploadLockSet() async {
|
||||||
|
// showBlueConnetctToastTimer(action: (){
|
||||||
|
// });
|
||||||
|
BlueManage().blueSendData(BlueManage().connectDeviceName,
|
||||||
|
(BluetoothConnectionState connectionState) async {
|
||||||
|
if (connectionState == BluetoothConnectionState.connected) {
|
||||||
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||||
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
|
_uploadLockSet(getTokenList);
|
||||||
|
} else if (connectionState == BluetoothConnectionState.disconnected) {
|
||||||
|
// cancelBlueConnetctToastTimer();
|
||||||
|
// if(state.ifCurrentScreen.value == true){
|
||||||
|
// showBlueConnetctToast();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 公共的上传锁设置
|
||||||
|
Future<void> _uploadLockSet(List<int> token) async {
|
||||||
|
final List<String>? privateKey =
|
||||||
|
await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
|
final List<String>? signKey = await Storage.getStringList(saveBlueSignKey);
|
||||||
|
final List<int> signKeyDataList = changeStringListToIntList(signKey!);
|
||||||
|
|
||||||
|
IoSenderManage.updataLockSetCommand(
|
||||||
|
lockID: BlueManage().connectDeviceName,
|
||||||
|
userID: await Storage.getUid(),
|
||||||
|
token: token,
|
||||||
|
needAuthor: 1,
|
||||||
|
signKey: signKeyDataList,
|
||||||
|
privateKey: getPrivateKeyList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上传数据获取锁设置解析
|
||||||
|
Future<void> _replyUpdataLockSetReply(Reply reply) async {
|
||||||
|
final int status = reply.data[2];
|
||||||
|
switch (status) {
|
||||||
|
case 0x00:
|
||||||
|
//成功
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
_lockDataUpload(
|
||||||
|
uploadType: 1,
|
||||||
|
recordType: 0,
|
||||||
|
records: reply.data.sublist(7, reply.data.length));
|
||||||
|
break;
|
||||||
|
case 0x06:
|
||||||
|
//无权限
|
||||||
|
final List<int> token = reply.data.sublist(3, 7);
|
||||||
|
final List<String> saveStrList = changeIntListToStringList(token);
|
||||||
|
Storage.setStringList(saveBlueToken, saveStrList);
|
||||||
|
|
||||||
|
_uploadLockSet(token);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 锁数据上传服务器
|
||||||
|
Future<void> _lockDataUpload(
|
||||||
|
{required int uploadType,
|
||||||
|
required int recordType,
|
||||||
|
required List records}) async {
|
||||||
|
final LoginEntity entity = await ApiRepository.to.lockDataUpload(
|
||||||
|
lockId: CommonDataManage().currentKeyInfo.lockId!,
|
||||||
|
uploadType: uploadType,
|
||||||
|
recordType: recordType,
|
||||||
|
records: records,
|
||||||
|
isUnShowLoading: true);
|
||||||
|
if (entity.errorCode!.codeIsSuccessful) {
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
// TODO: implement dispose
|
// TODO: implement dispose
|
||||||
|
|||||||
@ -202,7 +202,7 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//永久 2 从开始时间开始永久有效,必需在开始时间24小时内使用一次,否则将失效
|
//永久 2 从开始时间开始永久有效,必需在开始时间24小时内使用一次,否则将失效
|
||||||
useDateStr = '永久';
|
useDateStr = '永久'.tr;
|
||||||
state.isCirculation.value = false;
|
state.isCirculation.value = false;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
|||||||
@ -205,7 +205,7 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage>
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
'密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。'.tr,
|
'密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。密码激活后,有效期内不限次数使用。'.tr,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
style: TextStyle(fontSize: 20.sp),
|
style: TextStyle(fontSize: 20.sp),
|
||||||
)),
|
)),
|
||||||
|
|||||||
@ -487,7 +487,7 @@ class SaveLockLogic extends BaseGetXController {
|
|||||||
|
|
||||||
void backAction() async {
|
void backAction() async {
|
||||||
eventBus.fire(RefreshLockListInfoDataEvent(clearScanDevices: true));
|
eventBus.fire(RefreshLockListInfoDataEvent(clearScanDevices: true));
|
||||||
BlueManage().disconnect();
|
// BlueManage().disconnect();
|
||||||
|
|
||||||
// 查询锁设置信息
|
// 查询锁设置信息
|
||||||
final LockSetInfoEntity entity =
|
final LockSetInfoEntity entity =
|
||||||
|
|||||||
@ -297,7 +297,7 @@ class ShowCupertinoAlertView {
|
|||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return CupertinoAlertDialog(
|
return CupertinoAlertDialog(
|
||||||
title: Container(),
|
title: Container(),
|
||||||
content: Text('是否要远程开锁?'.tr),
|
content: Text('是否要远程开锁'.tr),
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
CupertinoDialogAction(
|
CupertinoDialogAction(
|
||||||
onPressed: Get.back,
|
onPressed: Get.back,
|
||||||
|
|||||||
@ -54,6 +54,8 @@ extension ExtensionAppDept on AppDept {
|
|||||||
const Locale fiL = Locale('fi', 'FI');
|
const Locale fiL = Locale('fi', 'FI');
|
||||||
const Locale daL = Locale('da', 'DK');
|
const Locale daL = Locale('da', 'DK');
|
||||||
const Locale ukL = Locale('uk', 'UA');
|
const Locale ukL = Locale('uk', 'UA');
|
||||||
|
const Locale hiL = Locale('hi', 'HI');
|
||||||
|
const Locale urL = Locale('ur', 'UR');
|
||||||
const Locale srCyrillic = Locale('sr', 'RS');
|
const Locale srCyrillic = Locale('sr', 'RS');
|
||||||
|
|
||||||
return [
|
return [
|
||||||
@ -93,6 +95,8 @@ extension ExtensionAppDept on AppDept {
|
|||||||
fiL,
|
fiL,
|
||||||
daL,
|
daL,
|
||||||
ukL,
|
ukL,
|
||||||
|
hiL,
|
||||||
|
urL,
|
||||||
srCyrillic
|
srCyrillic
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -177,7 +181,12 @@ enum LanguageType {
|
|||||||
// 丹麦语
|
// 丹麦语
|
||||||
danish,
|
danish,
|
||||||
// 乌克兰语
|
// 乌克兰语
|
||||||
ukrainian
|
ukrainian,
|
||||||
|
//印地语、
|
||||||
|
hindi,
|
||||||
|
//乌尔都语
|
||||||
|
urdu,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension ExtensionLanguageType on LanguageType {
|
extension ExtensionLanguageType on LanguageType {
|
||||||
@ -295,6 +304,12 @@ extension ExtensionLanguageType on LanguageType {
|
|||||||
case LanguageType.ukrainian:
|
case LanguageType.ukrainian:
|
||||||
str = '乌克兰语'.tr;
|
str = '乌克兰语'.tr;
|
||||||
break;
|
break;
|
||||||
|
case LanguageType.hindi:
|
||||||
|
str = '印地语'.tr;
|
||||||
|
break;
|
||||||
|
case LanguageType.urdu:
|
||||||
|
str = '乌尔都语'.tr;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
@ -415,6 +430,12 @@ extension ExtensionLanguageType on LanguageType {
|
|||||||
case 'uk':
|
case 'uk':
|
||||||
languageType = LanguageType.ukrainian;
|
languageType = LanguageType.ukrainian;
|
||||||
break;
|
break;
|
||||||
|
case 'hi':
|
||||||
|
languageType = LanguageType.hindi;
|
||||||
|
break;
|
||||||
|
case 'ur':
|
||||||
|
languageType = LanguageType.urdu;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
languageType = LanguageType.english;
|
languageType = LanguageType.english;
|
||||||
break;
|
break;
|
||||||
@ -610,6 +631,16 @@ extension ExtensionLanguageType on LanguageType {
|
|||||||
return locale;
|
return locale;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case LanguageType.hindi:
|
||||||
|
if (locale.languageCode == 'hi' && locale.countryCode == 'HI') {
|
||||||
|
return locale;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LanguageType.urdu:
|
||||||
|
if (locale.languageCode == 'ur' && locale.countryCode == 'UR') {
|
||||||
|
return locale;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case LanguageType.system:
|
case LanguageType.system:
|
||||||
// TODO: Handle this case.
|
// TODO: Handle this case.
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user