diff --git a/android/app/build.gradle b/android/app/build.gradle index 87be9e46..549a0230 100755 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -146,9 +146,14 @@ android { xhj_bundle { dimension "flavor-type" applicationId "ltd.xhjcn.lock" + signingConfig signingConfigs.xhj_bundle resValue "string", "app_name", "Star Lock" - manifestPlaceholders.JPUSH_PKGNAME = "ltd.xhjcn.lock" + manifestPlaceholders = [ + JPUSH_PKGNAME : "ltd.xhjcn.lock", + JPUSH_APPKEY : "5ccdb9b8d3faaae66ba5d02e", + JPUSH_CHANNEL : "flutter_channel", + ] proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules-xhj.pro' } diff --git a/lan/lan_ar.json b/lan/lan_ar.json index f550d3eb..51882dae 100644 --- a/lan/lan_ar.json +++ b/lan/lan_ar.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "كلمات المرور غير متسقة", "中功率": "قوة متوسطة", "常规使用": "استخدام منتظم", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "بعد تشغيل البوابة ، اضغط مع الاستمرار على زر إعادة الضبط لمدة 5 ثوانٍ ، وانقر بعد ذلك عندما يومض مصباح المؤشر بالتناوب", "扫描设备": "جهاز المسح الضوئي", "删除失败,网关可能已经离线,是否强制删除该数据?": "فشل الحذف. ربما تكون البوابة قد اختفت دون اتصال. هل تريد فرض حذف البيانات ؟", "超级管理员英文": "Super Admin", diff --git a/lan/lan_bg.json b/lan/lan_bg.json index 2f3d144b..62e1410b 100644 --- a/lan/lan_bg.json +++ b/lan/lan_bg.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Паролите са непоследователни", "中功率": "Средна мощност", "常规使用": "Редовна употреба", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "След като шлюзът е включен, натиснете и задръжте бутона reset за 5 секунди и щракнете върху следващия, когато индикаторната светлина мига алтернативно", "扫描设备": "Сканиране устройство", "删除失败,网关可能已经离线,是否强制删除该数据?": "Изтриването не успя. Портата може да е отишла офлайн. Искате ли да принудите изтриване на данните?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_bn.json b/lan/lan_bn.json index 03eafc2b..7c730be4 100644 --- a/lan/lan_bn.json +++ b/lan/lan_bn.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Thepasswordsare pencay", "中功率": "উইউমপোওয়ার", "常规使用": "গ্যারিউস", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "অ্যারাস্টার্টিউইসপোভেরেডন, প্রেস এবং টিপেস্টেট্রিসেট গানttonfor5sononds, এবং চক্লিক উইভেন্থে-উইন্টার", "扫描设备": "সিস্কান্লিভাইস", "删除失败,网关可能已经离线,是否强制删除该数据?": "ডাইজেজেশনিমেরিলেড। টিভওয়েমাইয়ানভিগনোনোআরলাইন। ডো ডাউনডেটা?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "এক্ফক্লোসিস্টেম", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "ব্যান্ডোটারট্রাসেট, thelock'sferprinতা?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "ব্যান্ডোটারপ্রাসেট, নিয়ন্ত্রণের নিয়ন্ত্রণ। ডোডো ডাইভান্টটুরে?", - "版本说明": "ভার্সনপরিচিতি", + "版本说明": "ভার্সনপরিচিতি" } \ No newline at end of file diff --git a/lan/lan_cs.json b/lan/lan_cs.json index d0eb38e6..504867c1 100644 --- a/lan/lan_cs.json +++ b/lan/lan_cs.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Hesla jsou nekonzistentní", "中功率": "Střední síla", "常规使用": "Pravidelné použití", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po zapnutí brány stiskněte a podržte tlačítko reset po dobu 5 sekund a klepněte na tlačítko next", "扫描设备": "Skenovat zařízení", "删除失败,网关可能已经离线,是否强制删除该数据?": "Odstranění se nezdařilo. Brána možná byla offline. Chcete vynutit smazat data?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_da.json b/lan/lan_da.json index 768ec600..df10a266 100644 --- a/lan/lan_da.json +++ b/lan/lan_da.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Adgangskoderne er inkonsekvente", "中功率": "Mellem effekt", "常规使用": "Regelmæssig anvendelse", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Når gateway er tændt, tryk og hold nulstillingsknappen i 5 sekunder, og klik Next, når indikator lys blinker skiftevist", "扫描设备": "Scan- enhed", "删除失败,网关可能已经离线,是否强制删除该数据?": "Sletning mislykkedes. Porten er måske offline. Vil du tvinge slette data?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Følg systemet", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Efter nulstilling vil låsens fingeraftryk blive slettet. Er du sikker på at du vil nulstille den?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Efter nulstilling, fjernbetjeningen af låsen vil blive slettet. Vil du nulstille den?", - "版本说明": "Versionsbeskrivelse", + "版本说明": "Versionsbeskrivelse" } \ No newline at end of file diff --git a/lan/lan_de.json b/lan/lan_de.json index e6e2f250..32b6dcd6 100644 --- a/lan/lan_de.json +++ b/lan/lan_de.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Die Passwörter sind inkonsistent", "中功率": "Mittlere Leistung", "常规使用": "Regelmäßige Verwendung", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nachdem das Gateway eingesc haltet ist, drücken und halten Sie die Reset-Taste für 5 Sekunden, und klicken Sie auf Weiter, wenn die Kontroll leuchte blinkt abwechselnd", "扫描设备": "Scan-Gerät", "删除失败,网关可能已经离线,是否强制删除该数据?": "Löschung fehl geschlagen. Das Gateway ist möglicher weise offline gegangen. Möchten Sie das Löschen der Daten erzwingen?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_el.json b/lan/lan_el.json index a076aac3..dadf971d 100644 --- a/lan/lan_el.json +++ b/lan/lan_el.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Οι κωδικοί πρόσβασης δεν είναι συνεπείς.", "中功率": "Μέση ισχύς", "常规使用": "Κανονική χρήση:", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Αφού ενεργοποιηθεί η πύλη, πατήστε και κρατήστε το κουμπί επαναφοράς για 5 δευτερόλεπτα, και κάντε κλικ Next όταν το φως δείκτη αναβοσβήνει εναλλάξα", "扫描设备": "Συσκευή σάρωσης", "删除失败,网关可能已经离线,是否强制删除该数据?": "Η διαγραφή απέτυχε. Η πύλη μπορεί να έχει εκτός λειτουργίας. Θέλετε να αναγκάσετε τη διαγραφή των δεδομένων;", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Ακολουθήστε το σύστημα", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Μετά την επαναφορά, τα αποτυπώματα της κλειδαριάς θα διαγραφούν. Είστε σίγουροι ότι θέλετε να το επαναφέρετε;", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Μετά την επαναφορά, το τηλεχειριστήριο της κλειδαριάς θα διαγραφεί. Θέλεις να το επαναφέρεις;", - "版本说明": "Περιγραφή έκδοσης", + "版本说明": "Περιγραφή έκδοσης" } \ No newline at end of file diff --git a/lan/lan_en.json b/lan/lan_en.json index 1283bace..54c8f340 100644 --- a/lan/lan_en.json +++ b/lan/lan_en.json @@ -217,7 +217,6 @@ "添加网关": "Add Gateway", "重新通电": "Re Connect the Power", "指示灯": "Indicator Light", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "After the gateway is powered on, press and hold the reset button for 5 seconds, and click Next when the indicator light flashes alternately", "选择网关": "Choose Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G is not supported,.Please select a WiFi of 2.4G.", "WiFi密码": "WiFi Passward", @@ -1128,5 +1127,6 @@ "正在说话...": "Talking now...", "下载完成,请到相册查看": "Download completed, please go to the album to view", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "After reset, the remote control of the lock will be deleted. Do you want to reset it?", - "版本说明": "Version description" + "版本说明": "Version description", + "网关通电后,长按重置按钮5秒,蓝色指示灯闪烁时点击下一步": "After the gateway is powered on, press and hold the reset button for 5 seconds. Click Next when the blue indicator light flashes" } diff --git a/lan/lan_es.json b/lan/lan_es.json index 3e47d880..f2d40436 100644 --- a/lan/lan_es.json +++ b/lan/lan_es.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Las contraseñas son inconsistentes", "中功率": "Potencia media", "常规使用": "Uso regular", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Después de encender la puerta de enlace, mantenga presionado el botón de reinicio durante 5 segundos y haga clic en Siguiente cuando la luz indicadora parpadee alternativamente", "扫描设备": "Dispositivo de exploración", "删除失败,网关可能已经离线,是否强制删除该数据?": "Falló la eliminación. Es posible que la puerta de enlace se haya desconectado. ¿Desea forzar la eliminación de los datos?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_et.json b/lan/lan_et.json index 63e90c7a..3b680872 100644 --- a/lan/lan_et.json +++ b/lan/lan_et.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Paroolid ei ole järjekindlad", "中功率": "Keskmine võimse", "常规使用": "Regulaarne kasutamine", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Kui värav on sisse lülitatud, vajutage ja hoidke nuppu 5 sekundit, ja klõpsa Järgmine, kui indikaator valgus vilgub vaheldumisel", "扫描设备": "Skaneerimisseade", "删除失败,网关可能已经离线,是否强制删除该数据?": "Kustutamine nurjus. Värav võis välja lülitada. Kas soovid kustutada andmed?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Süsteemi jälgimine", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Pärast lähtestamist kustutatakse luku sõrmejäljed. Kas tõesti soovid see lähtestada?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Pärast lähtestamist kustutatakse luku kaugjuhtimine. Kas sa tahad seda lähtestada?", - "版本说明": "Versiooniteave", + "版本说明": "Versiooniteave" } \ No newline at end of file diff --git a/lan/lan_fi.json b/lan/lan_fi.json index 53aee63c..0bc1d06e 100644 --- a/lan/lan_fi.json +++ b/lan/lan_fi.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Salasanat ovat epäjohdonmukaiset.", "中功率": "Keskimääräinen teho", "常规使用": "Säännöllinen käyttö", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Kun portti on käytössä, paina ja pidä painiketta nollauspainiketta 5 sekunnin ajan, ja klikkaa Seuraava kun ilmaisin valo vilkkuu vuorotellensa", "扫描设备": "Skannauslaite", "删除失败,网关可能已经离线,是否强制删除该数据?": "Poisto epäonnistui. Portti on ehkä pois päältä. Haluatko pakottaa poistamaan tiedot?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Seuraa järjestelmää", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Lukon sormenjäljet poistetaan. Haluatko varmasti nollataa sen?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Nollauksen jälkeen lukon kaukosäädin poistetaan. Haluatko palauttaa sen?", - "版本说明": "Versio", + "版本说明": "Versio" } \ No newline at end of file diff --git a/lan/lan_fr.json b/lan/lan_fr.json index 36f4918d..f2c17fcc 100644 --- a/lan/lan_fr.json +++ b/lan/lan_fr.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Les mots de passe sont incohérents", "中功率": "Puissance moyenne", "常规使用": "Utilisation régulière", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Une fois la passerelle allumée, appuyez et maintenez enfoncé le bouton de réinitialisation pendant 5 secondes, puis cliquez sur Suivant lorsque le voyant clignote alternativement", "扫描设备": "Appareil de numérisation", "删除失败,网关可能已经离线,是否强制删除该数据?": "La suppression a échoué. La passerelle est peut-être hors ligne. Voulez-vous forcer la suppression des données?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Suivre le système", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Après réinitialisation, les empreintes digitales de la serrure seront supprimées. Êtes-vous sûr de vouloir le réinitialiser?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Après réinitialisation, la télécommande du verrou sera supprimée. Voulez-vous le réinitialiser?", - "版本说明": "Explication de la version", + "版本说明": "Explication de la version" } \ No newline at end of file diff --git a/lan/lan_he.json b/lan/lan_he.json index 2214efd6..b5ce2fe3 100644 --- a/lan/lan_he.json +++ b/lan/lan_he.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "הסיסמאות אינן עקביות", "中功率": "כוח בינוני", "常规使用": "שימוש קבוע", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "לאחר השער מופעל, לחץ והחזק את כפתור איפוס עבור 5 שניות, ולחץ על הבא כאשר מחוון אור מהבהב לסירוגין", "扫描设备": "התקן סריקה", "删除失败,网关可能已经离线,是否强制删除该数据?": "מחיקה נכשלה. ייתכן שהשער נעלם מהרשת. האם ברצונך לאלץ למחוק את הנתונים?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "מערכת מעקב", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "לאחר איפוס, טביעות האצבעות של המנעול יימחקו. אתה בטוח שברצונך לאפס את זה?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "לאחר איפוס, השליטה מרחוק של המנעול יימחק. אתה רוצה לאפס את זה?", - "版本说明": "המידע על גרסה", + "版本说明": "המידע על גרסה" } \ No newline at end of file diff --git a/lan/lan_hk.json b/lan/lan_hk.json index 10f8f20f..c61800ba 100644 --- a/lan/lan_hk.json +++ b/lan/lan_hk.json @@ -217,7 +217,6 @@ "添加网关": "添加網關", "重新通电": "重新連接電源", "指示灯": "指示燈", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "網關上電之後,長按復位鍵5秒,指示燈交替閃爍時點擊下一步", "选择网关": "選擇Gateway (網關)", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "唔撐5G。 請選擇2.4G嘅WiFi。", "WiFi密码": "WiFi通行證", diff --git a/lan/lan_hr.json b/lan/lan_hr.json index 2b46ae3f..3eede61c 100644 --- a/lan/lan_hr.json +++ b/lan/lan_hr.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Šifre nisu dosljedne", "中功率": "Srednja snaga", "常规使用": "Redovna upotreba", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nakon što se prolaz ukljuèi, pritisnite i zadržite dugme za reset 5 sekundi, i kliknite Sljedeća kada svjetlost indikatora izmijeniti", "扫描设备": "Skeniraj uređaj", "删除失败,网关可能已经离线,是否强制删除该数据?": "Brisanje nije uspjelo. Prolaz je možda nestao. Želite li prisiliti brisati podatke?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Prati sistem:", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Nakon resetovanja, otisci brave će biti izbrisani. Jeste li sigurni da ga želite resetirati?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Nakon resetovanja, daljinski upravljač brave će biti izbrisan. Hoæeš da ga resetuješ?", - "版本说明": "Informacije o verziji", + "版本说明": "Informacije o verziji" } \ No newline at end of file diff --git a/lan/lan_hu.json b/lan/lan_hu.json index 6398d992..f0a2c104 100644 --- a/lan/lan_hu.json +++ b/lan/lan_hu.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "A jelszavak nem következetesek", "中功率": "Közepes teljesítmény", "常规使用": "Rendszeres használat", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Miután az átjáró be van kapcsolva, nyomja meg és tartsa a reset gombot 5 másodpercig, és kattintson a következő gombra, amikor a jelző fény felváltva villog", "扫描设备": "Beolvasási eszköz", "删除失败,网关可能已经离线,是否强制删除该数据?": "A törlés nem sikerült. Az átjáró lehet, hogy offline lett. Szeretné kényszeríteni az adatok törlését?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Follow system", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "A reset után a zár ujjlenyomatai törlődnek. Biztos vagy benne, hogy vissza szeretné állítani?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "A reset után a zár távirányítója törlődik. Szeretné visszaállítani?", - "版本说明": "Versió leírás", + "版本说明": "Versió leírás" } \ No newline at end of file diff --git a/lan/lan_id.json b/lan/lan_id.json index 872dcb41..735d0d50 100644 --- a/lan/lan_id.json +++ b/lan/lan_id.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Kata sandi tidak konsisten", "中功率": "Kekuatan sedang", "常规使用": "Penggunaan biasa", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Setelah gateway menyala, tekan dan tahan tombol reset selama 5 detik, dan klik berikutnya ketika lampu indikator berkedip secara bersamaan", "扫描设备": "Perangkat Pindai", "删除失败,网关可能已经离线,是否强制删除该数据?": "Penghapusan gagal. Gateway mungkin telah offline. Ingin menghapus data?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Sistem mengikuti", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Setelah mengulang, sidik jari kunci akan dihapus. Yakin ingin meresetnya?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Setelah reset, remote control kunci akan dihapus. Ingin mengatur ulang?", - "版本说明": "Catatan versi", + "版本说明": "Catatan versi" } \ No newline at end of file diff --git a/lan/lan_it.json b/lan/lan_it.json index 7bb5d872..91b0f6cf 100644 --- a/lan/lan_it.json +++ b/lan/lan_it.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Le password sono incoerenti", "中功率": "Potenza media", "常规使用": "Uso regolare", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Dopo aver acceso il gateway, tenere premuto il pulsante di ripristino per 5 secondi e fare clic su Avanti quando l'indicatore luminoso lampeggia alternativamente", "扫描设备": "Dispositivo di scansione", "删除失败,网关可能已经离线,是否强制删除该数据?": "Eliminazione non riuscita. Il gateway potrebbe essere andato offline. Vuoi forzare l'eliminazione dei dati?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_ja.json b/lan/lan_ja.json index 6c2f6de7..77e5ddd2 100644 --- a/lan/lan_ja.json +++ b/lan/lan_ja.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "パスワードが一致しない", "中功率": "ミディアムパワー", "常规使用": "通常の使用", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "ゲートウェイの電源がオンになった後、リセットボタンを5秒間押し続け、インジケーターライトが交互に点滅したら [次へ] をクリックします。", "扫描设备": "スキャン装置", "删除失败,网关可能已经离线,是否强制删除该数据?": "削除に失敗しました。ゲートウェイがオフラインになった可能性があります。強制的にデータを削除しますか?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "システムに従う", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "リセット後、ロックの指紋は削除されます。リセットしてもよろしいですか。", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "リセット後、ロックのリモコンが削除されます。リセットしますか?", - "版本说明": "バージョン説明", + "版本说明": "バージョン説明" } \ No newline at end of file diff --git a/lan/lan_keys.json b/lan/lan_keys.json index d99c1b05..2c9cb07e 100755 --- a/lan/lan_keys.json +++ b/lan/lan_keys.json @@ -219,7 +219,7 @@ "添加网关": "添加网关", "重新通电": "重新通电", "指示灯": "指示灯", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步", + "网关通电后,长按重置按钮5秒,蓝色指示灯闪烁时点击下一步": "网关通电后,长按重置按钮5秒,蓝色指示灯闪烁时点击下一步", "选择网关": "选择网关", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置", "WiFi密码": "WiFi密码", diff --git a/lan/lan_kk.json b/lan/lan_kk.json index ee063c9e..6bafdaca 100644 --- a/lan/lan_kk.json +++ b/lan/lan_kk.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Парольдер болмаған", "中功率": "Орташа қуары", "常规使用": "Қалыпты қолданылсын", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Келесі періңізнен соң, ысырып тасымалдау батырмасын басып 5 секунд басыңыз, Индикаторның жарықты ауыстырғанда, келесі басыңыз", "扫描设备": "Сканер құрылғысы", "删除失败,网关可能已经离线,是否强制删除该数据?": "Өшіру жаңылысы. Келесі жіберді. Деректерді өшіргіңіз келе ме?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Жүйені қолдану", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Қайта ысырып тастау Шынымен ысырып тастауды қалайсыз ба?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Қайта ысырып ысырып тасымалдауын өшіріледі. Оны ысырып тастауды қалайсыз ба?", - "版本说明": "Версиятын көрсету", + "版本说明": "Версиятын көрсету" } \ No newline at end of file diff --git a/lan/lan_ko.json b/lan/lan_ko.json index 0240269d..ecaeda0f 100644 --- a/lan/lan_ko.json +++ b/lan/lan_ko.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "암호가 일치하지 않습니다.", "中功率": "중간 전력", "常规使用": "정사이즈 사용", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "게이트웨이의 전원이 켜진 후 5 초 동안 리셋 버튼을 누르고 누르고 표시등이 번갈아 깜박이면 다음 을 클릭하십시오.", "扫描设备": "스캔 장치", "删除失败,网关可能已经离线,是否强制删除该数据?": "삭제가 실패했습니다. 게이트웨이가 오프라인 상태일 수 있다. 강제로 데이터 삭제를 하시겠습니까?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "시스템을 따르십시오", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "재설정 후 잠금 장치의 지문이 삭제됩니다. 당신은 그것을 재설정 하시겠습니까?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "재설정 후 잠금 장치의 리모컨이 삭제됩니다. 당신은 그것을 재설정 하시겠습니까?", - "版本说明": "버전 설명", + "版本说明": "버전 설명" } \ No newline at end of file diff --git a/lan/lan_lt.json b/lan/lan_lt.json index 939601de..fec5cf96 100644 --- a/lan/lan_lt.json +++ b/lan/lan_lt.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Slaptažodžiai yra nenuoseklūs", "中功率": "Vidutinės galios", "常规使用": "Reguliarus naudojimas", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Įjungus vartus, 5 sekundes paspauskite ir palaikykite reset mygtuką ir spustelėkite toliau, kai indikatoriaus lemputė mirksi pakaitomis.", "扫描设备": "Nuskaitymo įrenginys", "删除失败,网关可能已经离线,是否强制删除该数据?": "Ištrynimas nepavyko. Vartai gali būti neprisijungę. Ar norite priversti ištrinti duomenis?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Sekti sistema", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Po reset užrakto pirštų atspaudai bus ištrinti. Ar tikrai norite jį atkurti?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Po reset, nuotolinis valdymo pultas užraktas bus ištrintas. Ar norite jį atkurti?", - "版本说明": "Versijos aprašymas", + "版本说明": "Versijos aprašymas" } \ No newline at end of file diff --git a/lan/lan_ms.json b/lan/lan_ms.json index 05ed0ebd..f084c7bb 100644 --- a/lan/lan_ms.json +++ b/lan/lan_ms.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Kata laluan tidak konsisten", "中功率": "Kuasa sederhana", "常规使用": "Penggunaan biasa", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Selepas pintu masuk dihidupkan, tekan dan tahan butang reset selama 5 saat, dan klik seterusnya apabila lampu penunjuk berkelip bergantian", "扫描设备": "Imbas peranti", "删除失败,网关可能已经离线,是否强制删除该数据?": "Penghapusan gagal. Pintu masuk mungkin telah pergi di luar talian. Adakah anda mahu memaksa memadam data?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Ikut system", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Selepas menetapkan semula, cap jari kunci akan dipadamkan. Adakah anda pasti anda mahu menetapkan semula?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Selepas menetapkan semula, kawalan jauh kunci akan dipadamkan. Adakah anda mahu menetapkan semula?", - "版本说明": "Penerangan versi", + "版本说明": "Penerangan versi" } \ No newline at end of file diff --git a/lan/lan_nl.json b/lan/lan_nl.json index ceb6ec0e..3bed21f6 100644 --- a/lan/lan_nl.json +++ b/lan/lan_nl.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "De wachtwoorden zijn inconsistent", "中功率": "Middelgroot vermogen", "常规使用": "Regelmatig gebruik", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nadat de gateway is ingeschakeld, houdt u de resetknop 5 seconden ingedrukt en klikt u op Volgende wanneer het indicatielampje afwisselend knippert", "扫描设备": "Scan apparaat", "删除失败,网关可能已经离线,是否强制删除该数据?": "Verwijdering is mislukt. De gateway is mogelijk offline gegaan. Wilt u de gegevens forceren verwijderen?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Systeem volgen", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Na het resetten worden de vingerafdrukken van het slot verwijderd. Weet je zeker dat je het wilt resetten?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Na het resetten wordt de afstandsbediening van het slot verwijderd. Wilt u het resetten?", - "版本说明": "Versieomschrijving", + "版本说明": "Versieomschrijving" } \ No newline at end of file diff --git a/lan/lan_pl.json b/lan/lan_pl.json index 18cfb3d6..fe406a81 100644 --- a/lan/lan_pl.json +++ b/lan/lan_pl.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Hasła są niespójne", "中功率": "Średnia moc", "常规使用": "Regularne stosowanie", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po włączeniu bramy naciśnij i przytrzymaj przycisk resetowania przez 5 sekund i kliknij przycisk Dalej, gdy wskaźnik miga na przemian", "扫描设备": "Urządzenie skanujące", "删除失败,网关可能已经离线,是否强制删除该数据?": "Usunięcie nie powiodło się. Brama mogła zostać wyłączona. Czy chcesz wymusić usunięcie danych?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Śledź system", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Po zresetowaniu odciski palców zamka zostaną usunięte. Czy na pewno chcesz go zresetować?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Po zresetowaniu zdalne sterowanie zamkiem zostanie usunięte. Czy chcesz go zresetować?", - "版本说明": "Wersja", + "版本说明": "Wersja" } \ No newline at end of file diff --git a/lan/lan_pt.json b/lan/lan_pt.json index 22636d1e..bcdb2ed2 100644 --- a/lan/lan_pt.json +++ b/lan/lan_pt.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "As senhas são inconsistentes", "中功率": "Potência média", "常规使用": "Uso regular", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Depois que o gateway estiver ligado, pressione e segure o botão de reset por 5 segundos e clique em Next quando a luz indicadora pisca alternadamente", "扫描设备": "Digitalizar dispositivo", "删除失败,网关可能已经离线,是否强制删除该数据?": "A eliminação falhou. O gateway pode ter ficado offline. Você quer forçar a exclusão dos dados?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Siga o sistema", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Após a redefinição, as impressões digitais do bloqueio serão apagadas. Tens a certeza que queres redefini-lo?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Após a reinicialização, o controle remoto do bloqueio será excluído. Você quer redefini-lo?", - "版本说明": "Descrição da versão", + "版本说明": "Descrição da versão" } \ No newline at end of file diff --git a/lan/lan_ro.json b/lan/lan_ro.json index 3fe81f0f..7c6da3e2 100644 --- a/lan/lan_ro.json +++ b/lan/lan_ro.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Parolele sunt inconsistente", "中功率": "Putere medie", "常规使用": "Utilizare regulată", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "După ce poarta este pornită, apăsați și țineți butonul de resetare timp de 5 secunde, și faceți clic pe Următor atunci când lumina indicatorului se aprinde alternativ.", "扫描设备": "Dispozitiv de scanare", "删除失败,网关可能已经离线,是否强制删除该数据?": "Ștergerea a eșuat. Poarta poate s-a oprit. Doriți să forțați ștergerea datelor?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Urmează sistemul:", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "După resetare, amprentele încuietorii vor fi şterse. Sigur doriți să-l resetați?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "După resetare, telecomanda de blocare va fi ştersă. Vrei să-l resetezi?", - "版本说明": "Descrierea versiunii", + "版本说明": "Descrierea versiunii" } \ No newline at end of file diff --git a/lan/lan_ru.json b/lan/lan_ru.json index cfba1ebf..8001445e 100644 --- a/lan/lan_ru.json +++ b/lan/lan_ru.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Пароли являются несовместимыми", "中功率": "Средняя мощность", "常规使用": "Регулярное использование", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "После включения шлюза нажмите и удерживайте кнопку сброса в течение 5 секунд и нажмите «Далее», когда индикатор попеременно начнет мигать.", "扫描设备": "Устройство сканирования", "删除失败,网关可能已经离线,是否强制删除该数据?": "Ошибка удаления. Возможно, шлюз ушел в автономный режим. Хотите ли вы принудительно удалить данные?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Следуйте системе", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "После сброса отпечатки пальцев замка будут удалены. Вы уверены, что хотите его перезагрузить?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "После сброса пульт дистанционного управления замком будет удален. А вы хотите его сбросить?", - "版本说明": "Объяснение версии", + "版本说明": "Объяснение версии" } \ No newline at end of file diff --git a/lan/lan_sk.json b/lan/lan_sk.json index 7606e642..e6c0b02f 100644 --- a/lan/lan_sk.json +++ b/lan/lan_sk.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Heslá sú nekonzistentné", "中功率": "Stredný výkon", "常规使用": "Pravidelné použitie", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po zapnutí brány stlačte a podržte tlačidlo reset po dobu 5 sekúnd a kliknite na ďalšie, keď indikátorové svetlo záblesky striedavo", "扫描设备": "Skenovanie zariadenia", "删除失败,网关可能已经离线,是否强制删除该数据?": "Vymazanie sa nepodarilo. Brána môže ísť offline. Chcete vynútiť odstránenie údajov?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_sr_cyrl.json b/lan/lan_sr_cyrl.json index 076b29b3..bdfb900b 100644 --- a/lan/lan_sr_cyrl.json +++ b/lan/lan_sr_cyrl.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Лозинке су недоследне", "中功率": "Средња снага", "常规使用": "Редовна употреба", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Након што је гатеваи укључен, притисните и држите дугме за ресетовање за 5 секунди, и кликните Следећи када индикатор трепери наизменично", "扫描设备": "Уређај за скенирање", "删除失败,网关可能已经离线,是否强制删除该数据?": "Брисање није успело. Гатеваи је можда отишао ван мреже. Да ли желите да присилите брисање података?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_sv.json b/lan/lan_sv.json index c81b013b..99de674a 100644 --- a/lan/lan_sv.json +++ b/lan/lan_sv.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Lösenord är inkonsekventa", "中功率": "Medelse", "常规使用": "Regelbunden användning", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "När gateway är på, tryck och håll omställningsknappen i 5 sekunder, och klicka Nästa när indikatorljuset blinkar växelvist", "扫描设备": "Söka enheter", "删除失败,网关可能已经离线,是否强制删除该数据?": "Borttagning misslyckades. Porten kan ha gått offline. Vill du tvinga bort data?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_th.json b/lan/lan_th.json index bf4bdf0c..62fc6a47 100644 --- a/lan/lan_th.json +++ b/lan/lan_th.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "รหัสผ่านไม่สอดคล้องกัน", "中功率": "กำลังไฟปานกลาง", "常规使用": "ใช้เป็นประจำ", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "หลังจากเปิดเกตเวย์แล้วให้กดปุ่มรีเซ็ตค้างไว้5วินาทีและคลิกถัดไปเมื่อไฟแสดงสถานะกะพริบสลับกัน", "扫描设备": "อุปกรณ์สแกน", "删除失败,网关可能已经离线,是否强制删除该数据?": "การลบล้มเหลวเกตเวย์อาจออฟไลน์ไปแล้วคุณต้องการบังคับให้ลบข้อมูลหรือไม่?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_tr.json b/lan/lan_tr.json index 035738ba..8bf1e675 100644 --- a/lan/lan_tr.json +++ b/lan/lan_tr.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Şifreler tutarsız", "中功率": "Orta güç", "常规使用": "Düzenli kullanım", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Ağ geçidi açıldıktan sonra, sıfırlama düğmesine 5 saniye basılı tutun ve gösterge ışığı dönüşümlü olarak yanıp söndüğünde İleri'ye tıklayın.", "扫描设备": "Tarama cihazı", "删除失败,网关可能已经离线,是否强制删除该数据?": "Silme başarısız oldu. Ağ geçidi çevrimdışı geçmiş olabilir. Verileri silmeye zorlamak ister misiniz?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Sistemi takip et", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Sıfırlamadan sonra, kilidin parmak izleri silinecektir. Sıfırlamak istediğine emin misin?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Sıfırladıktan sonra, kilidin uzaktan kumandası silinecektir. Sıfırlamak ister misin?", - "版本说明": "Sürüm açıklaması", + "版本说明": "Sürüm açıklaması" } \ No newline at end of file diff --git a/lan/lan_tw.json b/lan/lan_tw.json index 7347b2c4..3c0cf448 100644 --- a/lan/lan_tw.json +++ b/lan/lan_tw.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "密碼不一致", "中功率": "媒介權力", "常规使用": "經常使用", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "網關通電後,按住reset按鈕5秒鐘,當指示燈交替閃爍時單擊Next", "扫描设备": "掃描設備", "删除失败,网关可能已经离线,是否强制删除该数据?": "刪除失敗。 網關可能已脫機。 是否要強制刪除數據?", "超级管理员英文": "超級管理員", @@ -1121,5 +1120,5 @@ "跟随系统": "跟蹤系統", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "重置後,鎖的指紋將被刪除。 是否確實要重置它?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "重置後,鎖的遙控器將被刪除。 是否要重置它?", - "版本说明": "版本說明", + "版本说明": "版本說明" } \ No newline at end of file diff --git a/lan/lan_uk.json b/lan/lan_uk.json index 1df767a6..bbbe0c19 100644 --- a/lan/lan_uk.json +++ b/lan/lan_uk.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Паролі несумісні", "中功率": "Середня потужність", "常规使用": "Регулярне використання", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Після ввімкнення шлюзу натисніть і утримуйте кнопку скидання протягом 5 секунд, а потім натисніть «Далі», коли індикатор почне блимати по черзі", "扫描设备": "Сканування пристрою", "删除失败,网关可能已经离线,是否强制删除该数据?": "Видалення не вдалося. Можливо, шлюз перейшов в автономний режим. Ви хочете примусово видалити дані?", "超级管理员英文": "Super Admin", @@ -1121,5 +1120,5 @@ "跟随系统": "Система стеження за", "重置后,该锁的指纹都将被删除哦,确认要重置吗?": "Після скидання відбитки пальців замка будуть видалені. Ви впевнені, що хочете скинути налаштування?", "重置后,该锁的遥控都将被删除哦,确认要重置吗?": "Після скидання пульт дистанційного керування замком буде видалено. Хочете його скинути?", - "版本说明": "Опис версії", + "版本说明": "Опис версії" } \ No newline at end of file diff --git a/lan/lan_vi.json b/lan/lan_vi.json index 5e8939b7..3d23aa5b 100644 --- a/lan/lan_vi.json +++ b/lan/lan_vi.json @@ -1105,7 +1105,6 @@ "两次密码不一致哦": "Mật khẩu không nhất quán", "中功率": "Công suất trung bình", "常规使用": "Sử dụng thường xuyên", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Sau khi cổng được bật, Nhấn và giữ nút đặt lại trong 5 giây và Nhấp vào tiếp theo khi đèn báo nhấp nháy luân phiên", "扫描设备": "Thiết bị quét", "删除失败,网关可能已经离线,是否强制删除该数据?": "Xóa thất bại. Cổng có thể đã tắt. Bạn có muốn buộc xóa dữ liệu không?", "超级管理员英文": "Super Admin", diff --git a/lan/lan_zh.json b/lan/lan_zh.json index e26b13ce..141f90aa 100755 --- a/lan/lan_zh.json +++ b/lan/lan_zh.json @@ -218,7 +218,7 @@ "添加网关": "添加网关", "重新通电": "重新通电", "指示灯": "指示灯", - "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步", + "网关通电后,长按重置按钮5秒,蓝色指示灯闪烁时点击下一步": "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步", "选择网关": "选择网关", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置", "WiFi密码": "WiFi密码", diff --git a/lib/apm/firebase/firebase_helper.dart b/lib/apm/firebase/firebase_helper.dart index 98188c1c..cb354174 100644 --- a/lib/apm/firebase/firebase_helper.dart +++ b/lib/apm/firebase/firebase_helper.dart @@ -4,14 +4,15 @@ import 'package:firebase_core/firebase_core.dart' show Firebase, FirebaseOptions; import 'package:flutter/foundation.dart' show defaultTargetPlatform, kIsWeb, TargetPlatform; +import 'package:star_lock/flavors.dart'; class DefaultFirebaseOptions { static FirebaseOptions get currentPlatform { - switch (defaultTargetPlatform) { - case TargetPlatform.android: - return android; - case TargetPlatform.iOS: - return ios; + switch (F.appFlavor) { + case Flavor.sky: + return sky_android; + case Flavor.xhj_bundle: + return xhj_android; default: throw UnsupportedError( 'DefaultFirebaseOptions are not supported for this platform.', @@ -19,14 +20,22 @@ class DefaultFirebaseOptions { } } - static const FirebaseOptions android = FirebaseOptions( + static const FirebaseOptions sky_android = FirebaseOptions( apiKey: 'AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g', appId: '1:281500445726:android:ddf52ac7b7f83cf5c4d20f', messagingSenderId: '281500445726', - projectId: 'skychip2023-ecdff', + projectId: 'smart-lock-12b8c', storageBucket: 'skychip2023-ecdff.firebasestorage.app', ); + static const FirebaseOptions xhj_android = FirebaseOptions( + apiKey: 'AIzaSyAm8dJlBY5hjslJDVDBNd2bkWrJlGjAMqw', + appId: '1:448746601330:android:1a8056175e1dad5e317beb', + messagingSenderId: '448746601330', + projectId: 'smart-lock-12b8c', + storageBucket: 'smart-lock-12b8c.firebasestorage.app', + ); + static const FirebaseOptions ios = FirebaseOptions( apiKey: 'AIzaSyACbp5aUKhLU1SMg8iIdm9WmNX7wxI7fVc', appId: '1:281500445726:ios:b194ccffb92fb86cc4d20f', @@ -51,9 +60,14 @@ class FirebaseHelper { } Future initApp() async { - await Firebase.initializeApp( - options: DefaultFirebaseOptions.currentPlatform, - ); + const bool isProductVmMode = bool.fromEnvironment('dart.vm.product'); + if (F.isProductionEnv && + isProductVmMode && + defaultTargetPlatform == TargetPlatform.android) { + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform, + ); + } } Future initSdk() async { diff --git a/lib/blue/io_sender.dart b/lib/blue/io_sender.dart index cbd1c631..d67212e5 100755 --- a/lib/blue/io_sender.dart +++ b/lib/blue/io_sender.dart @@ -1,4 +1,3 @@ - import 'package:star_lock/app_settings/app_settings.dart'; import 'io_tool/io_manager.dart'; @@ -8,12 +7,14 @@ abstract class IOData { List messageDetail(); } -abstract class SenderProtocol extends IOData { //数据块 +abstract class SenderProtocol extends IOData { + //数据块 // final int? tail = 0xFF; //用来校验包的完整性,采用 CRC 校验方法,长度为 2 个字节 SenderProtocol(this.commandType) { _commandIndex = IoManager().commandIndex; } + // var uint8View1 = Uint8List(300); CommandType? commandType; //指令类型 @@ -33,8 +34,7 @@ abstract class SenderProtocol extends IOData { //数据块 void printLog(List data) { AppLog.log( - "App -> 锁,指令类型:${commandType!.typeName} ${commandType!.typeValue == 0x3030 - ? '子命令:${data[3]}' : ''} \n参数是:\n${toString()} \n加密之前数据是:\n$data 长度是:${data.length}"); + "App -> 锁,指令类型:${commandType!.typeName} ${commandType!.typeValue == 0x3030 ? '子命令:${data[3]}' : ''} \n参数是:\n${toString()} \n加密之前数据是:\n$data 长度是:${data.length}"); } // 拼装数据 diff --git a/lib/flavors.dart b/lib/flavors.dart index 5334def5..145d2bf5 100755 --- a/lib/flavors.dart +++ b/lib/flavors.dart @@ -8,6 +8,7 @@ enum Flavor { sky_dev, sky_pre, xhj, + xhj_bundle, xhj_dev, xhj_pre, } @@ -48,6 +49,7 @@ class F { static bool get isXHJ => appFlavor == Flavor.xhj || + appFlavor == Flavor.xhj_bundle || appFlavor == Flavor.xhj_dev || appFlavor == Flavor.xhj_pre; @@ -71,6 +73,7 @@ class F { case Flavor.dev: case Flavor.pre: case Flavor.xhj: + case Flavor.xhj_bundle: default: return xhjCall(); } @@ -89,6 +92,7 @@ class F { case Flavor.sky_pre: return '锁通通'.tr; case Flavor.xhj: + case Flavor.xhj_bundle: case Flavor.xhj_dev: case Flavor.xhj_pre: return '星星锁'.tr; @@ -110,6 +114,7 @@ class F { case Flavor.sky_pre: return '锁通通'.tr; case Flavor.xhj: + case Flavor.xhj_bundle: case Flavor.xhj_dev: case Flavor.xhj_pre: return '星星锁'.tr; @@ -136,6 +141,7 @@ class F { case Flavor.sky: return 'https://lock.skychip.top'; case Flavor.xhj: + case Flavor.xhj_bundle: return 'https://lock.xhjcn.ltd'; // return 'https://pre.lock.star-lock.cn'; default: @@ -186,6 +192,9 @@ class F { return const StarLockAMapKey( androidKey: '9dd8073a2e96870b206269bb562a887a', iosKey: 'c70047e60ce704d945ea89d6c2763b82'); + case Flavor.xhj_bundle: + return const StarLockAMapKey( + androidKey: 'c47fa8e1d9e2a25321dbee75e1ff7790', iosKey: ''); default: return const StarLockAMapKey( androidKey: 'no valied key', @@ -250,6 +259,28 @@ class F { } } + // StarLockAMapKey + static String get jPushKey { + switch (appFlavor) { + case Flavor.local: + case Flavor.dev: + case Flavor.pre: + return ''; + case Flavor.sky_dev: + case Flavor.sky_pre: + case Flavor.sky: + return '7ff37d174c1a568a89e98dad'; + case Flavor.xhj_dev: + case Flavor.xhj_pre: + case Flavor.xhj: + return '251fc8074820d122b6de58d2'; + case Flavor.xhj_bundle: + return '5ccdb9b8d3faaae66ba5d02e'; + default: + return ''; + } + } + // 是否是生产环境 static bool get isProductionEnv { switch (appFlavor) { @@ -259,6 +290,7 @@ class F { return false; case Flavor.sky: case Flavor.xhj: + case Flavor.xhj_bundle: return true; default: return false; diff --git a/lib/main/lockDetail/card/addICCard/addICCard_logic.dart b/lib/main/lockDetail/card/addICCard/addICCard_logic.dart index 17398032..dda931b0 100755 --- a/lib/main/lockDetail/card/addICCard/addICCard_logic.dart +++ b/lib/main/lockDetail/card/addICCard/addICCard_logic.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/main/lockDetail/card/addICCard/addICCard_entity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -52,11 +53,11 @@ class AddICCardLogic extends BaseGetXController { switch (status) { case 0x00: //成功 - final List cardNumberList = - reply.data.sublist(reply.data.length - 2); - final String cardNumber = listChangInt(cardNumberList).toString(); - // AppLog.log("添加卡号:$cardNumberList cardNumber:$cardNumber"); - state.cardNumber.value = cardNumber.toString(); + // final List cardNumberList = + // reply.data.sublist(reply.data.length - 2); + // final String cardNumber = listChangInt(cardNumberList).toString(); + // // AppLog.log("添加卡号:$cardNumberList cardNumber:$cardNumber"); + // state.cardNumber.value = cardNumber.toString(); cancelBlueConnetctToastTimer(); state.ifAddState.value = true; @@ -134,6 +135,10 @@ class AddICCardLogic extends BaseGetXController { 'date': DateTool().getNowDateWithType(1), 'add_card_result': '成功', }); + AppLog.log('data:${reply.data}'); + final List cardNumberList = reply.data.sublist(6, 8); + final String cardNumber = listChangInt(cardNumberList).toString(); + state.cardNumber.value = cardNumber.toString(); switch (reply.data[5]) { case 0xff: // 注册指纹失败 diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart index c64479b0..66c5e50a 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeCustomMode/catEyeCustomMode_logic.dart @@ -47,6 +47,8 @@ class CatEyeCustomModeLogic extends BaseGetXController { } } } + await _getConfigAndGenerateBleData(); + updateCatEyeSetConfig(); return entity; } @@ -79,8 +81,7 @@ class CatEyeCustomModeLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { showToast('设置成功'.tr); - _getConfigAndGenerateBleData(); - updateCatEyeSetConfig(); + await getLockSettingInfoData(); } } @@ -206,14 +207,6 @@ class CatEyeCustomModeLogic extends BaseGetXController { privateKey: getPrivateKeyList, ); final packageData = command.packageData(); - - // 将 List 转换为十六进制字符串 - String hexString = packageData - .map((byte) => byte.toRadixString(16).padLeft(2, '0')) - .join(' '); - - AppLog.log('open lock hexString: $hexString'); - /// 发送星图 StartChartManage().sendBleMessage( bluetoothDeviceName: BlueManage().connectDeviceName, diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart index 1ae06b97..e4dc25a9 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_logic.dart @@ -29,7 +29,7 @@ class CatEyeSetLogic extends BaseGetXController { state.catEyeConfig.value.autoLightScreen = state.isAutoBright.value == true ? 1 : 0; state.catEyeConfig.refresh(); - updateCatEyeSetConfig(); + await getLockSettingInfoData(); } } @@ -46,7 +46,7 @@ class CatEyeSetLogic extends BaseGetXController { state.catEyeConfig.value.autoLightScreenTime = int.parse(state.selectBrightDuration.value.replaceAll('秒'.tr, '')); state.catEyeConfig.refresh(); - updateCatEyeSetConfig(); + await getLockSettingInfoData(); } } @@ -62,7 +62,7 @@ class CatEyeSetLogic extends BaseGetXController { state.catEyeConfig.value.autoLightScreen = state.isStayWarning.value == true ? 1 : 0; state.catEyeConfig.refresh(); - updateCatEyeSetConfig(); + await getLockSettingInfoData(); } } @@ -78,7 +78,7 @@ class CatEyeSetLogic extends BaseGetXController { state.catEyeConfig.value.autoLightScreen = state.isExceptionWarning.value == true ? 1 : 0; state.catEyeConfig.refresh(); - updateCatEyeSetConfig(); + await getLockSettingInfoData(); } } @@ -137,14 +137,14 @@ class CatEyeSetLogic extends BaseGetXController { XSConstantMacro.catEyeWorkModeCustom) { state.selectCatEyeWorkMode.value = '自定义模式'.tr; } - _getConfigAndGenerateBleData(); - updateCatEyeSetConfig(); } } + await _getConfigAndGenerateBleData(); + updateCatEyeSetConfig(); return entity; } - _getConfigAndGenerateBleData() { + _getConfigAndGenerateBleData() async { // 假设 state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode 是一个整数 int originalCatEyeMode = state .lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode!; @@ -168,13 +168,19 @@ class CatEyeSetLogic extends BaseGetXController { int recordTime = _handleGetIntNumber(state.lockSetInfoData.value .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordTime!); - int detectionDistance = _handleDetectionDistance(state - .lockSetInfoData - .value - .lockSettingInfo! - .catEyeConfig![0] - .catEyeModeConfig! - .detectionDistance!); + int detectionDistance = 0; + if (state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0]! + .catEyeModeConfig!.detectionDistance != + null) { + detectionDistance = _handleDetectionDistance(state + .lockSetInfoData + .value + .lockSettingInfo! + .catEyeConfig![0] + .catEyeModeConfig! + .detectionDistance!); + } + int realTimeMode = state.lockSetInfoData.value.lockSettingInfo! .catEyeConfig![0].catEyeModeConfig!.realTimeMode!; @@ -254,10 +260,10 @@ class CatEyeSetLogic extends BaseGetXController { final List? publicKey = await Storage.getStringList(saveBluePublicKey); final List getPublicKeyList = changeStringListToIntList(publicKey!); - + final userId = await Storage.getUid(); final command = SetSupportFunctionsWithParametersCommand( keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), + userID: userId, featureBit: 64, featureParaLength: config.length, featureData: config, @@ -273,7 +279,7 @@ class CatEyeSetLogic extends BaseGetXController { .map((byte) => byte.toRadixString(16).padLeft(2, '0')) .join(' '); - AppLog.log('open lock hexString: $hexString'); + AppLog.log('发送透传猫眼设置: $hexString'); /// 发送星图 StartChartManage().sendBleMessage( @@ -344,10 +350,10 @@ class CatEyeSetLogic extends BaseGetXController { DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(recordStartTime); // 提取小时和分钟 - int hour = dateTime.hour; - int minute = dateTime.minute; +// int hour = dateTime.hour; +// int minute = dateTime.minute; - print("时: $hour, 分: $minute"); + // print("时: $hour, 分: $minute"); // 计算从当天0点开始的分钟数 int minutesSinceMidnight = dateTime.hour * 60 + dateTime.minute; diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart index 981a9d48..a3f59353 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_logic.dart @@ -1,12 +1,16 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/blue/blue_manage.dart'; +import 'package:star_lock/blue/io_protocol/io_setSupportFunctionsWithParameters.dart'; import 'package:star_lock/blue/io_tool/io_tool.dart'; import 'package:star_lock/blue/sender_manage.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; +import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_state.dart'; import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/talk/starChart/star_chart_manage.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/versionUndate/versionUndate_entity.dart'; @@ -56,6 +60,8 @@ class CatEyeWorkModeLogic extends BaseGetXController { if (entity.errorCode!.codeIsSuccessful) { showToast('设置成功'.tr); getLockSettingInfoData(); + + updateCatEyeSetConfig(); } } @@ -122,7 +128,252 @@ class CatEyeWorkModeLogic extends BaseGetXController { XSConstantMacro.catEyeWorkModeCustom) { state.boolList.value = [false, false, false, true]; } + _getConfigAndGenerateBleData(); + updateCatEyeSetConfig(); } } } + + _getConfigAndGenerateBleData() { +// 假设 state.lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode 是一个整数 + int originalCatEyeMode = state + .lockSetInfoData.value.lockSettingInfo!.catEyeConfig![0].catEyeMode!; + int recordMode = state.lockSetInfoData.value.lockSettingInfo! + .catEyeConfig![0].catEyeModeConfig!.recordMode == + 0 + ? 1 + : 0; + + int stayWarn = state.lockSetInfoData.value.lockSettingInfo!.stayWarn!; + int abnormalWarn = + state.lockSetInfoData.value.lockSettingInfo!.abnormalWarn!; + int autoLightScreen = + state.lockSetInfoData.value.lockSettingInfo!.autoLightScreen!; + + int recordStartTime = _handleTimeToM(state.lockSetInfoData.value + .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordStartTime!); + int recordEndTime = _handleTimeToM(state.lockSetInfoData.value + .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordEndTime!); + + int recordTime = _handleGetIntNumber(state.lockSetInfoData.value + .lockSettingInfo!.catEyeConfig![0].catEyeModeConfig!.recordTime!); + + int detectionDistance = _handleDetectionDistance(state + .lockSetInfoData + .value + .lockSettingInfo! + .catEyeConfig![0] + .catEyeModeConfig! + .detectionDistance!); + int realTimeMode = state.lockSetInfoData.value.lockSettingInfo! + .catEyeConfig![0].catEyeModeConfig!.realTimeMode!; + + // 根据需要调整 catEyeMode 的值 + int adjustedCatEyeMode = + originalCatEyeMode > 0 ? originalCatEyeMode - 1 : originalCatEyeMode; + int brightScreenTime = + state.lockSetInfoData.value.lockSettingInfo!.autoLightScreenTime!; + + /// 对照星锁接口文档v0.2 的猫眼设置接口,获取出猫眼的所有设置 + state.catEyeConfig.value = CatEyeSetEntity( + catEyeMode: adjustedCatEyeMode, + // 猫眼模式 看常量表 + recordMode: recordMode, + //录像时段 0全天 1自定义时间 + recordStartTime: recordStartTime, + //自定义时间需要填:recordStartTime与recordEndTime参数 + recordEndTime: recordEndTime, + //自定义时间需要填:recordStartTime与recordEndTime参数 + realTimeMode: realTimeMode, + autoLightScreenTime: brightScreenTime, + stayWarn: stayWarn, + autoLightScreen: autoLightScreen, + // 打开自动亮屏 + abnormalWarn: abnormalWarn, + // 有人出现时录像时间 + recordTime: recordTime, + // 人体检测距离 + detectionDistance: detectionDistance, + realTimePicture: realTimeMode, + ); + state.catEyeConfig.refresh(); + } + + /// 更新锁板上的猫眼配置 + void updateCatEyeSetConfig() async { + final int operatingMode = state.catEyeConfig.value.catEyeMode ?? 1; // 自定义模式 + final int isAllDay = state.catEyeConfig.value.recordMode ?? 1; // 是否是全天 + final int startTime = + state.catEyeConfig.value.recordStartTime ?? 480; // 8:00 AM + final int endTime = + state.catEyeConfig.value.recordEndTime ?? 1080; // 6:00 PM + final int recordingTime = state.catEyeConfig.value.recordTime ?? 0; // 立即录像 + final int detectionDistance = + state.catEyeConfig.value.detectionDistance ?? 0; //0:0.8米 + final int realTimePicture = + state.catEyeConfig.value.realTimePicture ?? 0; // 实时查看 + final int automaticBrightening = + state.catEyeConfig.value.autoLightScreen ?? 1; // 打开逗留警告 + final int brightScreenTime = + state.catEyeConfig.value.autoLightScreenTime ?? 10; // 亮屏持续时间为15秒 + final int stayWarning = state.catEyeConfig.value.stayWarn ?? 1; // 打开逗留警告 + final int exceptionWarning = + state.catEyeConfig.value.abnormalWarn ?? 1; // 打开逗留警告 + + /// 生成配置,非自定义功能字段默认填充0 + final List config = generateConfig( + operatingMode: operatingMode, + isAllDay: isAllDay, + startTime: startTime, + endTime: endTime, + recordingTime: recordingTime, + detectionDistance: detectionDistance, + realTimePicture: realTimePicture, + automaticBrightening: automaticBrightening, + brightScreenTime: brightScreenTime, + stayWarning: stayWarning, + exceptionWarning: exceptionWarning, + ); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = changeStringListToIntList(privateKey!); + + final List? token = await Storage.getStringList(saveBlueToken); + final List getTokenList = changeStringListToIntList(token!); + + final List? publicKey = + await Storage.getStringList(saveBluePublicKey); + final List getPublicKeyList = changeStringListToIntList(publicKey!); + + final command = SetSupportFunctionsWithParametersCommand( + keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + userID: await Storage.getUid(), + featureBit: 64, + featureParaLength: config.length, + featureData: config, + token: getTokenList, + needAuthor: 1, + publicKey: getPublicKeyList, + privateKey: getPrivateKeyList, + ); + final packageData = command.packageData(); + + // 将 List 转换为十六进制字符串 + String hexString = packageData + .map((byte) => byte.toRadixString(16).padLeft(2, '0')) + .join(' '); + + AppLog.log('catEye set: $hexString'); + + /// 发送星图 + StartChartManage().sendBleMessage( + bluetoothDeviceName: BlueManage().connectDeviceName, + bleStructData: packageData, + ); + } + + // 根据提供的参数生成配置列表 + List generateConfig({ + required int operatingMode, + required int isAllDay, + required int startTime, + required int endTime, + required int recordingTime, + required int detectionDistance, + required int realTimePicture, + required int automaticBrightening, + required int brightScreenTime, + required int stayWarning, + required int exceptionWarning, + }) { + // 初始化一个空的列表 + List config = []; + + // 添加 operatingMode + config.add(operatingMode); + + // 如果不是自定义模式,则填充0;否则添加对应的值 + if (operatingMode != 3) { + config.addAll( + [0, 0, 0, 0, 0, 0]); // 对应 IsAllDay, StartTime, EndTime, recordingTime + } else { + config.add(isAllDay); + config.addAll(_intToBytes(startTime, 2)); // StartTime 占用2个字节 + config.addAll(_intToBytes(endTime, 2)); // EndTime 占用2个字节 + config.add(recordingTime); + } + + // 如果不是自定义模式,则 detectionDistance 和 realTimePicture 也填充0 + if (operatingMode != 3) { + config.addAll([0, 0]); + } else { + config.add(detectionDistance); + config.add(realTimePicture); + } + + // 自动亮屏、亮屏持续时间、逗留警告、异常警告 + config.add(automaticBrightening); + config.add(brightScreenTime); + config.add(stayWarning); + config.add(exceptionWarning); + + return config; + } + + // 将整数转换为指定长度的字节表示形式 + List _intToBytes(int value, int length) { + List bytes = []; + for (int i = length - 1; i >= 0; i--) { + bytes.add((value >> (8 * i)) & 0xFF); + } + return bytes; + } + + int _handleTimeToM(int recordStartTime) { +// 转换为 DateTime 对象 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(recordStartTime); + +// 提取小时和分钟 + int hour = dateTime.hour; + int minute = dateTime.minute; + + print("时: $hour, 分: $minute"); + +// 计算从当天0点开始的分钟数 + int minutesSinceMidnight = dateTime.hour * 60 + dateTime.minute; + return minutesSinceMidnight; + } + + int _handleGetIntNumber(String recordTime) { + if (recordTime == '不录像') { + return 0; + } + if (recordTime == '立即录像') { + return 1; + } + // 使用正则表达式匹配字符串中的数字 + RegExp regExp = RegExp(r'(\d+)秒'); + Match? match = regExp.firstMatch(recordTime); + + if (match != null && match.groupCount >= 1) { + // 提取出的数字是字符串形式,需要转换成整数 + int number = int.parse(match.group(1)!); + return number; + } else { + return 0; + } + } + + int _handleDetectionDistance(String s) { + if (s == '约0.8米') { + return 0; + } + if (s == '约1.5米') { + return 1; + } + if (s == '约3.0米') { + return 2; + } + return 0; + } } diff --git a/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart b/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart index 7e7973bd..5d0c150a 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/catEyeWorkMode/catEyeWorkMode_state.dart @@ -1,4 +1,5 @@ import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/lockSet/catEyeSet/catEyeSet/catEyeSet_state.dart'; import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart'; class CatEyeWorkModeState { @@ -31,4 +32,6 @@ class CatEyeWorkModeState { // var selectCatEyeWorkMode = 0.obs; //猫眼工作模式 RxList boolList = [false, false, false, false].obs; Rx catEyeConfigData = CatEyeConfig().obs; + /// 猫眼配置 + Rx catEyeConfig = CatEyeSetEntity().obs; } diff --git a/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart b/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart index 7ba96c46..b97df6be 100755 --- a/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart +++ b/lib/main/lockDetail/lockSet/catEyeSet/videoSlot/videoSlot_logic.dart @@ -238,7 +238,6 @@ class VideoSlotLogic extends BaseGetXController { .map((byte) => byte.toRadixString(16).padLeft(2, '0')) .join(' '); - AppLog.log('open lock hexString: $hexString'); /// 发送星图 StartChartManage().sendBleMessage( diff --git a/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart b/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart index 72525db9..fa08f628 100755 --- a/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart +++ b/lib/main/lockDetail/lockSet/liveVideo/liveVideo_logic.dart @@ -199,13 +199,6 @@ class LiveVideoLogic extends BaseGetXController { ); final packageData = command.packageData(); - // 将 List 转换为十六进制字符串 - String hexString = packageData - .map((byte) => byte.toRadixString(16).padLeft(2, '0')) - .join(' '); - - AppLog.log('open lock hexString: $hexString'); - /// 发送星图 StartChartManage().sendBleMessage( bluetoothDeviceName: BlueManage().connectDeviceName, diff --git a/lib/main_local.dart b/lib/main_local.dart index 9e30d007..0fe387f7 100755 --- a/lib/main_local.dart +++ b/lib/main_local.dart @@ -4,7 +4,7 @@ import 'flavors.dart'; import 'main.dart' as runner; Future main() async { - F.appFlavor = Flavor.xhj; + F.appFlavor = Flavor.pre; // AppLog.log('local调用了main函数'); await runner.main(); } diff --git a/lib/main_xhj_bundle_lite.dart b/lib/main_xhj_bundle_lite.dart index d24e296d..8cf182cb 100755 --- a/lib/main_xhj_bundle_lite.dart +++ b/lib/main_xhj_bundle_lite.dart @@ -4,7 +4,7 @@ import 'flavors.dart'; import 'main.dart' as runner; Future main() async { - F.appFlavor = Flavor.xhj; + F.appFlavor = Flavor.xhj_bundle; F.isLite = true; // AppLog.log('xhj_lite调用了main函数'); await runner.main(); diff --git a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart index e1e20481..5342d939 100755 --- a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart +++ b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart @@ -36,15 +36,15 @@ class _GatewayConfigurationWifiPageState backgroundColor: AppColors.mainColor), body: Column( children: [ - // Container( - // width: 1.sw, - // color: const Color(0xFFF2F6F9), - // padding: EdgeInsets.all(15.h), - // child: Text( - // '不支持5G WiFi网络,请选择2.4G WiFi网络进行配置'.tr, - // style: TextStyle( - // color: AppColors.darkGrayTextColor, fontSize: 20.sp), - // )), + Container( + width: 1.sw, + color: const Color(0xFFF2F6F9), + padding: EdgeInsets.all(15.h), + child: Text( + '不支持5G WiFi网络,请选择2.4G WiFi网络进行配置'.tr, + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 20.sp), + )), Expanded( child: ListView( children: [ diff --git a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_logic.dart b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_logic.dart index 9d671e45..bc1be973 100644 --- a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_logic.dart +++ b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_logic.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; +import 'package:network_info_plus/network_info_plus.dart'; import 'package:star_lock/blue/io_gateway/io_gateway_getWifiList.dart'; import 'package:star_lock/tools/baseGetXController.dart'; @@ -128,11 +129,26 @@ class GatewayGetWifiListLogic extends BaseGetXController { }, isAddEquipment: true); } + final NetworkInfo _networkInfo = NetworkInfo(); + Future getWifiName() async { + String ssid = ''; + ssid = (await _networkInfo.getWifiName())!; + ssid = ssid ?? ''; + ssid = ssid.replaceAll(r'"', ''); + return ssid ?? ''; + } + @override void onReady() { super.onReady(); _initReplySubscription(); + + getWifiName().then((String value) { + state.phoneConnectedWiFi = value; + // update(); + // AppLog.log('wifiNameTF:${state.wifiNameTF.text} value:$value'); + }); } @override diff --git a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_page.dart b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_page.dart index fc031e43..7302a69b 100644 --- a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_page.dart +++ b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -20,9 +19,11 @@ class GatewayGetWifiListPage extends StatefulWidget { State createState() => _GatewayGetWifiListPageState(); } -class _GatewayGetWifiListPageState extends State with RouteAware{ +class _GatewayGetWifiListPageState extends State + with RouteAware { final GatewayGetWifiListLogic logic = Get.put(GatewayGetWifiListLogic()); - final GatewayGetWifiListState state = Get.find().state; + final GatewayGetWifiListState state = + Get.find().state; @override Widget build(BuildContext context) { @@ -34,7 +35,8 @@ class _GatewayGetWifiListPageState extends State with Ro actionsList: [ TextButton( child: Text( - '刷新'.tr, style: TextStyle(color: Colors.white, fontSize: 24.sp), + '刷新'.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), ), onPressed: logic.senderGetWifiListWifiAction, ), @@ -43,17 +45,25 @@ class _GatewayGetWifiListPageState extends State with Ro body: Column( children: [ Expanded( - child: Obx(() => state.wifiNameDataList.value.isNotEmpty ? ListView.builder( - itemCount: state.wifiNameDataList.value.length, - itemBuilder: (BuildContext c, int index) { - Map wifiNameStr = state.wifiNameDataList.value[index]; - return _messageListItem(wifiNameStr['wifiName'], wifiNameStr['rssi'], () { - Get.toNamed(Routers.gatewayConfigurationWifiPage, arguments: { - 'wifiName': wifiNameStr['wifiName'], - 'gatewayModel': state.gatewayModel - }); - }); - }) : NoData(noDataHeight: 1.sh - ScreenUtil().statusBarHeight - ScreenUtil().bottomBarHeight - 64.h)), + child: Obx(() => state.wifiNameDataList.value.isNotEmpty + ? ListView.builder( + itemCount: state.wifiNameDataList.value.length, + itemBuilder: (BuildContext c, int index) { + Map wifiNameStr = state.wifiNameDataList.value[index]; + return _messageListItem( + wifiNameStr['wifiName'], wifiNameStr['rssi'], () { + Get.toNamed(Routers.gatewayConfigurationWifiPage, + arguments: { + 'wifiName': wifiNameStr['wifiName'], + 'gatewayModel': state.gatewayModel + }); + }); + }) + : NoData( + noDataHeight: 1.sh - + ScreenUtil().statusBarHeight - + ScreenUtil().bottomBarHeight - + 64.h)), ), SubmitBtn( btnName: '手动配网'.tr, @@ -70,8 +80,7 @@ class _GatewayGetWifiListPageState extends State with Ro height: 64.h, ) ], - ) - ); + )); } Widget _messageListItem(String wifiName, String rssi, Function() action) { @@ -93,7 +102,7 @@ class _GatewayGetWifiListPageState extends State with Ro children: [ SizedBox( height: 79.h, - width: 1.sw - 20.w*2, + width: 1.sw - 20.w * 2, child: Row( // mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -103,7 +112,10 @@ class _GatewayGetWifiListPageState extends State with Ro maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( - fontSize: 22.sp, color: AppColors.blackColor), + fontSize: 22.sp, + color: state.phoneConnectedWiFi == wifiName + ? AppColors.mainColor + : AppColors.blackColor), ), ), // Text( diff --git a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_state.dart b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_state.dart index 0ef78d83..224c1025 100644 --- a/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_state.dart +++ b/lib/mine/gateway/addGateway/gatewayGetWifiList/gatewayGetWifiList_state.dart @@ -1,10 +1,8 @@ - - import 'package:get/get.dart'; import '../selectGateway/getGatewayInfo_model.dart'; -class GatewayGetWifiListState{ +class GatewayGetWifiListState { GatewayGetWifiListState() { var map = Get.arguments; if (map['gatewayModel'] != null && map['gatewayModel'] != '') { @@ -12,9 +10,11 @@ class GatewayGetWifiListState{ } } - final RxList> wifiNameDataList = >[].obs; + final RxList> wifiNameDataList = + >[].obs; GetGatewayInfoModel gatewayModel = GetGatewayInfoModel(); RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 RxInt sureBtnState = 0.obs; -} \ No newline at end of file + String? phoneConnectedWiFi; +} diff --git a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_logic.dart b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_logic.dart index 89289209..09222b9e 100644 --- a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_logic.dart +++ b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_logic.dart @@ -97,9 +97,9 @@ class SelectGatewayListLogic extends BaseGetXController { } void startScanBlueList() { + state.devices.clear(); BlueManage().startScan(2000, DeviceType.gateway, (List list) { AppLog.log('ScanResultList:$list'); - state.devices.clear(); for (int i = 0; i < list.length; i++) { final ScanResult device = list[i]; // if ((device.advertisementData.serviceUuids.isNotEmpty @@ -107,7 +107,12 @@ class SelectGatewayListLogic extends BaseGetXController { // : '') // .toString()[31] != // '1') { - state.devices.add(list[i]); + if (!state.devices.contains(device)) { + state.devices.add(device); + } else { + // 包含的情况下替换 + state.devices[state.devices.indexOf(device)] = device; + } // AppLog.log('device:${list[i]}'); // } } diff --git a/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart b/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart index 6626f63f..e63d2cfd 100755 --- a/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart +++ b/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart @@ -53,7 +53,7 @@ class _SelectGatewayTypeNextTipPageState padding: EdgeInsets.all(20.w), child: Center( child: Text( - '网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步'.tr, + '网关通电后,长按重置按钮5秒,蓝色指示灯闪烁时点击下一步'.tr, textAlign: TextAlign.center, style: TextStyle(fontSize: 18.sp), ))), diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index ee9c8781..10a94cb8 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -1092,7 +1092,7 @@ class StartChartManage { void sendBleMessage({ required String bluetoothDeviceName, required List bleStructData, - }) { + }) async { // 组装上线消息 final message = MessageCommand.bleMessage( FromPeerId: FromPeerId, @@ -1101,7 +1101,7 @@ class StartChartManage { bluetoothDeviceName: bluetoothDeviceName, bleStructData: bleStructData, ); - _sendMessage(message: message); + await _sendMessage(message: message); } /// 销毁资源 diff --git a/lib/tools/push/xs_jPhush.dart b/lib/tools/push/xs_jPhush.dart index 7c72a424..1d1847f2 100755 --- a/lib/tools/push/xs_jPhush.dart +++ b/lib/tools/push/xs_jPhush.dart @@ -24,18 +24,12 @@ class XSJPushProvider { return; } - String appKey; - if (F.isSKY) { - appKey = '7ff37d174c1a568a89e98dad'; - } else { - appKey = '251fc8074820d122b6de58d2'; - } - + print('jPushKey ${F.jPushKey}'); jpush.setup( - appKey: appKey, + appKey: F.jPushKey, channel: 'flutter_channel', - production: false, - debug: false, + production: F.isProductionEnv, + debug: !F.isProductionEnv, ); jpush.applyPushAuthority( diff --git a/lib/widget/flavors_img.dart b/lib/widget/flavors_img.dart index 4d7eb325..f1fa0138 100755 --- a/lib/widget/flavors_img.dart +++ b/lib/widget/flavors_img.dart @@ -15,9 +15,9 @@ class FlavorsImg extends StatelessWidget { @override Widget build(BuildContext context) { myFilter = ColorFilterGenerator(name: 'xhj', filters: >[ - if (black) ColorFilterAddons.addictiveColor(-255, -255, -255) else ColorFilterAddons.addictiveColor(1, 22, 93), + if (black) ColorFilterAddons.addictiveColor(-255, -255, -255) else ColorFilterAddons.addictiveColor(1 , 22, 93), ]); - if (F.appFlavor != Flavor.xhj) { + if (F.appFlavor != Flavor.xhj && F.appFlavor != Flavor.xhj_bundle) { return child; } return ColorFiltered(