diff --git a/android/app/src/main/res/drawable/check.png b/android/app/src/main/res/drawable/check.png
new file mode 100644
index 00000000..1b366bdd
Binary files /dev/null and b/android/app/src/main/res/drawable/check.png differ
diff --git a/android/app/src/main/res/drawable/icon_left_grey.png b/android/app/src/main/res/drawable/icon_left_grey.png
new file mode 100644
index 00000000..f9563317
Binary files /dev/null and b/android/app/src/main/res/drawable/icon_left_grey.png differ
diff --git a/android/app/src/main/res/drawable/log_btn_background.xml b/android/app/src/main/res/drawable/log_btn_background.xml
new file mode 100644
index 00000000..58769a9b
--- /dev/null
+++ b/android/app/src/main/res/drawable/log_btn_background.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/uncheck.png b/android/app/src/main/res/drawable/uncheck.png
new file mode 100644
index 00000000..4a1f3dda
Binary files /dev/null and b/android/app/src/main/res/drawable/uncheck.png differ
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 33ab3865..16e3f421 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -74,8 +74,6 @@ PODS:
- SDWebImage
- SwiftyGif
- EMASRest (11.1.1.2)
- - fast_rsa (0.6.0):
- - Flutter
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
@@ -146,6 +144,8 @@ PODS:
- fluwx/pay (0.0.1):
- Flutter
- WechatOpenSDK-XCFramework (~> 2.0.4)
+ - gallery_saver (0.0.1):
+ - Flutter
- google_maps_flutter_ios (0.0.1):
- Flutter
- GoogleMaps (< 9.0)
@@ -215,6 +215,24 @@ PODS:
- JPush (= 5.3.0)
- just_audio (0.0.1):
- Flutter
+ - JVerification (3.2.4):
+ - JCore (>= 2.1.6)
+ - jverify (0.0.1):
+ - Flutter
+ - JCore (>= 4.6.2)
+ - JVerification (= 3.2.4)
+ - libwebp (1.3.2):
+ - libwebp/demux (= 1.3.2)
+ - libwebp/mux (= 1.3.2)
+ - libwebp/sharpyuv (= 1.3.2)
+ - libwebp/webp (= 1.3.2)
+ - libwebp/demux (1.3.2):
+ - libwebp/webp
+ - libwebp/mux (1.3.2):
+ - libwebp/demux
+ - libwebp/sharpyuv (1.3.2)
+ - libwebp/webp (1.3.2):
+ - libwebp/sharpyuv
- nanopb (3.30910.0):
- nanopb/decode (= 3.30910.0)
- nanopb/encode (= 3.30910.0)
@@ -257,6 +275,9 @@ PODS:
- video_player_avfoundation (0.0.1):
- Flutter
- FlutterMacOS
+ - video_thumbnail (0.0.1):
+ - Flutter
+ - libwebp
- webview_flutter_wkwebview (0.0.1):
- Flutter
- WechatOpenSDK-XCFramework (2.0.4)
@@ -274,7 +295,6 @@ DEPENDENCIES:
- camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- - fast_rsa (from `.symlinks/plugins/fast_rsa/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
@@ -287,12 +307,14 @@ DEPENDENCIES:
- flutter_voice_processor (from `.symlinks/plugins/flutter_voice_processor/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- fluwx (from `.symlinks/plugins/fluwx/ios`)
+ - gallery_saver (from `.symlinks/plugins/gallery_saver/ios`)
- google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`)
- image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- JPush
- jpush_flutter (from `.symlinks/plugins/jpush_flutter/ios`)
- just_audio (from `.symlinks/plugins/just_audio/ios`)
+ - jverify (from `.symlinks/plugins/jverify/ios`)
- network_info_plus (from `.symlinks/plugins/network_info_plus/ios`)
- open_filex (from `.symlinks/plugins/open_filex/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
@@ -306,6 +328,7 @@ DEPENDENCIES:
- umeng_common_sdk (from `.symlinks/plugins/umeng_common_sdk/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`)
+ - video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
SPEC REPOS:
@@ -334,6 +357,8 @@ SPEC REPOS:
- ios-voice-processor
- JCore
- JPush
+ - JVerification
+ - libwebp
- nanopb
- PromisesObjC
- SDWebImage
@@ -366,8 +391,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/connectivity_plus/darwin"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
- fast_rsa:
- :path: ".symlinks/plugins/fast_rsa/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
firebase_analytics:
@@ -392,6 +415,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/fluttertoast/ios"
fluwx:
:path: ".symlinks/plugins/fluwx/ios"
+ gallery_saver:
+ :path: ".symlinks/plugins/gallery_saver/ios"
google_maps_flutter_ios:
:path: ".symlinks/plugins/google_maps_flutter_ios/ios"
image_gallery_saver:
@@ -402,6 +427,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/jpush_flutter/ios"
just_audio:
:path: ".symlinks/plugins/just_audio/ios"
+ jverify:
+ :path: ".symlinks/plugins/jverify/ios"
network_info_plus:
:path: ".symlinks/plugins/network_info_plus/ios"
open_filex:
@@ -424,6 +451,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios"
video_player_avfoundation:
:path: ".symlinks/plugins/video_player_avfoundation/darwin"
+ video_thumbnail:
+ :path: ".symlinks/plugins/video_thumbnail/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
@@ -451,7 +480,6 @@ SPEC CHECKSUMS:
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
EMASRest: 8df6f87836767a9415ad5cc4af739bc9d215b475
- fast_rsa: a1fed69b074093d2e2e3fefae6b821a071649d4c
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
Firebase: 9f574c08c2396885b5e7e100ed4293d956218af9
firebase_analytics: 1a66fe8d4375eccff44671ea37897683a78b2675
@@ -468,7 +496,8 @@ SPEC CHECKSUMS:
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
flutter_voice_processor: 2b89b93d69b02227ae3fd58589ee0bcfa3ca2a82
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
- fluwx: c18fd6c16b03a2187cd07d6e48e32a7801962849
+ fluwx: daa284756ce53442b3d0417ceeda66e981906811
+ gallery_saver: 9fc173c9f4fcc48af53b2a9ebea1b643255be542
google_maps_flutter_ios: f135b968a67c05679e0a53538e900b5c174b0d99
GoogleAppMeasurement: 6e49ffac7d3f2c3ded9cc663f912a13b67bbd0de
GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4
@@ -480,6 +509,9 @@ SPEC CHECKSUMS:
JPush: b71f497a3c1b825c7843fd97f290b05d5cd75f2e
jpush_flutter: c87be254790933c0363684169ef9d3d279a5adc5
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
+ JVerification: 0774807f44dd788c78d50303a14e133735807856
+ jverify: 337ea43ac1e16f9484f4195abe787d1b6241163c
+ libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
network_info_plus: 6d0c3eb8367b8164fa3fb0c19875e3f59d49697f
open_filex: 6e26e659846ec990262224a12ef1c528bb4edbe4
@@ -498,9 +530,10 @@ SPEC CHECKSUMS:
umeng_common_sdk: a8abd7f86dfd013dbbeeae587ee143760c6582f2
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
+ video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1
webview_flutter_wkwebview: 2a23822e9039b7b1bc52e5add778e5d89ad488d1
WechatOpenSDK-XCFramework: 36fb2bea0754266c17184adf4963d7e6ff98b69f
PODFILE CHECKSUM: 728f9c851a19709391c77c54ed3556e484b54db6
-COCOAPODS: 1.16.2
+COCOAPODS: 1.14.3
diff --git a/ios/Runner/Assets.xcassets/check.imageset/Contents.json b/ios/Runner/Assets.xcassets/check.imageset/Contents.json
new file mode 100644
index 00000000..bd23e480
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/check.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "check.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/check.imageset/check.png b/ios/Runner/Assets.xcassets/check.imageset/check.png
new file mode 100644
index 00000000..1b366bdd
Binary files /dev/null and b/ios/Runner/Assets.xcassets/check.imageset/check.png differ
diff --git a/ios/Runner/Assets.xcassets/icon_left_grey.imageset/Contents.json b/ios/Runner/Assets.xcassets/icon_left_grey.imageset/Contents.json
new file mode 100644
index 00000000..1aa8ae8d
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/icon_left_grey.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "icon_left_grey.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/icon_left_grey.imageset/icon_left_grey.png b/ios/Runner/Assets.xcassets/icon_left_grey.imageset/icon_left_grey.png
new file mode 100644
index 00000000..f9563317
Binary files /dev/null and b/ios/Runner/Assets.xcassets/icon_left_grey.imageset/icon_left_grey.png differ
diff --git a/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/Contents.json b/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/Contents.json
new file mode 100644
index 00000000..0364beae
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sky_login_btn_normal.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/sky_login_btn_normal.png b/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/sky_login_btn_normal.png
new file mode 100644
index 00000000..4467ae9a
Binary files /dev/null and b/ios/Runner/Assets.xcassets/sky_login_btn_normal.imageset/sky_login_btn_normal.png differ
diff --git a/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/Contents.json b/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/Contents.json
new file mode 100644
index 00000000..b63b8bcd
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "sky_login_btn_press.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/sky_login_btn_press.png b/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/sky_login_btn_press.png
new file mode 100644
index 00000000..4467ae9a
Binary files /dev/null and b/ios/Runner/Assets.xcassets/sky_login_btn_press.imageset/sky_login_btn_press.png differ
diff --git a/ios/Runner/Assets.xcassets/uncheck.imageset/Contents.json b/ios/Runner/Assets.xcassets/uncheck.imageset/Contents.json
new file mode 100644
index 00000000..5b51e40e
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/uncheck.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "uncheck.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/uncheck.imageset/uncheck.png b/ios/Runner/Assets.xcassets/uncheck.imageset/uncheck.png
new file mode 100644
index 00000000..f1ff4217
Binary files /dev/null and b/ios/Runner/Assets.xcassets/uncheck.imageset/uncheck.png differ
diff --git a/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/Contents.json b/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/Contents.json
new file mode 100644
index 00000000..f968c602
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "xhj_login_btn_normal.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/xhj_login_btn_normal.png b/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/xhj_login_btn_normal.png
new file mode 100644
index 00000000..3678adac
Binary files /dev/null and b/ios/Runner/Assets.xcassets/xhj_login_btn_normal.imageset/xhj_login_btn_normal.png differ
diff --git a/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/Contents.json b/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/Contents.json
new file mode 100644
index 00000000..0ca3f4b6
--- /dev/null
+++ b/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "xhj_login_btn_press.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/xhj_login_btn_press.png b/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/xhj_login_btn_press.png
new file mode 100644
index 00000000..b0a0a56b
Binary files /dev/null and b/ios/Runner/Assets.xcassets/xhj_login_btn_press.imageset/xhj_login_btn_press.png differ
diff --git a/lib/flavors.dart b/lib/flavors.dart
index f2c54c95..304da904 100755
--- a/lib/flavors.dart
+++ b/lib/flavors.dart
@@ -334,4 +334,24 @@ class F {
return false;
}
}
+
+ // 是否是生产环境
+ static String get loginBtnImagePrefix {
+ switch (appFlavor) {
+ case Flavor.local:
+ case Flavor.dev:
+ case Flavor.pre:
+ case Flavor.sky_dev:
+ case Flavor.sky_pre:
+ case Flavor.sky:
+ return 'sky';
+ case Flavor.xhj_dev:
+ case Flavor.xhj_pre:
+ case Flavor.xhj:
+ case Flavor.xhj_bundle:
+ return 'xhj';
+ default:
+ return 'sky';
+ }
+ }
}
diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart
index f6130c6b..f0523d0e 100755
--- a/lib/login/login/starLock_login_logic.dart
+++ b/lib/login/login/starLock_login_logic.dart
@@ -103,39 +103,47 @@ class StarLockLoginLogic extends BaseGetXController {
}
}
- Future oneClickLoginAction() async {
- await JverifyOneClickLoginManage().loginAuth((e) async {
+ Future oneClickLoginAction(BuildContext context) async {
+ await JverifyOneClickLoginManage().loginAuth(context,(e) async {
final int? code = e.code;
final String? content = e.message;
// final String operator = map['operator'];
AppLog.log('1111code:$code content:$content');
- if (code == 6000) {
- final LoginEntity entity = await ApiRepository.to.oneClickLogin(
- loginType: '3',
- loginToken: content ?? '',
- deviceInfo: state.deviceInfoMap);
- if (entity.errorCode!.codeIsSuccessful) {
- ApmHelper.instance.trackEvent('login_result', {
- 'account': state.emailOrPhone.value,
- 'date': DateTool().getNowDateWithType(1),
- 'login_res': '成功',
- });
+ switch (code) {
+ case 6000:
+ final LoginEntity entity = await ApiRepository.to.oneClickLogin(
+ loginType: '3',
+ loginToken: content ?? '',
+ deviceInfo: state.deviceInfoMap);
+ if (entity.errorCode!.codeIsSuccessful) {
+ ApmHelper.instance.trackEvent('login_result', {
+ 'account': state.emailOrPhone.value,
+ 'date': DateTool().getNowDateWithType(1),
+ 'login_res': '成功',
+ });
- Storage.saveLoginData(entity.data);
- Storage.setBool(saveIsVip, entity.data!.isVip == 1);
- eventBus.fire(MineInfoChangeRefreshUI());
- if (Get.isRegistered()) {
- Get.find().getStarLockInfo(isUnShowLoading: true);
+ Storage.saveLoginData(entity.data);
+ Storage.setBool(saveIsVip, entity.data!.isVip == 1);
+ eventBus.fire(MineInfoChangeRefreshUI());
+ if (Get.isRegistered()) {
+ Get.find().getStarLockInfo(isUnShowLoading: true);
+ }
+ Get.offNamedUntil(Routers.starLockMain, (Route route) => false);
+ BlueManage().scanDevices.clear(); //清除设备缓存
+ } else {
+ ApmHelper.instance.trackEvent('login_result', {
+ 'account': state.emailOrPhone.value,
+ 'date': DateTool().getNowDateWithType(1),
+ 'login_res': '${entity.errorCode}--${entity.errorMsg}',
+ });
}
- Get.offNamedUntil(Routers.starLockMain, (Route route) => false);
- BlueManage().scanDevices.clear(); //清除设备缓存
- } else {
- ApmHelper.instance.trackEvent('login_result', {
- 'account': state.emailOrPhone.value,
- 'date': DateTool().getNowDateWithType(1),
- 'login_res': '${entity.errorCode}--${entity.errorMsg}',
- });
- }
+ break;
+ case 6002:
+ // showToast('用户取消一键登录'.tr);
+ break;
+ default:
+ showToast('一键登录失败,请使用账号/密码登录'.tr);
+ break;
}
});
}
@@ -215,6 +223,7 @@ class StarLockLoginLogic extends BaseGetXController {
//刷新设备信息
Future flushedDeviceInfo() async {
+ eventBus.fire(AgreePrivacyAgreement());
XSConstantMacro().getDeviceInfoData().then((Map data) {
state.deviceInfoMap.value = data;
}).catchError((dynamic error) {
diff --git a/lib/login/login/starLock_login_page.dart b/lib/login/login/starLock_login_page.dart
index f9a46982..59997b27 100755
--- a/lib/login/login/starLock_login_page.dart
+++ b/lib/login/login/starLock_login_page.dart
@@ -283,7 +283,8 @@ class _StarLockLoginPageState extends State {
width: 10.sp,
)),
Obx(() => Visibility(
- visible: state.isCheckVerifyEnable.value && state.currentLanguage == 'zh_CN',
+ visible: state.isCheckVerifyEnable.value &&
+ state.currentLanguage == 'zh_CN',
child: GestureDetector(
child: SizedBox(
// width: 150.w,
@@ -296,7 +297,9 @@ class _StarLockLoginPageState extends State {
color: AppColors.mainColor)),
),
),
- onTap: logic.oneClickLoginAction,
+ onTap: () {
+ logic.oneClickLoginAction(context);
+ },
),
))
],
diff --git a/lib/login/login/starLock_login_xhj_page.dart b/lib/login/login/starLock_login_xhj_page.dart
index b0810366..9d32642d 100755
--- a/lib/login/login/starLock_login_xhj_page.dart
+++ b/lib/login/login/starLock_login_xhj_page.dart
@@ -243,7 +243,7 @@ class _StarLockLoginPageState extends State {
),
),
onTap: () async {
- logic.oneClickLoginAction();
+ logic.oneClickLoginAction(context);
},
),
))
diff --git a/lib/main/lockDetail/card/cardList/cardList_logic.dart b/lib/main/lockDetail/card/cardList/cardList_logic.dart
index 022ff0fb..2fc2e376 100755
--- a/lib/main/lockDetail/card/cardList/cardList_logic.dart
+++ b/lib/main/lockDetail/card/cardList/cardList_logic.dart
@@ -248,7 +248,7 @@ class CardListLogic extends BaseGetXController {
if (isDemoMode == false) {
_initReplySubscription();
- _initRefreshAction();
+ // _initRefreshAction();
}
await getICCardListData(isRefresh: true);
}
diff --git a/lib/main/lockDetail/face/faceList/faceList_logic.dart b/lib/main/lockDetail/face/faceList/faceList_logic.dart
index 9781a916..a1499556 100755
--- a/lib/main/lockDetail/face/faceList/faceList_logic.dart
+++ b/lib/main/lockDetail/face/faceList/faceList_logic.dart
@@ -430,7 +430,7 @@ class FaceListLogic extends BaseGetXController {
if (isDemoMode == false) {
_initReplySubscription();
- _initRefreshAction();
+ // _initRefreshAction();
}
}
diff --git a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart
index 3c886df8..d65269cd 100755
--- a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart
+++ b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart
@@ -461,7 +461,6 @@ class FingerprintListLogic extends BaseGetXController {
_initReplySubscription();
// _initRefreshAction();
- getFingerprintsListData(isRefresh: true);
}
}
diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart b/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart
index e7c66577..5127c0b5 100755
--- a/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart
+++ b/lib/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart
@@ -75,6 +75,10 @@ class LockSetInfoData {
}
return data;
}
+
+ bool isValid() {
+ return lockId != null;
+ }
}
class LockStatus {
@@ -717,11 +721,19 @@ class CatEyeModeConfig {
// 从 JSON 数据构造对象
factory CatEyeModeConfig.fromJson(Map json) {
return CatEyeModeConfig(
- recordMode: json['recordMode'] != null ? int.tryParse(json['recordMode'].toString()) : null,
+ recordMode: json['recordMode'] != null
+ ? int.tryParse(json['recordMode'].toString())
+ : null,
recordTime: json['recordTime'],
- realTimeMode: json['realTimeMode'] != null ? int.tryParse(json['realTimeMode'].toString()) : null,
- recordEndTime: json['recordEndTime'] != null ? int.tryParse(json['recordEndTime'].toString()) : null,
- recordStartTime: json['recordStartTime'] != null ? int.tryParse(json['recordStartTime'].toString()) : null,
+ realTimeMode: json['realTimeMode'] != null
+ ? int.tryParse(json['realTimeMode'].toString())
+ : null,
+ recordEndTime: json['recordEndTime'] != null
+ ? int.tryParse(json['recordEndTime'].toString())
+ : null,
+ recordStartTime: json['recordStartTime'] != null
+ ? int.tryParse(json['recordStartTime'].toString())
+ : null,
detectionDistance: json['detectionDistance'],
);
}
diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart
index 4d8fac0e..f11e9624 100755
--- a/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart
+++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_page.dart
@@ -102,6 +102,10 @@ class _LockSetPageState extends State
isHaveLine: false,
isHaveDirection: true,
action: () {
+ if (!state.lockSetInfoData.value.isValid()) {
+ EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr);
+ return;
+ }
Get.toNamed(Routers.basicInformationPage,
arguments: {
'lockSetInfoData': state.lockSetInfoData.value
@@ -154,6 +158,10 @@ class _LockSetPageState extends State
isHaveLine: true,
isHaveDirection: true,
action: () {
+ if (!state.lockSetInfoData.value.isValid()) {
+ EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr);
+ return;
+ }
Get.toNamed(Routers.lockTimePage,
arguments: {
'lockSetInfoData': state.lockSetInfoData.value
@@ -166,6 +174,10 @@ class _LockSetPageState extends State
btnName: '删除'.tr,
isDelete: true,
onClick: () async {
+ if (!state.lockSetInfoData.value.isValid()) {
+ EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr);
+ return;
+ }
// logic.deletUserAction();
// logic.deletLockInfoData();
// showDeletAlertDialog(context);
diff --git a/lib/main/lockDetail/palm/palmList/palmList_logic.dart b/lib/main/lockDetail/palm/palmList/palmList_logic.dart
index b18e3609..8d15fa33 100755
--- a/lib/main/lockDetail/palm/palmList/palmList_logic.dart
+++ b/lib/main/lockDetail/palm/palmList/palmList_logic.dart
@@ -233,7 +233,7 @@ class PalmListLogic extends BaseGetXController {
if (isDemoMode == false) {
_initReplySubscription();
- _initRefreshAction();
+ // _initRefreshAction();
}
}
diff --git a/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart b/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart
index c63773bb..a25ca1ef 100755
--- a/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart
+++ b/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart
@@ -33,9 +33,9 @@ class MineMultiLanguageLogic extends GetxController {
}
}
- // Future changeLanguage(Locale l) async {
- // await StoreService.to.saveLanguageCode(l.toString());
- // await Get.updateLocale(l);
- // AppLog.log('saveLocale: ${l.toString()}}');
- // }
+// Future changeLanguage(Locale l) async {
+// await StoreService.to.saveLanguageCode(l.toString());
+// await Get.updateLocale(l);
+// AppLog.log('saveLocale: ${l.toString()}}');
+// }
}
diff --git a/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart b/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart
index a5a83f84..1e003033 100755
--- a/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart
+++ b/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart
@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
+import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/mine/mineMultiLanguage/mineMultiLanguage_state.dart';
+import 'package:star_lock/tools/store_service.dart';
import 'package:star_lock/translations/current_locale_tool.dart';
import '../../app_settings/app_colors.dart';
@@ -33,12 +35,17 @@ class _MineMultiLanguagePageState extends State {
actionsList: [
TextButton(
onPressed: () async {
- await logic.updateUserLangInfo(state.seletLocale);
- final String lanTypeTitle =
- ExtensionLanguageType.fromLocale(state.seletLocale)
- .lanTitle;
- Get.back(
- result: {'currentLanguage': state.seletLocale.toString()});
+ await logic.updateUserLangInfo(state.seletLocale).then((value) {
+ final String currentLanguage =
+ StoreService.to.getLanguageCode()!;
+ final String lanTypeTitle =
+ ExtensionLanguageType.fromLocale(state.seletLocale)
+ .lanTitle;
+ Get.back(result: {'currentLanguage': currentLanguage});
+ }).catchError((e) {
+ AppLog.log('updateUserLangInfo error:$e');
+ EasyLoading.showToast('网络访问失败,请检查网络是否正常'.tr);
+ });
},
child: Text(
'保存'.tr,
diff --git a/lib/mine/mineSet/mineSet/mineSet_page.dart b/lib/mine/mineSet/mineSet/mineSet_page.dart
index a2926a55..28e2863e 100755
--- a/lib/mine/mineSet/mineSet/mineSet_page.dart
+++ b/lib/mine/mineSet/mineSet/mineSet_page.dart
@@ -302,8 +302,11 @@ class _MineSetPageState extends State
action: () async {
// Get.toNamed(Routers.mineMultiLanguagePage);
await Get.toNamed(Routers.mineMultiLanguagePage)!.then((value) {
- state.currentLanguage.value = value['currentLanguage'];
- setState(() {});
+ setState(() {
+ if (value.containsKey('currentLanguage')) {
+ state.currentLanguage.value = value['currentLanguage'];
+ }
+ });
});
}),
/* 2024-01-12 会议确定去掉“锁屏” by DaisyWu
diff --git a/lib/tools/jverify_one_click_login.dart b/lib/tools/jverify_one_click_login.dart
index 94993d6d..bd4a6ec2 100644
--- a/lib/tools/jverify_one_click_login.dart
+++ b/lib/tools/jverify_one_click_login.dart
@@ -95,6 +95,7 @@ class JverifyOneClickLoginManage {
/// 判断当前网络环境是否可以发起认证
Future checkVerifyEnable() async {
final Map map = await jverify.checkVerifyEnable();
+ AppLog.log('一家登录 sdk 初始化结果:$map');
final bool result = map[f_result_key];
return result;
// state.jverify.checkVerifyEnable().then((map) {
@@ -141,7 +142,7 @@ class JverifyOneClickLoginManage {
}
/// SDK 请求授权一键登录
- Future loginAuth(
+ Future loginAuth(BuildContext context,
Function(JVListenerEvent jvListenerEvent) action) async {
Map map = await jverify.checkVerifyEnable();
final bool result = map[f_result_key];
@@ -153,6 +154,9 @@ class JverifyOneClickLoginManage {
// return null;
if (result) {
+ final screenSize = MediaQuery.of(context).size;
+ final screenWidth = screenSize.width;
+ final screenHeight = screenSize.height;
bool isiOS = Platform.isIOS;
/// 自定义授权的 UI 界面,以下设置的图片必须添加到资源文件里,
@@ -162,13 +166,13 @@ class JverifyOneClickLoginManage {
// uiConfig.authBGGifPath = "main_gif";
// uiConfig.authBGVideoPath="main_vi";
// uiConfig.authBGVideoPath = 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4';
- uiConfig.authBackgroundImage = 'images/icon_left_grey.png';
+ // uiConfig.authBackgroundImage = 'images/icon_left_grey.png';
// uiConfig.navHidden = !isiOS;
uiConfig.navColor = AppColors.mainColor.value;
uiConfig.navText = '一键登录'.tr;
uiConfig.navTextColor = Colors.white.value;
- uiConfig.navReturnImgPath = 'return_bg'; //图片必须存在
+ uiConfig.navReturnImgPath = 'icon_left_grey'; //图片必须存在
uiConfig.logoWidth = 100;
uiConfig.logoHeight = 100;
@@ -181,45 +185,56 @@ class JverifyOneClickLoginManage {
uiConfig.numberFieldWidth = 200;
uiConfig.numberFieldHeight = 40;
//uiConfig.numFieldOffsetX = isiOS ? 0 : null;//(screenWidth/2 - uiConfig.numberFieldWidth/2).toInt();
- uiConfig.numFieldOffsetY = isiOS ? 120 : 220;
+ uiConfig.numFieldOffsetY = isiOS ? 40 : 220;
uiConfig.numberVerticalLayoutItem = JVIOSLayoutItem.ItemLogo;
uiConfig.numberColor = AppColors.mainColor.value;
uiConfig.numberSize = 18;
- uiConfig.sloganOffsetY = isiOS ? 120 : 260;
+ uiConfig.sloganOffsetY = isiOS ? 10 : 300;
uiConfig.sloganVerticalLayoutItem = JVIOSLayoutItem.ItemNumber;
uiConfig.sloganTextColor = Colors.black.value;
uiConfig.sloganTextSize = 15;
// uiConfig.slogan
//uiConfig.sloganHidden = 0;
- uiConfig.logBtnOffsetX = 20;
+ // uiConfig.logBtnOffsetX = 20;
uiConfig.logBtnWidth = double.parse('${1.sw - 20 * 2}').toInt();
uiConfig.logBtnHeight = 50;
//uiConfig.logBtnOffsetX = isiOS ? 0 : null;//(screenWidth/2 - uiConfig.logBtnWidth/2).toInt();
- uiConfig.logBtnOffsetY = isiOS ? 120 : 330;
- uiConfig.logBtnVerticalLayoutItem = JVIOSLayoutItem.ItemNumber;
+ uiConfig.logBtnOffsetY = isiOS ? 30 : 330;
+ uiConfig.logBtnVerticalLayoutItem = JVIOSLayoutItem.ItemSlogan;
uiConfig.logBtnText = '一键登录'.tr;
- uiConfig.logBtnTextColor = Colors.white.value;
+ uiConfig.logBtnTextColor = AppColors.mainColor.value;
uiConfig.logBtnTextSize = 16;
- uiConfig.logBtnBackgroundPath = '';
+ if (isiOS) {
+ uiConfig.logBtnTextColor = Colors.white.value;
+ uiConfig.loginBtnNormalImage =
+ '${F.loginBtnImagePrefix}_login_btn_normal'; //图片必须存在
+ uiConfig.loginBtnPressedImage =
+ '${F.loginBtnImagePrefix}_login_btn_press'; //图片必须存在
+ uiConfig.loginBtnUnableImage =
+ '${F.loginBtnImagePrefix}_login_btn_normal'; //图片必须存在
+ uiConfig.logBtnBackgroundPath =
+ '${F.loginBtnImagePrefix}_login_btn_normal';
+ }
// uiConfig.logBtnTextBold = true;
- // uiConfig.loginBtnNormalImage = 'login_btn_normal'; //图片必须存在
- // uiConfig.loginBtnPressedImage = 'login_btn_press'; //图片必须存在
- // uiConfig.loginBtnUnableImage = 'login_btn_unable'; //图片必须存在
uiConfig.privacyHintToast =
true; //only android 设置隐私条款不选中时点击登录按钮默认显示toast。
uiConfig.privacyState = false; //设置默认勾选
- uiConfig.privacyCheckboxSize = 20;
- uiConfig.checkedImgPath = 'check_image'; //图片必须存在
- uiConfig.uncheckedImgPath = 'uncheck_image'; //图片必须存在
+ uiConfig.privacyCheckboxSize = 22;
+ if (isiOS) {
+ uiConfig.checkedImgPath = 'check'; //图片必须存在
+ uiConfig.uncheckedImgPath = 'uncheck'; //图片必须存在
+ }
+
uiConfig.privacyCheckboxInCenter = true;
uiConfig.privacyCheckboxHidden = false;
- uiConfig.isAlertPrivacyVc = true;
+ uiConfig.isAlertPrivacyVc = false;
//uiConfig.privacyOffsetX = isiOS ? (20 + uiConfig.privacyCheckboxSize) : null;
+ uiConfig.privacyNavReturnBtnImage = 'icon_left_grey'; //图片必须存在;
uiConfig.privacyOffsetY = 30; // 距离底部距离
uiConfig.privacyOffsetX = 15; // 距离底部距离
uiConfig.privacyVerticalLayoutItem = JVIOSLayoutItem.ItemSuper;
@@ -254,12 +269,77 @@ class JverifyOneClickLoginManage {
uiConfig.enterAnim = 'activity_slide_enter_bottom';
uiConfig.exitAnim = 'activity_slide_exit_bottom';
- uiConfig.privacyNavColor = AppColors.mainColor.value;
+ uiConfig.privacyNavColor = Colors.white.value;
uiConfig.privacyNavTitleTextColor = Colors.white.value;
uiConfig.privacyNavTitleTextSize = 16;
+ //协议二次弹窗内容设置 -Android
+ // final JVPrivacyCheckDialogConfig privacyCheckDialogConfig =
+ // JVPrivacyCheckDialogConfig();
+ // privacyCheckDialogConfig.width = 300; //协议⼆次弹窗本身的宽
+ // privacyCheckDialogConfig.height = 220; //协议⼆次弹窗本身的⾼
+ // privacyCheckDialogConfig.privacyBackgroundColor = Colors.grey.value;
+ // privacyCheckDialogConfig.title = '请阅读并同意一下条款'; //弹窗标题
+ // privacyCheckDialogConfig.offsetX = 0; // 窗口相对屏幕中心的x轴偏移量
+ // privacyCheckDialogConfig.offsetY = 0; // 窗口相对屏幕中心的y轴偏移量
+ //
+ // privacyCheckDialogConfig.logBtnText = '同意并登录'; //弹窗登录按钮
+ // privacyCheckDialogConfig.titleTextSize = 16; // 弹窗标题字体大小
+ // privacyCheckDialogConfig.gravity = 'center'; //弹窗对齐方式
+ // privacyCheckDialogConfig.titleTextColor = Colors.black.value; // 弹窗标题字体颜色
+ // privacyCheckDialogConfig.contentTextGravity = 'left'; //协议⼆次弹窗协议内容对⻬⽅式
+ // privacyCheckDialogConfig.contentTextSize = 14; //协议⼆次弹窗协议内容字体⼤⼩
+ // privacyCheckDialogConfig.logBtnImgPath =
+ // 'log_btn_background'; //协议⼆次弹窗登录按钮的背景图⽚
+ // privacyCheckDialogConfig.logBtnTextColor =
+ // Colors.black.value; //协议⼆次弹窗登录按钮的字体颜⾊
+ // privacyCheckDialogConfig.logBtnMarginT = 40; //协议⼆次弹窗登录按钮上边距
+ // privacyCheckDialogConfig.logBtnMarginB = 20; //协议⼆次弹窗登录按钮下边距
+ // privacyCheckDialogConfig.logBtnMarginL = 90; //协议⼆次弹窗登录按钮左边距
+ // privacyCheckDialogConfig.logBtnWidth = 140; //协议⼆次弹窗登录按钮宽
+ // privacyCheckDialogConfig.logBtnHeight = 40; //协议⼆次弹窗登录按高
+ // /// 添加自定义的 控件 到dialog
+ // final List dialogWidgetList = [];
+ // const String btnDialogWidgetid = 'jv_add_custom_dialog_button'; // 标识控件 id
+ // final JVCustomWidget buttonDialogWidget =
+ // JVCustomWidget(btnDialogWidgetid, JVCustomWidgetType.button);
+ // buttonDialogWidget.title = '取消';
+ // buttonDialogWidget.titleFont = 16;
+ // buttonDialogWidget.left = 80;
+ // buttonDialogWidget.top = 180;
+ // buttonDialogWidget.width = 140;
+ // buttonDialogWidget.height = 40;
+ // buttonDialogWidget.textAlignment = JVTextAlignmentType.center;
+ // buttonDialogWidget.titleColor = Colors.black.value;
+ // buttonDialogWidget.btnNormalImageName = "log_btn_background";
+ // buttonDialogWidget.btnPressedImageName = "log_btn_background";
+ //
+ // // 添加点击事件监听
+ // jverify.addClikWidgetEventListener(btnDialogWidgetid, (eventId) {
+ // print('receive listener - click dialog widget event :$eventId');
+ // if (btnDialogWidgetid == eventId) {
+ // print('receive listener - 点击【新加 dialog button】');
+ // }
+ // });
+ // dialogWidgetList.add(buttonDialogWidget);
+ // privacyCheckDialogConfig.widgets = dialogWidgetList;
+ // uiConfig.privacyCheckDialogConfig = privacyCheckDialogConfig;
+ // // iOS 二次弹窗添加取消按钮
+ // uiConfig.isAlertPrivacyVc = true;
+ // uiConfig.agreementAlertViewWidgets = dialogWidgetList;
+ // uiConfig.agreementAlertViewLogBtnTextFontSize = 16;
+ // uiConfig.agreementAlertViewTitleTexSize = 18;
+ // uiConfig.agreementAlertViewContentTextFontSize = 14;
+ // final alertLeft = (screenWidth / 2 - 300 / 2).toInt();
+ // uiConfig.agreementAlertViewUIFrames = {
+ // 'superViewFrame': [alertLeft, 100, 300, 220],
+ // 'titleFrame': [20, 10, 260, 40],
+ // 'contentFrame': [25, 70, 250, 120],
+ // 'buttonFrame': [80, 142, 140, 40]
+ // };
+
/// 调用接口设置 UI
- jverify.setCustomAuthorizationView(true, uiConfig,
+ jverify.setCustomAuthorizationView(false, uiConfig,
landscapeConfig: uiConfig);
jverify.loginAuthSyncApi2(
autoDismiss: true,
@@ -267,6 +347,10 @@ class JverifyOneClickLoginManage {
action(event);
// AppLog.log('获取到 loginAuthSyncApi 接口返回数据,code=${event.code},message = ${event.message},operator = ${event.operator}');
});
+ } else {
+ // -10000 表示登录失败
+ action(JVListenerEvent.fromJson(
+ {'code': -10000, 'message': ''}));
}
}
}
diff --git a/pubspec.lock b/pubspec.lock
index 9b40c4b0..b1ead27d 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -621,14 +621,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.3"
- flutter_foreground_task:
- dependency: transitive
- description:
- name: flutter_foreground_task
- sha256: "6cf10a27f5e344cd2ecad0752d3a5f4ec32846d82fda8753b3fe2480ebb832a3"
- url: "https://pub.dev"
- source: hosted
- version: "6.5.0"
flutter_hooks:
dependency: transitive
description:
@@ -714,30 +706,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.18"
- flutter_screen_recording:
- dependency: "direct main"
- description:
- name: flutter_screen_recording
- sha256: "672a3f6c9e7b7438461a3a18ba36d8586189adcb716911d4c41d5d88592fbdda"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.16"
- flutter_screen_recording_platform_interface:
- dependency: transitive
- description:
- name: flutter_screen_recording_platform_interface
- sha256: "9e07f78a2529bc5b6c77d045b392ed4062445543613fcad431c4cc1da57558d7"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.3"
- flutter_screen_recording_web:
- dependency: transitive
- description:
- name: flutter_screen_recording_web
- sha256: f0a1b141beb1a64d8087c5871949a11ea6bf5d2a2fcd9d1341a7cf7b11e41aab
- url: "https://pub.dev"
- source: hosted
- version: "1.0.7"
flutter_screenutil:
dependency: "direct main"
description:
@@ -1341,14 +1309,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.6"
- platform_detect:
- dependency: transitive
- description:
- name: platform_detect
- sha256: a62f99417fc4fa2d099ce0ccdbb1bd3977920f2a64292c326271f049d4bc3a4f
- url: "https://pub.dev"
- source: hosted
- version: "2.1.0"
plugin_platform_interface:
dependency: transitive
description:
@@ -1389,14 +1349,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.1.2"
- pub_semver:
- dependency: transitive
- description:
- name: pub_semver
- sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
qr:
dependency: transitive
description: