diff --git a/.DS_Store b/.DS_Store index a95f5409..82334faf 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/star_lock/android/app/build.gradle b/star_lock/android/app/build.gradle index 11d3360c..a165aa84 100644 --- a/star_lock/android/app/build.gradle +++ b/star_lock/android/app/build.gradle @@ -25,6 +25,26 @@ if (flutterVersionName == null) { apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" +apply plugin: 'com.android.application' +apply plugin: 'android-junk-code' + +androidJunkCode { + variantConfig { + release { + //注意:这里的release是变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease) + packageBase = "cn.hx.plugin.ui" //生成java类根包名 + packageCount = 30 //生成包数量 + activityCountPerPackage = 3 //每个包下生成Activity类数量 + excludeActivityJavaFile = false + //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题 + otherCountPerPackage = 50 //每个包下生成其它类的数量 + methodCountPerClass = 20 //每个类下生成方法数量 + resPrefix = "junk_" //生成的layout、drawable、string等资源名前缀 + drawableCount = 300 //生成drawable资源数量 + stringCount = 300 //生成string数量 + } + } +} android { signingConfigs { @@ -100,7 +120,7 @@ android { dimension "flavor-type" applicationId "com.xhjcn.lock" signingConfig signingConfigs.xhj - resValue "string", "app_name", "鑫锁" + resValue "string", "app_name", "星星锁" manifestPlaceholders.JPUSH_PKGNAME = "com.xhjcn.lock" } } diff --git a/star_lock/android/build.gradle b/star_lock/android/build.gradle index 43480df7..a29dfa3f 100644 --- a/star_lock/android/build.gradle +++ b/star_lock/android/build.gradle @@ -17,6 +17,8 @@ buildscript { classpath 'com.google.gms:google-services:4.3.8' // hms,若不集成华为厂商通道,可直接跳过 classpath 'com.huawei.agconnect:agcp:1.6.0.300' + // 垃圾代码生成器 + classpath "com.github.qq549631030:android-junk-code:1.3.3" } } diff --git a/star_lock/flavorizr.yaml b/star_lock/flavorizr.yaml index fc7e6810..e19dbf97 100644 --- a/star_lock/flavorizr.yaml +++ b/star_lock/flavorizr.yaml @@ -39,7 +39,7 @@ # flutter run --flavor dev -t lib/main_dev.dart # flutter run --flavor pre -t lib/main_pre.dart # flutter run --flavor sky -t lib/main_sky_full.dart -# flutter run --flavor xhj -t lib/main_xhj.dart +# flutter run --flavor xhj -t lib/main_xhj_full.dart # 下面是安卓发布编译命令 # flutter build apk --split-per-abi --release --flavor sky -t lib/main_sky_full.dart diff --git a/star_lock/ios/Flutter/xhjDebug.xcconfig b/star_lock/ios/Flutter/xhjDebug.xcconfig index 4f25a53d..e73372b3 100644 --- a/star_lock/ios/Flutter/xhjDebug.xcconfig +++ b/star_lock/ios/Flutter/xhjDebug.xcconfig @@ -1,6 +1,6 @@ #include "Generated.xcconfig" -FLUTTER_TARGET=lib/main_xhj.dart +FLUTTER_TARGET=lib/main_xhj_full.dart ASSET_PREFIX=xhj -BUNDLE_NAME=鑫锁 -BUNDLE_DISPLAY_NAME=鑫锁 +BUNDLE_NAME=星星锁 +BUNDLE_DISPLAY_NAME=星星锁 diff --git a/star_lock/ios/Flutter/xhjProfile.xcconfig b/star_lock/ios/Flutter/xhjProfile.xcconfig index 4f25a53d..e73372b3 100644 --- a/star_lock/ios/Flutter/xhjProfile.xcconfig +++ b/star_lock/ios/Flutter/xhjProfile.xcconfig @@ -1,6 +1,6 @@ #include "Generated.xcconfig" -FLUTTER_TARGET=lib/main_xhj.dart +FLUTTER_TARGET=lib/main_xhj_full.dart ASSET_PREFIX=xhj -BUNDLE_NAME=鑫锁 -BUNDLE_DISPLAY_NAME=鑫锁 +BUNDLE_NAME=星星锁 +BUNDLE_DISPLAY_NAME=星星锁 diff --git a/star_lock/ios/Flutter/xhjRelease.xcconfig b/star_lock/ios/Flutter/xhjRelease.xcconfig index 4f25a53d..1aa5f0c3 100644 --- a/star_lock/ios/Flutter/xhjRelease.xcconfig +++ b/star_lock/ios/Flutter/xhjRelease.xcconfig @@ -1,6 +1,6 @@ #include "Generated.xcconfig" -FLUTTER_TARGET=lib/main_xhj.dart +FLUTTER_TARGET=lib/main_xhj_lite.dart ASSET_PREFIX=xhj -BUNDLE_NAME=鑫锁 -BUNDLE_DISPLAY_NAME=鑫锁 +BUNDLE_NAME=星星锁 +BUNDLE_DISPLAY_NAME=星星锁 diff --git a/star_lock/ios/Runner.xcodeproj/project.pbxproj b/star_lock/ios/Runner.xcodeproj/project.pbxproj index 8aada0f8..2f63cfe8 100644 --- a/star_lock/ios/Runner.xcodeproj/project.pbxproj +++ b/star_lock/ios/Runner.xcodeproj/project.pbxproj @@ -116,20 +116,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 04BFC44A2BCFE48600688FCA /* RunnerRelease-xhj.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-xhj.entitlements"; sourceTree = ""; }; - 04BFC44B2BD0B50A00688FCA /* RunnerProfile-xhj.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerProfile-xhj.entitlements"; sourceTree = ""; }; - 04BFC44C2BD0B51500688FCA /* RunnerDebug-xhj.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerDebug-xhj.entitlements"; sourceTree = ""; }; - 04BFC44D2BD0B51D00688FCA /* RunnerRelease-sky.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-sky.entitlements"; sourceTree = ""; }; - 04BFC44E2BD0B52300688FCA /* RunnerProfile-sky.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerProfile-sky.entitlements"; sourceTree = ""; }; - 04BFC44F2BD0B52C00688FCA /* RunnerDebug-sky.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerDebug-sky.entitlements"; sourceTree = ""; }; - 04BFC4502BD0B53400688FCA /* RunnerRelease-pre.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-pre.entitlements"; sourceTree = ""; }; - 04BFC4512BD0B53B00688FCA /* RunnerProfile-pre.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerProfile-pre.entitlements"; sourceTree = ""; }; - 04BFC4522BD0B54200688FCA /* RunnerDebug-pre.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerDebug-pre.entitlements"; sourceTree = ""; }; - 04BFC4532BD0B54900688FCA /* RunnerRelease-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-dev.entitlements"; sourceTree = ""; }; - 04BFC4542BD0B55000688FCA /* RunnerProfile-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerProfile-dev.entitlements"; sourceTree = ""; }; - 04BFC4552BD0B55600688FCA /* RunnerDebug-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerDebug-dev.entitlements"; sourceTree = ""; }; - 04BFC4562BD0B55F00688FCA /* RunnerProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerProfile.entitlements; sourceTree = ""; }; - 04BFC4572BD0B56600688FCA /* RunnerRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = RunnerRelease.entitlements; sourceTree = ""; }; + 04BFC4482BCFE05100688FCA /* RunnerRelease-xhj.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-xhj.entitlements"; sourceTree = ""; }; 0BEB3ADCCEC961E2916B9004 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 0D02C18E16914A687A4A1AC2 /* devDebug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = devDebug.xcconfig; path = Flutter/devDebug.xcconfig; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; @@ -406,20 +393,7 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( - 04BFC4572BD0B56600688FCA /* RunnerRelease.entitlements */, - 04BFC4562BD0B55F00688FCA /* RunnerProfile.entitlements */, - 04BFC4552BD0B55600688FCA /* RunnerDebug-dev.entitlements */, - 04BFC4542BD0B55000688FCA /* RunnerProfile-dev.entitlements */, - 04BFC4532BD0B54900688FCA /* RunnerRelease-dev.entitlements */, - 04BFC4522BD0B54200688FCA /* RunnerDebug-pre.entitlements */, - 04BFC4512BD0B53B00688FCA /* RunnerProfile-pre.entitlements */, - 04BFC4502BD0B53400688FCA /* RunnerRelease-pre.entitlements */, - 04BFC44F2BD0B52C00688FCA /* RunnerDebug-sky.entitlements */, - 04BFC44E2BD0B52300688FCA /* RunnerProfile-sky.entitlements */, - 04BFC44D2BD0B51D00688FCA /* RunnerRelease-sky.entitlements */, - 04BFC44C2BD0B51500688FCA /* RunnerDebug-xhj.entitlements */, - 04BFC44B2BD0B50A00688FCA /* RunnerProfile-xhj.entitlements */, - 04BFC44A2BCFE48600688FCA /* RunnerRelease-xhj.entitlements */, + 04BFC4482BCFE05100688FCA /* RunnerRelease-xhj.entitlements */, 3364C3F32B0C902100AA5ABC /* lcokStarMain.png */, 82C026552AEB6C050011FE6A /* img */, 82C026532AE8AC6D0011FE6A /* AliyunEmasServices-Info.plist */, @@ -852,8 +826,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = 22D858E988707FF26E068457 /* Pods-Runner.debug-xhj.xcconfig */; buildSettings = { - CODE_SIGN_ENTITLEMENTS = "Runner/RunnerDebug-xhj.entitlements"; - DEVELOPMENT_TEAM = 7D53BZAN75; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + DEVELOPMENT_TEAM = P8997RW3V8; PRODUCT_NAME = Runner; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; @@ -866,8 +840,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = D62237D2D011BDC27FB2BC28 /* Pods-Runner.profile-xhj.xcconfig */; buildSettings = { - CODE_SIGN_ENTITLEMENTS = "Runner/RunnerProfile-xhj.entitlements"; - DEVELOPMENT_TEAM = 7D53BZAN75; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + DEVELOPMENT_TEAM = P8997RW3V8; PRODUCT_NAME = Runner; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; @@ -881,7 +855,7 @@ baseConfigurationReference = CDC2B8ED804B514A774F187D /* Pods-Runner.release-xhj.xcconfig */; buildSettings = { CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-xhj.entitlements"; - DEVELOPMENT_TEAM = 7D53BZAN75; + DEVELOPMENT_TEAM = P8997RW3V8; PRODUCT_NAME = Runner; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; diff --git a/star_lock/lib/flavors.dart b/star_lock/lib/flavors.dart index 7d7930e4..734a2c63 100644 --- a/star_lock/lib/flavors.dart +++ b/star_lock/lib/flavors.dart @@ -109,8 +109,8 @@ class F { case Flavor.sky: return 'https://lock.skychip.top'; case Flavor.xhj: - // return 'https://lock.xhjcn.ltd'; - return 'https://pre.lock.star-lock.cn'; + return 'https://lock.xhjcn.ltd'; + // return 'https://pre.lock.star-lock.cn'; default: throw Exception('flavor[$name] apiPrefix not found'); } diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 0dece880..b6789ada 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -1,10 +1,15 @@ import 'dart:async'; +import 'package:colorfilter_generator/addons.dart'; +import 'package:colorfilter_generator/colorfilter_generator.dart'; +import 'package:colorfilter_generator/presets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:intl/intl.dart'; +import 'package:star_lock/flavors.dart'; import 'package:star_lock/tools/showTipView.dart'; +import 'package:star_lock/widget/flavors_img.dart'; import '../../../appRouters.dart'; import '../../../app_settings/app_colors.dart'; @@ -68,6 +73,7 @@ class _LockDetailPageState extends State } StreamSubscription? _lockRefreshLockDetailInfoDataEvent; + void _initRefreshLockDetailInfoDataEventAction() { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus _lockRefreshLockDetailInfoDataEvent = @@ -224,24 +230,33 @@ class _LockDetailPageState extends State Widget topWidget() { return Column( children: [ - SizedBox(height: 50.h), + F.sw( + defaultCall: () => SizedBox(height: 50.h), + xhjCall: () => Padding( + padding: EdgeInsets.only( + top: 12.h, + left: 15.w, + bottom: 16.h, + right: 15.w, + ), + child: adminInfoView(center: false, add: true), + ), + ), Stack( - alignment: Alignment.center, children: [ - SizedBox( - width: 1.sw - 120.w * 2, - child: Center( - child: Text( - state.lockAlias.value, - style: TextStyle( - fontSize: 22.sp, - fontWeight: FontWeight.w400, - color: state.isOpenPassageMode.value == 1 - ? AppColors.openPassageModeColor - : AppColors.darkGrayTextColor), - ))), + Center( + child: Text( + state.lockAlias.value, + style: TextStyle( + fontSize: 22.sp, + fontWeight: FontWeight.w400, + color: state.isOpenPassageMode.value == 1 + ? AppColors.openPassageModeColor + : AppColors.darkGrayTextColor), + )), Positioned( child: Column( + mainAxisSize: MainAxisSize.min, children: [ GestureDetector( onTap: () { @@ -252,20 +267,24 @@ class _LockDetailPageState extends State child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - Image.asset( - showElectricIcon(state.electricQuantity.value), - width: 30.w, - height: 24.w), + FlavorsImg( + child: Image.asset( + showElectricIcon(state.electricQuantity.value), + width: 30.w, + height: 24.w), + ), SizedBox(width: 2.w), Text("${state.electricQuantity.value}%", style: TextStyle( fontSize: 18.sp, color: AppColors.darkGrayTextColor)), SizedBox(width: 2.w), - Icon( - Icons.info, // 使用内置的 warning 图标,它是一个叹号 - color: AppColors.mainColor, // 设置图标颜色为红色 - size: 25.w, // 设置图标大小为 30 + FlavorsImg( + child: Icon( + Icons.info, // 使用内置的 warning 图标,它是一个叹号 + color: AppColors.mainColor, // 设置图标颜色为红色 + size: 25.w, // 设置图标大小为 30 + ), ), SizedBox(width: 20.w), ], @@ -274,18 +293,24 @@ class _LockDetailPageState extends State Row( mainAxisAlignment: MainAxisAlignment.end, children: [ - Image.asset(showElectricIcon(state.electricQuantity.value), - width: 30.w, height: 24.w), + FlavorsImg( + child: Image.asset( + showElectricIcon(state.electricQuantity.value), + width: 30.w, + height: 24.w), + ), SizedBox(width: 2.w), Text("--%", style: TextStyle( fontSize: 18.sp, color: AppColors.darkGrayTextColor)), SizedBox(width: 2.w), - Icon( - Icons.info, // 使用内置的 warning 图标,它是一个叹号 - color: AppColors.mainColor, // 设置图标颜色为红色 - size: 25.w, // 设置图标大小为 30 + FlavorsImg( + child: Icon( + Icons.info, // 使用内置的 warning 图标,它是一个叹号 + color: AppColors.mainColor, // 设置图标颜色为红色 + size: 25.w, // 设置图标大小为 30 + ), ), SizedBox(width: 20.w), ], @@ -294,7 +319,10 @@ class _LockDetailPageState extends State )) ], ), - SizedBox(height: 30.h), + F.sw( + defaultCall: () => SizedBox(height: 30.h), + xhjCall: () => SizedBox(height: 15.h), + ), Container( // width: 1.sw, color: Colors.white, @@ -317,37 +345,43 @@ class _LockDetailPageState extends State setState(() { startUnLock(); }); - // startUnLock(); } : null, child: Stack( children: [ - Image.asset( - state.openDoorBtnisUneable.value == false - ? 'images/main/icon_main_openLockBtn_grey.png' - : (state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_center.png' - : 'images/main/icon_main_openLockBtn_center.png'), - width: 330.w, - height: 330.w, + FlavorsImg( + child: Image.asset( + state.openDoorBtnisUneable.value == false + ? 'images/main/icon_main_openLockBtn_grey.png' + : (state.isOpenPassageMode.value == 1 + ? 'images/main/icon_main_normallyOpenMode_center.png' + : 'images/main/icon_main_openLockBtn_center.png'), + width: 330.w, + height: 330.w, + // color: AppColors.primaryTopColor, + ), ), state.openDoorBtnisUneable.value == false ? Positioned( - child: Image.asset( - 'images/main/icon_main_openLockBtn_grey.png', - width: 330.w, - height: 330.w, + child: FlavorsImg( + child: Image.asset( + 'images/main/icon_main_openLockBtn_grey.png', + width: 330.w, + height: 330.w, + ), ), ) : state.openLockBtnState.value == 1 ? buildRotationTransition() : Positioned( + child: FlavorsImg( child: Image.asset( - state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_circle.png' - : 'images/main/icon_main_openLockBtn_circle.png', - width: 330.w, - height: 330.w, + state.isOpenPassageMode.value == 1 + ? 'images/main/icon_main_normallyOpenMode_circle.png' + : 'images/main/icon_main_openLockBtn_circle.png', + width: 330.w, + height: 330.w, + ), )), ], ), @@ -358,21 +392,6 @@ class _LockDetailPageState extends State SizedBox( height: 30.h, ), - // Row( - // mainAxisAlignment: MainAxisAlignment.center, - // children: [ - // Text( - // '门已上锁', - // style: TextStyle( - // fontSize: 26.sp, - // color: Colors.black, - // fontWeight: FontWeight.w500), - // ), - // ], - // ), - // SizedBox( - // height: 6.h, - // ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -388,47 +407,7 @@ class _LockDetailPageState extends State SizedBox( height: 30.h, ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - 'images/icon_electronicKey_admin.png', - width: 24.w, - height: 20.w, - color: AppColors.blackColor, //应根据状态显示(当前角色为超级管理员 应显示蓝色图标) - ), - SizedBox(width: 6.w), - Text( - state.keyInfos.value.isLockOwner == 1 - ? TranslationLoader.lanKeys!.superAdmin!.tr - : (state.keyInfos.value.keyRight == 1 - ? TranslationLoader.lanKeys!.authorizedAdmin!.tr - : TranslationLoader.lanKeys!.normalUser!.tr), - style: TextStyle( - fontSize: 20.sp, color: AppColors.darkGrayTextColor), - ), - SizedBox(width: 80.w), - Image.asset( - state.keyInfos.value.remoteEnable == 1 - ? 'images/main/icon_main_remoteUnlocking.png' - : 'images/main/icon_main_remoteUnlocking_grey.png', - width: 24.w, - height: 20.w, - // color: state.keyInfos.value.remoteEnable == 1 - // ? AppColors.btnDisableColor - // : AppColors.mainColor, - ), - SizedBox(width: 6.w), - Text( - TranslationLoader.lanKeys!.gatewayDevice!.tr, - style: TextStyle( - fontSize: 20.sp, - color: state.keyInfos.value.remoteEnable == 1 - ? AppColors.mainColor - : AppColors.btnDisableColor), - ), - ], - ), + F.sw(defaultCall: () => adminInfoView(), xhjCall: () => SizedBox()), SizedBox( height: 20.h, ), @@ -442,6 +421,77 @@ class _LockDetailPageState extends State ); } + Widget adminInfoView({bool center = true, bool add = false}) { + return Row( + mainAxisAlignment: + center ? MainAxisAlignment.center : MainAxisAlignment.start, + children: [ + Image.asset( + 'images/icon_electronicKey_admin.png', + width: 24.w, + height: 20.w, + color: AppColors.blackColor, //应根据状态显示(当前角色为超级管理员 应显示蓝色图标) + ), + SizedBox(width: 6.w), + Text( + state.keyInfos.value.isLockOwner == 1 + ? TranslationLoader.lanKeys!.superAdmin!.tr + : (state.keyInfos.value.keyRight == 1 + ? TranslationLoader.lanKeys!.authorizedAdmin!.tr + : TranslationLoader.lanKeys!.normalUser!.tr), + style: TextStyle(fontSize: 20.sp, color: AppColors.darkGrayTextColor), + ), + if (add) SizedBox(width: 20.w) else SizedBox(width: 80.w), + FlavorsImg( + child: Image.asset( + state.keyInfos.value.remoteEnable == 1 + ? 'images/main/icon_main_remoteUnlocking.png' + : 'images/main/icon_main_remoteUnlocking_grey.png', + width: 24.w, + height: 20.w, + ), + ), + SizedBox(width: 6.w), + Text( + TranslationLoader.lanKeys!.gatewayDevice!.tr, + style: TextStyle( + fontSize: 20.sp, + color: state.keyInfos.value.remoteEnable == 1 + ? AppColors.mainColor + : AppColors.btnDisableColor), + ), + if (add) ...[ + const Spacer(), + GestureDetector( + onTap: () { + Get.toNamed(Routers.selectLockTypePage); + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + FlavorsImg( + child: Image.asset( + 'images/mine/icon_mine_main_addLock.png', + width: 24.w, + height: 20.w, + ), + ), + Text( + TranslationLoader.lanKeys!.addDevice!.tr, + style: TextStyle( + fontSize: 20.sp, color: AppColors.darkGrayTextColor), + ) + ], + ), + ), + ), + ] + ], + ); + } + //旋转动画 Widget buildRotationTransition() { return Positioned( @@ -451,12 +501,14 @@ class _LockDetailPageState extends State //动画控制器 turns: state.animationController!, //将要执行动画的子view - child: Image.asset( - state.isOpenPassageMode.value == 1 - ? 'images/main/icon_main_normallyOpenMode_circle.png' - : 'images/main/icon_main_openLockBtn_circle.png', - width: 330.w, - height: 330.w, + child: FlavorsImg( + child: Image.asset( + state.isOpenPassageMode.value == 1 + ? 'images/main/icon_main_normallyOpenMode_circle.png' + : 'images/main/icon_main_openLockBtn_circle.png', + width: 330.w, + height: 330.w, + ), ), ), ); @@ -487,7 +539,7 @@ class _LockDetailPageState extends State return SizedBox( width: ScreenUtil().screenWidth - 20.w, child: GridView.count( - crossAxisCount: 4, + crossAxisCount: F.sw(defaultCall: () => 4, xhjCall: () => 3), // childAspectRatio: 3, crossAxisSpacing: 20.w, mainAxisSpacing: 0.h, @@ -532,12 +584,14 @@ class _LockDetailPageState extends State return SizedBox( width: ScreenUtil().screenWidth - 20.w, child: GridView.count( - crossAxisCount: 4, + crossAxisCount: F.sw(defaultCall: () => 4, xhjCall: () => 3), // childAspectRatio: 3, crossAxisSpacing: 25.h, mainAxisSpacing: 0.h, physics: const NeverScrollableScrollPhysics(), - children: getBottomWidget()), + children: F.sw( + defaultCall: () => getBottomWidget(), + xhjCall: () => getBottomWidget().reversed.toList())), ); } @@ -554,7 +608,7 @@ class _LockDetailPageState extends State // 普通用户 List getNormalWidget() { - var showWidgetArr = []; + List showWidgetArr = []; // 考勤 if (state.isAttendance.value == 1) { showWidgetArr.add(bottomItem( @@ -630,9 +684,6 @@ class _LockDetailPageState extends State TranslationLoader.lanKeys!.card!.tr, state.openDoorBtnisUneable.value, state.bottomBtnisEable.value, () { - // logic.showToast("普通用户第一次需要在锁旁边操作哦。", something: () { - // logic.showEasyLoading(); - // }); Get.toNamed(Routers.cardListPage, arguments: { "lockId": state.keyInfos.value.lockId, }); @@ -727,10 +778,6 @@ class _LockDetailPageState extends State arguments: {"keyInfo": state.keyInfos.value}); })); } - // bottomItem('images/main/icon_main_authorizedAdmin.png', TranslationLoader.lanKeys!.authorizedAdmin!.tr, state.bottomBtnisUneable.value, () { - // Get.toNamed(Routers.authorizedAdminListPage, - // arguments: {"keyInfo": state.keyInfos.value}); - // }) var endWiddget = []; endWiddget.add( @@ -788,8 +835,8 @@ class _LockDetailPageState extends State // Widget bottomItem(String iconUrl, String name, bool openDoorBtnisUneable, bool bottomBtnisEable, Function() onClick) { - var width = 42.w; - var height = 42.h; + var width = F.sw(defaultCall: () => 42.w, xhjCall: () => 63.w); + var height = F.sw(defaultCall: () => 42.h, xhjCall: () => 63.h); return GestureDetector( onTap: openDoorBtnisUneable ? (bottomBtnisEable @@ -807,16 +854,16 @@ class _LockDetailPageState extends State SizedBox( width: width, height: height, - child: Image.asset( - iconUrl, - width: width, - height: height, - color: openDoorBtnisUneable - ? (bottomBtnisEable - ? AppColors.mainColor - : AppColors.lockDetailBottomBtnUneable) - : AppColors.lockDetailBottomBtnUneable, - // fit: BoxFit.fitWidth + child: FlavorsImg( + child: Image.asset(iconUrl, + width: width, + height: height, + color: openDoorBtnisUneable + ? (bottomBtnisEable + ? AppColors.mainColor + : AppColors.lockDetailBottomBtnUneable) + : AppColors.lockDetailBottomBtnUneable, + fit: BoxFit.fitWidth), ), ), SizedBox(height: 10.w), @@ -933,25 +980,6 @@ class _LockDetailPageState extends State return formattedTime; } - // void showDeletAlertDialog(BuildContext context, String dateStr) { - // showCupertinoDialog( - // context: context, - // builder: (context) { - // return CupertinoAlertDialog( - // content: Text('锁更新时间:$dateStr'), - // actions: [ - // CupertinoDialogAction( - // child: Text(TranslationLoader.lanKeys!.sure!.tr), - // onPressed: () { - // Get.back(); - // }, - // ), - // ], - // ); - // }, - // ); - // } - startOpenLock() { if (state.openLockBtnState.value == 1) { return; @@ -996,15 +1024,6 @@ class _LockDetailPageState extends State } } - // @override - // void didChangeDependencies() { - // // TODO: implement didChangeDependencies - // super.didChangeDependencies(); - // - // /// 路由订阅 - // AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!); - // } - @override void dispose() { // TODO: implement dispose @@ -1043,12 +1062,6 @@ class _LockDetailPageState extends State BlueManage().stopScan(); BlueManage().disconnect(); state.openLockBtnState.value = 0; - - // if(state.animationController != null){ - // state.animationController.reset(); - // state.animationController.forward(); - // state.animationController.dispose(); - // } } /// 从下级返回 当前界面即将出现 @@ -1068,9 +1081,5 @@ class _LockDetailPageState extends State logic.cancelBlueConnetctToastTimer(); BlueManage().stopScan(); state.openLockBtnState.value = 0; - - // if (state.animationController!.isAnimating) { - // state.animationController!.stop(); - // } } } diff --git a/star_lock/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart b/star_lock/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart index c7d7190d..0e050f5f 100644 --- a/star_lock/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart +++ b/star_lock/lib/main/lockMian/lockMain/xhj/lockMain_xhj_page.dart @@ -79,7 +79,7 @@ class _StarLockMainXHJPageState extends State ), ), bottomNavigationBar: Container( - height: 100.h + Get.bottomBarHeight, + padding: EdgeInsets.only(top: 20.h), decoration: const BoxDecoration( color: Colors.transparent, border: Border( @@ -89,28 +89,32 @@ class _StarLockMainXHJPageState extends State ), ), ), - child: Row( - children: [ - // navigationBarItem(Icons.start, '场景', false, () { - // logic.setIndex(0); - // }), + child: SafeArea( + top: false, + child: Row( + children: [ + // navigationBarItem(Icons.start, '场景', false, () { + // logic.setIndex(0); + // }), - navigationBarItem(Icons.devices, - TranslationLoader.lanKeys!.device!.tr, logic, 0, () { - logic.setIndex(0); - }), - navigationBarItem(Icons.message, - TranslationLoader.lanKeys!.message!.tr, logic, 1, () { - logic.setIndex(1); - }), - navigationBarItem(Icons.shopping_cart, '商城'.tr, logic, 2, () { - logic.setIndex(2); - }), - navigationBarItem(Icons.account_circle, '我的'.tr, logic, 3, - () { - logic.setIndex(3); - }), - ], + navigationBarItem(Icons.devices, + TranslationLoader.lanKeys!.device!.tr, logic, 0, () { + logic.setIndex(0); + }), + navigationBarItem(Icons.message, + TranslationLoader.lanKeys!.message!.tr, logic, 1, () { + logic.setIndex(1); + }), + navigationBarItem(Icons.shopping_cart, '商城'.tr, logic, 2, + () { + logic.setIndex(2); + }), + navigationBarItem(Icons.account_circle, '我的'.tr, logic, 3, + () { + logic.setIndex(3); + }), + ], + ), ), ), ); diff --git a/star_lock/lib/main_xhj.dart b/star_lock/lib/main_xhj_full.dart similarity index 100% rename from star_lock/lib/main_xhj.dart rename to star_lock/lib/main_xhj_full.dart diff --git a/star_lock/lib/main_xhj_lite.dart b/star_lock/lib/main_xhj_lite.dart new file mode 100644 index 00000000..7546bbe0 --- /dev/null +++ b/star_lock/lib/main_xhj_lite.dart @@ -0,0 +1,9 @@ +import 'flavors.dart'; + +import 'main.dart' as runner; + +Future main() async { + F.appFlavor = Flavor.xhj; + F.isLite = true; + await runner.main(); +} diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart index 7942bf90..61b95e05 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart @@ -161,6 +161,16 @@ class _MinePersonInfoPageState extends State { Get.toNamed(Routers.valueAddedServicesPage); }, ), + if (widget.showAbout) + CommonItem( + leftTitel: TranslationLoader.lanKeys!.set!.tr, + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.back(); + Get.toNamed(Routers.mineSetPage); + }, + ), if (widget.showAbout) CommonItem( leftTitel: TranslationLoader.lanKeys!.about!.tr, diff --git a/star_lock/lib/tools/pay/wx_pay_tool.dart b/star_lock/lib/tools/pay/wx_pay_tool.dart index fe40b1b3..d5231c51 100644 --- a/star_lock/lib/tools/pay/wx_pay_tool.dart +++ b/star_lock/lib/tools/pay/wx_pay_tool.dart @@ -15,7 +15,7 @@ class WxPayTool { static Future pay(Payment payment, WeChatResponseSubscriber listener) async { if (!isInit) { isInit = true; - await init(payment.appId, '123'); + await init(payment.appId, 'https://lock.skychip.top/apple-app-site-association.json'); //回调 responseListener(WeChatResponse response) { if (response is WeChatPaymentResponse) { diff --git a/star_lock/lib/widget/flavors_img.dart b/star_lock/lib/widget/flavors_img.dart new file mode 100644 index 00000000..72f2d7bb --- /dev/null +++ b/star_lock/lib/widget/flavors_img.dart @@ -0,0 +1,27 @@ +import 'package:colorfilter_generator/addons.dart'; +import 'package:colorfilter_generator/colorfilter_generator.dart'; +import 'package:flutter/material.dart'; +import 'package:star_lock/flavors.dart'; + +class FlavorsImg extends StatelessWidget { + FlavorsImg({required this.child, key}); + + Widget child; + + ColorFilterGenerator myFilter = ColorFilterGenerator(name: "xhj", filters: [ + // ColorFilterAddons.addictiveColor(1, 22, 93), + ColorFilterAddons.addictiveColor(1, 22, 93), + // ColorFilterAddons.grayscale(),z + ]); + + @override + Widget build(BuildContext context) { + if (F.appFlavor != Flavor.xhj) { + return child; + } + return ColorFiltered( + colorFilter: ColorFilter.matrix(myFilter.matrix), + child: child, + ); + } +} diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml index d2f41b92..a01d9c95 100644 --- a/star_lock/pubspec.yaml +++ b/star_lock/pubspec.yaml @@ -32,8 +32,10 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # 1.0.27+2024041101:打包提审 # 1.0.27+2024041102:打包预发布环境给田总测试 # 1.0.28+2024041702:打包给欧阳回归测试 +# 1.0.27+2024041702 打包星星锁提审华为 +# 1.0.27+2024041703 打包星星锁提审ios -version: 1.0.28+2024041702 +version: 1.0.27+2024041803 environment: sdk: '>=2.12.0 <3.0.0' @@ -161,6 +163,7 @@ dependencies: fluwx: ^4.5.5 system_settings: ^2.0.0 expandable: ^5.0.1 + colorfilter_generator: ^0.0.8 dev_dependencies: