From e555d0df5bfae77ef6c64c7fb605c151a99020ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Mon, 10 Jul 2023 17:50:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes star_lock/.gitignore | 44 + star_lock/.metadata | 45 + star_lock/README.md | 16 + star_lock/analysis_options.yaml | 29 + star_lock/android/.gitignore | 13 + star_lock/android/app/build.gradle | 71 ++ .../android/app/src/debug/AndroidManifest.xml | 8 + .../android/app/src/main/AndroidManifest.xml | 34 + .../com/example/star_lock/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 11 + star_lock/android/build.gradle | 31 + star_lock/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + star_lock/android/settings.gradle | 11 + star_lock/images/ic_menu_up_arrow.png | Bin 0 -> 792 bytes star_lock/images/icon_item_checked.png | Bin 0 -> 5067 bytes star_lock/images/icon_lock.png | Bin 0 -> 4010 bytes star_lock/images/icon_main_1024.png | Bin 0 -> 39238 bytes star_lock/images/icon_right.png | Bin 0 -> 2433 bytes star_lock/images/icon_round_selet.png | Bin 0 -> 1689 bytes star_lock/images/icon_round_unSelet.png | Bin 0 -> 1539 bytes star_lock/images/icon_unHaveData.png | Bin 0 -> 8444 bytes star_lock/images/lan/lan_en.json | 206 +++++ star_lock/images/lan/lan_keys.json | 207 +++++ star_lock/images/lan/lan_zh.json | 206 +++++ .../images/main/icon_addDoorMagnetic_tip.png | Bin 0 -> 31949 bytes .../main/icon_addWirelessKeyboardTip.png | Bin 0 -> 61712 bytes .../icon_addWirelessKeyboardUnLightOnTip.png | Bin 0 -> 11278 bytes star_lock/images/main/icon_main_addLock.png | Bin 0 -> 2727 bytes .../images/main/icon_main_authorizedAdmin.png | Bin 0 -> 1485 bytes star_lock/images/main/icon_main_cell.png | Bin 0 -> 2916 bytes .../images/main/icon_main_clockingIn.png | Bin 0 -> 1767 bytes .../images/main/icon_main_electronicKey.png | Bin 0 -> 1777 bytes .../images/main/icon_main_fingerprint.png | Bin 0 -> 3016 bytes star_lock/images/main/icon_main_icCard.png | Bin 0 -> 3028 bytes .../main/icon_main_lockSet_lockEscalation.png | Bin 0 -> 1619 bytes .../images/main/icon_main_openLockBtn.png | Bin 0 -> 7632 bytes .../images/main/icon_main_operatingRecord.png | Bin 0 -> 1647 bytes star_lock/images/main/icon_main_password.png | Bin 0 -> 1700 bytes .../images/main/icon_main_remoteControl.png | Bin 0 -> 1654 bytes .../images/main/icon_main_remoteUnlocking.png | Bin 0 -> 4528 bytes star_lock/images/main/icon_main_search.png | Bin 0 -> 4594 bytes star_lock/images/main/icon_main_set.png | Bin 0 -> 2135 bytes star_lock/images/main/mainLeft_menu_icon.png | Bin 0 -> 3592 bytes .../images/mine/icon_mine_main_addLock.png | Bin 0 -> 1454 bytes .../mine/icon_mine_main_defaultAvatar.png | Bin 0 -> 5513 bytes .../images/mine/icon_mine_main_gateway.png | Bin 0 -> 1595 bytes .../images/mine/icon_mine_main_message.png | Bin 0 -> 1635 bytes .../mine/icon_mine_main_moreServices.png | Bin 0 -> 1542 bytes star_lock/images/mine/icon_mine_main_set.png | Bin 0 -> 1614 bytes .../mine/icon_mine_main_supportStaff.png | Bin 0 -> 1651 bytes .../images/tabbar/icon_tab_main_selet.png | Bin 0 -> 482076 bytes .../images/tabbar/icon_tab_main_unselet.png | Bin 0 -> 358737 bytes star_lock/images/tabbar/icon_tab_my_selet.png | Bin 0 -> 7593 bytes .../images/tabbar/icon_tab_my_unselet.png | Bin 0 -> 6847 bytes star_lock/ios/.gitignore | 34 + star_lock/ios/Flutter/AppFrameworkInfo.plist | 26 + star_lock/ios/Flutter/Debug.xcconfig | 2 + star_lock/ios/Flutter/Release.xcconfig | 2 + star_lock/ios/Podfile | 38 + star_lock/ios/Podfile.lock | 41 + .../ios/Runner.xcodeproj/project.pbxproj | 532 +++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 ++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + star_lock/ios/Runner/AppDelegate.h | 6 + star_lock/ios/Runner/AppDelegate.m | 13 + .../AppIcon.appiconset/Contents.json | 122 +++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + star_lock/ios/Runner/Info.plist | 53 ++ star_lock/ios/Runner/main.m | 9 + star_lock/lib/appRouters.dart | 367 ++++++++ star_lock/lib/app_settings/app_colors.dart | 122 +++ star_lock/lib/app_settings/app_settings.dart | 119 +++ star_lock/lib/app_settings/app_style.dart | 226 +++++ star_lock/lib/app_settings/app_theme.dart | 132 +++ star_lock/lib/baseWidget.dart | 47 + .../starLock_forgetPassword_page.dart | 101 +++ .../lib/login/login/starLock_login_page.dart | 139 +++ .../register/starLock_register_page.dart | 209 +++++ .../seletCountryRegion_page.dart | 31 + star_lock/lib/main.dart | 136 +++ .../authorizedAdminManage_page.dart | 32 + .../authorizedAdminManage_tabbar.dart | 89 ++ .../authorizedAdmin/authorizedAdmin_page.dart | 242 +++++ .../authorizedAdminDetail_page.dart | 176 ++++ .../authorizedAdminList_page.dart | 133 +++ .../volumeAuthorizationLockManage_page.dart | 31 + .../volumeAuthorizationLockManage_tabbar.dart | 88 ++ .../volumeAuthorizationLock_page.dart | 186 ++++ .../electronicKeyDetail_page.dart | 191 ++++ .../electronicKeyDetailChangeDate_page.dart | 107 +++ .../electronicKeyList_page.dart | 137 +++ .../electronicKeyPeriodValidity_page.dart | 140 +++ .../massSendElectronicKey_page.dart | 162 ++++ .../massSendElectronicKeyManage_page.dart | 31 + .../massSendElectronicKeyManage_tabbar.dart | 89 ++ .../sendElectronicKey_page.dart | 280 ++++++ .../sendElectronicKeyManage_page.dart | 31 + .../sendElectronicKeyManage_tabbar.dart | 90 ++ .../sendEmailNotification_page.dart | 76 ++ .../automaticBlocking_page.dart | 113 +++ .../adminOpenLockPassword_page.dart | 59 ++ .../basicInformation_page.dart | 55 ++ .../editLockName/editLockName_page.dart | 45 + .../lockSeletGrouping_page.dart | 53 ++ .../uploadElectricQuantity_page.dart | 55 ++ .../burglarAlarm/burglarAlarm_page.dart | 55 ++ .../lcokSet/diagnose/diagnose_page.dart | 48 + .../addDoorMagnetic/addDoorMagnetic_page.dart | 73 ++ .../doorMagneticList/doorMagnetic_page.dart | 114 +++ .../nearbyDoorMagnetic_page.dart | 74 ++ .../ImportOtherLockData_page.dart | 143 +++ .../lockEscalation/lockEscalation_page.dart | 56 ++ .../lcokSet/lockSet/lockSet_page.dart | 121 +++ .../lockSoundSet/lockSoundSet_page.dart | 113 +++ .../lcokSet/lockTime/lockTime_page.dart | 60 ++ .../markedHouseState_page.dart | 57 ++ .../normallyOpenMode_page.dart | 197 +++++ .../remoteUnlocking/remoteUnlocking_page.dart | 56 ++ .../lcokSet/resetButton/resetButton_page.dart | 57 ++ .../unlockQRCode/unlockQRCode_page.dart | 70 ++ .../lcokSet/uploadData/uploadData_page.dart | 48 + .../addWirelessKeyboard_page.dart | 81 ++ ...WirelessKeyboardScreenNotLightOn_page.dart | 76 ++ .../seletWirelessKeyboard_page.dart | 74 ++ .../wirelessKeyboard_page.dart | 108 +++ .../lockDetail/lockDetail_page.dart | 150 ++++ .../lockOperatingRecord_page.dart | 156 ++++ .../otherTypeAddKey/otherTypeAddKey_page.dart | 200 +++++ .../otherTypeKeyDetail_page.dart | 195 ++++ .../otherTypeKeyList_page.dart | 153 ++++ .../otherTypeKeyManage_page.dart | 51 ++ .../otherTypeKeyManage_tabbar.dart | 81 ++ .../passwordKeyDetail_page.dart | 175 ++++ .../passwordKeyList/passwordKeyList_page.dart | 132 +++ .../passwordKeyManage_page.dart | 32 + .../passwordKeyManage_tabbar.dart | 91 ++ .../passwordKey_perpetual_page.dart | 263 ++++++ .../lib/main/lockMian/lockMain_page.dart | 147 ++++ .../mine/addLock/addLock/addLock_page.dart | 69 ++ .../addLock/lockAddress/lockAddress_page.dart | 32 + .../addLock/nearbyLock/nearbyLock_page.dart | 73 ++ .../mine/addLock/saveLock/saveLock_page.dart | 100 +++ .../seletLockType/seletLockType_page.dart | 135 +++ .../mineMultiLanguage_logic.dart | 14 + .../mineMultiLanguage_page.dart | 49 ++ .../mineMultiLanguage_state.dart | 24 + star_lock/lib/mine/mineSet/mineSet_page.dart | 137 +++ star_lock/lib/mine/mine_page.dart | 130 +++ star_lock/lib/navPages.dart | 83 ++ star_lock/lib/starLockApplication.dart | 20 + .../tools/CustomUnderlineTabIndicator.dart | 92 ++ star_lock/lib/tools/app_manager.dart | 45 + star_lock/lib/tools/commonItem.dart | 50 ++ star_lock/lib/tools/device_info_service.dart | 42 + star_lock/lib/tools/forgetPwdInput.dart | 48 + star_lock/lib/tools/jh_pop_menus.dart | 220 +++++ star_lock/lib/tools/loginInput.dart | 56 ++ star_lock/lib/tools/noData.dart | 17 + .../lib/tools/platform_info_services.dart | 14 + star_lock/lib/tools/screen_utils.dart | 140 +++ star_lock/lib/tools/showBottomSheetTool.dart | 107 +++ star_lock/lib/tools/store_service.dart | 57 ++ star_lock/lib/tools/submitBtn.dart | 71 ++ star_lock/lib/tools/titleAppBar.dart | 38 + star_lock/lib/translations/app_dept.dart | 79 ++ star_lock/lib/translations/lanKeyEntity.dart | 833 ++++++++++++++++++ star_lock/lib/translations/trans_lib.dart | 9 + .../lib/translations/translation_loader.dart | 42 + .../lib/translations/translation_message.dart | 13 + star_lock/linux/.gitignore | 1 + star_lock/linux/CMakeLists.txt | 138 +++ star_lock/linux/flutter/CMakeLists.txt | 88 ++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../linux/flutter/generated_plugins.cmake | 23 + star_lock/linux/main.cc | 6 + star_lock/linux/my_application.cc | 104 +++ star_lock/linux/my_application.h | 18 + star_lock/macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../Flutter/GeneratedPluginRegistrant.swift | 16 + star_lock/macos/Podfile | 40 + .../macos/Runner.xcodeproj/project.pbxproj | 572 ++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + star_lock/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 ++++++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + star_lock/macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + star_lock/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + star_lock/macos/Runner/Release.entitlements | 8 + star_lock/pubspec.yaml | 115 +++ star_lock/test/widget_test.dart | 30 + star_lock/web/favicon.png | Bin 0 -> 917 bytes star_lock/web/icons/Icon-192.png | Bin 0 -> 5292 bytes star_lock/web/icons/Icon-512.png | Bin 0 -> 8252 bytes star_lock/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes star_lock/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes star_lock/web/index.html | 58 ++ star_lock/web/manifest.json | 35 + star_lock/windows/.gitignore | 17 + star_lock/windows/CMakeLists.txt | 101 +++ star_lock/windows/flutter/CMakeLists.txt | 104 +++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 23 + star_lock/windows/runner/CMakeLists.txt | 39 + star_lock/windows/runner/Runner.rc | 121 +++ star_lock/windows/runner/flutter_window.cpp | 61 ++ star_lock/windows/runner/flutter_window.h | 33 + star_lock/windows/runner/main.cpp | 43 + star_lock/windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes star_lock/windows/runner/runner.exe.manifest | 20 + star_lock/windows/runner/utils.cpp | 64 ++ star_lock/windows/runner/utils.h | 19 + star_lock/windows/runner/win32_window.cpp | 245 ++++++ star_lock/windows/runner/win32_window.h | 98 +++ 270 files changed, 15716 insertions(+) create mode 100644 .DS_Store create mode 100644 star_lock/.gitignore create mode 100644 star_lock/.metadata create mode 100644 star_lock/README.md create mode 100644 star_lock/analysis_options.yaml create mode 100644 star_lock/android/.gitignore create mode 100644 star_lock/android/app/build.gradle create mode 100644 star_lock/android/app/src/debug/AndroidManifest.xml create mode 100644 star_lock/android/app/src/main/AndroidManifest.xml create mode 100644 star_lock/android/app/src/main/kotlin/com/example/star_lock/MainActivity.kt create mode 100644 star_lock/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 star_lock/android/app/src/main/res/drawable/launch_background.xml create mode 100644 star_lock/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 star_lock/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 star_lock/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 star_lock/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 star_lock/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 star_lock/android/app/src/main/res/values-night/styles.xml create mode 100644 star_lock/android/app/src/main/res/values/styles.xml create mode 100644 star_lock/android/app/src/profile/AndroidManifest.xml create mode 100644 star_lock/android/build.gradle create mode 100644 star_lock/android/gradle.properties create mode 100644 star_lock/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 star_lock/android/settings.gradle create mode 100644 star_lock/images/ic_menu_up_arrow.png create mode 100644 star_lock/images/icon_item_checked.png create mode 100644 star_lock/images/icon_lock.png create mode 100644 star_lock/images/icon_main_1024.png create mode 100644 star_lock/images/icon_right.png create mode 100644 star_lock/images/icon_round_selet.png create mode 100644 star_lock/images/icon_round_unSelet.png create mode 100644 star_lock/images/icon_unHaveData.png create mode 100644 star_lock/images/lan/lan_en.json create mode 100644 star_lock/images/lan/lan_keys.json create mode 100644 star_lock/images/lan/lan_zh.json create mode 100644 star_lock/images/main/icon_addDoorMagnetic_tip.png create mode 100644 star_lock/images/main/icon_addWirelessKeyboardTip.png create mode 100644 star_lock/images/main/icon_addWirelessKeyboardUnLightOnTip.png create mode 100644 star_lock/images/main/icon_main_addLock.png create mode 100644 star_lock/images/main/icon_main_authorizedAdmin.png create mode 100644 star_lock/images/main/icon_main_cell.png create mode 100644 star_lock/images/main/icon_main_clockingIn.png create mode 100644 star_lock/images/main/icon_main_electronicKey.png create mode 100644 star_lock/images/main/icon_main_fingerprint.png create mode 100644 star_lock/images/main/icon_main_icCard.png create mode 100644 star_lock/images/main/icon_main_lockSet_lockEscalation.png create mode 100644 star_lock/images/main/icon_main_openLockBtn.png create mode 100644 star_lock/images/main/icon_main_operatingRecord.png create mode 100644 star_lock/images/main/icon_main_password.png create mode 100644 star_lock/images/main/icon_main_remoteControl.png create mode 100644 star_lock/images/main/icon_main_remoteUnlocking.png create mode 100644 star_lock/images/main/icon_main_search.png create mode 100644 star_lock/images/main/icon_main_set.png create mode 100644 star_lock/images/main/mainLeft_menu_icon.png create mode 100644 star_lock/images/mine/icon_mine_main_addLock.png create mode 100644 star_lock/images/mine/icon_mine_main_defaultAvatar.png create mode 100644 star_lock/images/mine/icon_mine_main_gateway.png create mode 100644 star_lock/images/mine/icon_mine_main_message.png create mode 100644 star_lock/images/mine/icon_mine_main_moreServices.png create mode 100644 star_lock/images/mine/icon_mine_main_set.png create mode 100644 star_lock/images/mine/icon_mine_main_supportStaff.png create mode 100644 star_lock/images/tabbar/icon_tab_main_selet.png create mode 100644 star_lock/images/tabbar/icon_tab_main_unselet.png create mode 100644 star_lock/images/tabbar/icon_tab_my_selet.png create mode 100644 star_lock/images/tabbar/icon_tab_my_unselet.png create mode 100644 star_lock/ios/.gitignore create mode 100644 star_lock/ios/Flutter/AppFrameworkInfo.plist create mode 100644 star_lock/ios/Flutter/Debug.xcconfig create mode 100644 star_lock/ios/Flutter/Release.xcconfig create mode 100644 star_lock/ios/Podfile create mode 100644 star_lock/ios/Podfile.lock create mode 100644 star_lock/ios/Runner.xcodeproj/project.pbxproj create mode 100644 star_lock/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 star_lock/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 star_lock/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 star_lock/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 star_lock/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 star_lock/ios/Runner/AppDelegate.h create mode 100644 star_lock/ios/Runner/AppDelegate.m create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 star_lock/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 star_lock/ios/Runner/Base.lproj/Main.storyboard create mode 100644 star_lock/ios/Runner/Info.plist create mode 100644 star_lock/ios/Runner/main.m create mode 100644 star_lock/lib/appRouters.dart create mode 100644 star_lock/lib/app_settings/app_colors.dart create mode 100644 star_lock/lib/app_settings/app_settings.dart create mode 100644 star_lock/lib/app_settings/app_style.dart create mode 100644 star_lock/lib/app_settings/app_theme.dart create mode 100644 star_lock/lib/baseWidget.dart create mode 100644 star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart create mode 100644 star_lock/lib/login/login/starLock_login_page.dart create mode 100644 star_lock/lib/login/register/starLock_register_page.dart create mode 100644 star_lock/lib/login/seletCountryRegion/seletCountryRegion_page.dart create mode 100644 star_lock/lib/main.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/basicInformation/adminOpenLockPassword/adminOpenLockPassword_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/basicInformation/basicInformation/basicInformation_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/lockSeletGrouping_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/diagnose/diagnose_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/addDoorMagnetic/addDoorMagnetic_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/doorMagneticList/doorMagnetic_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/lockEscalation/lockEscalation_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/lockTime/lockTime_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/markedHouseState/markedHouseState_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/uploadData/uploadData_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart create mode 100644 star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart create mode 100644 star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart create mode 100644 star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart create mode 100644 star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_page.dart create mode 100644 star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart create mode 100644 star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart create mode 100644 star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart create mode 100644 star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart create mode 100644 star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_page.dart create mode 100644 star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_tabbar.dart create mode 100644 star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart create mode 100644 star_lock/lib/main/lockMian/lockMain_page.dart create mode 100644 star_lock/lib/mine/addLock/addLock/addLock_page.dart create mode 100644 star_lock/lib/mine/addLock/lockAddress/lockAddress_page.dart create mode 100644 star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart create mode 100644 star_lock/lib/mine/addLock/saveLock/saveLock_page.dart create mode 100644 star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart create mode 100644 star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart create mode 100644 star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart create mode 100644 star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart create mode 100644 star_lock/lib/mine/mineSet/mineSet_page.dart create mode 100644 star_lock/lib/mine/mine_page.dart create mode 100644 star_lock/lib/navPages.dart create mode 100644 star_lock/lib/starLockApplication.dart create mode 100644 star_lock/lib/tools/CustomUnderlineTabIndicator.dart create mode 100644 star_lock/lib/tools/app_manager.dart create mode 100644 star_lock/lib/tools/commonItem.dart create mode 100644 star_lock/lib/tools/device_info_service.dart create mode 100644 star_lock/lib/tools/forgetPwdInput.dart create mode 100644 star_lock/lib/tools/jh_pop_menus.dart create mode 100644 star_lock/lib/tools/loginInput.dart create mode 100644 star_lock/lib/tools/noData.dart create mode 100644 star_lock/lib/tools/platform_info_services.dart create mode 100644 star_lock/lib/tools/screen_utils.dart create mode 100644 star_lock/lib/tools/showBottomSheetTool.dart create mode 100644 star_lock/lib/tools/store_service.dart create mode 100644 star_lock/lib/tools/submitBtn.dart create mode 100644 star_lock/lib/tools/titleAppBar.dart create mode 100644 star_lock/lib/translations/app_dept.dart create mode 100644 star_lock/lib/translations/lanKeyEntity.dart create mode 100644 star_lock/lib/translations/trans_lib.dart create mode 100644 star_lock/lib/translations/translation_loader.dart create mode 100644 star_lock/lib/translations/translation_message.dart create mode 100644 star_lock/linux/.gitignore create mode 100644 star_lock/linux/CMakeLists.txt create mode 100644 star_lock/linux/flutter/CMakeLists.txt create mode 100644 star_lock/linux/flutter/generated_plugin_registrant.cc create mode 100644 star_lock/linux/flutter/generated_plugin_registrant.h create mode 100644 star_lock/linux/flutter/generated_plugins.cmake create mode 100644 star_lock/linux/main.cc create mode 100644 star_lock/linux/my_application.cc create mode 100644 star_lock/linux/my_application.h create mode 100644 star_lock/macos/.gitignore create mode 100644 star_lock/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 star_lock/macos/Flutter/Flutter-Release.xcconfig create mode 100644 star_lock/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 star_lock/macos/Podfile create mode 100644 star_lock/macos/Runner.xcodeproj/project.pbxproj create mode 100644 star_lock/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 star_lock/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 star_lock/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 star_lock/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 star_lock/macos/Runner/AppDelegate.swift create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 star_lock/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 star_lock/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 star_lock/macos/Runner/Configs/Debug.xcconfig create mode 100644 star_lock/macos/Runner/Configs/Release.xcconfig create mode 100644 star_lock/macos/Runner/Configs/Warnings.xcconfig create mode 100644 star_lock/macos/Runner/DebugProfile.entitlements create mode 100644 star_lock/macos/Runner/Info.plist create mode 100644 star_lock/macos/Runner/MainFlutterWindow.swift create mode 100644 star_lock/macos/Runner/Release.entitlements create mode 100644 star_lock/pubspec.yaml create mode 100644 star_lock/test/widget_test.dart create mode 100644 star_lock/web/favicon.png create mode 100644 star_lock/web/icons/Icon-192.png create mode 100644 star_lock/web/icons/Icon-512.png create mode 100644 star_lock/web/icons/Icon-maskable-192.png create mode 100644 star_lock/web/icons/Icon-maskable-512.png create mode 100644 star_lock/web/index.html create mode 100644 star_lock/web/manifest.json create mode 100644 star_lock/windows/.gitignore create mode 100644 star_lock/windows/CMakeLists.txt create mode 100644 star_lock/windows/flutter/CMakeLists.txt create mode 100644 star_lock/windows/flutter/generated_plugin_registrant.cc create mode 100644 star_lock/windows/flutter/generated_plugin_registrant.h create mode 100644 star_lock/windows/flutter/generated_plugins.cmake create mode 100644 star_lock/windows/runner/CMakeLists.txt create mode 100644 star_lock/windows/runner/Runner.rc create mode 100644 star_lock/windows/runner/flutter_window.cpp create mode 100644 star_lock/windows/runner/flutter_window.h create mode 100644 star_lock/windows/runner/main.cpp create mode 100644 star_lock/windows/runner/resource.h create mode 100644 star_lock/windows/runner/resources/app_icon.ico create mode 100644 star_lock/windows/runner/runner.exe.manifest create mode 100644 star_lock/windows/runner/utils.cpp create mode 100644 star_lock/windows/runner/utils.h create mode 100644 star_lock/windows/runner/win32_window.cpp create mode 100644 star_lock/windows/runner/win32_window.h diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d50c782ed7c14c2da312ed138fbff798eeb628af GIT binary patch literal 6148 zcmeHK%}T>S5T0$TO(;SS3OxqA7L5NCFQL{KFro*QnwX-YF4A8r?A%h$O7{ZtLmkq*1h8TSd2T7deuKO-Z<;vQ6)v8)G>(+miV?Ph_QPvKI z*EGA3G6`pP5MIW;aksvCD$_iO)80@O#8D4ZZm!}qlH;}8uidP6p(5AZtp<~c9 zSZKruiqNHqx>T4ehS25ccTApVu+XT>L8z7SIc8;HZYV;nj($g_gYY!+$P6$8^9+>r zv`+p1?ECxwd=bx>0cPM|F(4`(zthGoncljvIqJ0z>K!TxnTR27Z-+4?b&6UH||9 literal 0 HcmV?d00001 diff --git a/star_lock/.gitignore b/star_lock/.gitignore new file mode 100644 index 00000000..24476c5d --- /dev/null +++ b/star_lock/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/star_lock/.metadata b/star_lock/.metadata new file mode 100644 index 00000000..31b763f9 --- /dev/null +++ b/star_lock/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + channel: stable + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: android + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: ios + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: linux + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: macos + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: web + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + - platform: windows + create_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + base_revision: ffccd96b62ee8cec7740dab303538c5fc26ac543 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/star_lock/README.md b/star_lock/README.md new file mode 100644 index 00000000..debff993 --- /dev/null +++ b/star_lock/README.md @@ -0,0 +1,16 @@ +# star_lock + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/star_lock/analysis_options.yaml b/star_lock/analysis_options.yaml new file mode 100644 index 00000000..61b6c4de --- /dev/null +++ b/star_lock/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/star_lock/android/.gitignore b/star_lock/android/.gitignore new file mode 100644 index 00000000..6f568019 --- /dev/null +++ b/star_lock/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/star_lock/android/app/build.gradle b/star_lock/android/app/build.gradle new file mode 100644 index 00000000..2c82c384 --- /dev/null +++ b/star_lock/android/app/build.gradle @@ -0,0 +1,71 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.star_lock" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/star_lock/android/app/src/debug/AndroidManifest.xml b/star_lock/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..e38be3cb --- /dev/null +++ b/star_lock/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/star_lock/android/app/src/main/AndroidManifest.xml b/star_lock/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..0f4383a6 --- /dev/null +++ b/star_lock/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/star_lock/android/app/src/main/kotlin/com/example/star_lock/MainActivity.kt b/star_lock/android/app/src/main/kotlin/com/example/star_lock/MainActivity.kt new file mode 100644 index 00000000..7cc68c46 --- /dev/null +++ b/star_lock/android/app/src/main/kotlin/com/example/star_lock/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.star_lock + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/star_lock/android/app/src/main/res/drawable-v21/launch_background.xml b/star_lock/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/star_lock/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/star_lock/android/app/src/main/res/drawable/launch_background.xml b/star_lock/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/star_lock/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/star_lock/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/star_lock/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/star_lock/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/star_lock/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/star_lock/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/star_lock/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/star_lock/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/star_lock/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/star_lock/android/app/src/main/res/values-night/styles.xml b/star_lock/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..06952be7 --- /dev/null +++ b/star_lock/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/star_lock/android/app/src/main/res/values/styles.xml b/star_lock/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..cb1ef880 --- /dev/null +++ b/star_lock/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/star_lock/android/app/src/profile/AndroidManifest.xml b/star_lock/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..41b3e34c --- /dev/null +++ b/star_lock/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/star_lock/android/build.gradle b/star_lock/android/build.gradle new file mode 100644 index 00000000..83ae2200 --- /dev/null +++ b/star_lock/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/star_lock/android/gradle.properties b/star_lock/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/star_lock/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/star_lock/android/gradle/wrapper/gradle-wrapper.properties b/star_lock/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..cb24abda --- /dev/null +++ b/star_lock/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/star_lock/android/settings.gradle b/star_lock/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/star_lock/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/star_lock/images/ic_menu_up_arrow.png b/star_lock/images/ic_menu_up_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..bacb2bbbeb1c43a85537926f336f9f3caa268d10 GIT binary patch literal 792 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 L^wsNC?IQjMuJv_L literal 0 HcmV?d00001 diff --git a/star_lock/images/icon_lock.png b/star_lock/images/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7054a3671a1974db4ce25e12d1b7c2d72049af GIT binary patch literal 4010 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/icon_round_unSelet.png b/star_lock/images/icon_round_unSelet.png new file mode 100644 index 0000000000000000000000000000000000000000..c96a5f8e385d7c1886af93f504370e9ecfc566b8 GIT binary patch literal 1539 zcmV+e2K@PnP)&nE@#MQrqC19eaG*B{>oMk2C5C|ITFW9{c)caCY{`z^&Z&_V0Q2=4;-zGjJIy z;N2p|{oZ#a!5J9$p!0X5tGn8&_htg1v{O6A0Q;(eh0*|}OGNdkWG2XybH2}r36Paw z5M%YuY2zR&2$297n|$^P!WBFd6Ww9;TJY6+T)sMSG4Kk3RQWrPTM+fF+;Bb0e8vEb zLmIzOnLJkgC{D#?MFkMwS=mE?u%`k6*05`8ZAJi$O_E)C7#^#RxV>RIc~rBVH!z_9jN*KT zT}+`#bcw+?bP!JK9W0XIgeiC6++IKX>r*dChCl$6ehlMkGrQ zIcqIQ)<6JC<=P=w|D$_yn`q61Wy1uI^Z6(`aDF|_2kfZRZXEi};|stj`50zz-62oJ z`Jln#R3_?JGGB?%Xk~}1epcWMfM@mR)bxFlr72ekS~!0IcB=orw$*=%3XH3hcJIIf25k8?rJ6V9*F$j?FOoa^Z>B6Qxoaq@sm(tWX?YWSm{PCl)>B5A+3{p*J!QRd2-7v;Gx z*d-PNEnur$yLIpR`D12PE?}muNYwd6p_Nwb+h=!XgY$M{H5h=M8Y0H?4?YvRV~i?b z8sCA_0`*am;1YnP1uV1+l&d(UeXhNKTO>$#sAT1X^MFMUgA1PsEqp4hyNgOAhR-@j zNn=;5-VST*qGlB?>F;%SwabEtY9%}+v5?AY(yM7YzOtfiQW6sr%Eg4&P!e~5lDEO4 zrs-GIF(`|NpR$;)R1)u-o@WFfj99tp%IYg9j(846LMqzJqp=_}jC$ahglUJ38TBAH zwAi6K9tWv(K`NVJLZ$f}#CL%T@YIpLPB||W0HK7cK>`g3XkTsarm3XgT#)ZGcCeMH z=W#ViID=x3AR3o{lqPv`5R}R@c7sx$w}nrEpq2%Q@05IizYBN3x#4cw=Z2H>zt6JS zL!_IBtX0&NM;ibE!l+G-p?h2I+C(RY&1f^N#tFY(MUn8}2&`x#hYtR3HEaTzX)lRW`P^c8zXy zBeQn{9|?dbVpO!xInTstEC)ZJgY?97Rh%&<9ie-K@aB8}K$GqLtZgO$#GvDLc@lku zo+f5D7~{mW-|lexCCyB z2*2D9?C}qiM&tRY4PS6gOx@_Q0N}{&w6!MzMBIuyGRF#ldjTh|Q3<{I5wPmcr3+>w z^`7x&NManIVYQ?D0im;qtSOHOfn0*&+ML80ql*@7fM=q`ZGe#0i%On4G9_*SCPKXA pyNS8LODbhD_YwdTw7$i6{|9Jwdu}WW!6pCz002ovPDHLkV1jiX;9>v( literal 0 HcmV?d00001 diff --git a/star_lock/images/icon_unHaveData.png b/star_lock/images/icon_unHaveData.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca9b958b0d8ff2b8efbdbb75068f195a12b6daf GIT binary patch literal 8444 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%0DkKuj5SP!m@ljaXWunE1W5Oyy|W7buB*n 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 Da>zh} literal 0 HcmV?d00001 diff --git a/star_lock/images/lan/lan_en.json b/star_lock/images/lan/lan_en.json new file mode 100644 index 00000000..d2c03c74 --- /dev/null +++ b/star_lock/images/lan/lan_en.json @@ -0,0 +1,206 @@ +{ + "starLock":"Star Lock", + "clickUnlockAndHoldDownClose":"Click To Unlock And Hold Down to Close", + "checkingIn":"Checking In", + "electronicKey":"Electronic Key", + "password":"Password", + "card":"Card", + "fingerprint":"Fingerprint", + "remoteControl":"RemoteControl", + "operatingRecord":"Operating Record", + "number":"Number", + "additive":"Additive", + "addTime":"Add Time", + + "reset":"Reset", + "sendKey":"SendKey", + "timeLimit":"TimeLimit", + "permanent":"Permanent", + "once":"Once", + "circulation":"Circulation", + "receiver":"Receiver", + "pleaseEnterNumberOrEmail":"Please enter the number or email", + "name":"Name", + "enterYourName":"Please Enter Your Name", + "effectiveTime":"Effective Time", + "failureTime":"Failure Time", + "effectiveDate":"Effective Date", + "failureDate":"Failure Date", + "Monday":"M", + "Tuesday":"T", + "Wednesday":"W", + "Thursday":"T", + "Friday":"F", + "Saturday":"S", + "Sunday":"S", + + "realNameAuthentication":"RealNameAuthentication", + "sendKeyBottomTip":"The recipient can use it unlimited times during the validity period", + "send":"Send", + "periodValidity":"PeriodValidity", + "sendGroupKey":"Send Group Key", + "lock":"Lock", + "pleaseAdd":"Please Add", + "pleaseSelet":"Please Selet", + "remoteUnlockingAllowed":"Remote Unlocking Allowed", + "pleaseEnter":"Please Enter", + "getPassword":"Get Password", + "custom":"Custom", + "clearAll":"ClearAll", + "recursiveDevice":"Recursive Device", + "pleaseNameYourPassword":"Please Name Your Password", + "pleaseEnterDigitsNumber":"pleaseEnter6", + "getPasswordTip1":"The password must be used at least once in the last 24 hours, otherwise it is invalid\n", + "getPasswordTip2":"The password can be used for an unlimited number of times in the next period. The password must be used at least once within 24 hours after it takes effect, otherwise it will be invalid\n", + "getPasswordTip3":"The password is valid for 6 hours and can only be used once\n", + "getPasswordTip4":"It can be added next to the lock via Bluetooth on the phone or remotely via the gateway\n", + "getPasswordTip5":"The password must be used at least once within the first 24 hours, otherwise it will be invalid\n", + "getPasswordTip6":"The password is valid for 24 hours. Entering it on the lock invalidates all previously used passwords\n", + "getTip":"Get", + "addTip":"Add", + "sender":"Sender", + "senderTime":"Sender Time", + "keyDetail":"Key Detail", + "detail":"Detail", + "delete":"Delete", + "passwordDetail":"Password Detail", + "share":"Share", + "amend":"Amend", + "sure":"Sure", + "cancel":"Cancel", + + "add":"Add", + "accountNumber":"AccountNumber", + "volumeAuthorizationLock":"Volume Authorization Lock", + "authorizedAdminTip":"The authorized administrator has important access to this lock, so make sure you only send it to people you trust", + "lockOperatingRecordTip":"The historical records can be retained only for a certain period of time. If you want to retain historical records, export them in the upper right corner", + + "basicInformation":"Basic Information", + "wirelessKeyboard":"Wireless Keyboard", + "doorMagnetic":"Door Magnetic", + "remoteUnlocking":"Remote Unlocking", + "automaticBlocking":"Automatic Blocking", + "normallyOpenMode":"Normally Open Mode", + "lockSound":"Lock Sound", + "burglarAlarm":"Burglar Alarm", + "resetButton":"Reset Button", + "lockTime":"Lock Time", + "diagnose":"Diagnose", + "uploadData":"Upload Data", + "importOtherLockData":"Import Other Lock Data", + "lockEscalation":"Lock Escalation", + "markedHouseState":"Marked House State", + "unlockReminder":"Unlock Reminder", + "unlockQRCode":"Unlock QR Code", + "lockNumber":"Lock Number", + "electricQuantity":"Electric Quantity", + "lockName":"Lock Name", + "lockGrouping":"Lock Grouping", + "adminOpenLockPassword":"Admin Open Lock Password", + "update":"Update", + "updateElectricQuantityTip":"The battery information can be updated remotely via the gateway or next to the lock via Bluetooth on the phone\n", + "adminOpenLockPasswordTip":"If you have changed the password on the lock, the actual valid password inside the lock may be different from the one shown here\n", + "updateLockAdminPassword":"Upload the lock administrator password", + "whenScreenFlashesClickNext":"When the screen flashes, click Next", + "theScreenNeverFlickered":"The screen never flickered", + "enterNumberOrPressSet":"Enter *529# or press the Settings key", + "theLocationOfTheSetKeyWillBeDifferent":"The location of the set key will be different", + "pressAndHoldTheResetButtonTwoSeconds":"Press And Hold The Reset Button 2 Seconds", + "nearbyEquipment":"Nearby Equipment", + "noData":"No Data", + "doorMagneticListTopTip":"You can query the open and close status of a door by using the door status sensor. Add a door magnet to each lock", + "remoteUnlockingPageTip":"When enabled, you will be able to open the lock remotely through the gateway. This function can only be turned on and off near the lock via Bluetooth on the phone.", + "currentMode":"Current Mode", + "delayTime":"Delay Time", + "automaticBlockingTip":"After the time set above, the lock will automatically close. After you enable or modify the Settings, open the lock once for the time to take effect", + "time":"Time", + "normallyOpen":"Normally Open", + "date":"Date", + "begin":"Begin", + "end":"End", + "allDay":"All Day", + "save":"Save", + "normallyOpenModeTip":"During the set normal opening time, the lock will remain open after opening until it is manually closed During the set normal opening time, the lock will remain open after opening until it is manually closed", + "pleaseSeletLockVolume":"Please Selet Lock Volume", + "lockSoundTip":"When the function is enabled, you can hear the prompt tone of the smart lock. Including low battery, incorrect password and so on.", + "low":"Low", + "lower":"Lower", + "medium":"Medium", + "high":"High", + "higher":"Higher", + "burglarAlarmTip":"After opening, an alarm sound will be issued when the lock is picked", + "resetButtonTip":"After opening, you can re-add with APP by long pressing the reset key on the lock. After closing, the reset key is invalid, and the lock can be re-added only after being deleted by app", + "calibrationTime":"Calibration Time", + "setTheDSTMode":"Set The DST Mode", + "diagnoseTip":"Diagnosis is to read the configuration information inside the lock and upload it so that the staff can analyze the cause of the failure", + "uploading":"Uploading", + "uploadDataTip":"This operation will upload the locked data to the server, which may take several minutes", + "importOtherLockDataTip":"Please select which lock you want to import from", + "haveNewVersion":"Have New Version", + "currentVersion":"Current Version", + "newVersion":"New Version", + "upgrade":"Upgrade", + "leisure":"Leisure", + "checkedIn":"Checked In", + + "lanEnglish":"English", + "lanChinese":"Chinese", + "multilingual":"Multilingual", + "addLock":"Add Lock", + "gateway":"Gateway", + "message":"Message", + "supportStaff":"Support Staff", + "set":"Set", + "moreServices":"More Services", + + "moreSet":"More Set", + "prompTone":"Promp Tone", + "touchUnlock":"Touch Unlock", + "pushNotification":"Push Notification", + "lockUserManagement":"Lock User Management", + "authorizedAdmin":"Authorized Admin", + "lockGroup":"Lock Group", + "transferSmartLock":"Transfer Smart Lock", + "multiLanguage":"Multi Language", + "lockScreen":"Lock Screen", + "closed":"Closed", + "opened":"Opened", + "hideInvalidUnlockPermissions":"Hide Invalid Unlock Permissions", + "appUnlockRequiresMobilePhoneAccessToTheLock":"APP Unlock Requires Mobile Phone Access To The Lock", + "valueAddedServices":"Value Added Services", + "about":"About", + "userAgreement":"User Agreement", + "privacyPolicy":"Privacy Policy", + "personalInformationCollectionList":"Personal Information Collection List", + "applicationPermissionDescription":"Application Permission Description", + "thirdPartyInformationSharingList":"Third party information sharing list", + "logout":"Logout", + "deleteAccount":"Delete Account", + + "allLock":"All Lock", + "searchAllLockType":"Search All Lock Type", + "doorLock":"Door Lock", + "padlock":"Pad lock", + "safeLock":"Safe Lock", + "intelligentLockCore":"Intelligent Lock Core", + "parkingLock":"Parking Lock", + "bicycleLock":"Bicycle Lock", + "longRangeControl":"LongRange Control", + "lightTouchScreen":"Light Touch Screen", + "lightTouchScreenTip":"Light Touch Screen Tip", + "next":"Next", + "nearbyLock":"Nearby Lock", + "addSuccessfullyPleaseRename":"Add Successfully Please Rename", + "whenAddingLockThePhoneMustBeNextToTheLock":"When adding a lock, the phone must be next to the lock", + + "login":"Login", + "register":"Register", + "forgetPassword":"Forget Password", + "readAndAgree":"I Have Read And Agree", + "verificationCode":"VerificationCode", + "registerPasswordTip":"The password must be 8-20 characters, including at least 2 of the numbers/letters/symbols", + "iphone":"Iphone", + "email":"Email", + "countryAndRegion":"Country And Region", + "selet":"Selet" +} diff --git a/star_lock/images/lan/lan_keys.json b/star_lock/images/lan/lan_keys.json new file mode 100644 index 00000000..a3ca2ae2 --- /dev/null +++ b/star_lock/images/lan/lan_keys.json @@ -0,0 +1,207 @@ +{ + "starLock":"starLock", + "clickUnlockAndHoldDownClose":"clickUnlockAndHoldDownClose", + "checkingIn":"checkingIn", + "electronicKey":"electronicKey", + "password":"password", + "card":"card", + "fingerprint":"fingerprint", + "remoteControl":"remoteControl", + "operatingRecord":"operatingRecord", + "number":"number", + "additive":"additive", + "addTime":"addTime", + + "reset":"reset", + "sendKey":"sendKey", + "timeLimit":"timeLimit", + "permanent":"permanent", + "once":"once", + "circulation":"circulation", + "receiver":"receiver", + "pleaseEnterNumberOrEmail":"pleaseEnterNumberOrEmail", + "name":"name", + "enterYourName":"enterYourName", + "effectiveTime":"effectiveTime", + "failureTime":"failureTime", + "effectiveDate":"effectiveDate", + "failureDate":"failureDate", + "Monday":"Monday", + "Tuesday":"Tuesday", + "Wednesday":"Wednesday", + "Thursday":"Thursday", + "Friday":"Friday", + "Saturday":"Saturday", + "Sunday":"Sunday", + + "realNameAuthentication":"realNameAuthentication", + "sendKeyBottomTip":"sendKeyBottomTip", + "send":"send", + "periodValidity":"periodValidity", + "sendGroupKey":"sendGroupKey", + "lock":"lock", + "pleaseAdd":"pleaseAdd", + "pleaseSelet":"pleaseSelet", + "remoteUnlockingAllowed":"remoteUnlockingAllowed", + "pleaseEnter":"pleaseEnter", + "getPassword":"getPassword", + "custom":"custom", + "clearAll":"clearAll", + "recursiveDevice":"recursiveDevice", + "pleaseNameYourPassword":"pleaseNameYourPassword", + "pleaseEnterDigitsNumber":"pleaseEnter6", + "getPasswordTip1":"getPasswordTip1", + "getPasswordTip2":"getPasswordTip2", + "getPasswordTip3":"getPasswordTip3", + "getPasswordTip4":"getPasswordTip4", + "getPasswordTip5":"getPasswordTip5", + "getPasswordTip6":"getPasswordTip6", + "getTip":"getTip", + "addTip":"addTip", + "sender":"sender", + "senderTime":"senderTime", + "keyDetail":"keyDetail", + "detail":"detail", + "delete":"delete", + "passwordDetail":"passwordDetail", + "share":"share", + "amend":"amend", + "sure":"sure", + "cancel":"cancel", + "add":"add", + "accountNumber":"accountNumber", + "volumeAuthorizationLock":"volumeAuthorizationLock", + "authorizedAdminTip":"authorizedAdminTip", + "lockOperatingRecordTip":"lockOperatingRecordTip", + + "basicInformation":"basicInformation", + "wirelessKeyboard":"wirelessKeyboard", + "doorMagnetic":"doorMagnetic", + "remoteUnlocking":"remoteUnlocking", + "automaticBlocking":"automaticBlocking", + "normallyOpenMode":"normallyOpenMode", + "lockSound":"lockSound", + "burglarAlarm":"burglarAlarm", + "resetButton":"resetButton", + "lockTime":"lockTime", + "diagnose":"diagnose", + "uploadData":"uploadData", + "importOtherLockData":"importOtherLockData", + "lockEscalation":"lockEscalation", + "markedHouseState":"markedHouseState", + "unlockReminder":"unlockReminder", + "unlockQRCode":"unlockQRCode", + "lockNumber":"lockNumber", + "electricQuantity":"electricQuantity", + "lockName":"lockName", + "lockGrouping":"lockGrouping", + "adminOpenLockPassword":"adminOpenLockPassword", + "update":"update", + "updateElectricQuantityTip":"updateElectricQuantityTip", + "adminOpenLockPasswordTip":"adminOpenLockPasswordTip", + "updateLockAdminPassword":"updateLockAdminPassword", + "whenScreenFlashesClickNext":"whenScreenFlashesClickNext", + "theScreenNeverFlickered":"theScreenNeverFlickered", + "enterNumberOrPressSet":"enterNumberOrPressSet", + "theLocationOfTheSetKeyWillBeDifferent":"theLocationOfTheSetKeyWillBeDifferent", + "pressAndHoldTheResetButtonTwoSeconds":"pressAndHoldTheResetButtonTwoSeconds", + "nearbyEquipment":"nearbyEquipment", + "noData":"noData", + "doorMagneticListTopTip":"doorMagneticListTopTip", + "remoteUnlockingPageTip":"remoteUnlockingPageTip", + "currentMode":"currentMode", + "delayTime":"delayTime", + "automaticBlockingTip":"automaticBlockingTip", + "time":"time", + "normallyOpen":"normallyOpen", + "date":"date", + "begin":"begin", + "end":"end", + "allDay":"allDay", + "save":"save", + "normallyOpenModeTip":"normallyOpenModeTip", + "pleaseSeletLockVolume":"pleaseSeletLockVolume", + "lockSoundTip":"lockSoundTip", + "low":"low", + "lower":"lower", + "medium":"medium", + "high":"high", + "higher":"higher", + "burglarAlarmTip":"burglarAlarmTip", + "resetButtonTip":"resetButtonTip", + "calibrationTime":"calibrationTime", + "setTheDSTMode":"setTheDSTMode", + "diagnoseTip":"diagnoseTip", + "uploading":"uploading", + "uploadDataTip":"uploadDataTip", + "importOtherLockDataTip":"importOtherLockDataTip", + "haveNewVersion":"haveNewVersion", + "currentVersion":"currentVersion", + "newVersion":"newVersion", + "upgrade":"upgrade", + "leisure":"leisure", + "checkedIn":"checkedIn", + + "lanEnglish":"lanEnglish", + "lanChinese":"lanChinese", + "multilingual":"multilingual", + "addLock":"addLock", + "gateway":"gateway", + "message":"message", + "supportStaff":"supportStaff", + "set":"set", + "moreServices":"moreServices", + + "moreSet":"moreSet", + "prompTone":"prompTone", + "touchUnlock":"touchUnlock", + "pushNotification":"pushNotification", + "lockUserManagement":"lockUserManagement", + "authorizedAdmin":"authorizedAdmin", + "lockGroup":"lockGroup", + "transferSmartLock":"transferSmartLock", + "transferGateway":"transferGateway", + + "multiLanguage":"multiLanguage", + "lockScreen":"lockScreen", + "closed":"closed", + "opened":"opened", + "hideInvalidUnlockPermissions":"hideInvalidUnlockPermissions", + "appUnlockRequiresMobilePhoneAccessToTheLock":"appUnlockRequiresMobilePhoneAccessToTheLock", + "valueAddedServices":"valueAddedServices", + "about":"about", + "userAgreement":"userAgreement", + "privacyPolicy":"privacyPolicy", + "personalInformationCollectionList":"personalInformationCollectionList", + "applicationPermissionDescription":"applicationPermissionDescription", + "thirdPartyInformationSharingList":"thirdPartyInformationSharingList", + "logout":"logout", + "deleteAccount":"deleteAccount", + + "allLock":"allLock", + "searchAllLockType":"searchAllLockType", + "doorLock":"doorLock", + "padlock":"padlock", + "safeLock":"safeLock", + "intelligentLockCore":"intelligentLockCore", + "parkingLock":"parkingLock", + "bicycleLock":"bicycleLock", + "longRangeControl":"longRangeControl", + "lightTouchScreen":"lightTouchScreen", + "lightTouchScreenTip":"lightTouchScreenTip", + "next":"next", + "nearbyLock":"nearbyLock", + "addSuccessfullyPleaseRename":"addSuccessfullyPleaseRename", + "whenAddingLockThePhoneMustBeNextToTheLock":"whenAddingLockThePhoneMustBeNextToTheLock", + + "login":"login", + "register":"Register", + "forgetPassword":"forgetPassword", + "readAndAgree":"readAndAgree", + "verificationCode":"verificationCode", + "registerPasswordTip":"registerPasswordTip", + "iphone":"iphone", + "email":"email", + "countryAndRegion":"countryAndRegion", + "selet":"selet" +} \ No newline at end of file diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json new file mode 100644 index 00000000..6fd56a6d --- /dev/null +++ b/star_lock/images/lan/lan_zh.json @@ -0,0 +1,206 @@ +{ + "starLock":"星锁", + "clickUnlockAndHoldDownClose":"点击开锁,长按关闭", + "checkingIn":"考勤", + "electronicKey":"电子钥匙", + "password":"密码", + "card":"卡", + "fingerprint":"指纹", + "remoteControl":"遥控", + "operatingRecord":"操作记录", + "number":"号", + "additive":"添加者", + "addTime":"添加时间", + + "reset":"重置", + "sendKey":"发送钥匙", + "timeLimit":"限时", + "permanent":"永久", + "once":"单次", + "circulation":"循环", + "receiver":"接收者", + "pleaseEnterNumberOrEmail":"请输入手机号或者邮箱", + "name":"姓名", + "enterYourName":"请输入姓名", + "effectiveTime":"生效时间", + "failureTime":"失效时间", + "effectiveDate":"生效日期", + "failureDate":"失效日期", + "Monday":"一", + "Tuesday":"二", + "Wednesday":"三", + "Thursday":"四", + "Friday":"五", + "Saturday":"六", + "Sunday":"日", + + "realNameAuthentication":"实名认证", + "sendKeyBottomTip":"接收者在有效期内可以不限次数使用", + "send":"发送", + "periodValidity":"有效期", + "sendGroupKey":"群发钥匙", + "lock":"锁", + "pleaseAdd":"请添加", + "pleaseSelet":"请选择", + "remoteUnlockingAllowed":"允许远程开锁", + "pleaseEnter":"请输入", + "getPassword":"获取密码", + "custom":"自定义", + "clearAll":"清空", + "recursiveDevice":"循环方式", + "pleaseNameYourPassword":"请给密码命名", + "pleaseEnterDigitsNumber":"请输入6-9位数字", + "getPasswordTip1":"密码在24小时内至少要使用过一次,否则将无效", + "getPasswordTip2":"限时密码可以再有下期内不限次数使用 \\n密码在生效后的24小时内至少要使用过一次,否则将失效", + "getPasswordTip3":"密码有限期为6个小时,只能使用一次", + "getPasswordTip4":"可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加", + "getPasswordTip5":"密码在生效后的24小时内至少要使用过一次,否则将失效", + "getPasswordTip6":"密码有效期为24小时,在锁上输入后,将使之前使用过的密码都失效", + "getTip":"获取", + "addTip":"添加", + "sender":"发送人", + "senderTime":"发送时间", + "keyDetail":"钥匙详情", + "detail":"详情", + "delete":"删除", + "passwordDetail":"密码详情", + "share":"分享", + "amend":"修改", + "sure":"确定", + "cancel":"取消", + "add":"添加", + "accountNumber":"账号", + "volumeAuthorizationLock":"批量授权锁", + "authorizedAdminTip":"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人", + "lockOperatingRecordTip":"只能保留一定时间内的记录,如果您需要保留历史记录,可以在右上角导出", + + "basicInformation":"基本信息", + "wirelessKeyboard":"无线键盘", + "doorMagnetic":"门磁", + "remoteUnlocking":"远程开锁", + "automaticBlocking":"自动闭锁", + "normallyOpenMode":"常开模式", + "lockSound":"锁声音", + "burglarAlarm":"防撬报警", + "resetButton":"重置键", + "lockTime":"锁时间", + "diagnose":"诊断", + "uploadData":"上传数据", + "importOtherLockData":"导入其他锁数据", + "lockEscalation":"锁升级", + "markedHouseState":"标记房态", + "unlockReminder":"开锁提醒", + "unlockQRCode":"开锁二维码", + "lockNumber":"锁编号", + "electricQuantity":"电量", + "lockName":"名称", + "lockGrouping":"锁分组", + "adminOpenLockPassword":"管理员开锁密码", + "update":"更新", + "updateElectricQuantityTip":"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新", + "adminOpenLockPasswordTip":"如果你在锁上修改过密码,锁内实际有效密码与这里显示的可能不同", + "updateLockAdminPassword":"上传锁内管理员密码", + "whenScreenFlashesClickNext":"当屏幕闪烁时,点击下一步", + "theScreenNeverFlickered":"屏幕一直没有闪烁", + "enterNumberOrPressSet":"输入*529#或按设置键", + "theLocationOfTheSetKeyWillBeDifferent":"设置键的位置会有差异", + "pressAndHoldTheResetButtonTwoSeconds":"长按重置键2秒", + "nearbyEquipment":"附近的设备", + "noData":"暂无数据", + "doorMagneticListTopTip":"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁", + "remoteUnlockingPageTip":"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。", + "currentMode":"当前模式", + "delayTime":"延迟时间", + "automaticBlockingTip":"经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效", + "time":"时间", + "normallyOpen":"常开", + "date":"日期", + "begin":"开始", + "end":"结束", + "allDay":"全天", + "save":"保存", + "normallyOpenModeTip":"在设置的常开时间内,锁呗打开后将一直处于打开的状态,直到被手动关闭", + "pleaseSeletLockVolume":"请选择锁音量", + "lockSoundTip":"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。", + "low":"低", + "lower":"较低", + "medium":"中", + "higher":"较高", + "high":"高", + "burglarAlarmTip":"开启后,锁被撬动时,会发出报警声", + "resetButtonTip":"开启后,可通过长按锁上的重置键来用APP重新添加\\n关闭后,重置键无效,锁要通过app删除后才能重新添加", + "calibrationTime":"校准时间", + "setTheDSTMode":"夏令时模式设置", + "diagnoseTip":"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因", + "uploading":"上传", + "uploadDataTip":"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待", + "importOtherLockDataTip":"请选择要从哪把锁导入", + "haveNewVersion":"有新版本", + "currentVersion":"当前版本", + "newVersion":"新版本", + "upgrade":"升级", + "leisure":"空闲", + "checkedIn":"已入住", + + "lanEnglish":"英文", + "lanChinese":"中文", + "multilingual":"多语言", + "addLock":"添加锁", + "gateway":"网关", + "message":"消息", + "supportStaff":"客服", + "set":"设置", + "moreServices":"更多服务", + + "moreSet":"更多设置", + "prompTone":"提示音", + "touchUnlock":"触摸开锁", + "pushNotification":"消息推送", + "lockUserManagement":"锁用户管理", + "authorizedAdmin":"授权管理员", + "lockGroup":"锁分组", + "transferSmartLock":"转移智能锁", + "transferGateway":"转移网关", + "multiLanguage":"多语言", + "lockScreen":"锁屏", + "closed":"已关闭", + "opened":"已开启", + "hideInvalidUnlockPermissions":"隐藏无效开锁权限", + "appUnlockRequiresMobilePhoneAccessToTheLock":"APP开锁时需手机连网的锁", + "valueAddedServices":"增值服务", + "about":"关于", + "userAgreement":"用户协议", + "privacyPolicy":"隐私政策", + "personalInformationCollectionList":"个人信息收集清单", + "applicationPermissionDescription":"应用权限说明", + "thirdPartyInformationSharingList":"第三方信息共享清单", + "logout":"退出", + "deleteAccount":"删除账号", + + "allLock":"所有锁", + "searchAllLockType":"搜索所有锁类型", + "doorLock":"门锁", + "padlock":"挂锁", + "safeLock":"保险箱锁", + "intelligentLockCore":"智能锁芯", + "parkingLock":"车位锁", + "bicycleLock":"自行车锁", + "longRangeControl":"远程控制", + "lightTouchScreen":"摸亮触摸屏", + "lightTouchScreenTip":"摸亮触摸屏,锁进入可添加状态,点击下一步", + "next":"下一步", + "nearbyLock":"附近的锁", + "addSuccessfullyPleaseRename":"添加成功,请重命名", + "whenAddingLockThePhoneMustBeNextToTheLock":"添加锁时,手机必须在锁旁边", + + "login":"登录", + "register":"注册", + "forgetPassword":"忘记密码", + "readAndAgree":"我已阅读并同意", + "verificationCode":"验证码", + "registerPasswordTip":"密码必须是8-20位,至少包括数字/字母/符号中的2种", + "iphone":"手机", + "email":"邮箱", + "countryAndRegion":"国家/地区", + "selet":"选择" +} \ No newline at end of file diff --git a/star_lock/images/main/icon_addDoorMagnetic_tip.png b/star_lock/images/main/icon_addDoorMagnetic_tip.png new file mode 100644 index 0000000000000000000000000000000000000000..a2fadc4fda446cddc608fe84bcae00ba75565f6f GIT binary patch literal 31949 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

yIp%tQWdMiN%n? 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_addWirelessKeyboardTip.png b/star_lock/images/main/icon_addWirelessKeyboardTip.png new file mode 100644 index 0000000000000000000000000000000000000000..e752b914c47bb1a8a66ceab36b35f9414f7927d2 GIT binary patch literal 61712 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

iEbB7RoEcfS6I`rn z_0<^bk{Pa_FvrP)C>#r40l_(u=BU!`QH=$;pu9Dm9vk_|8mmFeF9mBC|0VW%G?GBQ z^2zF2L_~{M*xe0M;skuBfK$ubFYiMSaNE1`7zBoB3{PFk#WQIvrG^?B<^sViIBc4Tr~Q->|93xr znr>MtZ`8v!U_e9^Zp<_m$2tL~UT;!8>44^WQuKEZMndzrN6ozh)+S~BxRA)U8T$UO zV^a}CQ!Fv@8c%>L2D10>5v%3TE>)wVmo<d%~30 zOOqCl|C%YTD7EB>44XPH1HQ7|B;sDtYF04qnqZi4_OR7KID%%zm?q1%uy#%WD466! z(q+6(`C?@)0E4f(VOw9(Nq5`yjV@19^N_HLo9sLyEj<_0XQ`DZcqaRX1Ydi(3wIP5G>NP|Yfl~fy zB2!@EQC{$m{_a<~+tRm9TuC{BaH`|KPu1Wv9Om*-g0W3`;RA_Ymo9Yc4?pNMN@ZFm zPK0~{PcR6?<(*yo$g!x;JfIRJNBS%JDHhRt>7mi|RDJ`8Hdn(%ZR}$ExuNbfiTOA@ zuWK$ABoT4n05+wF0^oTqj(PV0G-77Fp&%b{{{r8mG$?_f->BS{M*<;~Ox?b{I0E`% znX4Us=+b>|A36Wn`O}vqaq+iAB|9kAEg7A3Fj-g>u@gK`ki+AFx#8agO8SlUP&{Yp zqOklWpsY+cQo})HMZqPW@@?%1YYPM(*&2cYTiUb*%_F#v;s4d;?A-3CU{3fzsjMc6m2Umg-GxPAQD1R?f9)d(1>hAIgD|@9oW}! z!d_P5fT?`F;xQq-jYV|zP+fsy&>s}$PzGps9pf6*r3b?8 zXltsVLv5HYL_d8?eV3I#q*mza7(3B!MJEE6fPr-RGNnfFb_id(hL{0aD*1=f46wi4 zY~4N=%WLKrcsE@PX^iDh9pH%|>O}gAfQ}xQMM$S+Q~^K-F(y zgcsvY?-cb*{`nl_uFz4qB%NRlY9K7ScxIt{eUN~p-4XuPV9py$k%BPpTV`NF8_J6( zgLLtdC?spLP*OB=7TH6WzVHDP5x%Dnt$;@th6X-(J28nJx2-JEe+$#~~E0$ty0GMc%#oe0GAsFzv11wZt zSgnOoaTT4h?uFGr#pgTitzAg!VVhc>Ca_yEN^Zt@_usup%wl6v(cXXe5tA7@k<=# z(z4%T+W>7??~M^O?%Pttv503KCTrUI$Hor0 zg-W*OY3F`^Oo)4oBg_-d|0I)oS4M55D8g=gKk?~#CRMg%Q`Pa(phXYu@DsNqSy!gw zhm>{}1KLH`JJ$e>RlNi#^ye8wk5t57`%N~= z{G`uQVc(M5{*1I!6$dFHDF0*Fn}sfZ-`ISLL4BLp6jr^6)+>hyk8vR$$Jy4~qFrqd z`9E&2?wOK`$#MdT~KP7jT55odk zjy{wq)dv)rov{32TvR$wFN6X9eEOSfrs#HfrKgNTL`KTse@f!KzB=1L#OZ8W{h&blGEm6* zw(j@Ns9qYJxvncm`2b}v=gvAR)*b@<*xz|;IxB7ef~zfl3n^~xpL?5rrESonxrGKt zZkH^MGGz7ZK6vRjxPO**{*`u1l<+wrofD zJz#z**P^5PqxQy3sYR)7o2`C_Z3=IhtbU6_81TN$y*_l2f7$ce7>2n|dZ^eh-NC4u zVa=dT%mXjAsyNpM7;xDB4qAsi$ZZ_Z_Sg!w!3h)p#;sGbMB&QCA3|M4A`N3L)P;sa zamQ!S3mTKaI@?ue;nAh}n+244^uQsbb6kG-&aq zVg8xt@p8*@20^dNpiF9OujH$~k(dfwJg|7AB-@ug*8dTM?tKSQhVvBoa-pWJh_2q@ zH*6?e^7W&lws@KY@+FKqkehIBl;aEk(erlFCz~mC2?cJC7pwCS48r`*lTP5qvP&nN zu5~2L_hX3b)^k6Nq#w5+$r2bhT3mGZ!oqQSL71Em)QfTIKgAr zZv7}rm;cPD=>?ZIm;B%!B@l=Aj4STGPR8q-q%yTzhe-kb23h6y_W$V^1x;v(tIQO$ z<13PNB2#rVp}!!ED{rTDhV@5_g!v0SX`TT?H(+19R0?>AF`*+(Phc7FBN+Iy!f0RM@Rbe z!8!0Ya22U7`DX?%W(1XcwTkS6zD=O*a!n1#lihkYGVD{tnjORXep2Y^8O6=t8mo<4 z{I0#_bGjgoDBXIldAR@7&qlV$X!YkTk8unacsEnh16Bh4h^K7^rZ+$&R~A|@70Pk> zqjF9!qR15g6o;av^zl0&i4r_-;2vJs@+ifosrJ+gOS0ovEA#Z1wKO~IUK&*SU^Nhn z0S8{|^X$R=df#^ zvNgfBZn0RqlkqhF76kF0Ij_s3_Q1h5gbVp`FFJFm-QRDMYElQ@(&%{*c-WqMos+lo z6FQ6e9h0sGoIF*pN8Hht@o`77<2Y@59Ikd`1~A_FF`ul@o(8QC^C;_5Jj$o-Ozlp^ zpU&3tqNa4y&>w_pmGZH>k9d1=G)?*{^`ibpP!t>18qQ3_sj|t#8<}AVi9gtf;wHW> z!YXHeQ4dHHFaeVep<;rtK6gM zqB`lrCQZ8|hv^m%1sw8G7#w(T>P$M2gqZgrw5HI0A?I^oGbRs9ipU}ru6J<>7LXfe zS|wXm$lzOs*%o;0`q!y_Pfn?GSzF!pU^#9(BTcVGrOWZ6`G*NGe%@J?NQTZhf^D_oJYG)O2MfxS2ASXq0^X zkcii)pY@u%r%-zk*J5Xy~L-{M z;0id7%5K%5aD-YY3JZ1Zz&ZPTNS9)~()oXUIF+Y2z0+*wzMBo+b0l#d@C-z>g9nG_ z0=gsi#1{vl5@bA`TiR~k-=c!tV^okWMHxcKsKu?=8crtDNd0KQD@>OLBymD@Cl$??WX~w`7w% zT|cRt5Fc0>mMyk|Yq(e_5%1aYZ2tDr3n5<9uQA+fMd}pRhBkQtPTP5I`)v(; zV@+i;2olrP7QK!kVZ@$rd$7#1I9c!LTJGz>%P9rDcu4Zd3YYeTnkQw9a&2`C zAw~MkqIZLdjXFHW%1@l*RpjvP`a6bFB#-hC0N>okUsiM*9}nm$xCnP@67p!~b6FL& z|A-l58NK%APycOToMbBqftf67r-El@XIDp7@_nnZ)9?gx-H!Um4$M*3>UAzGEOS>m z&cfiP@AX957`ex#s=w0h`INqa0irSjk-%~5Av;}pDgBvWd3Ie6{}vb=;+ZU|^iCbZ z_A!%jShw`Xwlp|Fr&*8}Pg2o#kPkva!K8B+MggZHAN?BA_%X_?}!Z$R)v2I0JMrMrLTYJq?a#<%i z%Z*L9!aM?LEx~Em$Ia9JlD<8`6(&qbZYW$$LI~_8kTiRCKE5HA8+gG+n(g>YB*@v_ z!4()n|I4!0>h=Dwme3uL5Sgx;%OK9Qfv#RYx1<}=qx{Mjx-X*BbLm@rqk3>?g)uBp zETAgR_|5VGn}KF(<9C!g6D8dj9aTm1kzE4bLUMR`94;~xpv0AiS+uxrNPjPbDnV35 zA|ueR@*=3X!)+xJ&6Bp)z1UphB;{$$8JKr`HU5x01qGAx@B;m2Ehcw-dk{8SBC@z< zw`2-xd*N24M8soe_FG6hVQQjhf-%2FOEa^27?r85H`P&idaRNMV4p*lQSxaeq5`UI zH9HX9H?z;PX|GBbPLomIM6HK+&==knRum=1pL^;pN9oU%8_S8Yv-3j$v+)o*NaW5S z*J96jg*~K1&gP%p%1=j8QpUn#}UC?S#TvUT#8)KWt zPdwgTyh%*WujlBzb-3Ls`h@$^{%p(Ii7Efah!4*$$IEu1VU2yacc}g$>(5>c2gbRS zRR)~S)uMGuzcJ64oWph3FmGDNl@W!iis%rqy_Qq?bxm1A`joZkS5^v(S4yxctTTjC48UDchu; zs*gS_r;(AnkL(UKXycs~k(hC5(fS}JiOx=atXaEl}Sfl_ze5u`0{;;I;q&gK$h4(fx9##B!O z4rb*<)v)kBZM2xzpfY+7W85*U)_#Br(1Lqb?7HQ+`vOl)IlZ7+e?H1(uPJHHi4t{&D z;=w&73v}gj3{H0@60Ld8p6w2VtU?Z_iF0MW&0u;OKh9w)g8V~0O^PV2qAfQrL$}G-StvXjDTtdJ`D-&s zCVxXQzQ`45&~ykPrAHzx;rBD=_eC}PDNISmJbjw~3>-QlDNPbup#(CdN<`Fy zKDeaBAlyV^uHoaO^xs3aqZ5mRYJ>EY%`uf^+Z8h54#v)yo@u!}JK;bZ0gZh8?DM8` z0)jP0gYp)3+aClb9+u`vXGi#Wc&rJ0@bPIFkGjLBvm%io^F9|)w9j*`;r^sQB`zaf8JwV~2KP-@pb(ih%j}4Lh-V7x5 z#5ftOkA$=`GCLvzc@&%_tES<9^alcF2>7} zwg`_%ig4FYuHH|3zi%ALPN+#LS+hsB4=-mT!kt<@8-vpj7vcT*ZY0ZtN%4sgvC<)! z-z}qjSEF-DqHc@%nE#;I){Fl2=QG1-6!2v#iUdK$tftm+ zaJwk9?~C>~#H8PbWv&ed@*(I%#Bx`xOiYssk4v>7QQc!_1G~`XmwuhpOcmLqXlQ_ zT9XO1>xv_-Agg$UqT@Bb>9Ms}JIg*wZ?Dh?Ocue< zg+H3Nk+QIx6m5ZVJ*8Ueq!g^R1)$>zh{BiQWq4HLWZPJaPfSX{zf9ExnA_f4+DbKV z#kKVgQmZzJua&wX|Kz^WQcMkqjrCz@cOpg1zAMfYsOkAKA4_)2oc4_;?@I3ukW0#B zGZ;zxeQ#GFV9#-DO~1;T!KxmdndO80raA-sX!rkSONuiQt>jpJ z5u1C=<8sKLpG#ifG%$p9p^ze1bLlNA)G6Z^k34>-Dln#VYs~*`C5W z;=iQ)6~G2=8?wu8Xa2`jtahyBI(gRWC@Bx!sg z?aHF^36HbHqA+C}o_#K2&cM?pqa8Ygp7j@Sd@vGP+OBIG{&oRJ!EPi52cRFNczR;NR@T55baUv!Dp7p zZeqQvaIRt6-g z*^Y`H7QOqcj-!kw!ce_F*JwhKS&_Oc*y-W`3`(xH1wsej)8?1mt8ROC1wM_{_TR=` zy$`s&gd03JJgC{#$WF_Kr0P`Kx7895l;cc!salNe(}lP)*~H;RsSS)k@$nhj;SHpD zVd|(lw)D{(cqsc5hY-r~lo5?2ut!ATjvK899LS6oqfdt zqCz0#gZA0+hQ-ujqXvQ_OA87U3dbCr4g3(MUOjl?GPm^#B2%a6Af z!DHM}Ub<2X=P&U6mC|9p%&57`c!oc>`j%F_*U=u_K@jJE(t&5lOSv(uQqCl(tX*GD92RF3mca>uWY#~la z+(i(sW|3z5Y?ATJ2V(@rAo~5KI$vt|q1TsPIe~r?d+uC8rCj7PRtq=BukF|V0w-IJ zYQj{$&ssU9W2Qt)bCJg4Kv9<`LbsO0d| zsXXml(N)?g&#U@_?0J8N;t6pw)pVW;Jj%_|1`&In_Mm4r#3-VSYH2))NJy+D+AzbS znNQ#d$X2=w&CZtc=O=K28)2I=!`Ca!5hcjcRp`%OLLSV;5LMwUlPPtu!q<0@tXGV2 z7l|>V2c-q=TPas+x|27gko1o6jHeVFa=B086F@W*awE*hz=xmSVaU8E1vCPS?KMIz zcM?ey^N`<_ZdQX7WKtvbk;pM8ZcjC5&&A|C>b&fajOnXBsZDFn%dS&ldl4_IBCz}# zeM8H${GyE+vYdzsiA-j*^Y>v-bem|Enx}7W_7}w-ubcM5c8&N)Jt4IRk1buv*p^;s zYzS$4#cJOifIbmazV^*<2d^Wcl6>ThUvO>Sf@H9RD7b;Xg3eRj0FfDs#)8_Bby0;U zOBU|=_f8h>YWWca=FH&b+&a^!OGU%u4J-&oMqlc*5i@u(Jph^y#QZ8VIkfx!n0ozH zpOWZ-=bI1(c^YS^0tH0wyXMSX;xMLvceo^q(rA|Vak`#tDy&xYMMXSHQnmo<52Cx? zyFVPd(JT2NmQwl$|Ndld!gl3NhRYp~stA$(1J_6dLXxs2f@_-wJ0J#Oj>8gFA94i` z!u%JkL@;Kd`Tj6PKTUYE4~rPD?nc+7BpE|buMtak#=;kl=5Q!&K>1gz;@{A`Zwd>l_vGu569m8nZ>@SwQY(1g?8_+{y~DsbDlJ2K0e)j4k)}P^{Zo?DIIb`l%7>BCe?6oUr52+)JzQGY zRCIoAm1})oEz@+Qn)GIZV}`L-N@i1-t-=UZi%e8|wp*AY2eC3n5l3A1RM`AQDr`x! z4_9T8!?JtM$d?Z83oCGeDlJ|SB^w4egWP6GSmm)Be{D3cmZ3wqlRr)%^y3#%4|4~& z4m=7jaxEkUY5w~f-wdH$0+`sRXa6vN zHEz|&A?&$dphSSQVY^Sw-RFggLmdphe;Vv{fHeS#iL&r`dv7nZEQMP-_RwCf!X|<{ z6Gx(h{76~vMK}k&?FLqO7`l5Ps zlQ{;h2jBm9SwW<9xLSsv;r-)_epe(G=yOEPb2lq&Dqfk;#|Md5XPL^((Rvaf*AKCL9JIXdmCQuZM{zV#H@vi~&_ zDZH)_8{G_(+lsDfSMV3co(G>X_z1{K5I|+4@xfXz5u>494XuD@ zK>sZPcBBe&y z{tQ-9(n!rZSj8vU6;Ti8^LhO8KPCd%X9O#82H^^mnst_sO56FhS(w8$&>+@S^SgVj zB7coA2S^1qQXcbr zeq=S;9K1JgyCtfGUMwmNGf0(=hWv^I(LtD>&1hdK*YOaMJAO1=NVN3B$184uA20Cx zJeEm&ocmQ4FXKqgb=qqah4t50Si_{}`H}Zb7w3fjQ1sxUcY#$TT4O zsIRrDH0QOXGwRx)pyumCv-jGydWO;txrC#6*h2g=0E`zPimV`roPbenLkuwdA8#X0 z@&gF}H&1dfotpVdvm5{FAh$FV9ZRAlC$bcdY@HOOXd_MQXbiIk$IV&_f{)J#paI6H z{X*rJO(ResDgX8#GXkzXl?nuTc`4P~?utI)Ps;69CP$+%{}1L1Ko81dVOYmq4!MG?q3bk@ zob$DOVE6yM*;Deg)s720ruS=1l>0KV2=g-PH;{@6Z|XxN6L_F1O?G!kCM!iSsnw)fg>2U zB6F&n4T4BJsMG{2n&lZE(l+^L1({;!q12)N_$uC6C_wMzM9@(1eheG|Sx!y5Neuu@ zqHD}APB%{g2$LP1jNi8(*BV>-6L&LpvX8oP{}EXa+kuktz}`c-kXSLd(5)2sZ!%R{ z&FID6-gD^H6su;2!;{bSC|uMq_(2hb#D_C4Oq}(YG+_CRQW_#$c~6$q)LhkU(M4ej zM7;LBZ)4`etrGaaxY3EOw0Eo!_h4*JqXuW2=e~+Ia}#`I*7>o}#`TCWn^sv)huK=W zhN01dFS4}x#XE4=EbPyWE%f8sL{kkitwWve;bh%>T;7CQ$4@dU#d4MP`>*gO0{~;@ z_us`jxPKzgn<1Q#&8MqW?#M_oR--v87PqJ7LvUe)S@qFWL4+4KAS!N1 zapTlodiu=}EWG9Vvj9W*_o|k;`t6mh42wF3&#=2aJS@K>Ax^9+A4(c7K}40mn^?y1B;W6>-xQ774+dC4lXovu{)oo%hUY=btt^`$Wvk1GB6MxF9SYpy|9Y2~Gzqc{F*Ylf29Z1**T| zm0&#A9f^O3qz=pL9LHTajjZJfdppum6Y`Yp#zsf$B+*aw!=3b=Hl8gxI$wg(dpG5j zowQ&91H~#iL%WUcJ4(urrmfZ=)7g{u!h(e|DXfr(&n844jD4;bNnjNmUEFWT3E{Zk zcfH^7Nvs}K=K2kWwl6zTr$6UCdd0jYKuIr*8&JYHjAf_g+3TOSS+yHWKD!UsM-)_n zw-zys<`}fk5%K!DMB3TpseH|$kT!zl3uS4Du&I4vPl@<9+#cRRVTEcMY(+IKFt{Gf z2nLO24|Ld6f7}Rr3yW13uM>|Kd)suz+QSkgXTEq&6eeOxX&(QkOd_&+VaZGBzLe-$ zWuP5_j(Gbu*XGpe5Z#w$Q2+22ox^Ir!TxNW!oOaG%~gSuTKc(L+Ii2fYM){CjS@Mm zUg#O&k549kKU35oWUliqRa|44b}}sr8-+<~+|ts1mK7Q?(7uBj`f)^-VQr*QKEmNw z$D_z(>HrbisM>f!?8Rm`D@L%h0x=(NZqwRFfp-4;mpX5%buXg%YidR3<{Oq}_Y)j} zY8>`U+&okOUot}QcE{t)nzFQXB8jv*;0=ljpLur>4jTM4ngYMP7FCVs8sXndikWy$;jKMDmNga zQQW`DZ+^8@;yFaHyH_FZzJJ}HgpySgVQziuO#XoWZ1J)E>&;*Ykjo&Ub2{Qrql=Xb z|DF~(pDUaNk(omwoPtky{<1g`xGC|rz?N^m%nF@iXaI&f5BK2%(z^rTw9wtAZ|155 zNd1X9cNcr;b|D|uDQk*8$`UI&PGBYC(i+7tSc$p*#0URMD93SJwm2ABpCU|CC2%s=S6bS8l94TT~)>ii#OR3VB z^OOH->Rw~^)t#j(;v;~&0WJj4^Ik0adOH-2V{26sHhG=ixN*-tsFbH$Ni8zEdkP2G z%eqmS+mw)#X&^qbjzbY3)B^cmQ*5uXCl@&<(*)nu;>~U_r?7sCYdae_d|cle+Bm5# zhPe&28}HrvXk*E^U4v88A;k)$kd zByr`y@i)>Y0w;rZEI)`xjG)_x|^oFi-5&rADViv7(Ci z(cCnU{2Y+i0Dx=>Cxr%m}Bs61d&3Rr7b!@40@=gQN4 z#o+&ic+yP6I_0nM$S^Q^$BQgP)-gv(0%!mZfo|&VDzwlj+D~@=>6Ed2p_7jjosees z=%CvaJy?_VaefX7JBGUu-Mo)`M6r#yK89iW-lf%;c_&-tS^dhHG@t^76iN#|8?}SJ z5uOE|uzeD0mFRT1B9~wi^9A=taJP9M9-wAEceAZvg9KHUL6Y{!>2rs3KQ2}^zw7<* zmq_TB493z5K`CRA7?DB=>3cE2m)q;Np2I)~9)AaJ*7aT(blCpzyZGt-*p4ut`lNo` zxi|iIjGOr5Kukp6$3#_9A4u%;XzD0-)P-R+KVCwdz(m5ODeU?bfrC;woA(p`rU-qf z`WsiZ)A-xWE1TqbX}X0hzEL3z=?_3ZNJ3#iufH5Q){l5E;TyC1lf$T zk@>J?Z|e^ux-4(cEwER6JG$v|5G{E6yf2D>tcHeD>=HQ4j^WPU@*{aOM)Mj^zC-9&tEWj}xkUkD3o)!`t|{o8cildcH#=M+?Dl(6_NSek8@p!3PO5D50IbevcWF z$zjS4A)QDXx9Wk(9WPt-21F?TXf^E^_aHI(C1Qt+wN;jLo#j8Ib|kTHPQqbOUdx;# zxU1giyqHZn?m>oWRoY0Mf^mP@G1=fWBfR`w^a!tSA?CFEHQmKvBv7wG$tLG-@Pc_g z{amp|e5%46OCq*(8u~^tbxn()x~|GgsE70q`SPoHZAm}#DaSccS~{-wWQga$1^zI_ z9c-Fcnw$d5lI-b+am%!T(zASgNceu&>~oY5+P-8Yavj2l-g{MCE{8O&H4~2`T{q35 zdmWP459)#;6rYFvU<4fPr-?Tir}5lzHog+45jD>5Z|A0*moCWyYZxEB?AO?JzHwx^ zW}gy}CJ@SxVe4$zPj54`F!Rj64P~g zjnPA7F_@Q-L`FBchDr0{j|M&`+S$`{NNp-Bjbfd9Q{n*#h+paS^K7s67rsid3Wu1rwtbKBI1KaPShCh)$O=O4-2Au7fd+)CUbGT*;6a>6y zb-&)l(K4u)2jP-)F?{RueoR$h}NQ#hz>n$J1q3BYyjwGbgW2*`;_w(U~sXuP7jC4GJE^AIX zS~h-Uf3O`iCaGmUO~2!AEuq^1_HK1tREqe&7F_M18_#KV z)cJ0j-nkT!j-Q(AuQ85WFLz;Exj}ao(6}ga;va897BHMhe|#Zj)(Y?PFGRF?1TutY zjJQSks{B^MFWyEKrJJj$kyEJKRefAl|J~~C*6@CIjMxH&EntU5;O{c9^B(=eWlSdE zx&Q0Pw9{?|-}}_3)vds>XTk<-eCHx2BtJ7?qf9)+RYWQt36FW=B2qS92?XK(#G^?S zIfd^5iA}z>Fy=KChG@wo5H&eDF zo$1MZ)0gG0liY{-(W++3W$(MLvhaW{Re@%C<~1iv;?Wgbd#y;scjoW)sxJ0ci=9|+ zwiKwxOuwepndRn~UuI2n)&VX`asoGcGvAHQ{GK<%y9hOT?}1oQb2fAZQ|zIk*-E~X z-X$1r-Cmj*96F8T-fH}qr6=n$O=8u_<<@&vAhin=_>Q4P#isCQ6q}8-rt{+1&v`HI zcc+Zd%VTAyjF`zFMNx@%X+%E`2?pZ|BVY!VBl^TS>=*a0EsW~@pcPl9Ol~{ z_PCS92*7qWY;fLqK7Cl*W|8lC2npPdX65kEK~*>npdE@#5GUj)8A8pe8QixCIvi{y zG@kF)+;AbF1nb4>t5M{OoQ<6mfDK>AWDqpdko`WjYF=!%Eu{{T6)p+;t5(S0`ZCc# zw>yf$yNm`-ft(t6dH;S2{hQ|MnIkntP3a^-faN@-%yG1rND!qbn3E^qvPydbls%`M zdZrSlowGunD|M5(f!liA)^e2)IydK4*=tBF+R>bgMdBkH@BZ2UHD(zR+%2=&iWVZf zCJiw<0^!p+Batg-3uu^z^c^Ej9=K+^dR7bEAC7c47Qcc6pIjd zZ`vm54sObm6CcW}p*H3g8^alU@k0G8lH)gtDa0pqChg$s+a8(CRnSrTm7qb}y8(F_ zp?*zw@km@J2F^q=fI_xfY{<>|kX^dfIfdB4OFd(wAeYq0u-4_vXLi>kGHcF~p<}#D z4%wfccqmj_a^DnXQE|H{Hn#(h0a`>fi1gOak<_*wn3VYP74gaHgkW_AmB&zhjcc2} zA4FD?(k;o~oKoAM4{-%>GwBqWE?C2uyH4CYQw;SmCJIxnY*S@$NOB(@=lLIa z%}GMVP!;(w%~W*9%(k z@KDH=FMsU)wKmez{4`cuC^_Ty_Ytk;aHS(`F`)^Sq| zaFcKJzyRDey0zhmgZ=8w#eIFU`kJ|LHFBDBi^|$N3Iti!h)%-tx6AX#Td!}9*0#Pk z)jQ8}=gWjAfwaHkod#TT@yAC+c9!~TgCNEtm%)>)+CoY`y(VZxD7*2PVC%O@nK5w@ zYT=pKco;JAV>0JDeZM4lL2w3<+8tk|L`?oWe~fa~fx>{FhO;I~1D|WVqEFDz9039b zR>>0^&%t;E@-W^YD>0x!V?~3o&w6zx_s5L3&GS)sMmT>}vSrxf(9p_+HklsM$CTNV zXyC}TzTBt;a67U;3dVX|n z{q=ud0HOVQJc4ZnJNHvT=UDRhV^OCc&GdCHR3o*=PtGih=BOJ50&W;(>{l3Sc_=2UKePE1nIF=zaXg5EVYR~h= z$mW>bwR~dXVrm#+o@0SN^#NRZn=kAw#n_EziAoFkRb$n)iy~Sm8SmO41dv}8b+N^U zenxbzsITX}Ir#2!dob(SoIsAmZ+9%3qczbExWQDWW8a^hS(8Z!RIl&)g7|0Wt#L+x zS~AYP^}3z-tFQAlGw)Q>1eyJ)Y8@IzOjlr>gQ@c^5l3E20vA!(t(-~#3j*+KDtUJm z99=@B;OU$eBU37Zk=={Iy7Q3$2fO%lRRG8PO_m#%CcDqUq}B*hG{|o2-BO+7OWL14 zt;Q&Gdi$1ZOZNe0-zb|LH+{M>h`nbQcE+4VD;Uxa5TDB~L3UWoZ#i5%^yg5Dyk2nI zdYU7&-hgdI4R~13)S$(=%P4%IynfWkh(hGZ{x^T|+VSqbkn>z*sm%n3?;kO>Ocil_ z6pC(vP;|t6uA0h_&~F1ii$egs8G~T^Tq)wZMzw)j~$YBV`BKE zIe9W_MhV9^%KsV@6Y|*7ngD{0)~p;1afvM2&zssbh_dqic9YN@krC%C5`%8nXo zJX-{DfZ3Y2uTXV)=-xzilD_W>BnhWQ=F+R$S)>xUm+Zq1Fb9Rd3j_uTf!Bp=via0U zmE$!iI3NZ^pho~FKG-NUnX&6SoYXofuF+(f|2Q#*!#z~|1?E!HZU4OX5;z*bzwbfq zE7IgK__y8;^Rx3}>(9^B0#l#K`NqBLp$E6w+xK3-e+sO@HHTWYGUQy4VP?E^e2R20 zxS7z8hl$K|n^OGZwZ~oWXCeNLi^G&xEsHJhoA&l+CeZEzitzUwX20M5V1y?|uapAS z6pbTI*M+$`rRZEuLka~d{ZhHy>8>8yfX1gI7+(?qi8*2YgqU-$@oTq0kfW_)9v(DU zAA(aR{uSKGd%xGwEI{m6QAx=|`EN&d0sBdF0qY@wO8>B0@v*+4oXmI!66oJ*?!Dym z7-W~WBis3{#|!C{vG@x^^lwx2UoWp_MZ~FYqm~6avT|kVsisEIm2`untEFC_xIE z9bV~o-T849yVFmP{i6H=k_z<9Lm8!%{5$#?M3U0#fIeE4Xb6`b5~Gp!al_OUsU5U@&;6M6dA2B_F|}koQ*jSU{tw0_G}b zMltE3iTCeg?`a!rC*o!7$$_cJEULs*6v{b+omYh+XYuxsM^Z{WE^{r5k8zrXA0air zk*^vSAAyq0^^_`dMa}*c$WkP3@>a|O$w-AhWu2v2Gm{aY=2&O(8pee9w0$0 zS#&Gb4eRYU*gFezUa*rc&l35FFM$E~m(z_DKYs6XS^b7$X!{SORQWM&gyW&rM0%}t zl2}KG-c=a<<;GuOyhJ6v4^m@7&U_Q*=G)wjN>EGJTM3nAl=(c|l##1Zn0=GfHkW2j z8yJfS@G6I|D1TzzNz&dCguRGTP~TtZ$KI>?mhYAAuz6=XUa81&1^kiZYg43AP}<7Q z(;2`1mOqeERCzaHYmzBYi_qEo<=h>6z!(&ztl(|8x6#1suPPV6tu2h0a`X_T|96^-J z5Dj`h2Ky=L>H>n0!sB(}9>!u#5S|^H=Ew{@pYx?^s48^C!;r$<+>J#OBIU8_Cgntn z4ZgJrk^-0#EJ>1zu(m|R{|*fP2sSgP;RruhO285=j9niL@!>QZ0}P=sb3`9`{qJ9} zQ3P^H6r9i9NO+2$&}c-ml+^X;rRh~cLzaPUdkI#uO$mZK8gIP|Xkc^S?R!b&cCL3tI zm>1ZCx5;NP#NLd3Z4bZhfTTZn5H5;gkT`y0QjJ^oi_90`58R1SnN8)Iq|s|zahDfz ztw7ycmQ}W8P6FITLEGD(j49Kj1|EKbf z#eXw^Xa)L(Z7=r!X!^>qsJicM+M%RVV(5^Rl5QAjkWT6DZh@hsL%Kt{L%O@WyO9=< zmiPGl-v39h3x~r#v)A5h-KDba4H13hkvo_wQNppNGynI@U)de3kQCjZ7c~6ePhw`H<)9Z3Av_>{WZomN@J=E%qGkmm&g5S&Tm$DN8ix5svydu)15c95ff*-RW=hvO(@laV(CdTsdI~l81 zvk$aZ2WZRN6j=P65%Nfc%X<={8Hne6_yYKS?ozAnQwKrH6oUhsnruo`y2yd&f#Qg*)>4!5_C=Rx;KFqkNceS_D{v-x<=tUbx2=D8OC? zWZR$eXM~PBM5nj*xJ)-AwS?_3*!y6jEJl-CGH<(9zg(f+Fmk-%FzAx3TB$NUUuCd4U#itRU##5woz+0-!;IJ^%Om{C>_F7J z_0oCkwHca{4qHbnwNh2bsPuxS5cEFz3T;2*$?C=^Ox+QmY`8_Ti?9qhPDGE#2SZqI zxn9{1@4adA=Evb%l%12j1AdDqm!|g`l`h5uat<736Hdp+$NFP2WW%c01=uY_2{O%( z=)aoZo~<@-__8=uXg6NcGzNOpS}7ENeG8oc#aIA1qupuKmE8_>*v@kW1?XvE(VafH zlR@O@w`IPwZ2y`sJLGdc-Fmz^-cRGPx8qkJnBocxsTw|}F#Vn=9=qg3c^QjYAQ0Lf zhZ4V9Z#nDdmq>1W6G6xjX-=lXSs%h7fF#8gX-2@T8{b~cY+&#`XKKD?tXzSQHqx{I zi^jH(uSQ~LYGWrL@VHyMW^JzDKmIF#m6}0O+#8C#PwH}gz~Uf_&+7c|%)t7N21Q^l|O*3&5b+uP2b!3#OG{p1!&~un_7?@Lv@>Rda-eFr{gfsrtZ*{ZPs1bWm z3O=#etveiZ1-OvqI(1%|cZr0Fg`8Gf+CQz1iMi~K#N9j;Ba)e1kKe05yiK|5xZmmY zdE=|x*&$R5b7;u!L81EqXf9hzKAS)CB0!7n+E+HjZ8q{sF6h)NbaxNN4Yn34bPnAv zR!&rs3!8yVsP*dr&AQoQ;2`a4SF8{2rk4s+r#Rz!tc&-j{2V(Z`q3IAyk2mooddU) zKmK#{ zD!(SRpB6sycdOg6kJOtO!tqR=%?kbY6>pd^EU?sii`x~&I>+M-{WE4RpVZxK(c~Y) zag{=uR$12OrFGvs(n{bTbe@5DjH;KE{e9;;FPm=Occ*t0)8PrUt?y{`4Y8=9UK4Ac zc6-Is=UV~2(GPWvXWFgV0)ML&b+?|Kwfn!}wcl@vzMj2iUFTb_Osu|ax^_O!zdCbS zFN{67J@JPCbrdwaOJRzvGJwk3R;^Gpr393zNYL^=u!Rneeq|O_w|i|Aos_^Psc|nz z@v+_fX@@Ks0MH~cOZ_}5rmEkvp*&r(z)%fHe7Fi&97tl zd;BEG{2b0g)H3#N-DUPxNarr>V2yB2E|rgYlg!J}`Ag?3DLfq?os7?FTvk?ekqYyP z-n0DvMIAo%2dbg^-H4I*7@Ah9pX8~KUvClffBM`gG$xP{!R0*1EIwg5S?Ss-6x~< zraRydguyf#p0vIMaTlds+CFxf=% zspdWa)9at+cS4)pHz%uu4VLSSoZH12$>GDGfy~qNSXqsfs17#2*P!Q-aqW9uGT-V#Ma*#9&Cs z@VHO5p4i(5oOOQ0G5);XbB(u5cIz(C)xI}mY0+~@-VRkYlXC@mj05qu(ce|(YOJmF}I zy3WCqWD)iG(Of@1veK@3&S5JhcQ}2ILECdBi+m1}q3y^|a#w3s=}(9U|9;G}@X35@ z@x;yiFf?M$sQ06Qyx@RFs=N782!D7cX3LdK`C#YS6IDJIF3{*S?$6gyiS$Y0F!@D> z9A?oWyX3!bfA}eQy8-vs8sTqy6p%sygltSuW=BWnAr+;ZonR6o{K9_I6(fA>OyR;9 z^^V7lz+i4N#slaP&f0C$7lfEozoA9$aT%W2cg%Y7n;aJY`0=Qao?fqhM(n50Fr&b~ z^3eDB?L_u9l|(9ee%_l@cb_CKhf$T}bnt#?7rhtjnTR*}!^t3*8dmT!p8z8#0;(}q z0o<}*;0pO(0u|(w^WlV`G-Fec5`rBM1wRfoJI))ae5!GG0JG|VXE4YuH?S9zBFdD} zjB;*0+Ue-HHbEF_8=lJTeWA9SqBwLrAFGHa7hX=D+}1aQr3XA`Kq?cZuVJjn3J>fn z=&7F6-!45pxPaSI69#D6@Ea{j^YsLObINzbUrSiE#s<{t<9Sp?4Q*c78BQG;tVV{S zg8j$@ln_pOVr&Zj9-g9B-do-}LNhQ(SU#J376@rS#^SMEnR7jz+HkLB_p$N>ro%I} zlFsgaG3P=7K_4HAr;T-i5cG!@H@c)xJ3?E2IScCmf22KB!nRe&mlX|NBh0Gdm)i3R z6=)5Z-(S4>J^SX86v`Gf^BKycxc6Z)!q}eP4e96|p--IY;Ff%ZQ4n<#BVUt9>=7qQ z9{_@AZb=*|7!xIzr`uu$_JNRBJA7O1A%BJcDAE(Sjf@-qiEc{C zAZJ+PS#yZ82B0(o#q}EBc2*?yh1}(UIqD-M`yiYXPfI%OCG4fDFa|Fv^x6x^YFD4+L&?p^EV%k&G7Rpef0Hc8=j zzIdo);W7}(`xgmd9HqDZ9+CAuB*hoa+bvOV_*SO#v$814JA2M{fp&i$ zRhQ-x9)11@Kbs!Hlvp1pf4V!$uCSPfmVJEhy&Vt zuakfmBHab-FOVAmUE>Dw{rVx7x(y&6szil$=iQ;_lNs;hVnh3z&Tn9$9|*<__IQ=f zKJb{Gesq6vU3`2nT^SBX(zwAJ>-PP9Z0-k6C#oHFDDY43CxZ_FPb*?>B#n>rp_X!P zQDBw!mV_U{NjoK9N*=@YsNQD3J|FV+xY~#egt1=6%Ek66fY2{2_DknG#5k6fbgw54 z-F{o!hBb?2Zsb3`NF5 z{Y!40(RXq+^GBmxbDI?VH%ejv-)G$%pj|RuD`6%mH=WNe`Uw%BMqrQ!@3I_6@oW@d z0@g2{pL;{lt!F&oL`O!|gkKDo%BDwPNQZ$$Vc(*joFK|H0D2pCPqVMjGN2xmTs50* zPJX>D&E}AiVLH~Xw>hwDzm@uFbL?br=5<@z&_VU~9A1E)(NOrlORy41J`pk@7`E>p z@ou_nbrD*usTeR161odV*ZFDV?*IDaY&USDCBzX|IvGAv!{=}rdsoo$=vBNa`)!Ob zUIJo8_+c;ol+EB+mdB-~Hcrd}uZ)b@yB4uiqzt0bTljH(W}c z?E-5$hHVP@ps=?`Q6S@u*1{O6lPwehQ^3+ObC-Nk(YmWB@qL)oZ`{?7{q$9Kd=mkuzRlsDJ~gWMy49PNH8 zVkWLvx=wOv65W*gk+(rAin#e=(<|a+xvuqs6_YXY4yl8Na7uSsot)c#V{MXdtCj*HT1=T|(7@A=25-Gk zd7X*2nEW{#)eARj7%KmX(BFHijxMW-=!8xz3zgiersogY z*pt!4Op*J}K*M+r2tS+@Utd^rOBY}oGWhj5bYyg0l^=&T56IOVnhQC0kJ=j0DLjML3$o@bCRCf2_YKvwl%=r>_jry z%l6+S97E$ko%W3aNRdKrczF0c;LZ81epk~Kj*lto2#CV&lqmS0OMe@zR@mHg>tpHr zb<<@19bV(Vafd`hFdnD^){JdamBpcN>~9lJ`sG_uMjH+Vj$WIi(LN;p6;xEj`c%eT z{TBI5lQPyHGfonFN@`!zHv)`hUCe2>*5qUbMFoBSB4@>pU0KU>Gju)G zP4#z0rRdu<8>!M#)OC>@w%T|M8UN|$pUYY43b!tYlh$o?G&KD$N78psEin#~Av-DT zIM4XFhI`T1QZ_^Nd6`Q1Vf(NiLeJ!)D1Bkqn@yH=lVd^Vd>ksjoIA**qI=vFp!Ezy z5@Z1fG0_%`=7kej?G`Mt_FbD1h@B@*WY_hOe}$g=*XmI?BTB=3?2pDdAGrK?Qeu%X zsfzzbnl8AUoPREnBR~CeGVRrCjdtE&vm7;K@;T#jZHXhyv>~Uvej+;@zhD&bb?{O4quV(=4wK#K2!KCH4x+h(N#q6q0g$;-$Jrv z07C*oRdWKNBUtdjaqfs&z=xe%V!PUSn=kq{`jqk@VXUWH1PtkWgfCOA37o`5^&aeQ z<`|+3qF*w~H46S+DR(^d{&N>rPy^6YJt6xxR*GybpR#5}b-SqQ=3H`bb$c=>LOqOr2S7h2Jy{t1%xZ+B{#69ZR8v;;)&! z$}DY^-mR6Ie5_Hip~D#_^??=kSqni7XWe}>%t2?P zQDxBS_YU{nM*mPqkWRft9G(^)yCJ)jNV(`rdjvb=2mAe(_(wVZ!!7T;m$>U)0cTqB zSge5|GX3AieoxnEi1>-}A%lIoG6L_!gk4u$ep1>N5>PP;)myHPurIM=Ft}+W`3gy5 zVN$QN63N)4S1p>=X8jw9^p_cotMIZF`3?Q+IrOuD{S zit`at-{|#pdJSre?4v_*^!q)0=yxg8A0aieVq%*duB?A5xp<;$e+E8(Q^EIv&f}p5M!(-`tQceAM_q&f_%OP|o%= z1xL%E@mAbx==u>D`IAOf9FdICX!zac>rf~IXg_n}^9~o^=G?xe-A=(+t*j~~I8Eex zL^Yv6?C;S=>apf&b*J6nLywCjW}P)48o5#NRHU3}P1kka)Gt#-^J94O^_KQzD#sv( z<}J_0R7Sb8bnFpW6P(Vt_r4&OT+~Q*=mGAVbe1Rjx{Co7q+5(<{Qa?I9UGenU9In` zLciQ5YIg-Kfvfu(!0_%qUbx<#Z!Q=WzZGyt=q5-XFT2(QfIGpvHR0ON>9XIM zb{CIgO9=6eyWq%yYG=;lF{B}6NW~*6=A&Mve^&ejt9;Z*Pa~Oy^d*hv+gw^dK79Qv z!0df`5?jnD$>0pQ{PZ4Hk0LbyEz8Ff62}xd@9t$RjJo#0?<@XXjqlSR*0$RP9ez$n zoz%;>QPJ~fQ2rf5T;{i8wm^qbNt5X$06lTiR}$y}Le1xuD~u*iJ?uO7aI}W$@{n1Hj5A4N8dNDPZBT*ye&MNywbZ9&Xel%PtJ^a-3(k z7rGd~S9TBxKvauyUlw2gj|BT=EXG!dA9rd?pAgFQGYV8q;@qYy+^ zPKg&L2C>Li9PA@(v9%GroH1&kYo(ww~gTf9N zd_DEEzGgpdyN3zl|XW@Mk5-*vhNb<*`v zOI`Nl88EUd3AioSn%WgHdL@K6*lf{=9))El%-7d!NHI)^F56w}3)#*89h52T9} zGJhqwx$G5V2lnY=1xgHq7r4QYwxlZFf@kRIy-^!gTfq;wO0E3k*&+;UV0w`bNYXHt zwrj7?e+c{(={*cNq>&0i+#y9!i?}h-k1>LYgw-=0 za*+a(>~|Q8ZVTmFep`jGgT$FIL`%3960u=faWJ9aec8wxzs@@Hm^k8I(z#2o0P^$4 z)y=@^W?vOjP$nWBu9A)fc07L*35iUS9X=`GQ5Zcz zeV;JyJt-@>s*(kZA~&r9UAYV~9Cxm^xe}J3gU-NU)z1!=^?1sVk{5a;(~Pn|>WO94 znP2S@{&#QZhCJh~%oj@*2JvB`Q3-fwNe?LoILf|PtO6e$KLP3v5>cZX9B{2Z*`mXm3@>=ZvsL3XGoTOWdt8?m{)BYokO!x#XGb-(7=rAs_lt z(g_gM=kBJ~zxHFp-vG4aoLFuwIK9sYVM(Y=$VSAWg0V;Ubf`kRqA?G(&nVc!Qtgy) zDMhznh|x(tI>-UBOffT;N(wXlybk||OFFQ91=rvrh#GCEQt)Tsh`B9!!lB|hYSSWz zsdg}T20|l3yhFfOy@1J_{NKw^;nR6_+`3fbE)HUTw{nB#ip8=257CKr!T9n=a~USq7vUY7W&zUbGQglBR8e{w?1{eA!~ZAFVM2+3!6Ki6%eLI~X# zmKe4|78O;aG=B%>Kv_I?)?fD+tBMm10JA#=mo4Z(R3Bnv=#vAjL&2u|r6)B1_i{8% zzdpL+&?(#$=I$|U$3_Bpxyd8HD40p=KrapzTP%?gGp|?egeH-c%W4jd8GlXc@ouL- z;st@wF6;l6^z?&Bz4iU&wyGzct~BjB0xVV!e<=%CMHcaoD5H}o<=aqtbb^$jQp(sr z?h>~X1GON#>w|Fx*YiL)AFtuD{|}ww6XmF4Zu147A3YJES|dKbEWjxsGi;fxXVwrN z*O`;l?$$L4Q3bcdy>Tgt1z#K)l+XQ$oB|rE7dWkSX>5-F4^e~RZ#Hc-It+V}oZv7E z5aF(+aiuJ%z+%?Wx(O5hStkCMM&Yo1FKU-iaE-7^1K>7dT|3k1?z}eFU`+8n_^dDT ze}5MH0L;rrHKO8xgb^Vn*(O{glwdFz5eg*EE#=0!sidL{tLPQZBsBM)2d=VB1;Uaqa49J zAeft)Q$e2D@+5>Fy#g+b1XUV>Q3+TU2JB9FiSUQw9nJsmtD=LprCLp>{+U&}7Qr%X z0%rU8y(;cf=5OomoUZ2?t>tB48%G<}f>9iM#7pUH63Tc&s!1bC%qFvJhtVnf|9e3J znucE;NM~8ZL(mM#kZUL?xn**~etn0NRP(fhcHvHF>4<``6LfnK)_8l|4pBqvollFt zGpg~8u+)NPCNlXetb)SW|NHWT@d>;5DO(k=D$yicF-aP~gYCacAmtfCPeA_61bI@i zDMOD^TUR98#JL5yu8oaM`jctY2;m=14tS5%{%>Ib9%O%Y5E6Qx8>x{vW!IMgh^92G za!(*bIvf_YZe<3DS7m+&~3`+qoClrd?w$#6(nbgy(NK1^gjE7hnvZviwR|42O=g)(@;Ti=rZRD80VoGh#A*#3BUJ#lf+;%dsf za}@#}2k7hagu=s}7eJfq`Yr3eGseH@g;kqyD{VZ3H(~t#t#hU+2h>%JbXym;7b}$k zH;fPngW0CI67={q8;mEWlbd~+6kBRkCc9XnvuFh*QP>^N6aqojZqX)hfCo(@+M+dq zE_J?omu_>dkn;I-k-pB&6FMjEd`KMdP0w~b%q@cQ*g+#Tg(G*{~J4Mx#VTUHo! zZlII>{w@p5rqVcV_j-TRd42OxPN0)_74LXl@s`FAyb;IAr?-37)kyj^mcky?9^>G? z9Em5oLWc=!O*?fMgNIoNSGVhX!tuHSwh7fXx+<}s86>+GK`54{=0Ox8RHIo z^(9#0U2=#engM;}U=$(yfPH??w0gPfM&@dB{>kEn*kYLmt461&Ao&kUlR}HHy`NLq zoz>ke7`-N|zeJB+*ZT!wSdz_R<5dWb-9{X5EtKmWz9swUGjg~0DC%9SNx0Rb(yB1a zB<*^Z!lBKKSxH6f8zfQ*bG#7*9rLL8OAmTaj}ad9R`rJVMNhBG{Z(q8c7WSz&Z15# zol81~?ChVTqx9+e7-5(c(&bk|0d!){r6?kf?u)bjuujL_f&Zio6|40wrjrc2KQ))D z9TVQ&UlrMnEjgZd{S_C2yPT1&YBA6HTZXZpdBh;G`;axxKJ8fZEqmQ@B#HTiQMEX> z>`**AgzkH6%67dF`{G^3xZ{#JY7%Vad*{E}Xc0$Wc7wU#!qM6hq2VS-m~GPjS?zd< zU`OgOY(swav-r6w`QrEG%8dgK>qkG|lN~G81CZ1Ly=0`;4SQGL(~N0}9YB0U89w_H zjsndi^FB3Pd{|TP`;hfO1&w&f=WDQjz`U8t?cnUxsWA$E$Mz)$2oE5K`fUYI*=TkS zJ1f^1NxCbf&d{wdUgEY*no_s4xXQ)mRn3$8ORT~FbFqzsrL=(73t=B^+T)I(K+lEn z-=ZLL`xjjBm04~2{FTtDq@zWFUTUL2&;D3Cp8ibh6Bt4lvYes*2?)V9A-8F%?3ik3 zQ&Pfzj}peFY7fF8x`3sXj^2}-ZTn^Hrx5V=i_&}+8_;=e?EeF{fRVIIC~J+KS`uV2p6V ziHz_B=a@ilh{zdV2BDaTF~UL?elgx0iHd^~{b4AamV3b)?2g{{^wRW?nIW=>m-A&B zt7+76M);i-l!;X2AclKTCKy~JcBFe4QyJ#Rze9o~M*mYCT?h;vjR4_vKiGuIK!Ivs*oH%)6KpfW+yS6)sA!(G_1fy7uR6Rh${3YG8O}GEjpcJ@gji zSOQRH2=54bq}(Z~g%i^r9GrQ3VHT{Iw{a~1bULivoqV&fiA{(ZeiH6R1F#{y-k>EK>TwJ|C4!eWB4io7D~~)ipwioGOFkJ zG1VU~2k|jmf`;}QHBNrI7zfd~rBrKjgOP(>H=|y;9S$8|3sFHTxh^QcBk?KtQ|{h0 z$pKfxI3-0$GNEtbAR6P>1jo>isgiW?F5ur*FGp?w0Vo%v#!1|%qk!(3XCcS0*5EX4 zQA`8j6Ka=UP{?q{=Ytn$tq+nmq%WhJ>Y3h}`(44n#d_W5Br95u6#<)&zn#Er-xY?>ez%rum+IS_>&J?{G< zrq(SOVP!qD8xC}aD?Jc^*RG8p3Z0fi?&^srY*RC8$m0Py~`rpm5WL`$_+5W zcAXTu_RnRB>P2t1zRMcp#nMBS2!41AFoG5I2c8;0Yih-s6QnCnL!^8jeawn_+hrg3 zZkIJZGP`$U$ovHO$J31mo^mt6TNfR79Utn1c#l=LZjWkug_eys))3EuI)45DWfk)X z5_&pHymqGZO%+tOKyzRwVAkFPX4jG?W%bocUn;}s7th3a102@hz)`BvC*5Txy=M1+ zU!}^aOuM?Fn-Pyu3#K8)ipr0xg{PQ*cfZQ?2$bFG7Xhj*kEIZy%UHtwSuJe8QtgUb zgZq(Jsu}?Pf1LP!=Ny#KhLiLMT{r`k4E+%Q>!GGWABpm%u3e0ekjN#ePtxJow`AB# zSa?+VLXw1J3DpQo0+sgTL2ndWgtmNTF{_15FM5ynfE*!T!ZeHnyRnP~43UQ(w`_NQ zKk=*SA);YeTdXn=HdthgS1uN^R|lc(o#F;gBp)_jEFJUbWbzXd`kHq?d7{m_qC%73 zCS77Xlfja2X1@O+@9}XX4Nft@jwUS!a0NO%HaF3}P zcKLVlSVhhrXW*vn{B%d^5=G48GM>hL_1vWl9L4Qh+4n?G{?i}2U;?@m7RX5F8YFRM zpsd01J?n53ZJ9k!aMw)1+~4S#L}%Dr<>AitG;)(JeFMB8yRI{%&;^i+l~t)Vz-lYz z}(&V?-i zql`%ZKI@e_?`(1r8-N~vd$L+&fzgEN&#d`boX(pz-(4u74*jznZZ2y6HpS=pz)RX( znYP|F02b0OS1wg;7PGUjIs6t5yFwcmH=QqSZsAK`$!HXGS%7LHMFkP)6x(`$V=gGY z;2*|T^!o87TO=_AWC^$9UNNPlS*CCfzuqNH=x9DKKQn74IS!La-+-9TWqrUglEO-f z#^J7DRtOvY27|%3pYf;Hy!N1<$o@$7ZW_1sDW98#zwR5|xk3Gu&d};Dn*Bk{+Aogu zJp81Ngi)esSr{j=*!8tRr#%^BBpDnR`GPgB(y7ie526Z}X@dB|@ZD>1ZiY+6*1=D$ z3WUs<>%ZRD;~(`(qeKLY{d`_`d=MttA%7n{EryyK&=tOe{}#70NsK2?wO^7zZ|_cK z#@S4A2*66`H4M%t_yLpP)F90946fA(6$e6>N*9)Yq#|d2R~J&g#_MapfAYl!Dik3C z*%&&n56`cChm^e88QHmRI)qWqYyMj~*~Su3ENUcf-l#jaM_QXtTnfBjV&#doo`a`t*EFaelkFIhIAW1!-bQ)?b-i_Zl7d zW7+C^TWk^CcL*Yg3~ZA!y=~=EjzuuDvNRJ zuPaUqs$3%aBFGn~6$hAtj9pBnZYqdu8mfOqn+j*rtOn~u4srKJ7}fIwsz71JAMByi zDH-Mp2)iV_htGuB$W7bcGRX`?-@5VO`aB)&;iMJ{hI%m$wd%~|6+d5kT@Lx4^?G?> z1R?}3dh7u;AQZOG0!R(F11NgbtPbKaxMrZS+f9ZouDHG_gQ3l+9E^+-yv9&m5`qV4 z6)FMpn4b_Bjo^o+1h0BYHjh=D4W;GQ&ow964&%E=vbs8xuM+{$W;+GLPTPl%m~!oV zeE(RR>-EPRy1!~UJLA*O+Ai9zxmi`{yztCDLH&=86TytAW8o$yB)@gLr2Qi2JcN2F zl{-S6#0-yI7>GD+?m?Y;{5^fVjN%LSGD8pOFONE%lAaTu)ElATxbFUi3(yjfUXU(0 zsQy#mb`b!=gsX75?fHdme>823MpsV)5eWF`XpFxI7m)2uNoC0exp4@YBe9Y|52$!Y z@a9&MG?1ns)hJR{T}l@$(7NyYw#otT;M$)fozK5V(9s#F8vD-m`c9- zQ`os3KYQD|RK0`*1tWZHq&q0IrBGI-ov<4tFM_apH96?}&w>V>L9GREkLbG!z*we2 z`&RkS6Q7&a#f0FUZZ^bu?eJ7Mcm!q>6I$D|CE0_FjGU+R@X zd*IvDpe!kF$@bA3Py!gkpUmo#R?Ag7W$VBFy?+;QMy-jkD%(Y6WZY3B78f4pH(F$L zt%)o39EA3Ett%bMEk-WdOM4d*_Nz2jTKrojVE#GVVA(rrCfN_Op-{HKth?$~@zS%D zZr{-zsu36+s`lp{kB!?uDlb#m{sS8kDIF;@>HZ&EeqSfJ`QlW%fOH5nSZ1+%h55e3 zptIv5(m0b2ieR5gjU=^5ZTEa)P}K~mnVS#B(;3J9wkO~>;wVt_NI5xkZ>J?`D}1GHGR&F0Wi zKVe|N718>b_Fm7ay@k$IMA9KF_z@?A%Bas1N1w93#&K8b0$JsXzshasDV6SOp6rH) za-r#yOfH$TvM;Z*;h`%X0RzXg6#X^%tH-ka@Y-ehFmfj0sGtS{#NF2`uHm27oQMM6jE8D!>sTl2_iY#f zKZb0=@_YZz+3{SnM0A4deotN}wCp~(r6Y+!mfkp|1B)?+iS z!|6I-s&OR-bhvwA(;etp6S8>;Qjtll2Iu_d3wA*K#Tu%LUFNM8xedD?tbj+Z^3EHd zZTUkp{a9{O1<^S`G4=E3lCxwV%pxU+<#9rVj74$MZ5`FkN1d%5U79T#TbvH;6m5z? zwLNu`Kq%$z+YV}n9h0?n);XLcp9 z5%R8dAlgc+d3Or<--T>VZB}9;$|1=w$ z)7XD=dL<)~-jeJg4lDj1<)=&yu#x!ir^n(_^d_*s1~kKKDw9nO3FCIQatRsZsOdP7 zm`0)Enf6dX%d3a^GX!w7H53M=XL`K0v*G$t&at#nBL8$^{y>q;(kj{<;}(eD`2a}) zqv4(7uOPdF{INQej61|W+8<5jep0n>0#3R*9?i|!8F7m zg46T2$pxb8`Py<(dqNGT^&gT>nm4(Ee1^35vJYNmYy2ukB6;<=gy5nHMoeai~2+GfE=A*D2rZ;$6|K4DzKbvL|@2? z0cY%$kH1;eDCy6BD5f9N1vBJwxQ%(Ra)U7Q6(bwC=U#d_er;4(_n}&%UX!4lv}&36 zdnVWp_bjaaqu&&(i_T-zp7tc!YHB{?&)qqpgXV#WphcMg^-LQMlmYIo2xeT~q$wH0 zku&lkUK!qsu4!s3Z2lCLC&ncyt*TTa_~0HGeQZ(| zA`?>n`fJqSMSIPQ1d^tz=4Eyy>AB~Vh4u*V(?MW9o5ugm1j{y;#0ATjp%tMDqC=6( zPe_DW=4Pl-coC{#C zOqE6Pae51F>r?lep7H!~s>~tP?U(G>-&OuECp0o<#rXylOn1$fn{dw3_Q(Xt9}!;P zKkID)Y#K=^`j z0;M}z?WgUa1?rEOQvU;gx(KJfEslLd8%!Lk)-~jB1B3zp!GsfQ^tGfat~t^Ov@-oX~~&8j!vV^v1}WrOnB&0`^4t|;3-`q zuu&gz4G=V9pEQENwUC}dMH#m(4EOS@PRu*tIF0~Opx{MJRf`j4#*JMf5dQW%#DSib z?IDRV@jJci=dUGp+@hYe(dVoqU>+yw5b=B5u>Ic0(l@HyXNnZFlpaL82yEmj10J2a z!~H$CaMzHEU?R9l(SruqcBOLuowm$E>c)csEoJsd9O-#59mG0z&xw?@UhO zkJ9|3w7L%6h?Uw6Rsy#F!@1YkL_ER4zh<(0|7iW-fq-SHJ4pE7szS4XP7kma z3bpHaIFOgQtIWq4xPC}yQ@5Z7%QYaDvOVjk(Bpc;s*(0GFsC6hT*hPOq9Po`r&JrO zL{F`=Agd_qCCZGn$Q~`#J)@-b$WcEEq%4 zGIdG@g5@BuMIsvykJ>?e0>@?6T`sdrSN$bve46P*VJw9R&@Uem<`DM+A)bu_&zHTc z-{)e>aj2hCT%{ypR**X}iBZrFvT^c+REvyn@ZSeYIQ7cpwu;Cl-qVxK=u*gk)F=$L zDqHiyep*txn6O$8$NPtgg7Dx~ji<;QrCD2!@(PK+;*=V9{q4AH{QBm`JwSpj>s84^ ze2JnD+8+oOrQX|dO2P)M$0>{5+qG1yZi%^QG)FrB69b}F$D{a_TJ?EV{eKXA5JsnW z6FAfpRLd$W-U^9=RV1u~U`&LmvP;`Rf8sszF(czi}^E38CWr;&|~=R8h!*zi1j zAQiL~`t-l0mHQxq4WG;BDX9Z=_Y-HocGG@IxFNHm1R?%l$INjKet{!$g@?k!g&VRP z*U&;@Bk0*Fk0_Ly@s+jd*|fXl1r-U(X;ICV16u&BQ(YTU@ZSrw`S8`f9rapuZNp-4bswxx>nWvP?5Zx7}D9>lQbqo~If*r3Y+$ zoPR!!04ry=d?WLJRk7FI37`%IWbCw@K>vY1{tfrvvxf;G zrEpNH{xs_UMwMoj(r!E${Z>nwS0Y9cB&YEV@lc|tntBzaWCKap8?6}W#X87ipdO2T z&J73f9(*a32*jO|LrXR1VTR8?sN(_Ob9H9Am`{r7z%~X7jv!DSbbi{oy01A7TG&c% zNJ>jdbBW#;R!cT1+ld7R3uP{!u}SJ0GB(JY$3t+u*XJv~hN3mpR~XE_*D$`O#s z?BEBulSoV|qzyTZHYOiNHhbLJTt3pypKKs(y1=p#xMdfhW*kL7P|x(5BbO`6EF9(U z1L|^|??Go$uK}l$+M8!HB8RpZwnz4PF z-25)^v-7rR0PjtTywOw*xj7(YRrnTBtNvwLlLt1rF|`X6G%Z;=C6%YDA*qSeFvXOs zQKjDzA4J0&M)dCu(BmUvQZag90Q9hiMoQL_SB@N7Tp zRc7eVYGiDqdTn~G*A3;E8_2k^SYEz<8D3>Vl9|Z`P6y8H>1ZLx3!&Rj*RN3s8 z3c)yu{L5m4Z--AtP>OmIOc#tLcGL$s#7!s+`gqjD+j zji7#)OthLSjuXj)Pj%?~ZkAnIp-t=?447Tv9$;QO#kgKx^R$NZj248`1pu0$%5X#8~=f z09ShmuKT|mftWFPl!FgYK`%xFY&To}7o|Kl<$H3&Oo!Y{x`6H*w}8l&#o%_a;)5s` zp=Eq^(H#UL+gQ_|5=|0d>);1!mS+URA6uL<$F+b&B_0)@2~z$KZe1u(WzGox&vJww z7imdGOs#eOyM{imBo=XBSb$U7WhdMV_GdKc!B8<3=Uu?pA}HH*Rq#R&6GWGjWdq4D zcuEcI9qd`C*TWQ0P4@1oAz@V42&f6+AQgbkQ_k1)zbY1JE? zT_Pvl0|X)_fYxge`NH4++frZ9Z~^}kDI1!rgzRUNmH*e?S3flQM(s;FN*FDYqf0hQ zrDKfIjg-LX5CmyNLWT|*9S$W&Hxd$3&JijCLl8w8!66a~0)oK%_<6to#rNG$`)T){ z`#JZyuXE0I&IPc?to92d5%8c`IV{^QR)TrT@j3*{5i4EKvYVrG2L+s3K|E1J@M}UCyPCI{RhZs-o{H2JArwOx4%CUh(#*jibAFA>Z3~HtB8L| zhd}X9XW5L>;8O7Ng@6oe55vZ(q37C{`>FzDv0}DL2e=}2e($4>aJ~;7$8~pjy zus~c)bRIXLIdn@?x<@=?V&G}nNm2-UniAFBM3YxREF63WY)WLu8Mk=GS97zH(tVb7 zIt=T|6uX&0V>l(As9{*1*-jUV1APYr(aYu=e_Q`&=ZwhZvl~=BSg6Uw@R9OJUydK zbnmyKd+Tw)9lkFNe~Iqo5H7su#K8J(e9-&%9(QTB zxj2LRZ{#m3=SjQLqK}eFA57Ddr4+tOtCW|Q+ij_W-T&E1K4W!yiFxhIjml^1SU%Mk z&x=Iw1(xmVFY8j=!9e+nz;0;o{fOmT3DgfeIfV=3<``Icmn641K#QUbOf-ZD5w&_& zWc+}m+sx;62enPFQJe)n=FhK2)a!?hfKk3MHTVhuqn~dt=%BsJyVl)1=EJ|R|7J#? zfdy#W;=rImnAxd2#W-eW7t2ycL78kDEQeSDnqOHx$`chFN-5e|L5tuM(UZUz@g0f= z)g?D7lvyjvf!dI0a~REuB#jLrfTDq0UV(N61336oY+L_qsgYc7Xt1B3pH-no5s7E{ zkg!yLo;_=#eCtL+-$US;fJ{9SBqMqBn!ojRgz%uABZYRYZMlk{W)PL~ zvpE%5crN*#dLw7*2%%socd>{yeN+-g|5SK_9MtdVKd+tZ`7Te?xJd0rsa2I}qhYR; zt)vqXc7ustE<(e^ZX$Mmovn_e&{|w0eFTaptd%cr!>k8HrbH-drOcpqI9=>!p3#i5Wbd9@Ie*3x{0uw zdWs>d+{E^x;K_&~kav^Tr^d$<1_PqSQllKZxGbe;LlngpAl<-*yeLkUZmIjf7zkrQ zyZd;g{F!RRRp0rPT;hZl&{&%@@x=w*L5;3S-xV({i{Hg^fIgV8BV7S;P@q{_4fHlT ze+W&kXP;&8SZrs+XXm7=s zqut(rMapAP>>;&zh|E=|3T9ff!dP)q9I_m$xr z@mj*qgbJitUKqVOzG6X0fq0D)Izn_|^5^)2_d^+7HdnbPy@sZjWlB>;fAi+^dB2QSK4bA{8(F^tpsQ}1EnIs`ghZ>$Y$Sui|?8do#ni;6kzF8B_OkFKH5uyN^$sLJdbu3fp_t^Uns$z6#KlwRL zpVk<3_^ru<9Z5Gw1g+`E(9i9dM8^-2B0!aZWp3~2_KFivwtUP@co57Jr5Gl z==lEh`_2B@-H!g#t@!ZhhN{&SegV0R0;sX;?w{seql9|}uQoy{f_Wr)SwAd~K zklt_SB8tnvS;xH&16H-7<)9}Fk%qpMzQyRDpB!swohOfeuKLb38f1%c5)wf`o|>Cm z3p;}UfInbNB7aQdhT*e{q?>d<3<XBI=cHiwLSQgBaDKPD7S0Q29Z2S|y`n4*)A{ z6_nd7116KZcgOpixtnl~^xbfgkd@)e1GOe))!&>1$pi!Adko$ZjH+!Lo>FN~2lf6J zSkUKFi1Pg*CIMQ6_lsZf%!oDlgF4(rWYpw(M0nY+vIEgez9%&+r!!|H^Bd#2b1#~K zcsfgp4BT&yNBfF47<&gLD4eh#EtNxw1I zS@CX7Jhwf@RD?YzUyy@6JAW~;11+s-@JUk8&|^c9^D5g%1`KOzk%isko{Fcnskzm+ zi{Md48t6wI9(a*|Rzm3&pA)G3nOELpg!C`%SVo(OChtafUOQnpmxVUh3omh~i?KY^ zlwf4z2ji~Iirf8LtsGcQ z7hc_<6UhNI7Zz62eS}vObaTo&T-S+0?@*F^|4Xe2Q88{Kzj+0amR=>M`@Y050g7ui z5(z5$E(uTeO5=}~eg`cs$o;h>i@4SRDTWSo7y;Ln9OuRVe*C&8&`fgLTQ;rKL9i2%wXSDamKMC#7!rkv5xPQWc!p2AD-xOh`|6rU! zpFKaiQwdh6B?wb;B+*iqzI4`UiMMND8KT1yYFox1uje6|&9Y{`UOTIEXs;b7wn{Po z^Pkt5sLJp9M@Z6+uLKme0i%g~GS7lp?x@H}=C?ioN zf)P;CGNc^j4+-=|!T`(hV7t%5J;Fm)J0lNJ*F!|vRzvl$s)IgfH;KPZ(7Ool? zV$u+>w*vG`G_>hx65TQr3%A7Grl%ZWDlw!UJoMxE#L^+iiaLwOlA4u&WTnf_=W4kZ zN+iAe&G%(lUyi6rVlo?BdqYy4OF+(6 zENN_Wh9q8UB3qy;wQT3xfpmby;}!xf1vuKNM1-3PxqY+s-=$FldNXz`$#bKuF_)mY zj4{7C;OHk6$~p4GfQyqZ(mIE~R$Huyz@o8{0Cn!VyY@GHipox<3rr#d7lB&ui<{G&b~lNCnmCF$Sjs+Ank|U_MUbVJM7KB> zIAZ0X#cjIKCZq^%P>w2DB`h$Fmhg`9c>wXTOtB)6u6!Q&(b$@kpMAIfz)v+r_*a&^ zO2l@-&$E*q?-BpE8Lk_#iogKbckw-V#s+?X~Qt6)?Z`xplZI_;6=& zQT->8P4yo>bf^CeURe;uvYrX`KyI_)vQJBQtrETp!NqSy>L0y?8Z7m#F36`)(%!aa zq2XFa>q;~L5+@yW%%FDaz)mKD&$1*1$<2DkcEG*cu(bPE?T-u*m>~eIsy^hsYXtCO zn);LKBiB;EGjoP8`b?}{v`2qyOSAbtFbiLHluKU1pSw6PwzMB_--nF`YV%PB`}K3wk-aV!AmD z$m&jlh3gejW$Rp!sNZ`_0@Jm*B|vq-*+n3o<^@nlu7}05_&SgH4tpN{XdUM-5v(oJ z#mH0Bdbt3Yuwsy@7@~eHmS|pH%fPzJE~AI^KF{zjNHzexPwED#gR)-W>>xQj`TI>eK>` z`xc?>WukZ5{4sVi- zz+c>4x!JzFH?9o~b#!#}57eA$0TR&PGxhmvwt<{`w5_w4p7jVMq0Xe_hSKo;Z$+`k z8{eM~^Q#s!IE@b$Tt83t!L{w)-j5)Skqa?72OW6L$CYp#CmWYD7Pu z>Hys90#MRko}sjwTR_2s@UBfHA6Qg&IDM_~ohSoW zYopSghhUT#ZbB2TnF__jNN>sGWvXRYgc%=wgO>IuJKs?=^}PI;TCuz|aw_^D-+h=1 zhe?KsV%O7!C%NiZQ%v5j+yig)+y`5^7=*>h9wQXhD?{8Ft3}!P96DEDzh>5S3JVLf zDJ(3U2Ch}53ayqHHEQI$HAEGMX2UNco0&CGjQ;uuP>glLY6o9c7}`VZ>!7=SU?sT6 zSIC*5WSHYRc%G^*1uQWZn)B*TA(O<7F-oaM{gIA4Qd@;@GjcQBGT6BFM1cBsp_0GtV7svopju=zRQNr#h)q!E?JrfZD=+49 z2oN^ApkY;yf!ctxx@eszkY;c*`etm4^T!R3l)!txiU z`X65(mVF%`|4@NfdQs58EGMZec0sDKH{RJk{oX`C>74U~6 z?hn;CvrS-(QyrkHWy`E_*JZ1UU&N4~}WERL?{61Pu zS3rdR1R&Tq`NZwn@@zgxgt6t4>Hc4Suy2>KWoL!~efip_G|dA4f{=9mal{?H zP<&vDEuy?=!#wzG5(S|o#3NS&(ym8D@fp9B9|id!U;l_#zR#N`E2dkUxXG^U6b6qgW|Vz zruL`F{;+2U+-yxD?{P49huJS*HjDcN{eT>y$$b;6{LoU^wUz0ttW|G9 z#MZ2h`tK>L-$xUG3g-B?Dhr2}`9XxkC1FC$^{N+$f}7l6_h+HueV0$2r}$BD92eJf zd5!&fOq)Ey!|y5!LWh)rAXsew!Seb;#QKih%i2lB@I7H3YDNt0@@+Ki6dEn-rp(4f znfXxw?vlPv#EDe}x<7Po^!Gz`9|4UK-=9|k-N3e1mBuw<#yIoz8=k7~Sj6KmqqM|L z3#zT|&P{p)1QVNW*$5aL7xIl~wo2qH^Go`U__)V7c*s?V>#EeG+`NpDxc9~!!AZ5J(U8G(BpqwBai z&#zs>d#7*?CVY7^z?;!zvq!dz~3(WE?p*d zVnUKf3PKq7bVB17(iYNXgfoDnNXZ;soQ}P5UksAep>m8s!@ve$3z8OZN~hM(i(sZ< zRq!}W_;J8Xd>Dz(V7h&ob%Mf>DVKN%}(w|MJUEZ@`v%qVt;B(z& z1uyGAUD)HkXf-pDq-0;~(t~pu9R2$1q*_l~UamSXh|ZuK)6SQUrng}_(=}FAW7)Ou z4jAcC+}`+JFqmaHGGYoa!)2$V+r+Nt)ur||H{uLKO)jpBGxZi6oA2AA!M-{Pu73b8 zyidXK)kC6vwgd9wU zL;-Wp(l}lKF|LQ3Xo5h5Qm7k|TDsj3o?;)CCEn7G6sXWpY9DJuDzxSc#4=h@xdKMW zh-D|?NV;cw);tPcw(}gaDH;M{L_28x6}PK19$lt8C}pf1%qpFZ^)IjLwFFNB5s36Q ze>_v88 zvXoHxrTAn(%g6O1^cnDJpb)n!(VzR%4)pf(z=(FuXmR{RiAky#T%l}(v;`~s;*PjB zSc0e;jy0JKZz$hJF8{RpVJtb$e92j?G1)DKKG@3cg+7i)iS`#7N|sV@d1ND`hXcu*7-RsiQQAUER(OHLQTJ8{XV&CTr8tv3O065$GAZy(*z2s zC+~#vKgOW1AE>2&ZdM=8@u3e$$5fJIcGa3ZGY1}tl?dJUu?~!+p;R=zrq`i|6^>Cl zc2iU)1UX!Bi%CW%({8T$gzOu_S8bxlu@HL9&s|i&7)|aF@@Gx2aRvo0=&)O1x| z41`zoV=+!ZOaiu$a*xK*t0KKoZlNKH3J$ENv2e7C)XH@TJt9P2g*6~q8Bu-!l~1#< z7{549pF*u6MZvUDmbG_I3(;~%d=E5M6ostmrk|wwgexko++ci+$Qs((s#aBDAtlPG z6nGjxe%MsdwAx~9xbabJKFc$Dzk?V*>&`#rxdQifb##-cR?c>VPT`m%o@qG^q(H0j z@~i0qFiHA%fcr*Wp8~P@D)Z-oxt=PgfU3(^poM=ID;{R9dHO|2XEQTK4xi#7~7~NAGqS1X{)yy2WsE< zxP&*NYKp||yl%NG`0*b!z>0oFRWD+pPs&n{&Hd0DJ<}{$a~Md2f$(Dov#t-%38lq6 z#5g5mp#ls2&~mZvS)PDoi~|b${O9qHbUn)A>j@P7cEv|8PiTdcFMMKj3L%%guO7I4#VX!5*<@K{8jDdtqnnEHL!f+rfT{t4GDe`>hg8+i_K7I1&cOEP!Q z!R9s>t&PJ2z)aWNG*jMsFSXmvIQe|~tWSS3x(YdX=84xn$o8Q^b;s~SiY(c-T#-G9 z0H;(HoA=avvb2oi8Vs4@Ly2B`IJJ|R(L&G8-J&YIFv*CNLTbd2tA1Pyv*46vJ^D%) z^uR$RNQur>Me$g%WPd>wKc)d`5fU9%zHO%K$YTmL{0sB!Wv4zJ%A@5c9YH3|^>D9q z4gZ*$yBqd+8~8piUOR2IYm)oI)#}kNfnz>-NRj*0)B435xBjFVVvrb|Tg0gvX2RHJ zj{|>s4v03E?_Q2_8BLei3<|BT*&dVMgb5K}3>vrkWDZoBmBi$0oJJh*i9(?iJZC>G zk{try|C+>vLcFk^>0r@xGhFU81paFE+QYTvzy!iir%@ zZ_yH~_pL$5T$iIz< z;fX_U2##XNczd{@=#~wH^@a4%;Q5}zX=;Z@SX2Jm*Xh~;43Q+6u0CAIT@qIAxV?&lXhe)fw!CQ*SU-8U>H-UphId=vS$3>*Zj?#X9{oBaeeSV DwDW*L literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_addWirelessKeyboardUnLightOnTip.png b/star_lock/images/main/icon_addWirelessKeyboardUnLightOnTip.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0ce2a4fc58bf963dc9728ebedb6978057b73c6 GIT binary patch literal 11278 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 MWK^YVBu#((FCYv}UH||9 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_addLock.png b/star_lock/images/main/icon_main_addLock.png new file mode 100644 index 0000000000000000000000000000000000000000..9c64013937fb5b5f365efc7ba6381ef883e25456 GIT binary patch literal 2727 zcmeH}YfzI{9>x=V!Js83XrVxWSBNr{Agvb&7%neDNfr$*Duhdb62%2E7!?Hx0Ya4k ziZN}i)FSPAE6c4R;f{b{E(n5XSD=ww7xNaL$=I=XvHo z=b1U@|I0l{4KUeYxdDMdm{7=m!SE_y8z>`qE~i!8LLfFUDSpu5l&IP7gLu)Q7MFSo zxBs-^uJhLx>+(>sI+0U#4Ay+0?&rJRhx6*xZee6>B+7E5VL8q4TUv?LUoi*1uqXEx zqFhIO^YYDf>l!e55_*ZpF4t{lMK`)|NrVLRqOs=lLsyeVNQ2^wZ<~fadkXJ6Fl+XV{>X2lpj%?rQnrT`R@eth8Wa)`_7 zY2sJsAG|m&e#Qx%9^I@u&dhMs>}s^R0_MtE#8s&W3f|J+ZVr!#h@dxl|LcGvYazW; z4Bnmd@{H3(o|I*<<23c3hwY3qKq<%F8&1X_dnKy=)ukZp7sa$gccsnB#0`Rl3lh-G z;|6O;3KBiReNWs&rqlhN${nQL+XJP62&jn^Q0x4})wZ;nozTU7@wl%q)ZEMSzh_(J ze>+?P0hG3@AZ0`%MA;dfkzgPB@2pu5#V*ec6uf8mbT(d-e8nGQP7&r<`2p9r1n}`{ zlmLjr<%4#gh2o${JR=Q*zwVO6$2V69QA#_<#Z%e5R)G>0*+7EUdr|&VhYkW7dk0x4`d0}dv5X4D9qwM_zxNL+lDxy+7- z>iReUW8Tqk1LTf(TH$jmPY_^Vp65%@?w316ShSXpk_KS2>XmR97K&_8$WHwb;{Oq1 z|7VaFQL%K&S<7h8Y*)HzO*2lEj32n|s(8GxZ!YL|Rnf(8$I$TjVfU7XrQ5u6g<<{V zm{e%rsO<>vw8q-*cK{YawW=y@;lYXFmSgP{`KR*vnP==$MT-TqpqA(@*nzr?SI_*E zA#S{t5~~@%wrnLW;}V|K*i=@h&tE!Z>;v*z)w1%Q@?yG9P&!1APvp1TmNU<%<2*43 zjm07Qy5w2Dc3gG(s&UYTp#h)tW!apO+&sQTj) zEFbLyKms)KJ@0)`Wc{Aq@egnD!-w{#=n8WK&HwJE32dimxIr&<{Y=>Egam|2Ty%}N zN_)_Gwv-Vf4yMAtKuY5N>zBVna8ptXn2kv_smgodoX_JP&UL>`>sgJ_PyMHVJ61ba zCXx>QCA~*$W>PCV)IQ7d{d9XGj3TbzTY~Un4Bo? zQ-qDe5QNTq_qy(ly-UlNb8>H6Yqav=YM*#EWV*H@(p~quhm)d^r2i^9TMUy-F@oOt zrs(7Y&C|#f)oP=5AY*-R#kQK#gIEDso?x(mLwhA|3_E_9|kz!)_ktXc# LKh>|oH-`HM!SJ<9 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_authorizedAdmin.png b/star_lock/images/main/icon_main_authorizedAdmin.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf18471c10eea5e20f8bed1fc27ed7f4a4e08d1 GIT binary patch literal 1485 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

^cX*P!U=pWFhQGo*~{r-A4YElyTcg2vKo| z8~%c$lP4`~&yrm`Ug?~8*_H~L=c--LqFzvIPb d{5UCh1Kq4Nf zRT~m3!Fa?g#vmSu9{@=>B2g2Kf<{CH5-o~}cpxZ3no=!ownPV*^UYO|Hd#o&;R+o@4UzJP9;s#bS`1ZP8)DqDF99za9Sw-< zcx#i&?+w--f5kwFr>82Ej7-kkYC8Zm42wTk*|;m*?*9}Q6kjeg$S0BKlgal*t~dIj z!LL#8*QxniLv8<4ZXfGnZmELeveT{20Q_fko?oM~_plaoJ*T(Ceb=}s9q;b)-9C91 zHtYtmCjT;yWaQ(nu-0}RcPSoM^b$wlJjuWi&=uwDhMKi@Kd zO}~WswnijhFi2+MbbDIog3=UNINd|RAYu2ryAk>#BRWS7Xj`)U`3gJWCQE$d7w6w_kWeg^>j z(ru*1k~7Iy*$PM24=y%*N9FQ55a8mMls_(B`Q+@vU|q{KXOXz;7)kq zP7ilqEe5O$5O(~bnNHp)X1u3FWeUJ$Uhqb(^&2}KgmmVXwukV{2SL-x$H(+45l?1h zdKTyxMZEE3SEk!Th*o!#kB`~UWb1GoFq{0rV>)~41c2*DnJ*NYUcZ)%l<~MD)gXY1>JW48N~8!7fiQMh zh^be(F;nucs1}Ed%J2 z4$EeENISo2({+j2tAnhqv{k|5^C##}J=ZhiEz@t}8Bh`5q6qjj^xxX#3&l?mC_4KMJ&)5*1fu%DVANnS7s2 zzE8T?Gg<>s@7HPYYi#>XV{=WoUAenYI=ni=%b20|&N4|k9{;CFXV!;74xi}!(HGv~ zuGSAjawOh(&}&#sv8tqfAJEbUFRl%;>yWh>Vcc+;rRDYvct%R<7a}1I7H?4b!r)th zL^N%ji}SY6uk;8DDyC>uxCDC>oEWTzt!u^ULA;;+M<=60k6&U#+(8rTRjQ@;8-)v`Y^zs zM`Oc|7$EWbOfUU2d(w>q003HpFn3+>;-2B!D`Xbk@1d9R8Awv)2mk<0mw0VsWI%ZK z4h30q=CAi01Mq**CI78(3V_oFoK^~e(*~SY3V_oFoYo}|;6MA5ro|It2L1p5002ov JPDHLkV1j~$NGkvU literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_electronicKey.png b/star_lock/images/main/icon_main_electronicKey.png new file mode 100644 index 0000000000000000000000000000000000000000..577e233620e48399c5c175167365a3ded60af617 GIT binary patch literal 1777 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 RjBfw{002ovPDHLkV1f^U`cD7= literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_openLockBtn.png b/star_lock/images/main/icon_main_openLockBtn.png new file mode 100644 index 0000000000000000000000000000000000000000..52cf88e5b3da38bd7cbbc669864e41c608ecbadf GIT binary patch literal 7632 zcmbVR2UrtbmmUaRFiHpM9U>xKx`2RyNbgOEbfxze1r!140)kW#kS+q!K?H&{=|sBp zUV@YW3EANHfB(17KD*DeyKi!4-kf`KGVi^2GIP&he`0?D*ECesRRKIa0Jx8P0oVoL zu8O~tJpgEF0RjL3kN|j*P5=Rp;X(jLoB;rSF8;qgt+}9o^Xkh+>>@t7y0Wshj-Ixv z`U90esqxS@?(R=6lRS0x_S92TVly!{V) z%iq1kW&e@exf<%@_9QrC!u9t(Knqa+A7aG*#3%!9fIAQXcmhs<1K#$vswj!Pf7qlm-CO0 z^Be$ZamU&a;cnw;^H)CH7VntA%U)FE&u6?VbpSw^ipBmm1^{Ay0Kg!y*z-Cp7E=fS zpeX?OdW`)FTqgmlfmRS62Y`Pa4|E+5+X=AZ@(|+v!QYAT@IeHGM8qVdWLIzjwbuZA zJP-(<07OVgfSWgXA-Hyc;5s2CyRae=m97mjhX=LD^Ta$7PNk}L8ol9tE>T<0Fj6vF zI(i01ZXRAfegQFY3CTNB(#rQ#RMqaQYv>yo8X4o{K_A=MJ2*NydwKi#`uPV0hDW@3 z8Tl$IIw|>0N^08M^o;lU9|{VKJ{FgJuCA&5Qdi&5_^qR}3*P;`r*~v@Y27 zacOyFb!~lP6M69a@aXsib$WKG3l9MOB@4IxOWA+XbseV*pMU^FKzykS58n@Gpz8#L z?7~Epin_!$9#kA6&q=7267#CsNjXLJ_GxTAhskKU#1^=bm(ux3GV7 zO#{jR{vUww@j-+j5Qvb75CqDzpFk^BMKzd-&6S1$qnH?X)Qc(@z{1O&vm_q8je zSFZh^ft|(u)sSPS0CEr>ZZd(c0}22J{XUux_{&7^5;Bw^=zJ%tPSYq!5MP2YkmP10 zSB1vU%2b8cCEk73C3C$zel%Z{fu^so&`pnGzegp~N$wC1*fpmF@3emTSE5*8qJn5~ zXVpz)70QkU9FeEqWyruQPhQBv6=n%C4vSX;tsbnU@_v@-ku{{p0{X6dN9-_oNnNyS z)T!XO+WEa?i!tB8ess4z`f&CD3&9GWghpb(PS|`ll5ei2WKC_&QPAXH)SN7GU2`>@9-@Qk}|f zF&|m`dyScAZL@HU7A(wk!lvmlswz*qJqY?5dCBGCT)MR;qrOBSVCS?&Yv3Vp>`=a}hah%Z)O;&ZK62W(Nkk7*w)9EOcM4%S4*;<&)t^QG zhS(HQ439GuRRu=hRou|DSRtg=y?be_*rC5WUNjmIwKy)SRCatIG2im8kXS_?3oIDc zmOH|=3X(&A=hxZcL?ejhzI6h+X}ln2b@9zd`%H7_W8q?>Y1-Z059!TYJ(6{KzreX4 z%OAClD=fips!BJx=OeKI+2kl%)+8niy2_hKvVjHgyALY9+({qf!7n*9q}P#8X$gjl zAq2&sWLM4lSIf~-w)HM+F5MUFr}}6uZ=G+cTPstY36<~pSj#O;-2E2|ujB1mX=(h< z{_OC;sq0C!66IQQQs7vQL;F^jrODTgE(M2L+r)x?cxH zIzANN(&^6^@_m1r`8#*1OiPg0+O&!gNy-Zdug_a6Ti&Bw!&C zpKxsKyW3~y>&0*$zp?EsoF0-UCsJ&*ej?MzFNrV0@6s);6wQ|l#t#1(H#}1OhS?wk ziK;6uzMUf{TQz~05Qx?Bri@I$Ew1%&1^u7KX%@3$6({pL8eh~RVn3cm-84mG20L^q|`~*xoY`3^AtGo zj0g+Zl}76=%#ExBH|Q)xj0yI{2o@-H(_MG@#0-J&RIuoLR{iPC7QXH>CRU0JasJHODsRLR0gHVI zeX$(eXZz8hv3h3geKe$BQUN=HLFbDZ&{35)YeNoIZiYV7edNHrs5vja@FaOx6(l)! z$oj&I*4KKf@r|zoMlbB(I%aqpSc9#DpjBy<;={Rxbm&4YX_Owav_-Z&( z_CkEGcZ_e=ZFFo=GdpjnGlr80;1#8qr(8VS6`_7;A5`&@TP!Oj7m9E{+x{h7 zie+9WlQPWs_2Q$0Tc(d<@*ml~<0K~w-?dX{OUXZI%rlD z3q3g&2>6MC3}S&taXtGlv)*LL(c4*G-gp(15R(3V) z^752pVpFw7W5pT@n3-0`r`7Hr*3Ni(wNyu|TLtJF@ z@04fTxcn03_xf?|&Bg#)y~`4g(YM^C&(Q7oA?~zZX&;(ZOsGh`>HLh^Hp@DdbCOI+ zR8s}G*9(z1K}HelxM($wo2vD70Rh={PMGwMf}JL`CjpP-Zq#4Y7QLSfNj)Nh`6=|y zTfu9OVub3P5VT9_bSH`DBJrDdDp)3z#T2W*gMQQO4W-rQIW!I}B`s$SZ_hfGVMO+J zzUcl4{M3FHN8xB3&h23D%LBuXV$ci8?>X{6-*FmWaV$?OtN18t)OtU;Va z-}kWlFmu0QBk^W|a=eFigNFmi<~P$4mGze2s^3b{Lm#tYp@43c4X?HR^q3+o6}3Gl z)-OhlDJcg5U%a?**SSy$@}hN>P?umIDNIc;i5l=F77G-38b6y1mP6TaAAeD=5fcU6=ZP2_I|%b?;H++MZOaMmMiMk)lk!Z1AMZ(VnOrS;#7 zTes6>efw<97tBdth6;LK{0k`_@{%`0uSicoB%*krL8ZV>@B#@H{!uQL8CX$g{rud! zg@1gFl_Hc6rM#FEnU5rnsAxvDZV$E6`g2_@7bh8QX{F{5h^aaiX!R5^!d4af3L#xbYI6P?UiteiaE|QRw&&qs6de|@FgCY> zEg&X?d$52Ur$R<1BG>qqG;Ilbz^Mg{9mAmIAmKDPq^iM4C!Y{JGJ)4_&XZXBR z;gHkv)TgDeQ2gRXx)l?!B}z5^bS8d4#V@rZg)_I}N=GDP|5B5AJ?qH`0`_!BH@$KW z9S+`48+yq=eHP8yfXYa%rwEG{kVtm*9{~J?cEHHg!C#2yuHydRddlXKiL$7?onH0$ zvd+8?9vGFqrRrs!8EBZA_)CyRUJ?zBxuDdh^G~S#5mhkD{QVRQr1e$dZVlmzu`;ir z75by0f}exkF=g9m@W=lAj!?QAu6~qNWfI?S2{F9lbX~;^y9z(wux1Z7Lmtg{=CC+h z@#pYAz?ixQuvx?_&$+TKvDTgT2)Ng9W{s9cI%5$6&l2tKxkuuy_&`Ou+g8Pdo=~l~tFa^6R%C zuky*KB6;&O>DOxv#PsEEaczV?ZedpZkxDJima0F_IOPg@D^o2MJ0LvfF8o_P^zF>Z z#ef|%wN2AjGEt)}{?eigOMUI(LI=Ly%-KW7vqcK63o;iog>LI`KM_lRA+xmY6C=-7 zt2y15sqi(1(`To7q1wvdSK2IP*%t@s;B!o)Xx)X==5q=Snhc)3@NpBbm--1ERRqS1 zbzdp;Mhz!?SR} zS@#m}7q04gO?Obid3=QjJRS>^_b=$67%H}Uc;x6gXX&7!^|5YFC&|ODq&ftg+v^ed zu{`J3;LsUAF&m@VMX-DVf0@i^@r?q&!Q!xjw~GM0y#dy-V=X~E^%|*%Q7`q4Muv>A zj=Qu8UWmaeUi!4sGTva_F%d?aV*$Yrh=Qvrt7nWUNU3tj_e530lk88nAIvwH(f7nB#e) z;Drv`s52rEHHJ&idRy1gK;sRwVC|n z4p)ezzj5t}p8rIjarGCG+lG`@Mbm8D@#nH&uPtlxK{vtX zK{pZl<)~+qN{W^wNDZFkeDqDPdq9);|o37`Q9gLNon(G>a zrG3ZdMhd@o@J=UTb7^c?pdJzqm#%kQHVm!0@ns|))u@ovB-Y!|(ztSwctE!!htxMl zr6E~@EHxiW-;=-LR0jRx3+8BS<#w=vo4$d%(SwqE6z(jxj$`UWS>mq-tJNY4-k3i@ zYth=V*%~ae9V!0}V|Ju}Vv7 zNS?%!Ddy@)%XV3Z;iW`V?N!L$UPNBA!nrG|?!o6%+cxRQw{%5&5;K|cCs@D?Rkr|s zG5ETb$KS1EMYF>rh)O&BwRvZ7Pn290V{J&m`OSLN^K(_y$)bhLhbrybW=beYR1oaD+US}lZEHt%=5=Va}No*{A(3=96GK`~*siN;v_v4F<*7E|z^Zanygnm%>{ zgDx?9Q8%@{8s1b4+L}Hpt%d1C>?b(lau z;>pE8a6fU+?K%0D?xPZE=H8#1f-b_HlELJMSEX6Ii&m_5dE_S|MP`|FPI#dsoF31k zKes?`@$mU(&oH*eZj3Zj)nsQFi*53OewQ8(?6XuZV1n+UjuvQyXE!L7nWszEpq&fl zg*G#;nCYOWGzV?)L5iRLUwT>NSqLM2<10TgmNznYKO84vaaNzz1tP{WC~*g4HXm zofA6eY`F(IlLcByWno*PV zThH#x-Ni6rQbVa`f(21d_|E&Mj1x8UPnwmphIav#>w`*Bu^rW^mEMzR_*qtB zEB(_BdPYN7#Gl#%h}XD^ZlWw4V;kHXf>B`nedS{xTuoJf@MGm;PLBG@Yfgny@{=T| z=8@f%<$>w0yeS8w@2)@GTwD)KAA9nB4;$`>^BXwLApxUS)1AA9e-Py9zpQtiNaf%`+q4+-v%_Ro1$ z3dcn zg>9jw5Eege64Vj&*@2{*VD;mp@6l?+=zYlHw+v%msmjmosPIgk4oYowv8n`nr4%a)T*=p5ZQCA5WR#!+j_`G@B@3jx- z{cnJrfCj$^Waa9xQ`yf#vGClIxb29lTvDD#*OE>A&cd9I2Yk^Dy`5QozGy;|=BAf( zJWWj@iM*@Yxy-+fa5SJ#xh~xNlG+%G|L&H33e$Ksyx4Wsz z4N<#Vfh^%g@62KHy62M(XIH;9?0~ggdOAnIGs*}|{yJnR3~9*_$Abl$qEhG;qT+Bh ziXQ3sze|H3mt!C6m5G1}4BqGvXFE?R|NQO{LFGChr5D8Nytb6I_OPBVRgJ)h`EB5J zt2QndHueSrC~<*%W5sjs2GPl4|MMcf{OO67G9GdDAn8bM4Wn^JX{$=75}u#JOiQV+ zvO`NZA+}OsnJg3mk5iw2&)^Z*`py}iF;$IZ?gtc0;P!WgSB0+1x7O0XE=L<=A#4{+ zedK7&-GBHOD+9t7M=3kC>jM#664I5btU3YZc#t@zYc4%WPLriK3L6>CyYAdBYm=G# zV0vz!FhCydiZqnP0v@MhTKqq}?lRuMoogkbM|xDtOX60Wix5ZjR)Z1s5wz#*YGH;} z6T9S7Q&)8aDsaN`INzm6d39ETp>-L$Cpi=tgpl)D)LZWQkav=*h)zShW|EdT6DWHGg6syr8qRo46KD&Cq&4+!Ln0OQNx_M+z5WKh48^6dD zei5=Y#^0p2W?3KXy>Xh)Fcc$ex1&4X|LTp$P#k#8cwyY9&jKv_AipNuZ)>9Id;qN7 zB<0vEe8D9HI~$KucYv{^L^tXl z^@@$>wk}BPCyy=eh;6-lPdg{q(XgJ6tZ35SM@wvT*UP)ag`?C^2-QRmKC;`y1+vCj zueyJPMyg1YaS(QE_)r^@e$rK;25^RVS$(TK7IauA=+5fw7bS0WGg5H~;_u literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_operatingRecord.png b/star_lock/images/main/icon_main_operatingRecord.png new file mode 100644 index 0000000000000000000000000000000000000000..698e0eb25d867af4f0c360cb07cb42b13e45f301 GIT binary patch literal 1647 zcmV-#29WuQP)=7?@CKA<Ct1CX8~$V?SvrYK~jLhp2i zWbf_qN!*TnLTv+VD-N-_D9GuG_#W5Z2crk6Ov?4pqf6`h*QyXIufnpeI=hb>1VYwq z2qcg9R(bIWjhw93iQZO&u=8(&!i_ptuigA#J0JA#u5f=RLDxbH0ZGOrvN_}-PrU=9vC%HV?=+2!M)UGU!<%W_MC_vKK(KU zi>LZXzt1_J9fhC=VdfV)fBkDje$x~fpRF?ENsZJF;)d%NZwdh5^$6ySx_OM2z_wz8 z725+;)R=B|OoqZ2ypDy3V-O@Te@%d0$ITv)o+9{gx|c_~iJ13fzwHMg$qRcHCf(Au z9uyRA)Y)2W+D`Vus#!jIc8zU25ji%}EZY*i0l>hA6jsmj-4Z||@@kTWlRUinoChJo zZFWtEx!>ws(`}n~2Ew*tgYWhQBj*EpD17{im(J~+ux@JFFqMMQ=HlUerR4n$_9@tg z5D3BY-%Ljy=nNlB_u^6QT8^zrxhi?trt$5^3^pIJIRE}H+Yr_r405qHd@PVGnd&38 zyr{mdBF+UD(_725*{{N*7ap|$bgxjHChH? zR|!v%lX6w&j`JXzyl7sw%7XFn0{~b)!xsT@x!xLx%ByDUXQo=4@h#o;e2&Vz@!klC zi8&hc69fQ|)lJw2QB`LiXQU?d_=qeomh!Sy7EJImIag!eIE_RBT$f!CCFRjQ!P=y3 zYsENzh)Tg2`&oOdAR2Tya>j&^k#ZZup*3U$#K96Xi!Fp?Xdi3)_cj9oVuQ$ErDMq0 z-F)pqbHO&OuWC8@>L>)OwS{O!gJ|!Ag_FG~;^y9Ppv0i)tQiWEbFGJ^V~N(1a>=|k zIpdnc=Bpv@?nqcjmB&-h3j`W0IjvBnWqLB+%B=4=& zDXX^6HLIJ52>@WpCjEwbM0iPW{h5wH(3J500iezwPQ5!38nN{Kz7Rh~v`1@GqBFI_uYe3`vckL>LM zGExLfn<>7;D?JE{)(80YXzLVT94*7u`{A|E8!0I_O-9OaPk9o~LQ7yvQHT{g0$i#! ze{Zv8xa-n`f@NEE)*Wn8koAVQ<0Ja13~Heud#+Nl=Y+x5;vnamRH)m0K{i^uPZ%s( zugANol1)MUAAaT2fvuxu)L(A8xgEwW(d?ostUy7Xsiy t09*)w3juH;04@Z;g#fq^02cxP{{b%;bn53Bjuij^002ovPDHLkV1jp@1JwWk literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_password.png b/star_lock/images/main/icon_main_password.png new file mode 100644 index 0000000000000000000000000000000000000000..a6cb4df316f8e3ed7610debba2b8a0d490ff3044 GIT binary patch literal 1700 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 At^fc4 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_remoteUnlocking.png b/star_lock/images/main/icon_main_remoteUnlocking.png new file mode 100644 index 0000000000000000000000000000000000000000..46924b3572448533e637134d70f0ea583d121aa7 GIT binary patch literal 4528 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 O0000aC literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_search.png b/star_lock/images/main/icon_main_search.png new file mode 100644 index 0000000000000000000000000000000000000000..1128d404423789a21a96fb482a79ae18c0cbae79 GIT binary patch literal 4594 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 YkDW5z%H7u__i_NeTgE!oS`HEa16}8HvH$=8 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_main_set.png b/star_lock/images/main/icon_main_set.png new file mode 100644 index 0000000000000000000000000000000000000000..4f23cb4e0518772720c8482471f96aaf7cf9b249 GIT binary patch literal 2135 zcmV-d2&ngoP);NJ+w zK*9(C4@gtn=X-81p4jJ$9f;%eLbdz8^7-z5_j|t2@Bf`5gs}KOhdSB{JPzVZ)nI z3==;1r^%Z?FUU#WuMWg$Y7;yefP=pbFln4iijqf5xEU50ru^L;5*)v1j#$?5izZEN z0)Ph*=zSpEP%(+Tk?`y^jj0or9^xU(Lx319fxvaI4?-}DO@5K1{vRtTN zhaWHWalTz}>4v}@!m52LJYB9br$Xi6={V5=QWnop*|{#a*pdl(C!sqm>i}cqAprng zgZf%OlS`CGUz{a!&JMTl%Rp5XR5O}sVL+j@NTKU)I@h`e!4f68u~vj)Oh*(*+=%cfZfLo4xP4rq_haa zeWbZfb*0L#bp?#^XZH+O0^{+ECa-^JI8s?E)-Kf8x?E5D|4tvAy(+jFmMR2G6y{A= znNXN6V^@Qdh*Xpo!Iq^uOJ-+h0SUO49U_Lz>3{yjPH7-rVDH8PhXwRUVaH*ElPxCk zL21&b!grt1*tSx4>}XuTrhQJ=@aypWA|LB(d<4=t9yVN0k$aBElSPrL!27QR95J9j z3NO7KqxJg3OW#@LDsOCXns#>>R_%-=gXQ`fA1^M+z5Q{$Vr&lCi>sNbJ(2)bfyz>a z%2EX_MVr>^f|uToIXckEB~oSr7dzbPAzbYu`=fBV%T{d70;iAeIBYlwSYEAByG*Ar zAdmYZPvh47!v?Rd)g3bb@!7!nPFZ5-;tJrhB{a9&rLe9sPzOld>4TFk zc3@jxt+9QzO#nb)0Jg8zSzc}5ce2IgPM>|v+)537;B;KT#cR1+!-y;)bW2Ww1`k0} zo1tKdLTVv&_Nqt*K~;g;WkYXY?J}JYE|{1?F7)hG!P41@{jvy_D0KEp*?T^UbM%6< zI2!ka!m96RRF(~|Xc`d-zy3>%j^2mI)4?@+>%Z$fs0 zgezTwD_!X_n%Ye2Yll}bjQWi6alnWy;rBl&$mkB&Zd+U#2#no>b}yJ>8P{%G^hFrb z8u}tQEG;<5s#0ZF1r?^3IrlQ*4#UNWNT@7RGFE_1ZGtU-lD&j9VLL9&n=ZS|xBy|v zEU*fw$f=W^=E8?o-S9jZk95^^}sl%!WP+h$)r1M zpBv+cH#QV7tK7auSP<&52=$~Bkg05LykwK`Z5ONnTqGf4z}^#a4xYA$slt-;fYc@_ zLBx{TTE@28r^1riS{eayA!Vg@ItNe3*?S^BqA7MNyjGeVN$8Kl)^}o#rU_)pTvCXG z6gP(|Wkql|!%$^@mC7I17i9g6oZR8>EoK@4i)X0R*ZSGFF+lNHJHH<~ZL(=!%n>6V zh3>GNA*2#eJXT@v#sKxTeiqMgs^8QmX#6buULq$;_`KUnzHiJlXuaHJ@$&u{|M~KN zGiV*-hy5@3li6mt$T=q5xGUc~K07V*$X)Jcgj*TnMK&Y%(jwTmF_3Xc8y5=y>K2p~ zDg=wOUqjAy!j$naW&F@yr6>^oGV?jZgw9?o*$h1l;XaU7lfKJ7)yjIzo{GFTP`i)C zhz(>-zb;2&b1E`hO;RaE)(PuteE0{FieW-sLyoy{2;}Yi1c3AH7N=V6K=u40ADg}> z9~m*^KxEHH@nq9g6;#;#oKE#LyAt$i@W)e<#g8uw&a??f+;IbWvjkx&>^x$>m?aTxkEAe55h%356#I<^}Vs)Dc&6Aj|0LfksSb6nE9mTTGZV4)(w3r|qW2;+eTC zy=z?oCt6ItHCbiKco!5*L0$u6`2>aX2@g+QMPoAm9*i-5_(7I0T8E3gk}w>sp6}z+ zFXX8HNApHUoxFdk@^yeWZN?)3@JIkW5&(|`z#{?hNB}$%0FML!{tI|Abt->Dx^(~m N002ovPDHLkV1i3a?~4Ec literal 0 HcmV?d00001 diff --git a/star_lock/images/main/mainLeft_menu_icon.png b/star_lock/images/main/mainLeft_menu_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bff9ae2688b369ac02510ae47dff1f3901a37add GIT binary patch literal 3592 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 O0000-+zm-vpfIu4wsJAsh{}e# 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_main_message.png b/star_lock/images/mine/icon_mine_main_message.png new file mode 100644 index 0000000000000000000000000000000000000000..4d486df2358263d400059863c7af4ac3ef2ed07b GIT binary patch literal 1635 zcmbW12~bm46o$`RvH%$%EQz3Pkj1Tt%4SuDEv!}sj3O$c4FLiLVhmA0g^q%tZLOsg z0b3Vvq1ZBtY%VjPqJVbVLXdz&L`0A}P7PX+Rx+>mg-V=`ooV|g_r33(d-CW0H+Mqy zP!GU-Wl(4kU>HCMdI2>6zJVD@2>@YXumAwqfaNCvi3qiTEgAs$34FR@bAm81JxM*p zIiW(~mIzUJQ0S^ay)`x|mdjIUlT?{fAqw`lTfbqW9qTbLks}*c09!0cllw(PtfC!W z-)S~zT&-ULbS|X5WGcI#LcX!;bMi3T-=y>T?>UHS&6rfjFbmlnN$ zoOoH}8gyr)F$?W?0E9v4KlHfkdxWqR?%}!g{bkFA0f9lmA)zbRtc_e3h2lx# z;uEBaNgt&tx9>>L$lRHeyDu+)|A9}wEc~kIaB)fLk@AzLPM@jxw({(Sn%cVhhKrXj zUvIu~v!%7|)@@bioi25E&)wdEhl7uXh98go@?`Y+i{Hk^Urzk~2b~K8Vk#E8P9^(W zE-uQ2lO#d1=v)|{jt0Rc8MBu#E&Nuq#M>>3o?B503`@fP+2Q%c-fDmxK2plIE1VJ#E3?wF-NsDdF*30-War82!Wi~AenPA9+ zBuN%}o0}M!nEz){edwIpA(f{rpd!ax?1mm z1)szbe$+&tHoEzk{a%wM(@o)3F&a%wz2<{+78|02=M-}K{IKkf1$f2Fg73^q19x_) z8+|B{)|hcdwxm*!yIp4OQzz}&9k3~{#%F|r(P2Ir{_@t~56^txtr`gDO(eH^3#v!A zf&vAHt=@w+DQ6k3J8%7nW7zE1=qShjiuM{Bt*-vRIf&Hh^OwKpwTPpMiHmf;*v2}YFMuN`BZ=h?)VSg(aa-3nm9iSbJ6x9S#MFu7;%zTwn2EAAcozP}}&EIL(+W|q;glgbroD2^54 z(DXDp!*awX3bZK1c?`#{@p*=$*7%yPXHU2g^|T^3lEz77hNihggV%G_V3+RFOjhL?aeM5=dbi zI3jj|SI}@}_7**hq~9}rEp;Bi^AP$Gx%%4vhXB|805+BDYqnYdGql#GJh?<6S@T0@ zY=KOTadpw%V+M@?tYVse5&^(*09YBKX>B7-uT%pNqX4Z7bSv;FFb8u2vjLos5qym9 z1Of74VLClE#&CjUu{ji%XMh^&jR4080w)O;i$w1Y_BNUalFu@>cJ^g&43ltdQcPTO z3M(jEzq&Tl@IH;5Ym_3F%QM?#{=9|#=9jiOY;|*g)nmJ-m(V{TFi0d0-o0nH{Ke<}->5b2C);BbM z(e!0|N9V0?Z-3YIegD9nyMsf+Bcn>y_{8MHM~{D=nwfnvH@~pB^xN-DE)0mZSm?Z# z>@T_aC>KtW1j%7?VR$+k1fOJCJF|^_!#I+ZjW#Yhl!;$qMO_=$)-_yX8l~vtnc2B1 z?Pr*1x@7+@SnmHywjNBM>n9Kbt`mXd1dAXD7Mq2{rr3-q9;FlSPZ{d;9HR~EqLB%P zJV=t{ppTIO*TCpMi@t~cYH)fK3<(UqOavc%VC9Dy8uI4^C+-^zdS|LK?cNLSRbQG? zR_0fqjXEM4aGc)7t11$ij;po)!F9zxhFK}CJdf+`m>$7+?LrC-eW&+d zqk*3-D7Wm=G-u@AUNydZ!z-u1c}^R7vwO^=t6SalYeDuo?2wX%_p^4)xVBjcItARf z+z0bjmZIcDds*B_MQOT&EWvcU_wn8#$pNSA&dA#70!_ZC?M2IhSs(QWwKZ`B-Meyi zX-qS_sOo7?Hp%iFsJHL?WnSyxRMDJ~-P$14N`B#MUxcxR%;&j@Xw$J9<{q6g``{aAR z?1Z_^^nq}Fh%5v!3?K|0z~~_`I4xlhKzKMT0{{xJyaXT-p%!pO0{}0gS^G_7P!l9ILR$j~6SZEwHh#v1}Ia-`r@pyUb-Es2QO zz&bp;vTTu|%e(?;_hP-0+uW{)6*=^J_}Lz=HTgAI`u>&#F|is2nlYl`uAtRg6vqv5 zM5>l%nMUlOMvFq6&2rof7qT2Z!(W+uHb+WPPaR^RB3>SY_y%In=;!Kj&vBA+AN#$m z*!{DPP2REzT`4r?q5WP5;UN2m9$#~h6jVS%I;bH5;vgQh;06*@p+O0;h-Hur3V0bj z5qraOGrbsfI0(H2OrC@l=H+X4&Ips zrPQLJih9S$n-lIn(dsO|z{z=zi>t?riAK*M&@kEhO`ErDjY9Dh zF|m8%;uH32wENyoO-q08{p_6Fyu%+H`S|E3pB_72_}Ph5r_Y=%D?j(e`HPpnzWhz) zw^ypZZ)p6Xsrl-)AKThHI=gP&?$+u12YwyAJ2X5pI{Dz?Z;uSWPd$FZ=E8uOiG|KH z$^Mc{gmU2|Nsv4?7lx;zL5N7s!WCRQ$wr<$#a`^4NjU@+lvdR97x_d^I7X{)3Y^@1 z^&XRKG;^|l7cA?4C7TUq$<+f=z|A6XoZt`y!Qpa{xD=NaC7{d_{3&a*Y*^XOia{nA z@*qi)hdx3pzLoGli|IvwH8`UKYXU~rE816jFq z7fea2=hb-S$@1#+8g;8jpX3Y<^o;taym3H97Vi!$S$Rw+8>mt&bI2^p=({j~zG`1n z=O$T_w9#vF@l(6jd(9J;`+Dmb_?yl(e|Ob?dhK9i zdH1EJmRhfa**62{jprI)Ii0q(-qSZR%*$SRFs{Iw=I>nD<#w+kXGc$jO%Xt!VEEjr IjI~VnADjyS@&Et; literal 0 HcmV?d00001 diff --git a/star_lock/images/mine/icon_mine_main_supportStaff.png b/star_lock/images/mine/icon_mine_main_supportStaff.png new file mode 100644 index 0000000000000000000000000000000000000000..0a0f0b2b58c3604aab09e54be7834a289abed04e GIT binary patch literal 1651 zcmbW12~ZPP7{|XoazQAGB8TJ1B~=tF5J1J2LL!k^Q!pw>9jYOO078f%C|=WoC`aqG z*fuIUqaanQOzQy!tX2dCs~rnsIigM_s7Q5ys2pnI_HC%d>9jL#|C_h_+wXn*&-=gZ zgzBX30B^BaA_fcth(ZTY-4Gs`lbQ@5mBLH_U;|c=3M3-b0+Z1Izz^c%6}N-LIJ?r5 zlo97jM55I(vS_hnNu<>pGs`uablN0Ct<%aD2|ZTEf8fFD1txN2!vbK-6cRJHVwC1R{(9ZX)pD4k84r;oo@RCI~Ja|1UK6H{+8^LlvxTiV@6||LZj88I39>& zHs~}oYY;nW(V`IN)2tffJv1kdaiz6qxlDw5>Jjr4De@%5Er|URU#qKL{7 z`^QzPS1dzUHX2jVelG+mNdBQG$l4=b0THO8fpkzJmVg=*@D}(X z4g`NR1oYmbXOV1sW~*fl0nA^EengI~_Thbi6G8x&1Gbv?3jk-d*1CL+Tq_^*LuYK5 z%t{snTJJIY8UTi#qMpP7uzUe59TfGVhN3Ko0SE&?{V-Jzd^Wg(8-aNN&c_HoMqLDV z~1)KJX>93u#vBp3`5y*JoaG!G=7F~Kt+f;n-ioaMF7DKNLB zjO{Hvd0~>Qb#R&>QJcrHb9Qlco9y%E^clW0gMvfm&YK@9S{Nx_6eU@_Z25}VI22Ej zq)b+&q^4!*ve$3O*|=$2{`MUOg+;}?zWDMh{q8+`OUn;ce0})H(Ql5OI$c%$eNAoM znTE!TmztU{|8(Vg+l^n_J36}z-Nv4~_wM&T==c`Vsq za`90voFoa7Md!ls4QLR2lHnP^oDi{;C0{quD=?SsBrGXAd4c0CkPS{s)VA6=PYdey zG11Yi$^Koiy#JMKJeV!lO%MTY6@lXfgCGb7lYzu!GikBy*jCy7DXvv-&~h9Xg-kHy zL6Rg3eR%d9d)|K*bsPQF;FJNl1cqKFf)DS4rFnFliD;mJdv@059!Hmi;BOBk@jqI> zGpJ1}DD2K-f9|4Btx!hwgva0dm?_<2q+rU+(5v6|JvhzYv5pe;+C0OAKe+otnKPb z4gpiI4%Qg;xu$4g?Tx2L)w+k4kb9Nc?*v-NxrU5KX_dnr0eSWQu}CR*#qr+B;@Gf# ztNllXt0WYp4HRaU7jgY_G8ZV21@r0K}$mZ9pTIcA|?YJW&a+YO9rvHWc6 z&3${0X;#CTf;_V_G1y_cEc{ec{Gm0MFZAr1&pY1ir!MO$aSffvt>8K2xSMCpDLN7D z-ua_n!rZPzy`e*PwpI7=+@|(+g}!)pM2qhOW}k<)lQB{gJfw8OdJi~+x#g(3RRzC= u4;p{*t*g~Pe%#-$syln`hyC|geX{qKewVm@YH`_8y!_Z_qVi&(y8Zx1y$sF( literal 0 HcmV?d00001 diff --git a/star_lock/images/tabbar/icon_tab_main_selet.png b/star_lock/images/tabbar/icon_tab_main_selet.png new file mode 100644 index 0000000000000000000000000000000000000000..21552ddcf44a62400b83eebc8c26c15b67ed664c GIT binary patch literal 482076 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 pldBdHc>`FgfYmj@0E!3d=pN94|JNX^HEx!+utU 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

{;=jeO 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 A;s5{u literal 0 HcmV?d00001 diff --git a/star_lock/images/tabbar/icon_tab_main_unselet.png b/star_lock/images/tabbar/icon_tab_main_unselet.png new file mode 100644 index 0000000000000000000000000000000000000000..b497c09ee4cc214a58190a65e2604ff43e0932e7 GIT binary patch literal 358737 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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/star_lock/macos/Runner/Configs/AppInfo.xcconfig b/star_lock/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 00000000..9e0b6d30 --- /dev/null +++ b/star_lock/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = star_lock + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.starLock + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved. diff --git a/star_lock/macos/Runner/Configs/Debug.xcconfig b/star_lock/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 00000000..36b0fd94 --- /dev/null +++ b/star_lock/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/star_lock/macos/Runner/Configs/Release.xcconfig b/star_lock/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 00000000..dff4f495 --- /dev/null +++ b/star_lock/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/star_lock/macos/Runner/Configs/Warnings.xcconfig b/star_lock/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 00000000..42bcbf47 --- /dev/null +++ b/star_lock/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/star_lock/macos/Runner/DebugProfile.entitlements b/star_lock/macos/Runner/DebugProfile.entitlements new file mode 100644 index 00000000..dddb8a30 --- /dev/null +++ b/star_lock/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/star_lock/macos/Runner/Info.plist b/star_lock/macos/Runner/Info.plist new file mode 100644 index 00000000..4789daa6 --- /dev/null +++ b/star_lock/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/star_lock/macos/Runner/MainFlutterWindow.swift b/star_lock/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 00000000..2722837e --- /dev/null +++ b/star_lock/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/star_lock/macos/Runner/Release.entitlements b/star_lock/macos/Runner/Release.entitlements new file mode 100644 index 00000000..852fa1a4 --- /dev/null +++ b/star_lock/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/star_lock/pubspec.yaml b/star_lock/pubspec.yaml new file mode 100644 index 00000000..202cb874 --- /dev/null +++ b/star_lock/pubspec.yaml @@ -0,0 +1,115 @@ +name: star_lock +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=2.7.0 <3.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + flutter_localizations: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + + # 状态管理 + get: ^4.6.5 + # 获取设备信息 + device_info_plus: ^8.0.0 + # 本地储存 + get_storage: ^2.0.3 + # 获取唯一设备码 + uuid: ^3.0.6 + # 屏幕适配 + flutter_screenutil: ^5.6.0 + # 获取当前项目信息 + package_info_plus: ^3.0.1 + # 选择日期时间 + flutter_cupertino_datetime_picker: ^3.0.0 + # 选择原生通讯录 + flutter_native_contact_picker: ^0.0.4 + #底部弹出选择器 + flutter_picker: ^2.1.0 + #生成二维码 + qr_flutter: ^4.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - images/ + - images/tabbar/ + - images/main/ + - images/lan/ + - images/mine/ + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/star_lock/test/widget_test.dart b/star_lock/test/widget_test.dart new file mode 100644 index 00000000..64ae1c59 --- /dev/null +++ b/star_lock/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:star_lock/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/star_lock/web/favicon.png b/star_lock/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/star_lock/web/icons/Icon-192.png b/star_lock/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/star_lock/web/icons/Icon-512.png b/star_lock/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/star_lock/web/icons/Icon-maskable-192.png b/star_lock/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/star_lock/web/icons/Icon-maskable-512.png b/star_lock/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/star_lock/web/index.html b/star_lock/web/index.html new file mode 100644 index 00000000..13f45b66 --- /dev/null +++ b/star_lock/web/index.html @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + star_lock + + + + + + + + + + diff --git a/star_lock/web/manifest.json b/star_lock/web/manifest.json new file mode 100644 index 00000000..f3343ffb --- /dev/null +++ b/star_lock/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "star_lock", + "short_name": "star_lock", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/star_lock/windows/.gitignore b/star_lock/windows/.gitignore new file mode 100644 index 00000000..d492d0d9 --- /dev/null +++ b/star_lock/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/star_lock/windows/CMakeLists.txt b/star_lock/windows/CMakeLists.txt new file mode 100644 index 00000000..c9472223 --- /dev/null +++ b/star_lock/windows/CMakeLists.txt @@ -0,0 +1,101 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(star_lock LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "star_lock") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/star_lock/windows/flutter/CMakeLists.txt b/star_lock/windows/flutter/CMakeLists.txt new file mode 100644 index 00000000..930d2071 --- /dev/null +++ b/star_lock/windows/flutter/CMakeLists.txt @@ -0,0 +1,104 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/star_lock/windows/flutter/generated_plugin_registrant.cc b/star_lock/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 00000000..8b6d4680 --- /dev/null +++ b/star_lock/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/star_lock/windows/flutter/generated_plugin_registrant.h b/star_lock/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 00000000..dc139d85 --- /dev/null +++ b/star_lock/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/star_lock/windows/flutter/generated_plugins.cmake b/star_lock/windows/flutter/generated_plugins.cmake new file mode 100644 index 00000000..b93c4c30 --- /dev/null +++ b/star_lock/windows/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/star_lock/windows/runner/CMakeLists.txt b/star_lock/windows/runner/CMakeLists.txt new file mode 100644 index 00000000..17411a8a --- /dev/null +++ b/star_lock/windows/runner/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/star_lock/windows/runner/Runner.rc b/star_lock/windows/runner/Runner.rc new file mode 100644 index 00000000..1e1a0eea --- /dev/null +++ b/star_lock/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "star_lock" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "star_lock" "\0" + VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "star_lock.exe" "\0" + VALUE "ProductName", "star_lock" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/star_lock/windows/runner/flutter_window.cpp b/star_lock/windows/runner/flutter_window.cpp new file mode 100644 index 00000000..b43b9095 --- /dev/null +++ b/star_lock/windows/runner/flutter_window.cpp @@ -0,0 +1,61 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/star_lock/windows/runner/flutter_window.h b/star_lock/windows/runner/flutter_window.h new file mode 100644 index 00000000..6da0652f --- /dev/null +++ b/star_lock/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/star_lock/windows/runner/main.cpp b/star_lock/windows/runner/main.cpp new file mode 100644 index 00000000..98ed3594 --- /dev/null +++ b/star_lock/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.CreateAndShow(L"star_lock", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/star_lock/windows/runner/resource.h b/star_lock/windows/runner/resource.h new file mode 100644 index 00000000..66a65d1e --- /dev/null +++ b/star_lock/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/star_lock/windows/runner/resources/app_icon.ico b/star_lock/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/star_lock/windows/runner/runner.exe.manifest b/star_lock/windows/runner/runner.exe.manifest new file mode 100644 index 00000000..a42ea768 --- /dev/null +++ b/star_lock/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/star_lock/windows/runner/utils.cpp b/star_lock/windows/runner/utils.cpp new file mode 100644 index 00000000..f5bf9fa0 --- /dev/null +++ b/star_lock/windows/runner/utils.cpp @@ -0,0 +1,64 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, utf8_string.data(), + target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/star_lock/windows/runner/utils.h b/star_lock/windows/runner/utils.h new file mode 100644 index 00000000..3879d547 --- /dev/null +++ b/star_lock/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/star_lock/windows/runner/win32_window.cpp b/star_lock/windows/runner/win32_window.cpp new file mode 100644 index 00000000..c10f08dc --- /dev/null +++ b/star_lock/windows/runner/win32_window.cpp @@ -0,0 +1,245 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + return OnCreate(); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/star_lock/windows/runner/win32_window.h b/star_lock/windows/runner/win32_window.h new file mode 100644 index 00000000..17ba4311 --- /dev/null +++ b/star_lock/windows/runner/win32_window.h @@ -0,0 +1,98 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responsponds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

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�kD$C7{`fb^K=eDR`3oai^ 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 F|0m&qk7)n^ literal 0 HcmV?d00001 diff --git a/star_lock/images/tabbar/icon_tab_my_selet.png b/star_lock/images/tabbar/icon_tab_my_selet.png new file mode 100644 index 0000000000000000000000000000000000000000..f06eb894be414b0311ae08a91b7a3f5abaeebb07 GIT binary patch literal 7593 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 V#p$Vt_Jm;3WTliO%f(HQ{{vWpPObm| literal 0 HcmV?d00001 diff --git a/star_lock/images/tabbar/icon_tab_my_unselet.png b/star_lock/images/tabbar/icon_tab_my_unselet.png new file mode 100644 index 0000000000000000000000000000000000000000..7511da6eba620a9d39734dfa0c6872adad78cdff GIT binary patch literal 6847 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 A^Z)<= literal 0 HcmV?d00001 diff --git a/star_lock/ios/.gitignore b/star_lock/ios/.gitignore new file mode 100644 index 00000000..7a7f9873 --- /dev/null +++ b/star_lock/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/star_lock/ios/Flutter/AppFrameworkInfo.plist b/star_lock/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..9625e105 --- /dev/null +++ b/star_lock/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/star_lock/ios/Flutter/Debug.xcconfig b/star_lock/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..ec97fc6f --- /dev/null +++ b/star_lock/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/star_lock/ios/Flutter/Release.xcconfig b/star_lock/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..c4855bfe --- /dev/null +++ b/star_lock/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/star_lock/ios/Podfile b/star_lock/ios/Podfile new file mode 100644 index 00000000..d207307f --- /dev/null +++ b/star_lock/ios/Podfile @@ -0,0 +1,38 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '11.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/star_lock/ios/Podfile.lock b/star_lock/ios/Podfile.lock new file mode 100644 index 00000000..9c90cf90 --- /dev/null +++ b/star_lock/ios/Podfile.lock @@ -0,0 +1,41 @@ +PODS: + - device_info_plus (0.0.1): + - Flutter + - Flutter (1.0.0) + - flutter_native_contact_picker (0.0.1): + - Flutter + - package_info_plus (0.4.5): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) + - Flutter (from `Flutter`) + - flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) + +EXTERNAL SOURCES: + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" + Flutter: + :path: Flutter + flutter_native_contact_picker: + :path: ".symlinks/plugins/flutter_native_contact_picker/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/ios" + +SPEC CHECKSUMS: + device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed + Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907 + package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e + path_provider_foundation: eaf5b3e458fc0e5fbb9940fb09980e853fe058b8 + +PODFILE CHECKSUM: 663715e941f9adb426e33bf9376914006f9ea95b + +COCOAPODS: 1.12.1 diff --git a/star_lock/ios/Runner.xcodeproj/project.pbxproj b/star_lock/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..908be74a --- /dev/null +++ b/star_lock/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,532 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 3ED61D98CC08F93BC18EEFD0 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B7537A79A618D0BBB434A17B /* libPods-Runner.a */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 99F6494C6B1A24363CCC6D32 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + B7537A79A618D0BBB434A17B /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + BDB5B400176768766E85D5EB /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + DC20461C9C4624BEB2DCD779 /* 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3ED61D98CC08F93BC18EEFD0 /* libPods-Runner.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 780FAA17A040B9755AD6154A /* Pods */ = { + isa = PBXGroup; + children = ( + DC20461C9C4624BEB2DCD779 /* Pods-Runner.debug.xcconfig */, + 99F6494C6B1A24363CCC6D32 /* Pods-Runner.release.xcconfig */, + BDB5B400176768766E85D5EB /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 9304F75C378DB3447BB2408C /* Frameworks */ = { + isa = PBXGroup; + children = ( + B7537A79A618D0BBB434A17B /* libPods-Runner.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 780FAA17A040B9755AD6154A /* Pods */, + 9304F75C378DB3447BB2408C /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 03BC065FC3064C0B6EE97546 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 03BC065FC3064C0B6EE97546 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7NLFRKNVY3; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.starLock; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7NLFRKNVY3; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.starLock; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 7NLFRKNVY3; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.starLock; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/star_lock/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/star_lock/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/star_lock/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/star_lock/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..c87d15a3 --- /dev/null +++ b/star_lock/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/star_lock/ios/Runner.xcworkspace/contents.xcworkspacedata b/star_lock/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..21a3cc14 --- /dev/null +++ b/star_lock/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/star_lock/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/star_lock/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/star_lock/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/star_lock/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/star_lock/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/star_lock/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/star_lock/ios/Runner/AppDelegate.h b/star_lock/ios/Runner/AppDelegate.h new file mode 100644 index 00000000..36e21bbf --- /dev/null +++ b/star_lock/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/star_lock/ios/Runner/AppDelegate.m b/star_lock/ios/Runner/AppDelegate.m new file mode 100644 index 00000000..70e83933 --- /dev/null +++ b/star_lock/ios/Runner/AppDelegate.m @@ -0,0 +1,13 @@ +#import "AppDelegate.h" +#import "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/star_lock/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/star_lock/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/star_lock/ios/Runner/Base.lproj/LaunchScreen.storyboard b/star_lock/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/star_lock/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/star_lock/ios/Runner/Base.lproj/Main.storyboard b/star_lock/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/star_lock/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/star_lock/ios/Runner/Info.plist b/star_lock/ios/Runner/Info.plist new file mode 100644 index 00000000..9023ff34 --- /dev/null +++ b/star_lock/ios/Runner/Info.plist @@ -0,0 +1,53 @@ + + + + + NSContactsUsageDescription + Reason we need access to the contact list + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Star Lock + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + star_lock + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/star_lock/ios/Runner/main.m b/star_lock/ios/Runner/main.m new file mode 100644 index 00000000..dff6597e --- /dev/null +++ b/star_lock/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import +#import +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart new file mode 100644 index 00000000..8b66f312 --- /dev/null +++ b/star_lock/lib/appRouters.dart @@ -0,0 +1,367 @@ + +import 'package:get/get.dart'; +import 'package:star_lock/mine/mineSet/mineSet_page.dart'; + +import 'login/forgetPassword/starLock_forgetPassword_page.dart'; +import 'login/login/starLock_login_page.dart'; +import 'login/register/starLock_register_page.dart'; +import 'login/seletCountryRegion/seletCountryRegion_page.dart'; +import 'main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart'; +import 'main/lockDetail/lcokSet/basicInformation/adminOpenLockPassword/adminOpenLockPassword_page.dart'; +import 'main/lockDetail/lcokSet/basicInformation/basicInformation/basicInformation_page.dart'; +import 'main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart'; +import 'main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/lockSeletGrouping_page.dart'; +import 'main/lockDetail/lcokSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_page.dart'; +import 'main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_page.dart'; +import 'main/lockDetail/lcokSet/diagnose/diagnose_page.dart'; +import 'main/lockDetail/lcokSet/doorMagnetic/addDoorMagnetic/addDoorMagnetic_page.dart'; +import 'main/lockDetail/lcokSet/doorMagnetic/doorMagneticList/doorMagnetic_page.dart'; +import 'main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart'; +import 'main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_Page.dart'; +import 'main/lockDetail/lcokSet/lockEscalation/lockEscalation_page.dart'; +import 'main/lockDetail/lcokSet/lockSet/lockSet_page.dart'; +import 'main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart'; +import 'main/lockDetail/lcokSet/lockTime/lockTime_page.dart'; +import 'main/lockDetail/lcokSet/markedHouseState/markedHouseState_page.dart'; +import 'main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart'; +import 'main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_page.dart'; +import 'main/lockDetail/lcokSet/resetButton/resetButton_page.dart'; +import 'main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart'; +import 'main/lockDetail/lcokSet/uploadData/uploadData_page.dart'; +import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart'; +import 'main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart'; +import 'main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart'; +import 'main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart'; +import 'mine/addLock/addLock/addLock_page.dart'; +import 'main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart'; +import 'main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart'; +import 'main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart'; +import 'main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart'; +import 'main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart'; +import 'main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart'; +import 'main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart'; +import 'main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart'; +import 'main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_page.dart'; +import 'main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_page.dart'; +import 'main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart'; +import 'main/lockDetail/lockDetail/lockDetail_page.dart'; +import 'main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart'; +import 'main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart'; +import 'main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart'; +import 'main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_page.dart'; +import 'main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart'; +import 'main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart'; +import 'main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_page.dart'; +import 'main/lockMian/lockMain_page.dart'; +import 'mine/addLock/lockAddress/lockAddress_page.dart'; +import 'mine/addLock/nearbyLock/nearbyLock_page.dart'; +import 'mine/addLock/saveLock/saveLock_page.dart'; +import 'mine/addLock/seletLockType/seletLockType_page.dart'; +import 'mine/mineMultiLanguage/mineMultiLanguage_page.dart'; +import 'mine/mine_page.dart'; +import 'starLockApplication.dart'; + +abstract class Routers { + static const initial = '/';// 加载页 + static const starLockMain = '/StarLockMain';// 首页 + static const starLockMinePage = '/StarLockMinePage';// 我的 + static const seletLockTypePage = '/SeletLockTypePage';// 选择锁类型 + static const addLockPage = '/AddLockPage';// 选择锁类型 + static const nearbyLockPage = '/NearbyLockPage';// 附近的锁 + static const lockAddressPage = '/LockAddressPage';// 锁地址 + static const saveLockPage = '/SaveLockPage';// 保存锁 + static const lockDetailPage = '/LockDetailPage';// 锁详情 + static const electronicKeyListPage = '/ElectronicKeyListPage';// 电子钥匙列表 + static const electronicKeyDetailPage = '/ElectronicKeyDetailPage';// 电子钥匙详情 + static const electronicKeyDetailChangeDate = '/ElectronicKeyDetailChangeDate';// 修改有效期 + static const sendElectronicKeyManagePage = '/SendElectronicKeyManagePage';// 发送电子钥匙 + static const massSendElectronicKeyManagePage = '/MassSendElectronicKeyManagePage';// 群发钥匙 + static const electronicKeyPeriodValidityPage = '/ElectronicKeyPeriodValidityPage';// 电子钥匙有效期 + static const sendEmailNotificationPage = '/SendEmailNotificationPage';// 邮件通知 + static const passwordKeyListPage = '/PasswordKeyListPage';// 密码钥匙列表 + static const passwordKeyManagePage = '/PasswordKeyManagePage';// 密码钥匙 + static const passwordKeyDetailPage = '/PasswordKeyDetailPage';// 密码钥匙详情 + static const otherTypeKeyListPage = '/OtherTypeKeyListPage';// 卡、指纹、遥控钥匙列表 + static const otherTypeKeyDetailPage = '/OtherTypeKeyDetailPage';// 卡、指纹、遥控钥匙详情 + static const otherTypeKeyManagePage = '/OtherTypeKeyManagePage';// 卡、指纹、遥控钥匙添加 + static const authorizedAdminListPage = '/AuthorizedAdminListPage';// 授权管理员列表 + static const authorizedAdminDetailPage = '/AuthorizedAdminDetailPage';// 授权管理员详情 + static const authorizedAdminManagePage = '/AuthorizedAdminManagePage';// 授权管理员 + static const volumeAuthorizationLockManagePage = '/VolumeAuthorizationLockManagePage';// 批量授权锁 + static const lockOperatingRecordPage = '/LockOperatingRecordPage';// 操作记录 + static const lockSetPage = '/LockSetPage';// 锁设置 + static const basicInformationPage = '/BasicInformationPage';// 基本信息 + static const uploadElectricQuantityPage = '/UploadElectricQuantityPage';// 更新锁电量 + static const editLockNamePage = '/EditLockNamePage';// 修改锁名字 + static const lockSeletGroupingPage = '/LockSeletGroupingPage';// 锁选择分组 + static const adminOpenLockPasswordPage = '/AdminOpenLockPasswordPage';// 管理员开锁密码 + static const wirelessKeyboardPage = '/WirelessKeyboardPage';// 蓝牙键盘 + static const addWirelessKeyboardPage = '/AddWirelessKeyboardPage';// 添加蓝牙键盘 + static const addWirelessKeyboardScreenNotLightOnPage = '/AddWirelessKeyboardScreenNotLightOnPage';// 添加蓝牙键盘屏幕不亮时提示 + static const seletWirelessKeyboardPage = '/SeletWirelessKeyboardPage';// 选择蓝牙键盘 + static const doorMagneticPage = '/DoorMagneticPage';// 门磁列表 + static const addDoorMagneticPage = '/AddDoorMagneticPage';// 添加门磁 + static const nearbyDoorMagneticPage = '/NearbyDoorMagneticPage';// 附近的门磁 + static const remoteUnlockingPage = '/RemoteUnlockingPage';// 远程开锁 + static const automaticBlockingPage = '/AutomaticBlockingPage';// 自动闭锁 + static const normallyOpenModePage = '/NormallyOpenModePage';// 常开模式 + static const lockSoundSetPage = '/LockSoundSetPage';// 锁声音 + static const burglarAlarmPage = '/BurglarAlarmPage';// 防撬警报 + static const resetButtonPage = '/ResetButtonPage';// 锁重置键 + static const unlockQRCodePage = '/UnlockQRCodePage';// 开锁二维码 + static const lockTimePage = '/LockTimePage';// 锁时间 + static const diagnosePage = '/DiagnosePage';// 诊断 + static const uploadDataPage = '/UploadDataPage';// 上传数据 + static const importOtherLockDataPage = '/ImportOtherLockDataPage';// 导入其他锁数据 + static const lockEscalationPage = '/LockEscalationPage';// 锁升级 + static const markedHouseStatePage = '/MarkedHouseStatePage';// 标记房态 + + static const mineSetPage = '/MineSetPage';// 我的设置 + static const mineMultiLanguagePage = '/MineMultiLanguagePage';// 我的设置 + + static const starLockLoginPage = '/StarLockLoginPage';// 登录 + static const starLockRegisterPage = '/StarLockRegisterPage';// 注册 + static const starLockForgetPasswordPage = '/StarLockForgetPasswordPage';// 忘记密码 + static const seletCountryRegionPage = '/SeletCountryRegionPage';// 选择国家和地区 +} + +abstract class AppRouters { + static final routePages = [ + GetPage( + name: Routers.initial, + page: () => const StarLockApplication(), + ), + GetPage( + name: Routers.starLockMain, + page: () => const StarLockMain(), + ), + GetPage( + name: Routers.starLockMinePage, + page: () => const StarLockMinePage(), + ), + GetPage( + name: Routers.seletLockTypePage, + page: () => const SeletLockTypePage(), + ), + GetPage( + name: Routers.addLockPage, + page: () => const AddLockPage(), + ), + GetPage( + name: Routers.nearbyLockPage, + page: () => const NearbyLockPage(), + ), + GetPage( + name: Routers.saveLockPage, + page: () => const SaveLockPage(), + ), + GetPage( + name: Routers.lockDetailPage, + page: () => const LockDetailPage(), + ), + GetPage( + name: Routers.electronicKeyListPage, + page: () => const ElectronicKeyListPage(), + ), + GetPage( + name: Routers.electronicKeyDetailPage, + page: () => const ElectronicKeyDetailPage(), + ), + GetPage( + name: Routers.electronicKeyDetailChangeDate, + page: () => const ElectronicKeyDetailChangeDate(), + ), + GetPage( + name: Routers.sendElectronicKeyManagePage, + page: () => const SendElectronicKeyManagePage(), + ), + GetPage( + name: Routers.massSendElectronicKeyManagePage, + page: () => const MassSendElectronicKeyManagePage(), + ), + GetPage( + name: Routers.electronicKeyPeriodValidityPage, + page: () => const ElectronicKeyPeriodValidityPage(), + ), + GetPage( + name: Routers.sendEmailNotificationPage, + page: () => const SendEmailNotificationPage(), + ), + GetPage( + name: Routers.passwordKeyListPage, + page: () => const PasswordKeyListPage(), + ), + GetPage( + name: Routers.passwordKeyManagePage, + page: () => const PasswordKeyManagePage(), + ), + GetPage( + name: Routers.passwordKeyDetailPage, + page: () => const PasswordKeyDetailPage(), + ), + GetPage( + name: Routers.otherTypeKeyListPage, + page: () => const OtherTypeKeyListPage(), + ), + GetPage( + name: Routers.otherTypeKeyDetailPage, + page: () => const OtherTypeKeyDetailPage(), + ), + GetPage( + name: Routers.otherTypeKeyManagePage, + page: () => const OtherTypeKeyManagePage(), + ), + GetPage( + name: Routers.authorizedAdminListPage, + page: () => const AuthorizedAdminListPage(), + ), + GetPage( + name: Routers.authorizedAdminDetailPage, + page: () => const AuthorizedAdminDetailPage(), + ), + GetPage( + name: Routers.authorizedAdminManagePage, + page: () => const AuthorizedAdminManagePage(), + ), + GetPage( + name: Routers.lockOperatingRecordPage, + page: () => const LockOperatingRecordPage(), + ), + GetPage( + name: Routers.mineSetPage, + page: () => const MineSetPage(), + ), + GetPage( + name: Routers.volumeAuthorizationLockManagePage, + page: () => const VolumeAuthorizationLockManagePage(), + ), + GetPage( + name: Routers.mineMultiLanguagePage, + page: () => const MineMultiLanguagePage(), + ), + GetPage( + name: Routers.starLockLoginPage, + page: () => const StarLockLoginPage(), + ), + GetPage( + name: Routers.starLockRegisterPage, + page: () => const StarLockRegisterPage(), + ), + GetPage( + name: Routers.starLockForgetPasswordPage, + page: () => const StarLockForgetPasswordPage(), + ), + GetPage( + name: Routers.seletCountryRegionPage, + page: () => const SeletCountryRegionPage(), + ), + GetPage( + name: Routers.lockSetPage, + page: () => const LockSetPage(), + ), + GetPage( + name: Routers.basicInformationPage, + page: () => const BasicInformationPage(), + ), + GetPage( + name: Routers.uploadElectricQuantityPage, + page: () => const UploadElectricQuantityPage(), + ), + GetPage( + name: Routers.editLockNamePage, + page: () => const EditLockNamePage(), + ), + GetPage( + name: Routers.lockSeletGroupingPage, + page: () => const LockSeletGroupingPage(), + ), + GetPage( + name: Routers.adminOpenLockPasswordPage, + page: () => const AdminOpenLockPasswordPage(), + ), + GetPage( + name: Routers.wirelessKeyboardPage, + page: () => const WirelessKeyboardPage(), + ), + GetPage( + name: Routers.addWirelessKeyboardPage, + page: () => const AddWirelessKeyboardPage(), + ), + GetPage( + name: Routers.addWirelessKeyboardScreenNotLightOnPage, + page: () => const AddWirelessKeyboardScreenNotLightOnPage(), + ), + GetPage( + name: Routers.seletWirelessKeyboardPage, + page: () => const SeletWirelessKeyboardPage(), + ), + GetPage( + name: Routers.doorMagneticPage, + page: () => const DoorMagneticPage(), + ), + GetPage( + name: Routers.addDoorMagneticPage, + page: () => const AddDoorMagneticPage(), + ), + GetPage( + name: Routers.nearbyDoorMagneticPage, + page: () => const NearbyDoorMagneticPage(), + ), + GetPage( + name: Routers.lockAddressPage, + page: () => const LockAddressPage(), + ), + GetPage( + name: Routers.remoteUnlockingPage, + page: () => const RemoteUnlockingPage(), + ), + GetPage( + name: Routers.automaticBlockingPage, + page: () => const AutomaticBlockingPage(), + ), + GetPage( + name: Routers.normallyOpenModePage, + page: () => const NormallyOpenModePage(), + ), + GetPage( + name: Routers.lockSoundSetPage, + page: () => const LockSoundSetPage(), + ), + GetPage( + name: Routers.burglarAlarmPage, + page: () => const BurglarAlarmPage(), + ), + GetPage( + name: Routers.resetButtonPage, + page: () => const ResetButtonPage(), + ), + GetPage( + name: Routers.unlockQRCodePage, + page: () => const UnlockQRCodePage(), + ), + GetPage( + name: Routers.lockTimePage, + page: () => const LockTimePage(), + ),// 诊断 + GetPage( + name: Routers.diagnosePage, + page: () => const DiagnosePage(), + ), + GetPage( + name: Routers.uploadDataPage, + page: () => const UploadDataPage(), + ), + GetPage( + name: Routers.importOtherLockDataPage, + page: () => const ImportOtherLockDataPage(), + ), + GetPage( + name: Routers.lockEscalationPage, + page: () => const LockEscalationPage(), + ), + GetPage( + name: Routers.markedHouseStatePage, + page: () => const MarkedHouseStatePage(), + ), + ]; +} \ No newline at end of file diff --git a/star_lock/lib/app_settings/app_colors.dart b/star_lock/lib/app_settings/app_colors.dart new file mode 100644 index 00000000..c505b278 --- /dev/null +++ b/star_lock/lib/app_settings/app_colors.dart @@ -0,0 +1,122 @@ + +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +class AppColors { + + // static Color mainColor = const Color(0xFF385DEA); + static Color mainColor = const Color(0xFF4777EE); + static Color mainBackgroundColor = const Color(0xFFF5F5F5); + + static Color primaryTopColor = const Color(0xFF021B38); + static Color primaryBottomColor = const Color(0xFF021229); + + static Color itemBgColor = const Color(0xFF063F71); + static Color itemDividerColor = const Color(0xFF042F58); + static Color appBarIconColor = const Color(0xFFFFFFFF); + + //button color + static Color buttonEnableColor = const Color(0xFF0093E5); + static Color buttonDisableColor = buttonEnableColor.withOpacity(0.4); + static Color buttonEnableTextColor = const Color(0xFFFFFFFF); + static Color buttonDisableTextColor = buttonEnableTextColor.withOpacity(0.6); + + + static Color deleteBtnBgColor = const Color(0xFFFF495C).withOpacity(0.7); + static Color touristColor = const Color(0xFFF58A22); + + //check box color + static Color checkBoxSelectedColor = touristColor; + static Color get checkBoxUnselectedColor => const Color(0xFFFFFFFF); + static Color checkBoxOverlayColor = checkBoxUnselectedColor.withOpacity(0.3); + + //dialog + static Color dialogBgColor = const Color(0xFFFFFFFF); + static Color dialogTextColor = const Color(0xFF000000); + static Color dialogInputBgColor = pickerItemSelectedBgColor; + static Color introduceDialogBgColor = const Color(0xFF112B4C); + + + static Color pickerTitleTextColor = const Color(0xFF000000); + static Color pickerInfoTextColor = pickerTitleTextColor.withOpacity(0.5); + static Color pickerItemSelectedTextColor = const Color(0xFF0093E5); + static Color pickerItemSelectedBgColor = const Color(0xFFE4E4E4); + static Color pickerItemUnselectTextColor = pickerTitleTextColor.withOpacity(0.5); + + static Color normalTextColor = const Color(0xFFFFFFFF); + static Color inputErrorTextColor = const Color(0xFFFF6666); + static Color errorImageColor = const Color(0xFFFF495C ); + + static Color inputTitleTextColor = const Color(0xFFFFFFFF).withOpacity(0.6); + static Color settingItemInfoTextColor = const Color(0xFFFFFFFF).withOpacity(0.6); + static Color dividerColor = const Color(0xFFFFFFFF).withOpacity(0.6); + + static Color textFieldEnableBorderColor = normalTextColor.withOpacity(0.2); + static Color textFieldFocusBorderColor = normalTextColor.withOpacity(0.2); + static Color textFieldHintTextColor = normalTextColor.withOpacity(0.4); + static Color textFieldTextColor = normalTextColor; + + static Color protocolTextColor = touristColor; + + + static Color topTabBarSelectedBgColor = buttonEnableColor; + static Color topTabBarUnselectedBgColor = buttonEnableTextColor; + static Color tapTabBarSelectedTextColor = buttonEnableTextColor; + static Color tapTabBarUnselectedTextColor = const Color(0xFF000000); + + static Color recordChartChargeColor = const Color(0xFF24DB6C); + static Color recordChartWorkingColor = const Color(0xFF0093E5); + static Color recordChartBgColor = const Color(0xFFFFFFFF).withOpacity(0.4); + + static Color wifiDisableColor = const Color(0xFFA8A8A8); + + + static Color get paginationColor => const Color(0xFF01295C).withOpacity(45); + static Color get paginationActiveColor => const Color(0xFFFFFFFF).withOpacity(65); + + static Color scanPointerLineColor = Colors.blue; + + static Color scanColor0 = const Color(0xFF0093E5).withOpacity(0.05); + static Color scanColor1 = const Color(0xFF0093E5).withOpacity(0.1); + static Color scanColor2 = const Color(0xFF0093E5).withOpacity(0.3); + static Color scanColor3 = const Color(0xFF0093E5).withOpacity(0.5); + static Color scanColor4 = const Color(0xFF0093E5).withOpacity(0.9); + + static Color scanCircleCenterColor0 = Colors.blue.withOpacity(0.9); + static Color scanCircleCenterColor1 = const Color(0xffE9F3FF).withOpacity(0.8); + + static Color starCenterColor = const Color(0xFF0093E5); + static Color starMiddleColor = const Color.fromRGBO(255, 255, 255,1); + static Color starBorderColor = const Color.fromRGBO(255, 255, 255,0.2); + static Color starOutsideColor = const Color.fromRGBO(255, 255, 255,0.01); + + + static Color workingStateInfoBgColor = const Color(0xFF20354E); + + static Color color_level_0 = const Color(0xFFFA6400); + static Color color_level_1 = const Color(0xFFFFFFFF); + static Color color_level_2 = const Color(0xFFF7B500); + + + static Color switchTrackSelectedColor = const Color(0xFF0093E5); + static Color switchTrackUnselectedColor = const Color(0xFF5A6676).withOpacity(0.5); + static Color switchThumbColor = const Color(0xFFFFFFFF); + + static Color popMenuItemUnselectedBg = const Color(0xFF112B4C); + static Color popMenuItemSelectedColor = const Color(0xFF063F71); + + static Color blackColor = const Color(0xFF000000); + + + static Color dateSelectedBgColor = const Color(0xFF0093E5); + static Color dateSelectedTextColor = const Color(0xFFFFFFFF); + static Color dateUnselectedTextColor = blackColor; + static Color dateUnselectedDialogBgColor = const Color(0xFFC9C9C9).withOpacity(0.5); + static Color dateUnselectedBgColor = const Color(0xFFFFFFFF); + + + static Color progressBgColor = const Color(0xFF022345); + static Color progressValueColor = const Color(0xFF0093E5); + +} \ No newline at end of file diff --git a/star_lock/lib/app_settings/app_settings.dart b/star_lock/lib/app_settings/app_settings.dart new file mode 100644 index 00000000..c43555c5 --- /dev/null +++ b/star_lock/lib/app_settings/app_settings.dart @@ -0,0 +1,119 @@ +import 'package:flutter/foundation.dart'; +import 'dart:io'; + +class AppLog { + static bool _printLog = false; + static bool _onlyError = false; + + static showLog({@required bool printLog, bool onlyError}){ + _printLog = printLog ?? false; + _onlyError = onlyError ?? false; + } + static log(String msg,{bool error}){ + if(!kDebugMode)return; + error = error ?? false; + if(!_printLog)return; + if(_onlyError && !error) return; + if(error){ + msg = '----->>> $msg'; + } + print(msg); + } +} + +class AppPlatform { + static bool isIOS = Platform.isIOS; + static bool isAndroid = Platform.isAndroid; + static String platformString(){ + String name = 'unknown'; + if(isIOS){ + name = 'iOS'; + } + if(isAndroid){ + name = 'Android'; + } + return name; + } + + static String _brand = 'unknown'; + static int _sdkInt = 23; + + static void setBrandString(String brand){ + _brand = brand; + } + static String getBrandString()=>_brand; + static void setSDKInt(int sdkInt){ + _sdkInt = sdkInt; + } + static bool isSamsung()=>_brand.toLowerCase().contains('samsung'); + static int getSdkIntValue()=>_sdkInt; + static bool onlyCanNetUpgrade()=>isSamsung() && (getSdkIntValue() >= 29); + +} + +class AppMowerCodes { + static int idCodeLength(){ + int len = 19; + return len; + } + static int fenceNameLength = 8; + static int registerCodeLength = 4; +} + +class AppDate { + static String dateString() { + return '${year()}-${month().toString().padLeft(2,'0')}-${day().toString() + .padLeft(2,'0')}'; + } + + static String calendarString() { + String temp = '${year()}${month().toString().padLeft(2,'0')}${day().toString() + .padLeft(2,'0')}${hour().toString().padLeft(2,'0')}${second() + .toString().padLeft(2,'0')}'; + return temp; + } + + static int year()=>DateTime.now().year; + static int month()=>DateTime.now().month; + static int day()=>DateTime.now().day; + static int hour()=>DateTime.now().hour; + static int minute()=>DateTime.now().minute; + static int second()=>DateTime.now().second; + static int weekDay()=>DateTime.now().weekday; + static int timeZeroOffset()=>DateTime.now().timeZoneOffset.inHours; + +} + +//TODO:错误类型 +enum ErrorType { + modeNotMatch, + notConnected, + mqttNotConnect, + timeOut, +} + +class AppErrorCode { + static int errorCode(ErrorType type){ + int code = 0; + switch(type){ + case ErrorType.modeNotMatch: + code = 1; + break; + case ErrorType.notConnected: + code = 2; + break; + case ErrorType.mqttNotConnect: + code = 3; + break; + case ErrorType.timeOut: + code = 4; + break; + } + return code; + } +} + + + + + diff --git a/star_lock/lib/app_settings/app_style.dart b/star_lock/lib/app_settings/app_style.dart new file mode 100644 index 00000000..b76482e9 --- /dev/null +++ b/star_lock/lib/app_settings/app_style.dart @@ -0,0 +1,226 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'app_colors.dart'; + +class AppStyle { + + static RoundedRectangleBorder get buttonShape_16 => RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16.0.h), + ); + + static RoundedRectangleBorder get buttonShape_11 => RoundedRectangleBorder( + borderRadius: BorderRadius.circular(11.0.h), + ); + + static Size get btnMinSize => Size(100.w, 60.h); + static Size get btnMinSize2 => Size(60.w, 44.h); + static Size get btnMinSize3 => Size(60.w, 53.h); + + static TextStyle textStyle({Color textColor,double fontSize,FontWeight fontWeight}) => TextStyle( + fontSize: fontSize ?? 18.sp, + color: textColor ?? AppColors.buttonEnableTextColor, + fontWeight: fontWeight ?? FontWeight.normal, + ); + + ///textButtonStyle + static ButtonStyle get textButtonStyle => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(textColor: AppColors.buttonDisableColor); + return textStyle(); + }) + ); + + ///textButtonDeleteStyle + static ButtonStyle get textButtonDeleteStyle => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.deleteBtnBgColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(textColor: AppColors.buttonDisableColor); + return textStyle(); + }) + ); + + //textButtonStyle2 + static ButtonStyle get textButtonStyle2 => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize2), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_11), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(textColor: AppColors.buttonDisableColor,fontSize: 11.sp); + return textStyle(fontSize: 11.sp); + }) + ); + + static ButtonStyle get textButtonStyleOthers => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(textColor: AppColors.buttonDisableColor); + return textStyle(textColor: AppColors.buttonEnableColor); + }) + ); + + static ButtonStyle get specialButtonStyle => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize3), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.deleteBtnBgColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableTextColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(textColor: AppColors.buttonDisableColor); + return textStyle(textColor: AppColors.buttonEnableColor); + }) + ); + + static ButtonStyle clearTextButtonStyle({Color textColor,Color bgColor,double fontSize,FontWeight fontWeight}) => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + bgColor ??= AppColors.normalTextColor; + if(states.contains(MaterialState.disabled)) return bgColor.withOpacity(0.6); + return bgColor; + }), + overlayColor: MaterialStateProperty.resolveWith((states){ + textColor ??= AppColors.buttonEnableColor; + if(states.contains(MaterialState.pressed)) return textColor.withOpacity(0.1); + return textColor.withOpacity(0.1); + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + textColor ??= AppColors.buttonEnableColor; + if(states.contains(MaterialState.disabled)) return textColor.withOpacity(0.4); + return textColor; + }), + textStyle: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return textStyle(fontSize: fontSize,fontWeight: fontWeight); + return textStyle(fontSize: fontSize,fontWeight: fontWeight); + }), + ); + + ///elevatedButtonButtonStyle + static ButtonStyle get elevatedButtonButtonStyle => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + ); + + ///outlinedButtonButtonStyle + static ButtonStyle get outlinedButtonButtonStyle => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_16), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + ); + + + ///outlinedButtonButtonStyle2 + static ButtonStyle get outlinedButtonButtonStyle2_Selected => ButtonStyle( + minimumSize: MaterialStateProperty.resolveWith((states) => btnMinSize), + shape: MaterialStateProperty.resolveWith((states) => buttonShape_11), + backgroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableColor; + return AppColors.buttonEnableColor; + }), + foregroundColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.disabled)) return AppColors.buttonDisableTextColor; + return AppColors.buttonEnableTextColor; + }), + ); + + ///outlinedButtonButtonStyle2_Selected + static ButtonStyle get outlinedButtonButtonStyle2 => ButtonStyle( + shape: MaterialStateProperty.resolveWith((states) => buttonShape_11), + side: MaterialStateProperty.all(BorderSide( + width: 1.w, + color: AppColors.buttonEnableColor.withOpacity(0.5), + style: BorderStyle.solid, + )), + backgroundColor: MaterialStateProperty.all(Colors.transparent), + ); + + static TextStyle appTextStyle({ + Color textColor, + double fontSize, + }) => AppStyle.textStyle( + textColor: textColor, + fontSize: fontSize, + ); + + static InputBorder get textFieldEnableBorder => UnderlineInputBorder( + borderSide: BorderSide( + color: AppColors.textFieldEnableBorderColor, + width: 1.w, + style: BorderStyle.solid + ), + ); + + static TextStyle get textFieldTextStyle => appTextStyle( + textColor: AppColors.textFieldTextColor, + fontSize: 16.sp, + ); + + static TextStyle get textFieldHintTextStyle => appTextStyle( + textColor: AppColors.textFieldHintTextColor, + fontSize: 12.sp, + ); + + static InputBorder get textFieldFocusBorder => UnderlineInputBorder( + borderSide: BorderSide( + color: AppColors.textFieldFocusBorderColor, + width: 1.w, + style: BorderStyle.solid + ), + ); + +} \ No newline at end of file diff --git a/star_lock/lib/app_settings/app_theme.dart b/star_lock/lib/app_settings/app_theme.dart new file mode 100644 index 00000000..7e6c662b --- /dev/null +++ b/star_lock/lib/app_settings/app_theme.dart @@ -0,0 +1,132 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'app_colors.dart'; +import 'app_style.dart'; + +class AppTheme { + + static bool get isDarkMode => Get.isDarkMode; + + static ThemeData get appThemeData => ThemeData( + // fontFamily: , + primaryColor: AppColors.primaryTopColor, + navigationBarTheme: navigationBarThemeData, + checkboxTheme: checkBoxThemeData, + textButtonTheme: textButtonThemeData, + outlinedButtonTheme: outlinedButtonThemeData, + buttonTheme: buttonThemeData, + elevatedButtonTheme: elevatedButtonThemeData, + scaffoldBackgroundColor: Colors.transparent, + dialogBackgroundColor: AppColors.dialogBgColor, + // inputDecorationTheme: inputDecorationTheme, + dividerTheme: dividerTheme, + bottomNavigationBarTheme: bottomNavigationBarThemeData, + switchTheme: switchThemeData, + ); + + static SwitchThemeData get switchThemeData => SwitchThemeData( + trackColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.selected)){ + return AppColors.switchTrackSelectedColor; + } + return AppColors.switchTrackUnselectedColor; + }), + thumbColor: MaterialStateProperty.resolveWith((states){ + if(states.contains(MaterialState.selected)){ + return AppColors.switchThumbColor; + } + return AppColors.switchThumbColor; + }), + ); + + static NavigationBarThemeData get navigationBarThemeData => const NavigationBarThemeData( + backgroundColor: Colors.transparent, + ); + + static BottomNavigationBarThemeData get bottomNavigationBarThemeData => BottomNavigationBarThemeData( + elevation: 0, + backgroundColor: Colors.transparent, + selectedItemColor: AppColors.buttonEnableColor, + unselectedItemColor: AppColors.buttonEnableTextColor, + selectedLabelStyle: AppStyle.textStyle( + fontSize: 10, + ), + unselectedLabelStyle: AppStyle.textStyle( + fontSize: 11, + ), + selectedIconTheme: bottomBarSelectedIconTheme, + unselectedIconTheme: bottomBarUnselectedIconTheme, + landscapeLayout: BottomNavigationBarLandscapeLayout.centered, + ); + + static IconThemeData get bottomBarSelectedIconTheme => const IconThemeData( + size: 20, + ); + + static IconThemeData get bottomBarUnselectedIconTheme => const IconThemeData( + size: 21, + ); + + static DividerThemeData get dividerTheme => DividerThemeData( + color: AppColors.dividerColor, + ); + + static InputDecorationTheme get inputDecorationTheme => InputDecorationTheme( + hintStyle: AppStyle.textFieldHintTextStyle, + enabledBorder: AppStyle.textFieldEnableBorder, + focusedBorder: AppStyle.textFieldFocusBorder, + border: AppStyle.textFieldEnableBorder, + ); + + static AppBarTheme get appBarTheme => AppBarTheme( + backgroundColor: Colors.transparent, + iconTheme: IconThemeData( + color: AppColors.appBarIconColor, + ), + elevation: 0.0, + ); + + static CheckboxThemeData get checkBoxThemeData => CheckboxThemeData( + fillColor: MaterialStateProperty.resolveWith((states) { + if(states.contains(MaterialState.selected)){ + return AppColors.checkBoxSelectedColor; + } + return AppColors.checkBoxUnselectedColor; + }), + overlayColor: MaterialStateProperty.resolveWith((states) => AppColors.checkBoxOverlayColor), + ); + + static ElevatedButtonThemeData get elevatedButtonThemeData => ElevatedButtonThemeData( + style: AppStyle.elevatedButtonButtonStyle, + ); + + static TextButtonThemeData get textButtonThemeData => TextButtonThemeData( + style: AppStyle.textButtonStyle, + ); + + static OutlinedButtonThemeData get outlinedButtonThemeData => OutlinedButtonThemeData( + style: AppStyle.outlinedButtonButtonStyle, + ); + + static ButtonThemeData get buttonThemeData => const ButtonThemeData( + textTheme: ButtonTextTheme.primary, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(16.0)) + ), + height: 90, + ); + + +} + + +class NoShadowScrollBehavior extends ScrollBehavior { + + final AxisDirection axisDirection; + const NoShadowScrollBehavior({this.axisDirection = AxisDirection.up}):super(); + @override + Widget buildOverscrollIndicator(BuildContext context, Widget child, ScrollableDetails details) { + return GlowingOverscrollIndicator(axisDirection: axisDirection, color: Colors.red,showTrailing: false,showLeading: false,child: child,); + } +} \ No newline at end of file diff --git a/star_lock/lib/baseWidget.dart b/star_lock/lib/baseWidget.dart new file mode 100644 index 00000000..36640388 --- /dev/null +++ b/star_lock/lib/baseWidget.dart @@ -0,0 +1,47 @@ + + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/translations/trans_lib.dart'; + +mixin BaseWidget{ + double fs(double value) => value.sp; + double w(double width) => width.w; + double h(double height) => height.h; + + initUI(Widget widget) => ScreenUtilInit( + // designSize: const Size(750, 1334), + designSize: const Size(375, 812), + minTextAdapt: true, + splitScreenMode: true, + builder: (context , child) { + return widget; + }, + ); + + ///数据为空的视图 + Widget emptyView() { + return Container( + width: double.infinity, + height: double.infinity, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'images/icon_unHaveData.png', + height: 200.w, + width: 200.w, + ), + Padding( + padding: const EdgeInsets.only(top: 10), + child: Text(TranslationLoader.lanKeys.noData.tr, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600)), + ) + ], + ), + ); + } + +} \ No newline at end of file diff --git a/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart b/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart new file mode 100644 index 00000000..798d0d0f --- /dev/null +++ b/star_lock/lib/login/forgetPassword/starLock_forgetPassword_page.dart @@ -0,0 +1,101 @@ + +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../appRouters.dart'; +import '../../app_settings/app_colors.dart'; +import '../../tools/forgetPwdInput.dart'; +import '../../tools/loginInput.dart'; +import '../../tools/submitBtn.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class StarLockForgetPasswordPage extends StatefulWidget { + const StarLockForgetPasswordPage({Key key}) : super(key: key); + + @override + State createState() => _StarLockForgetPasswordPageState(); +} + +class _StarLockForgetPasswordPageState extends State { + final TextEditingController _phoneController = TextEditingController(); + final TextEditingController _pwdController = TextEditingController(); + final TextEditingController _codeController = TextEditingController(); + + Timer _timer; + + int _seconds = 60; + + @override + Widget build(BuildContext context) { + return Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.reset.tr} ${TranslationLoader.lanKeys.password.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + padding: EdgeInsets.only( + top: 40.h, + left: 40.w, + right: 40.w + ), + children: [ + LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr, keyboardType: TextInputType.number,inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 10.w), + LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys.pleaseEnter.tr} ${TranslationLoader.lanKeys.password.tr}",inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 15.w), + Text(TranslationLoader.lanKeys.registerPasswordTip.tr, style: TextStyle(color: const Color(0xFF999999), fontSize: 26.sp),), + SizedBox(height: 10.w), + LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys.sure.tr} ${TranslationLoader.lanKeys.password.tr}",inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 10.w), + ForgetPwdInput(controller: _codeController,hintText: '${TranslationLoader.lanKeys.pleaseEnter.tr} ${TranslationLoader.lanKeys.verificationCode.tr}',keyboardType: TextInputType.number,inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(6), + ],rightSlot: Container( + // margin: EdgeInsets.only(right: 30.w), + child: GestureDetector( + child: Container( + width: 180.w, + height: 60.h, + padding: EdgeInsets.all(5.h), + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(5) + ), + child: Center( + child: Text(_seconds==60?'${TranslationLoader.lanKeys.getTip.tr} ${TranslationLoader.lanKeys.verificationCode.tr}': (_seconds<10)?'0$_seconds s':'$_seconds s', textAlign:TextAlign.center, style: TextStyle( + color: Colors.white, + fontSize: 26.sp, + )), + ), + ), + onTap: (){ + if(_seconds==60){ + // _setVerify(); + }else{ + // Toast.show(msg: '正在获取验证码'); + } + }, + ), + )), + SizedBox(height: 50.w), + SubmitBtn(btnName: "${TranslationLoader.lanKeys.reset.tr} ${TranslationLoader.lanKeys.password.tr}", fontSize: 30.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ) + ); + } + + +} \ No newline at end of file diff --git a/star_lock/lib/login/login/starLock_login_page.dart b/star_lock/lib/login/login/starLock_login_page.dart new file mode 100644 index 00000000..985af277 --- /dev/null +++ b/star_lock/lib/login/login/starLock_login_page.dart @@ -0,0 +1,139 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../appRouters.dart'; +import '../../app_settings/app_colors.dart'; +import '../../tools/loginInput.dart'; +import '../../tools/submitBtn.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class StarLockLoginPage extends StatefulWidget { + const StarLockLoginPage({Key key}) : super(key: key); + + @override + State createState() => _StarLockLoginPageState(); +} + +class _StarLockLoginPageState extends State { + final TextEditingController _phoneController = TextEditingController(); + final TextEditingController _pwdController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.login.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.register.tr, style: TextStyle(color: Colors.white),), + onPressed: (){ + Navigator.pushNamed(context, Routers.starLockRegisterPage); + },), + ],), + body:ListView( + padding: EdgeInsets.only( + top: 120.h, + left: 40.w, + right: 40.w + ), + children: [ + Container( + padding: EdgeInsets.all(10.w), + child: Center( + child: Image.asset('images/icon_main_1024.png', width: 150.w, height: 150.w) + ) + ), + SizedBox(height: 50.w), + LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr, keyboardType: TextInputType.number,inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 50.w), + LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys.pleaseEnter.tr} ${TranslationLoader.lanKeys.password.tr}",inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 20.h), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + height: 20.h, + width: 26.w, + child: Checkbox(value: false, onChanged: (value){ + + }) + ), + SizedBox(width: 15.w,), + Flexible( + child: RichText( + text: TextSpan( + text: TranslationLoader.lanKeys.readAndAgree.tr, + style: TextStyle( + color: const Color(0xff333333), + fontSize: 26.sp + ), + children: [ + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: GestureDetector( + child: Text('《${TranslationLoader.lanKeys.userAgreement.tr}》',style: TextStyle( + color: AppColors.mainColor, + fontSize: 26.sp + )), + onTap: (){ + + }, + ) + ), + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: GestureDetector( + child: Text('《${TranslationLoader.lanKeys.privacyPolicy.tr}》',style: TextStyle( + color: AppColors.mainColor, + fontSize: 26.sp + )), + onTap: (){ + + }, + ) + ), + ], + ) + ), + ) + ], + ), + SizedBox(height: 50.w), + SubmitBtn(btnName: TranslationLoader.lanKeys.login.tr, fontSize: 28.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SizedBox(height: 50.w), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + child: SizedBox( + // width: 150.w, + height: 50.h, + // color: Colors.red, + child: Center( + child: Text('${TranslationLoader.lanKeys.forgetPassword.tr}?',style: TextStyle(fontSize: 24.sp)), + ), + ), + onTap: (){ + Navigator.pushNamed(context, Routers.starLockForgetPasswordPage); + }, + ) + ], + ), + ], + ) + ); + } + + +} diff --git a/star_lock/lib/login/register/starLock_register_page.dart b/star_lock/lib/login/register/starLock_register_page.dart new file mode 100644 index 00000000..572c19a4 --- /dev/null +++ b/star_lock/lib/login/register/starLock_register_page.dart @@ -0,0 +1,209 @@ + +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../appRouters.dart'; +import '../../app_settings/app_colors.dart'; +import '../../tools/forgetPwdInput.dart'; +import '../../tools/loginInput.dart'; +import '../../tools/submitBtn.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class StarLockRegisterPage extends StatefulWidget { + const StarLockRegisterPage({Key key}) : super(key: key); + + @override + State createState() => _StarLockRegisterPageState(); +} + +class _StarLockRegisterPageState extends State { + final TextEditingController _phoneController = TextEditingController(); + final TextEditingController _pwdController = TextEditingController(); + final TextEditingController _codeController = TextEditingController(); + + Timer _timer; + + int _seconds = 60; + + @override + Widget build(BuildContext context) { + return Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.register.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + padding: EdgeInsets.only( + top: 40.h, + left: 40.w, + right: 40.w + ), + children: [ + topSeletCountryAndRegionWidget (), + middleTFWidget (), + SubmitBtn(btnName: "${TranslationLoader.lanKeys.reset.tr} ${TranslationLoader.lanKeys.password.tr}", fontSize: 30.sp, borderRadius: 20.w, padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ) + ); + } + + Widget topSeletCountryAndRegionWidget (){ + return Column( + children: [ + SizedBox(height:50.h), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 420.w, + height: 60.h, + // color: Colors.red, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(30.h)), + border: const Border( + top: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + left: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + right: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + bottom: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + ) + ), + child: Row( + children: [ + GestureDetector( + onTap: (){ + + }, + child: Container( + width: 210.w, + height: 60.h, + // color: Colors.red, + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.all(Radius.circular(30.h)), + border: const Border( + top: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + left: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + right: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + bottom: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + ) + ), + child: Center(child: Text(TranslationLoader.lanKeys.iphone.tr, style: TextStyle(color: Colors.white),)) + ), + ), + Expanded( + child: GestureDetector( + onTap: (){ + + }, + child: Container( + height: 60.h, + // color: Colors.red, + // decoration: BoxDecoration( + // borderRadius: BorderRadius.all(Radius.circular(30.h)), + // border: const Border( + // top: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + // left: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + // right: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + // bottom: BorderSide(width: 1.0, color: Color(0xffC0C0C0)), + // ) + // ), + child: Center(child: Text(TranslationLoader.lanKeys.email.tr, style: const TextStyle(color: Colors.black),)) + ), + ), + ), + ], + ), + ), + + ], + ), + SizedBox(height:60.h), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.seletCountryRegionPage); + }, + child: Container( + height: 70.h, + // color: Colors.red, + // padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:5.w), + Expanded(child: Text(TranslationLoader.lanKeys.countryAndRegion.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500))), + SizedBox(width:20.w), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text("中国+86", textAlign: TextAlign.end, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500),) + ], + ), + SizedBox(width:5.w), + Image.asset('images/icon_right.png', width: 50.w, height: 50.w,), + ], + ), + ), + ), + Container(height: 0.5.h, color: Colors.grey,) + ], + ); + } + + Widget middleTFWidget (){ + return Column( + children: [ + LoginInput(controller: _phoneController, leftImg:'images/main/icon_main_search.png', hintText: TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr, keyboardType: TextInputType.number,inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 10.w), + LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys.pleaseEnter.tr} ${TranslationLoader.lanKeys.password.tr}",inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 15.w), + Text(TranslationLoader.lanKeys.registerPasswordTip.tr, style: TextStyle(color: const Color(0xFF999999), fontSize: 26.sp),), + SizedBox(height: 10.w), + LoginInput(controller: _pwdController, isPwd: true, leftImg:'images/main/icon_main_search.png', hintText: "${TranslationLoader.lanKeys.sure.tr} ${TranslationLoader.lanKeys.password.tr}",inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + SizedBox(height: 10.w), + ForgetPwdInput(controller: _codeController,hintText: '${TranslationLoader.lanKeys.pleaseEnter.tr} ${TranslationLoader.lanKeys.verificationCode.tr}',keyboardType: TextInputType.number,inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp('[0-9]')), + LengthLimitingTextInputFormatter(6), + ],rightSlot: Container( + // margin: EdgeInsets.only(right: 30.w), + child: GestureDetector( + child: Container( + width: 180.w, + height: 60.h, + padding: EdgeInsets.all(5.h), + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(5) + ), + child: Center( + child: Text(_seconds==60?'${TranslationLoader.lanKeys.getTip.tr} ${TranslationLoader.lanKeys.verificationCode.tr}': (_seconds<10)?'0$_seconds s':'$_seconds s',textAlign:TextAlign.center, style: TextStyle( + color: Colors.white, + fontSize: 26.sp + )), + ), + ), + onTap: (){ + if(_seconds==60){ + // _setVerify(); + }else{ + // Toast.show(msg: '正在获取验证码'); + } + }, + ), + )), + SizedBox(height: 50.w), + ], + ); + } +} diff --git a/star_lock/lib/login/seletCountryRegion/seletCountryRegion_page.dart b/star_lock/lib/login/seletCountryRegion/seletCountryRegion_page.dart new file mode 100644 index 00000000..0054b485 --- /dev/null +++ b/star_lock/lib/login/seletCountryRegion/seletCountryRegion_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../app_settings/app_colors.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class SeletCountryRegionPage extends StatefulWidget { + const SeletCountryRegionPage({Key key}) : super(key: key); + + @override + State createState() => _SeletCountryRegionPageState(); +} + +class _SeletCountryRegionPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: const Color(0xFFFFFFFF), + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.selet.tr} ${TranslationLoader.lanKeys.countryAndRegion.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + padding: EdgeInsets.only(top: 40.h, left: 40.w, right: 40.w), + children: [ + + ], + ) + ); + } +} diff --git a/star_lock/lib/main.dart b/star_lock/lib/main.dart new file mode 100644 index 00000000..b0f37178 --- /dev/null +++ b/star_lock/lib/main.dart @@ -0,0 +1,136 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; +import 'package:star_lock/tools/app_manager.dart'; +import 'package:star_lock/tools/device_info_service.dart'; +import 'package:star_lock/tools/platform_info_services.dart'; +import 'package:star_lock/tools/store_service.dart'; +import 'package:star_lock/translations/app_dept.dart'; +import 'package:star_lock/translations/trans_lib.dart'; + +import 'appRouters.dart'; +import 'baseWidget.dart'; + +void main() async { + _setCommonServices(); + + // 设置国际化信息 + await _initTranslation(); + + runApp(MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({GlobalKey key}):super(key: key); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { + + @override + Widget build(BuildContext context) { + return ScreenUtilInit( + designSize: const Size(750, 1334), + builder: (w, a) => _initMaterialApp()); + } + + GetMaterialApp _initMaterialApp() => GetMaterialApp( + title: 'Star Lock', + translations: TranslationMessage(), + supportedLocales: appDept.deptSupportedLocales, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + localeResolutionCallback: (locale,supportedLocales){ + if(!supportedLocales.contains(locale)) { + int idx = appSupportedLocales.indexWhere((element) => element.languageCode == locale.languageCode); + if(idx != -1) { + locale = appSupportedLocales[idx]; + }else { + locale = const Locale('zh', 'CN'); + } + } + // print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}"); + AppManager().setLanCode(code: '${locale.languageCode}_${locale.countryCode}'); + return locale; + }, + // locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale, + locale: Get.deviceLocale, + fallbackLocale: const Locale('zh', 'CN'), + theme: ThemeData( + scaffoldBackgroundColor: const Color(0xFFF6F6F6), + backgroundColor: const Color(0xFFF6F6F6), + primaryColor: const Color(0xFFFFFFFF), + textTheme: TextTheme( + //用在非Material组件上的文字显示, + bodyText1: TextStyle( + fontSize: 28.sp, color: const Color(0xff2E2B2B)), + //Material组件上的文字显示 + bodyText2: TextStyle( + fontSize: 28.sp, color: const Color(0xff2E2B2B)), + button: TextStyle(fontSize: 28.sp)), + iconTheme: + IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)), + appBarTheme: AppBarTheme( + backgroundColor: const Color(0xFFFFFFFF), + elevation: 0, + centerTitle: true, + iconTheme: + IconThemeData(color: const Color(0xff333333), size: 36.sp), + titleTextStyle: TextStyle( + color: const Color(0xff333333), + fontWeight: FontWeight.w400, + fontSize: 36.sp), + ), + splashColor: Colors.transparent, // 点击时的高亮效果设置为透明 + highlightColor: Colors.transparent, + ), + debugShowCheckedModeBanner: false, + getPages: AppRouters.routePages, + initialRoute: '/' + ); + + @override + void initState() { + super.initState(); + WidgetsBinding.instance?.addObserver(this); + } + + @override + void dispose() { + WidgetsBinding.instance?.removeObserver(this); + super.dispose(); + } + + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.resumed) { + // 应用进入前台 + print("应用进入前台"); + } else if (state == AppLifecycleState.paused) { + // 应用进入后台 + print("应用进入后台"); + } + } + +} + +// 设置国际化信息 +Future _initTranslation() async => TranslationLoader.loadTranslation( + zhSource: "images/lan/lan_zh.json", + enSource: "images/lan/lan_en.json", + keySource: "images/lan/lan_keys.json", +); + +// 设置包名服务设备信息 +Future _setCommonServices() async { + await Get.putAsync(() => StoreService().init()); + await Get.putAsync(() => PlatformInfoService().init()); + await Get.putAsync(() => DeviceInfoService().init()); + Get.log(PlatformInfoService.to.info.version); +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart new file mode 100644 index 00000000..5d46c307 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_page.dart @@ -0,0 +1,32 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; +import 'authorizedAdminManage_tabbar.dart'; + +class AuthorizedAdminManagePage extends StatefulWidget { + const AuthorizedAdminManagePage({Key key}) : super(key: key); + + @override + State createState() => _AuthorizedAdminManagePageState(); +} + +class _AuthorizedAdminManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.authorizedAdmin.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + AuthorizedAdminManageTabbar(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_tabbar.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_tabbar.dart new file mode 100644 index 00000000..08394bd9 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdminManage/authorizedAdminManage_tabbar.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../../translations/trans_lib.dart'; +import '../../../electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart'; +import '../authorizedAdmin_page.dart'; + +class AuthorizedAdminManageTabbar extends StatefulWidget { + var initialIndex=1; + + AuthorizedAdminManageTabbar({Key key, @required this.initialIndex}) : super(key: key); + + @override + State createState() => _AuthorizedAdminManageTabbarState(); +} + +class _AuthorizedAdminManageTabbarState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs= [ + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, type: "0"), + ItemView(title: TranslationLoader.lanKeys.permanent.tr, type: "1"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/4, + margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => AuthorizedAdminPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart new file mode 100644 index 00000000..8e0d16d7 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdmin/authorizedAdmin_page.dart @@ -0,0 +1,242 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../translations/trans_lib.dart'; + +class AuthorizedAdminPage extends StatefulWidget { + final String type; + AuthorizedAdminPage({Key key, @required this.type}) : super(key: key); + + @override + State createState() => _AuthorizedAdminPageState(); +} + +class _AuthorizedAdminPageState extends State { + final FlutterContactPicker _contactPicker = FlutterContactPicker(); + Contact _contact; + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.type)) { + case 0: + { + // 限时 + // return sendElectronicKeySucceed(); + return Column( + children: [ + keyInfoWidget(), + keyTimeWidget(), + keyRealNameWidget(), + keyBottomWidget(TranslationLoader.lanKeys.authorizedAdminTip.tr) + ], + ); + } + break; + case 1: + { + // 永久 + return Column( + children: [ + keyInfoWidget(), + keyRealNameWidget(), + keyBottomWidget(TranslationLoader.lanKeys.authorizedAdminTip.tr) + ], + ); + } + break; + default: + break; + } + } + + // 顶部钥匙信息widget + Widget keyInfoWidget(){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.receiver.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(true, TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(false, TranslationLoader.lanKeys.pleaseEnter.tr)), + Container(height: 10.h), + ], + ); + } + + // 生效失效时间 + Widget keyTimeWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + Container(height: 10.h), + ], + ); + } + + // 实名认证 + Widget keyRealNameWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.realNameAuthentication.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ + + }), + Container(height: 10.h), + ], + ); + } + + Widget keyBottomWidget(String tipStr){ + return Column( + children: [ + Container( + padding: EdgeInsets.all(20.w), + child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: Text(tipStr, textAlign: TextAlign.start,)), + ], + ), + ), + SubmitBtn(btnName: TranslationLoader.lanKeys.sender.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + Container( + padding: EdgeInsets.only(right:30.w), + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton(onPressed: (){ + Navigator.pushNamed(context, Routers.volumeAuthorizationLockManagePage); + }, child: Text(TranslationLoader.lanKeys.volumeAuthorizationLock.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),)), + ], + ), + ), + ], + ); + } + + // 发送电子钥匙成功 + Widget sendElectronicKeySucceed(){ + return Column( + children: [ + Container( + height: 250.h, + width: 1.sw, + color: Colors.white, + child: Column( + children: [ + SizedBox(height: 30.h,), + Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("发送成功",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), + ], + ), + ], + ), + ), + SizedBox(height: 20.h,), + SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '邮件通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + Navigator.pushNamed(context, Routers.sendEmailNotificationPage); + }), + SubmitBtn(btnName: '微信通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '标记为已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ); + } + + // 接受者信息输入框 + Widget getTFWidget(bool isHaveBtn, String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + isHaveBtn?Container( + width: 50.w, + height: 50.w, + decoration: const BoxDecoration( + color: Colors.white, + image: DecorationImage( + image: AssetImage('images/icon_lock.png'), + fit: BoxFit.fill + ), + ), + alignment: Alignment.center, + child: InkWell( + onTap: () async { + Contact contact = await _contactPicker.selectContact(); + setState(() { + _contact = contact; + // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); + }); + }, + ), + ):Container() + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart new file mode 100644 index 00000000..bb170c8f --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminDetail/authorizedAdminDetail_page.dart @@ -0,0 +1,176 @@ + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class AuthorizedAdminDetailPage extends StatefulWidget { + const AuthorizedAdminDetailPage({Key key}) : super(key: key); + + @override + State createState() => _AuthorizedAdminDetailPageState(); +} + +class _AuthorizedAdminDetailPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.authorizedAdmin.tr}${TranslationLoader.lanKeys.detail.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.share.tr, style: TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.password.tr, rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"永久", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.sender.tr, rightTitle:"15080825640", action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.senderTime.tr, rightTitle:"2020.06.21 11:49", action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.operatingRecord.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 40.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys.delete.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ), + ); + } + + Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget rightWidget,Function action}){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // height: 80.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:20.w), + Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + isHaveRightWidget?rightWidget:Text(rightTitle, textAlign: TextAlign.end,style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) + ], + ), + ), + SizedBox(width:5.w), + isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } + + void showCupertinoAlertDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return Card( + color: const Color(0x00FFFFFF), + child: CupertinoAlertDialog( + title: const Text("修改密码"), + content: Column( + children: [ + const SizedBox(height: 10,), + Container( + height: 80.h, + // color: Colors.white, + margin: EdgeInsets.all(10.w), + child: const TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + // contentPadding: const EdgeInsets.only( + // top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: "请输入要修改的名字", + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + // icon: Padding( + // padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + // child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + // ), + // //右边图标设置 + // suffixIcon: GestureDetector( + // onTap: () { + // //addPostFrameCallback是 StatefulWidge 渲染结束的回调,只会被调用一次 + // // SchedulerBinding.instance.addPostFrameCallback((_) { + // // _controller.text = ""; + // // }); + // }, + // child: Padding( + // padding: EdgeInsets.all(8), + // child: Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + // ), + // ) + ), + ), + ) + ], + ), + actions: [ + CupertinoDialogAction( + child: const Text("取消"), + onPressed: () { + Navigator.pop(context); + // print("取消"); + }, + ), + CupertinoDialogAction( + child: const Text("确定"), + onPressed: () { + Navigator.pop(context); + // print("确定"); + }, + ), + ], + ), + ); + }); + } + +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart new file mode 100644 index 00000000..5f9c7f97 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/authorizedAdminList/authorizedAdminList_page.dart @@ -0,0 +1,133 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class AuthorizedAdminListPage extends StatefulWidget { + const AuthorizedAdminListPage({Key key}) : super(key: key); + + @override + State createState() => _AuthorizedAdminListPageState(); +} + +class _AuthorizedAdminListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.authorizedAdmin.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.reset.tr, style: TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + _searchWidget(), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys.authorizedAdmin.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.authorizedAdminManagePage); + } + ), + ], + ), + ); + } + + Widget _searchWidget(){ + return Container( + height: 80.h, + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + Navigator.pushNamed(context, Routers.authorizedAdminDetailPage); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + SizedBox(height:5.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart new file mode 100644 index 00000000..625033a0 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class VolumeAuthorizationLockManagePage extends StatefulWidget { + const VolumeAuthorizationLockManagePage({Key key}):super(key:key); + + @override + State createState() => _VolumeAuthorizationLockManagePageState(); +} + +class _VolumeAuthorizationLockManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.authorizedAdmin.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + VolumeAuthorizationLockManageTabbar(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart new file mode 100644 index 00000000..1dca45ca --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLockManage/volumeAuthorizationLockManage_tabbar.dart @@ -0,0 +1,88 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../../translations/trans_lib.dart'; +import '../volumeAuthorizationLock_page.dart'; + +class VolumeAuthorizationLockManageTabbar extends StatefulWidget { + var initialIndex=1; + + VolumeAuthorizationLockManageTabbar({Key key, @required this.initialIndex}) : super(key: key); + + @override + State createState() => _VolumeAuthorizationLockManageTabbarState(); +} + +class _VolumeAuthorizationLockManageTabbarState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs= [ + ItemView(title: TranslationLoader.lanKeys.permanent.tr, type: "0"), + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, type: "1"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/4, + margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => VolumeAuthorizationLockPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart new file mode 100644 index 00000000..47ec6af3 --- /dev/null +++ b/star_lock/lib/main/lockDetail/authorizedAdmin/volumeAuthorizationLock/volumeAuthorizationLock_page.dart @@ -0,0 +1,186 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../translations/trans_lib.dart'; + +class VolumeAuthorizationLockPage extends StatefulWidget { + final String type; + + const VolumeAuthorizationLockPage({Key key, @required this.type}):super(key:key); + + @override + State createState() => _VolumeAuthorizationLockPageState(); +} + +class _VolumeAuthorizationLockPageState extends State { + final FlutterContactPicker _contactPicker = FlutterContactPicker(); + Contact _contact; + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.type)) { + case 0: + { + // 永久 + return Column( + children: [ + keyInfoWidget(), + remoteUnlockingWidget(), + keyBottomWidget() + ], + ); + } + break; + case 1: + { + // 限时 + return Column( + children: [ + keyInfoWidget(), + keyTimeWidget(), + remoteUnlockingWidget(), + keyBottomWidget() + ], + ); + } + break; + default: + break; + } + } + + // 顶部钥匙信息widget + Widget keyInfoWidget(){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.number.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(true, TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(false, TranslationLoader.lanKeys.pleaseEnter.tr)), + Container(height: 10.h), + ], + ); + } + + // 生效失效时间 + Widget keyTimeWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", ), + Container(height: 10.h), + ], + ); + } + + // 远程开锁 + Widget remoteUnlockingWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.lock.tr, rightTitle:TranslationLoader.lanKeys.pleaseSelet.tr, isHaveDirection: true, action: (){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.remoteUnlockingAllowed.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ + + }), + Container(height: 10.h), + ], + ); + } + + Widget keyBottomWidget(){ + return Column( + children: [ + SubmitBtn( + btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ); + } + + // 接受者信息输入框 + Widget getTFWidget(bool isHaveBtn, String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + isHaveBtn?Container( + width: 50.w, + height: 50.w, + decoration: const BoxDecoration( + color: Colors.white, + image: DecorationImage( + image: AssetImage('images/icon_lock.png'), + fit: BoxFit.fill + ), + ), + alignment: Alignment.center, + child: InkWell( + onTap: () async { + Contact contact = await _contactPicker.selectContact(); + setState(() { + _contact = contact; + // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); + }); + }, + ), + ):Container() + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart new file mode 100644 index 00000000..7db1eb95 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetail/electronicKeyDetail_page.dart @@ -0,0 +1,191 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class ElectronicKeyDetailPage extends StatefulWidget { + const ElectronicKeyDetailPage({Key key}) : super(key: key); + + @override + State createState() => _ElectronicKeyDetailPageState(); +} + +class _ElectronicKeyDetailPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + resizeToAvoidBottomInset: false, + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.keyDetail.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"魏", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, allHeight: 90.h,rightTitle:"2020.06.20 11:49\n2020.06.21 11:49", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.receiver.tr, rightTitle:"786612630@qq.com",action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.sender.tr, rightTitle:"15080825640", action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.senderTime.tr, rightTitle:"2020.06.21 11:49", action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.realNameAuthentication.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w,child: _switch()), action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.operatingRecord.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 40.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys.delete, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ), + ); + } + + Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget rightWidget,Function action}){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // height: 80.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:20.w), + Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + isHaveRightWidget?rightWidget:Text(rightTitle, textAlign: TextAlign.end,style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) + ], + ), + ), + SizedBox(width:5.w), + isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + + void showCupertinoAlertDialog(BuildContext context) { + + showDialog( + context: context, + builder: (BuildContext context) { + return Card( + color: const Color(0x00FFFFFF), + child: CupertinoAlertDialog( + title: const Text("修改密码"), + content: Column( + children: [ + const SizedBox(height: 10,), + Container( + height: 50.h, + // color: Colors.white, + // padding: EdgeInsets.only(left:20.w, right: 110.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15.w) + ), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: EdgeInsets.only(top: 20.h, left: 15.0, bottom: 13.h), + hintText: "请输入要修改的名字", + hintStyle:TextStyle(fontSize: 28.sp), + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + // icon: Padding( + // padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + // child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + // ), + // //右边图标设置 + // suffixIcon: GestureDetector( + // onTap: () { + // //addPostFrameCallback是 StatefulWidge 渲染结束的回调,只会被调用一次 + // // SchedulerBinding.instance.addPostFrameCallback((_) { + // // _controller.text = ""; + // // }); + // }, + // child: Padding( + // padding: EdgeInsets.all(8), + // child: Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + // ), + // ) + ), + ), + ) + ], + ), + actions: [ + CupertinoDialogAction( + child: Text("取消"), + onPressed: () { + Navigator.pop(context); + print("取消"); + }, + ), + CupertinoDialogAction( + child: Text("确定"), + onPressed: () { + Navigator.pop(context); + print("确定"); + }, + ), + ], + ), + ); + }); + } + +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart new file mode 100644 index 00000000..7bcfcd49 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyDetail/electronicKeyDetailChangeDate/electronicKeyDetailChangeDate_page.dart @@ -0,0 +1,107 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class ElectronicKeyDetailChangeDate extends StatefulWidget { + const ElectronicKeyDetailChangeDate({Key key}) : super(key: key); + + @override + State createState() => _ElectronicKeyDetailChangeDateState(); +} + +class _ElectronicKeyDetailChangeDateState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.amend.tr} ${TranslationLoader.lanKeys.periodValidity.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton(child: Text(TranslationLoader.lanKeys.sure.tr, style: const TextStyle(color: Colors.white),), onPressed: (){ + + },), + ],), + body: buildMainUI(), + ); + } + + Widget buildMainUI(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, isHaveLine: true, action:(){ + _showDatePicker(); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ + _showDatePicker(); + }), + ], + ); + } + + void _showDatePicker() { + String MIN_DATETIME = '1900-01-01 00:00'; + String MAX_DATETIME = '2100-01-01 00:00'; + String INIT_DATETIME = getNowDate(); + DateTime _dateTime = DateTime.parse(INIT_DATETIME); + DateTimePickerLocale _locale = DateTimePickerLocale.zh_cn; + String _format = 'yyyy-MMMM-dd HH:mm'; + + DatePicker.showDatePicker( + context, + onMonthChangeStartWithFirstDate: true, + pickerTheme:const DateTimePickerTheme( + cancel: Text('取消', style: TextStyle(color: Colors.black)), + showTitle: true, + confirm: Text('确认', style: TextStyle(color: Colors.black)), + ), + minDateTime: DateTime.parse(MIN_DATETIME), + maxDateTime: DateTime.parse(MAX_DATETIME), + initialDateTime: _dateTime, + dateFormat: _format, + locale: _locale, + onClose: () { + + }, + onCancel: () { + + }, + onChange: (dateTime, List index) { + setState(() { + _dateTime = dateTime; + }); + }, + onConfirm: (dateTime, List index) { + setState(() { + _dateTime = dateTime; + }); + }, + ); + } + + String getNowDate(){ + // 获取当前时间对象 + DateTime today = DateTime.now(); + String dateSlug ="${today.year.toString()}-${today.month.toString().padLeft(2,'0')}-${today.day.toString().padLeft(2,'0')} ${today.hour.toString().padLeft(2,'0')}:${today.minute.toString().padLeft(2,'0')}"; + + // //获取当前时间的年 + // int year = now.year; + // //获取当前时间的月 + // int month = now.month; + // //获取当前时间的日 + // int day = now.day; + // //获取当前时间的时 + // int hour = now.hour; + // //获取当前时间的分 + // int minute = now.minute; + // //获取当前时间的秒 + // int millisecond = now.millisecond; + + // print("组合 $year-$month-$day $hour:$minute:$millisecond"); + return dateSlug; + } +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart new file mode 100644 index 00000000..5314256b --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyList/electronicKeyList_page.dart @@ -0,0 +1,137 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class ElectronicKeyListPage extends StatefulWidget { + const ElectronicKeyListPage({Key key}) : super(key: key); + + @override + State createState() => _ElectronicKeyListPageState(); +} + +class _ElectronicKeyListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.electronicKey.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.reset.tr, style: const TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + _searchWidget(), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys.sendKey.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage); + } + ), + ], + ), + ); + } + + Widget _searchWidget(){ + return Container( + height: 80.h, + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart new file mode 100644 index 00000000..2b37b35d --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/electronicKeyPeriodValidity/electronicKeyPeriodValidity_page.dart @@ -0,0 +1,140 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class ElectronicKeyPeriodValidityPage extends StatefulWidget { + const ElectronicKeyPeriodValidityPage({Key key}) : super(key: key); + + @override + State createState() => _ElectronicKeyPeriodValidityPageState(); +} + +class _ElectronicKeyPeriodValidityPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.periodValidity.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + topWidget(), + SizedBox(height: 10.h,), + bottomWidget() + ], + ) + ); + } + + Widget topWidget(){ + return Container( + height: 150.h, + width: 1.sw, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 60.h, + // color: Colors.red, + padding: EdgeInsets.only(left:15.h, top: 15.h), + child: Text(TranslationLoader.lanKeys.periodValidity.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600)) + ), + Container( + height: 90.h, + child: GridView.builder( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 7, + childAspectRatio: 1.0 + ), + itemCount: 7, + physics: const NeverScrollableScrollPhysics(), + itemBuilder: (context,index){ + return btnItem(index); + }) + ) + ], + ), + ); + } + + Widget btnItem(int index){ + String dateStr; + switch (index) { + case 0: + dateStr = TranslationLoader.lanKeys.Sunday.tr; + break; + case 1: + dateStr = TranslationLoader.lanKeys.Monday.tr; + break; + case 2: + dateStr = TranslationLoader.lanKeys.Tuesday.tr; + break; + case 3: + dateStr = TranslationLoader.lanKeys.Wednesday.tr; + break; + case 4: + dateStr = TranslationLoader.lanKeys.Thursday.tr; + break; + case 5: + dateStr = TranslationLoader.lanKeys.Friday.tr; + break; + case 6: + dateStr = TranslationLoader.lanKeys.Saturday.tr; + break; + default: + break; + } + return GestureDetector( + onTap: (){ + + }, + child: Container( + width: 70.h, + height: 70.h, + margin: EdgeInsets.all(10.h), + decoration: BoxDecoration( + // color: Colors.blue, + border: Border.all(width: 1, color: Colors.grey), + borderRadius: BorderRadius.circular(60.w), + ), + child: Center(child: Text(dateStr)), + ), + ); + } + + Widget bottomWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"", isHaveDirection: true, isHaveLine: true, action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveDate.tr, rightTitle:"", isHaveDirection: true, isHaveLine: true, action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureDate.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 40.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ); + } +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey_page.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey_page.dart new file mode 100644 index 00000000..5ec0d561 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey_page.dart @@ -0,0 +1,162 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; + +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../appRouters.dart'; +import '../../../../translations/trans_lib.dart'; + +class MassSendElectronicKeyPage extends StatefulWidget { + final String type; + + const MassSendElectronicKeyPage({Key key, @required this.type}) : super(key: key); + + @override + State createState() => _MassSendElectronicKeyPageState(); +} + +class _MassSendElectronicKeyPageState extends State { + final FlutterContactPicker _contactPicker = FlutterContactPicker(); + Contact _contact; + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.type)) { + case 0: + { + // 限时 + return Column( + children: [ + keyInfoWidget(), + keyTimeWidget(), + remoteUnlockingWidget(), + keyBottomWidget() + ], + ); + } + break; + case 1: + { + // 永久 + return Column( + children: [ + keyInfoWidget(), + remoteUnlockingWidget(), + keyBottomWidget() + ], + ); + } + break; + case 2: + { + // 单次 + return Column( + children: [ + keyInfoWidget(), + periodValidityWidget(), + remoteUnlockingWidget(), + keyBottomWidget() + ], + ); + } + break; + default: + break; + } + } + + // 顶部钥匙信息widget + Widget keyInfoWidget(){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.receiver.tr, rightTitle:TranslationLoader.lanKeys.pleaseAdd.tr, isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lock.tr, rightTitle:TranslationLoader.lanKeys.pleaseSelet.tr, isHaveDirection: true, action: (){ + + }), + Container(height: 10.h), + ], + ); + } + + // 生效失效时间 + Widget keyTimeWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", ), + Container(height: 10.h), + ], + ); + } + + // 远程开锁 + Widget remoteUnlockingWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.remoteUnlockingAllowed.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ + + }), + Container(height: 10.h), + ], + ); + } + + // 有效期 + Widget periodValidityWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.periodValidity.tr, rightTitle:"", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyPeriodValidityPage); + }), + Container(height: 10.h), + ], + ); + } + + Widget keyBottomWidget(){ + return Column( + children: [ + SubmitBtn( + btnName: TranslationLoader.lanKeys.send.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_page.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_page.dart new file mode 100644 index 00000000..e69fcc33 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; +import 'massSendElectronicKeyManage_tabbar.dart'; + +class MassSendElectronicKeyManagePage extends StatefulWidget { + const MassSendElectronicKeyManagePage({Key key}) : super(key: key); + + @override + State createState() => _MassSendElectronicKeyManagePageState(); +} + +class _MassSendElectronicKeyManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.sendGroupKey.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + MassSendElectronicKeyManageTabbar(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart new file mode 100644 index 00000000..34488c75 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicManageKey/massSendElectronicKeyManage_tabbar.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../../translations/trans_lib.dart'; +import '../massSendElectronicKey_page.dart'; + +class MassSendElectronicKeyManageTabbar extends StatefulWidget { + var initialIndex=1; + + MassSendElectronicKeyManageTabbar({Key key, @required this.initialIndex}) : super(key: key); + + @override + State createState() => _MassSendElectronicKeyManageTabbarState(); +} + +class _MassSendElectronicKeyManageTabbarState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs = [ + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, type: "0"), + ItemView(title: TranslationLoader.lanKeys.permanent.tr, type: "1"), + ItemView(title: TranslationLoader.lanKeys.circulation.tr, type: "2"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/8, + margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => MassSendElectronicKeyPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart new file mode 100644 index 00000000..f960f527 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicKey/sendElectronicKey_page.dart @@ -0,0 +1,280 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../translations/trans_lib.dart'; + +class SendElectronicKeyPage extends StatefulWidget { + final String type; + + SendElectronicKeyPage({Key key, @required this.type}) : super(key: key); + + @override + State createState() => _SendElectronicKeyPageState(); +} + +class _SendElectronicKeyPageState extends State { + final FlutterContactPicker _contactPicker = FlutterContactPicker(); + Contact _contact; + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.type)) { + case 0: + { + // 限时 + // return sendElectronicKeySucceed(); + return Column( + children: [ + keyInfoWidget(), + keyTimeWidget(), + keyRealNameWidget(), + keyBottomWidget() + ], + ); + } + break; + case 1: + { + // 永久 + return Column( + children: [ + keyInfoWidget(), + keyRealNameWidget(), + keyBottomWidget() + ], + ); + } + break; + case 2: + { + // 单次 + return Column( + children: [ + keyInfoWidget(), + keyRealNameWidget(), + keyBottomWidget() + ], + ); + } + break; + case 3: + { + // 循环 + return Column( + children: [ + keyInfoWidget(), + keyRealNameWidget(), + keyPeriodValidityWidget(), + keyBottomWidget() + ], + ); + } + break; + default: + break; + } + } + + // 顶部钥匙信息widget + Widget keyInfoWidget(){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.receiver.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(true, TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr)), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(false, TranslationLoader.lanKeys.enterYourName.tr)), + Container(height: 10.h), + ], + ); + } + + // 生效失效时间 + Widget keyTimeWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + Container(height: 10.h), + ], + ); + } + + // 实名认证 + Widget keyRealNameWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.realNameAuthentication.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ + + }), + Container(height: 10.h), + ], + ); + } + + // 有效期 + Widget keyPeriodValidityWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.periodValidity.tr, rightTitle:"", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyPeriodValidityPage); + }), + ], + ); + } + + Widget keyBottomWidget(){ + return Column( + children: [ + Container( + padding: EdgeInsets.all(20.w), + child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.sendKeyBottomTip.tr, textAlign: TextAlign.start,)), + ], + ), + ), + SubmitBtn(btnName: TranslationLoader.lanKeys.send.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + Container( + padding: EdgeInsets.only(right:30.w), + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton(onPressed: (){ + Navigator.pushNamed(context, Routers.massSendElectronicKeyManagePage); + }, child: Text(TranslationLoader.lanKeys.sendGroupKey.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),)), + ], + ), + ), + ], + ); + } + + // 发送电子钥匙成功 + Widget sendElectronicKeySucceed(){ + return Column( + children: [ + Container( + height: 250.h, + width: 1.sw, + color: Colors.white, + child: Column( + children: [ + SizedBox(height: 30.h,), + Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("发送成功",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), + ], + ), + ], + ), + ), + SizedBox(height: 20.h,), + SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '邮件通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + Navigator.pushNamed(context, Routers.sendEmailNotificationPage); + }), + SubmitBtn(btnName: '微信通知', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '标记为已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ); + } + + // 接受者信息输入框 + Widget getTFWidget(bool isHaveBtn, String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + isHaveBtn?Container( + width: 50.w, + height: 50.w, + decoration: const BoxDecoration( + color: Colors.white, + image: DecorationImage( + image: AssetImage('images/icon_lock.png'), + fit: BoxFit.fill + ), + ), + alignment: Alignment.center, + child: InkWell( + onTap: () async { + Contact contact = await _contactPicker.selectContact(); + setState(() { + _contact = contact; + // print("object111111111111 ${_contact.fullName} ${_contact.phoneNumbers}"); + }); + }, + ), + ):Container() + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_page.dart new file mode 100644 index 00000000..8a924585 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; +import 'sendElectronicKeyManage_tabbar.dart'; + +class SendElectronicKeyManagePage extends StatefulWidget { + const SendElectronicKeyManagePage({Key key}) : super(key: key); + + @override + State createState() => _SendElectronicKeyManagePageState(); +} + +class _SendElectronicKeyManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.sendKey.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + SendElectronicKeyManageTabbar(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_tabbar.dart b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_tabbar.dart new file mode 100644 index 00000000..68a96392 --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/sendElectronicKey/sendElectronicManageKey/sendElectronicKeyManage_tabbar.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../../translations/trans_lib.dart'; +import '../sendElectronicKey/sendElectronicKey_page.dart'; + +class SendElectronicKeyManageTabbar extends StatefulWidget { + var initialIndex=1; + + SendElectronicKeyManageTabbar({Key key, @required this.initialIndex}) : super(key: key); + + @override + State createState() => _SendElectronicKeyManageTabbarState(); +} + +class _SendElectronicKeyManageTabbarState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs = [ + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, type: "0"), + ItemView(title: TranslationLoader.lanKeys.permanent.tr, type: "1"), + ItemView(title: TranslationLoader.lanKeys.once.tr, type: "2"), + ItemView(title: TranslationLoader.lanKeys.circulation.tr, type: "3"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/8, + margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => SendElectronicKeyPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart new file mode 100644 index 00000000..d7b67bba --- /dev/null +++ b/star_lock/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart @@ -0,0 +1,76 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; + +class SendEmailNotificationPage extends StatefulWidget { + const SendEmailNotificationPage({Key key}) : super(key: key); + + @override + State createState() => _SendEmailNotificationPageState(); +} + +class _SendEmailNotificationPageState extends State { + final TextEditingController _emailController = TextEditingController(); + + @override + Widget build(BuildContext context) { + _emailController.text = "请爱的用户 \n\n你收到电子钥匙,请试用APP(www.baidu.com)或小程序开锁 \n\n星锁"; + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "邮件通知", haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + CommonItem(leftTitel:"接收者", rightTitle:"786612630@qq.com", isHaveLine: true,), + CommonItem(leftTitel:"类型", rightTitle:"个人邮件", isHaveDirection: true,), + Container(height: 10.h), + CommonItem(leftTitel:"模板", rightTitle:"默认模板", isHaveDirection: true, isHaveLine:true), + Container( + height: 360.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 20.w, top: 20.h), + child:TextField( + maxLines:8, + maxLength:1000, + textAlign: TextAlign.start, + controller: _emailController, + style: TextStyle(color: Colors.black,fontSize: 28.sp,), + decoration: InputDecoration( + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 0.5, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(20.h)), + ///用来配置边框的样式 + borderSide: const BorderSide( + ///设置边框的颜色 + color: Color(0xffB2B2B2), + ///设置边框的粗细 + width: 1, + ), + ), + ), + ), + ), + Container(height: 40.h), + SubmitBtn(btnName: '发送', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart new file mode 100644 index 00000000..4f7dd08f --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_page.dart @@ -0,0 +1,113 @@ + +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/showBottomSheetTool.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class AutomaticBlockingPage extends StatefulWidget { + const AutomaticBlockingPage({Key key}) : super(key: key); + + @override + State createState() => _AutomaticBlockingPageState(); +} + +class _AutomaticBlockingPageState extends State { + final TextEditingController _timeController = TextEditingController(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.automaticBlocking.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.automaticBlocking.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + Container(height: 10.h,), + Builder( + builder: (context) { + return CommonItem(leftTitel:TranslationLoader.lanKeys.delayTime.tr, rightTitle:"5s", isHaveLine: false, isHaveDirection: true, action: (){ + var list = ["5S", "10S", "15S", "30S", "60S", TranslationLoader.lanKeys.custom.tr]; + ShowBottomSheetTool().showSingleRowPicker( + //上下文 + context, + //默认的索引 + normalIndex: 2, + title: TranslationLoader.lanKeys.time.tr, + cancelTitle: TranslationLoader.lanKeys.cancel.tr, + sureTitle: TranslationLoader.lanKeys.sure.tr, + //要显示的列表 + //可自定义数据适配器 + //adapter: PickerAdapter(), + data: list, + //选择事件的回调 + clickCallBack: (int index, var str) { + + }); + }); + } + ), + Container(height: 10.h,), + Visibility( + visible: true, + child: Container( + color: Colors.white, + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + children: [Text("${TranslationLoader.lanKeys.pleaseEnter.tr}${TranslationLoader.lanKeys.time.tr}(S)"),], + ), + TextField( + //输入框一行 + maxLines: 1, + controller: _timeController, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, bottom: 8.0), + hintText: "${TranslationLoader.lanKeys.pleaseEnter.tr}${TranslationLoader.lanKeys.time.tr}(S)", + hintStyle: TextStyle(fontSize: 30.sp), + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + Container(height: 0.5.h, color: Colors.grey,), + ], + ), + ) + ), + Container( + padding: EdgeInsets.all(30.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.automaticBlockingTip.tr)), + ], + ), + ) + ], + ) + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/adminOpenLockPassword/adminOpenLockPassword_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/adminOpenLockPassword/adminOpenLockPassword_page.dart new file mode 100644 index 00000000..9048d5f3 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/adminOpenLockPassword/adminOpenLockPassword_page.dart @@ -0,0 +1,59 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class AdminOpenLockPasswordPage extends StatefulWidget { + const AdminOpenLockPasswordPage({Key key}) : super(key: key); + + @override + State createState() => _AdminOpenLockPasswordPageState(); +} + +class _AdminOpenLockPasswordPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.adminOpenLockPassword.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.password.tr, rightTitle:"189934", isHaveLine: false, isHaveDirection: true, action: (){ + + }), + Container( + margin: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.adminOpenLockPasswordTip.tr)), + ], + ), + SizedBox(height:10.h,), + GestureDetector( + onTap: (){ + + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.updateLockAdminPassword.tr, style: TextStyle(color: AppColors.mainColor),)), + ], + ), + ), + ], + ), + ), + + ], + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/basicInformation/basicInformation_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/basicInformation/basicInformation_page.dart new file mode 100644 index 00000000..623ddfc7 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/basicInformation/basicInformation_page.dart @@ -0,0 +1,55 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class BasicInformationPage extends StatefulWidget { + const BasicInformationPage({Key key}) : super(key: key); + + @override + State createState() => _BasicInformationPageState(); +} + +class _BasicInformationPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.basicInformation.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Expanded( + child: ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.lockNumber.tr, rightTitle:"MCBN0c_8f3106", allHeight:70.h, isHaveLine: false), + CommonItem(leftTitel:"MAC/ID", rightTitle:"53:66:9F:06:31:8F/9418481", allHeight:70.h, isHaveLine: false), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.electricQuantity.tr, rightTitle:"100%", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.uploadElectricQuantityPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.periodValidity.tr, rightTitle:"永久", allHeight:70.h, isHaveLine: false), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockName.tr, rightTitle:"MCBN0c_8f3106", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.editLockNamePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockGrouping.tr, rightTitle:"202307", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.lockSeletGroupingPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.adminOpenLockPassword.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.adminOpenLockPasswordPage); + }), + ], + ), + ), + ], + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart new file mode 100644 index 00000000..27ac0aad --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/editLockName/editLockName_page.dart @@ -0,0 +1,45 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/loginInput.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class EditLockNamePage extends StatefulWidget { + const EditLockNamePage({Key key}) : super(key: key); + + @override + State createState() => _EditLockNamePageState(); +} + +class _EditLockNamePageState extends State { + final TextEditingController _changeLockNameController = TextEditingController(); + + @override + void initState() { + super.initState(); + _changeLockNameController.text = "MCBN0c_8f3106"; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.basicInformation.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.sure.tr, style: const TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body:Container( + child: LoginInput(controller: _changeLockNameController, leftImg:'', hintText: TranslationLoader.lanKeys.pleaseEnterNumberOrEmail.tr, inputFormatters: [ + LengthLimitingTextInputFormatter(20), + ]), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/lockSeletGrouping_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/lockSeletGrouping_page.dart new file mode 100644 index 00000000..6d3aeb78 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/lockSeletGrouping_page.dart @@ -0,0 +1,53 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class LockSeletGroupingPage extends StatefulWidget { + const LockSeletGroupingPage({Key key}) : super(key: key); + + @override + State createState() => _LockSeletGroupingPageState(); +} + +class _LockSeletGroupingPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.basicInformation.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage); + } + ), + ], + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:2, + itemBuilder: (c, index){ + return CommonItem(leftTitel:"202307", rightTitle:"", allHeight: 70.h, isHaveLine: true, isHaveDirection:false, isHaveRightWidget: true, rightWidget: Image(image: const AssetImage("images/icon_item_checked.png"),width:30.w,height:30.w, fit: BoxFit.contain,), action: (){ + // logic.changeLanguage(e); + }); + } + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_page.dart b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_page.dart new file mode 100644 index 00000000..0e259402 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_page.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class UploadElectricQuantityPage extends StatefulWidget { + const UploadElectricQuantityPage({Key key}) : super(key: key); + + @override + State createState() => _UploadElectricQuantityPageState(); +} + +class _UploadElectricQuantityPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.electricQuantity.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.updateElectricQuantityTip.tr)), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys.electricQuantity.tr} 100%")), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.update.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_page.dart b/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_page.dart new file mode 100644 index 00000000..84a517f2 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_page.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class BurglarAlarmPage extends StatefulWidget { + const BurglarAlarmPage({Key key}) : super(key: key); + + @override + State createState() => _BurglarAlarmPageState(); +} + +class _BurglarAlarmPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.burglarAlarm.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.burglarAlarmTip.tr)), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys.currentMode.tr} : ${TranslationLoader.lanKeys.opened.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.closed.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/diagnose/diagnose_page.dart b/star_lock/lib/main/lockDetail/lcokSet/diagnose/diagnose_page.dart new file mode 100644 index 00000000..a919c81a --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/diagnose/diagnose_page.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class DiagnosePage extends StatefulWidget { + const DiagnosePage({Key key}) : super(key: key); + + @override + State createState() => _DiagnosePageState(); +} + +class _DiagnosePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.diagnose.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.diagnoseTip.tr)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.uploading.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/addDoorMagnetic/addDoorMagnetic_page.dart b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/addDoorMagnetic/addDoorMagnetic_page.dart new file mode 100644 index 00000000..37361ffe --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/addDoorMagnetic/addDoorMagnetic_page.dart @@ -0,0 +1,73 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class AddDoorMagneticPage extends StatefulWidget { + const AddDoorMagneticPage({Key key}) : super(key: key); + + @override + State createState() => _AddDoorMagneticPageState(); +} + +class _AddDoorMagneticPageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.doorMagnetic.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + children: [ + SizedBox(height: 100.h,), + Container( + // color: Colors.red, + margin: EdgeInsets.only(left: 20.w, right: 20.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.pressAndHoldTheResetButtonTwoSeconds.tr, textAlign:TextAlign.center, style: TextStyle(fontSize: 34.sp, fontWeight: FontWeight.w500),)), + ], + ), + ), + SizedBox(height: 90.h,), + Image.asset('images/main/icon_addDoorMagnetic_tip.png', width: 300.w, height: 300.w,), + SizedBox(height: 90.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.whenScreenFlashesClickNext.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 90.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys.next.tr, + borderRadius: 10.w, + fontSize: 28.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 15.w, bottom: 15.w), + onClick: (){ + Navigator.pushNamed(context, Routers.nearbyDoorMagneticPage); + } + ) + ], + ), + ); + } + + + void onShow(){ + + } + + void onHide(){ + + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/doorMagneticList/doorMagnetic_page.dart b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/doorMagneticList/doorMagnetic_page.dart new file mode 100644 index 00000000..f821de90 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/doorMagneticList/doorMagnetic_page.dart @@ -0,0 +1,114 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../baseWidget.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class DoorMagneticPage extends StatefulWidget { + const DoorMagneticPage({Key key}) : super(key: key); + + @override + State createState() => _DoorMagneticPageState(); +} + +class _DoorMagneticPageState extends State with BaseWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.doorMagnetic.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + // color: Colors.red, + margin: EdgeInsets.all(20.w), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.doorMagneticListTopTip.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),)), + ], + ), + ), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.doorMagnetic.tr}", + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.addDoorMagneticPage); + } + ), + ], + ), + ); + } + + Widget _buildMainUI(){ + // return ListView.builder( + // itemCount:10, + // itemBuilder: (c, index){ + // return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + // // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + // }); + // } + // ); + return emptyView(); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + // SizedBox(width:20.w), + // Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart new file mode 100644 index 00000000..9f5c5e2c --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/doorMagnetic/nearbyDoorMagnetic/nearbyDoorMagnetic_page.dart @@ -0,0 +1,74 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class NearbyDoorMagneticPage extends StatefulWidget { + const NearbyDoorMagneticPage({Key key}) : super(key: key); + + @override + State createState() => _NearbyDoorMagneticPageState(); +} + +class _NearbyDoorMagneticPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.nearbyEquipment.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ + // Navigator.pushNamed(context, Routers.saveLockPage); + }); + } + ), + ); + } + + Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 80.h, + color: Colors.white, + child: Row( + children: [ + // SizedBox(width:20.w), + // Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width:20.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,), + SizedBox(width:30.w), + ], + ), + ), + Container(height: 0.5.h, color: Colors.grey,) + ], + ), + ); + } + + void onShow(){ + } + + void onHide(){ + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart b/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart new file mode 100644 index 00000000..3acf470a --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/importOtherLockData/ImportOtherLockData_page.dart @@ -0,0 +1,143 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class ImportOtherLockDataPage extends StatefulWidget { + const ImportOtherLockDataPage({Key key}) : super(key: key); + + @override + State createState() => _ImportOtherLockDataPageState(); +} + +class _ImportOtherLockDataPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.importOtherLockData.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.importOtherLockDataTip.tr)), + ], + ), + SizedBox(height: 20.h,), + _searchWidget(), + SizedBox(height: 10.h,), + Expanded(child: _buildMainUI()), + SubmitBtn(btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } + + Widget _searchWidget(){ + return Container( + height: 70.h, + // margin: EdgeInsets.only(top:20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: EdgeInsets.only( + top: 8.h, left: -25.0.h, right: -15.0.h, bottom: 8.0.h), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(top: 15.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockEscalation/lockEscalation_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockEscalation/lockEscalation_page.dart new file mode 100644 index 00000000..17f9d435 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/lockEscalation/lockEscalation_page.dart @@ -0,0 +1,56 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class LockEscalationPage extends StatefulWidget { + const LockEscalationPage({Key key}) : super(key: key); + + @override + State createState() => _LockEscalationPageState(); +} + +class _LockEscalationPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.lockEscalation.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + SizedBox(height: 60.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset('images/main/icon_main_lockSet_lockEscalation.png', width: 40.w, height: 40.w,), + SizedBox(width: 10.w,), + Text(TranslationLoader.lanKeys.haveNewVersion.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600),) + ], + ), + SizedBox(height: 30.h,), + Text("${TranslationLoader.lanKeys.currentVersion.tr}:1.0.0"), + SizedBox(height: 10.h,), + Text("${TranslationLoader.lanKeys.newVersion.tr}:1.0.1", style: TextStyle(color: AppColors.mainColor),), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.upgrade.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart new file mode 100644 index 00000000..2ab120f2 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart @@ -0,0 +1,121 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class LockSetPage extends StatefulWidget { + const LockSetPage({Key key}) : super(key: key); + + @override + State createState() => _LockSetPageState(); +} + +class _LockSetPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.set.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Expanded( + child: ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.basicInformation.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.basicInformationPage); + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.wirelessKeyboard.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.wirelessKeyboardPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.doorMagnetic.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.doorMagneticPage); + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.remoteUnlocking.tr, rightTitle:TranslationLoader.lanKeys.closed.tr, isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.remoteUnlockingPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.automaticBlocking.tr, rightTitle:"5s", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.automaticBlockingPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.normallyOpenMode.tr, rightTitle:TranslationLoader.lanKeys.closed.tr, isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.normallyOpenModePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockSound.tr, rightTitle:"高", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.lockSoundSetPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.burglarAlarm.tr, rightTitle:TranslationLoader.lanKeys.opened.tr, isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.burglarAlarmPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.resetButton.tr, rightTitle:TranslationLoader.lanKeys.opened.tr, isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.resetButtonPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.unlockQRCode.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.unlockQRCodePage); + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockTime.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.lockTimePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.diagnose.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.diagnosePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.uploadData.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.uploadDataPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.importOtherLockData.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.importOtherLockDataPage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockEscalation.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.lockEscalationPage); + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:"Amazon Alexa", rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:"Google Home", rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.markedHouseState.tr, rightTitle:"空闲", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.markedHouseStatePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.checkingIn.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + CommonItem(leftTitel:TranslationLoader.lanKeys.unlockReminder.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.delete.tr, + borderRadius: 20.w, + fontSize: 32.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ), + ], + ) + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart new file mode 100644 index 00000000..3df0bf74 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_page.dart @@ -0,0 +1,113 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class LockSoundSetPage extends StatefulWidget { + const LockSoundSetPage({Key key}) : super(key: key); + + @override + State createState() => _LockSoundSetPageState(); +} + +class _LockSoundSetPageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.lockSound.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.lockSound.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + Container(height: 10.h,), + Container( + padding: EdgeInsets.all(30.w), + color: Colors.white, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.lockSoundTip.tr)), + ], + ), + ), + SizedBox(height: 10.h,), + Visibility( + visible: true, + child: Container( + color: Colors.white, + child: Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.pleaseSeletLockVolume.tr, rightTitle:"", isHaveLine: true), + CommonItem(leftTitel:TranslationLoader.lanKeys.low.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys.lower.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys.medium.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys.higher.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys.high.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + ], + ), + ) + ), + SubmitBtn( + btnName: TranslationLoader.lanKeys.save.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ) + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockTime/lockTime_page.dart b/star_lock/lib/main/lockDetail/lcokSet/lockTime/lockTime_page.dart new file mode 100644 index 00000000..b992af54 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/lockTime/lockTime_page.dart @@ -0,0 +1,60 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class LockTimePage extends StatefulWidget { + const LockTimePage({Key key}) : super(key: key); + + @override + State createState() => _LockTimePageState(); +} + +class _LockTimePageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.lockTime.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + SizedBox(height: 50.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("2023.07.10 11.47.33", style: TextStyle(fontSize: 36.sp)), + ], + ), + SizedBox(height: 60.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.calibrationTime.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + SizedBox(height: 40.h,), + GestureDetector( + onTap: (){ + + }, + child: Container( + child: Text(TranslationLoader.lanKeys.setTheDSTMode.tr, style: TextStyle(fontSize: 30.sp, color: AppColors.mainColor)) + ), + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/markedHouseState/markedHouseState_page.dart b/star_lock/lib/main/lockDetail/lcokSet/markedHouseState/markedHouseState_page.dart new file mode 100644 index 00000000..9015519d --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/markedHouseState/markedHouseState_page.dart @@ -0,0 +1,57 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class MarkedHouseStatePage extends StatefulWidget { + const MarkedHouseStatePage({Key key}) : super(key: key); + + @override + State createState() => _MarkedHouseStatePageState(); +} + +class _MarkedHouseStatePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.markedHouseState.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + child: Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.leisure.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + CommonItem(leftTitel:TranslationLoader.lanKeys.checkingIn.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),) + ), + SizedBox(height: 60.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart new file mode 100644 index 00000000..fcccf500 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_page.dart @@ -0,0 +1,197 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class NormallyOpenModePage extends StatefulWidget { + const NormallyOpenModePage({Key key}) : super(key: key); + + @override + State createState() => _NormallyOpenModePageState(); +} + +class _NormallyOpenModePageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.normallyOpenMode.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.normallyOpenMode.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + Container(height: 10.h,), + Container( + padding: EdgeInsets.all(30.w), + color: Colors.white, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.normallyOpenModeTip.tr)), + ], + ), + ), + SizedBox(height: 10.h,), + Visibility( + visible: true, + child: Container( + color: Colors.white, + child: Column( + children: [ + topWidget(), + SizedBox(height: 10.h,), + bottomWidget() + ], + ), + ) + ), + SubmitBtn( + btnName: TranslationLoader.lanKeys.save.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + // Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ) + ); + } + + Widget topWidget(){ + return Container( + height: 150.h, + width: 1.sw, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 60.h, + // color: Colors.red, + padding: EdgeInsets.only(left:20.h, top: 15.h), + child: Text("${TranslationLoader.lanKeys.normallyOpen.tr} ${TranslationLoader.lanKeys.date.tr}", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600)) + ), + Container( + height: 90.h, + padding: EdgeInsets.only(left:10.w, right: 10.w), + child: GridView.builder( + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 7, + childAspectRatio: 1.0 + ), + itemCount: 7, + physics: const NeverScrollableScrollPhysics(), + itemBuilder: (context,index){ + return btnItem(index); + }) + ), + ], + ), + ); + } + + Widget btnItem(int index){ + String dateStr; + switch (index) { + case 0: + dateStr = TranslationLoader.lanKeys.Sunday.tr; + break; + case 1: + dateStr = TranslationLoader.lanKeys.Monday.tr; + break; + case 2: + dateStr = TranslationLoader.lanKeys.Tuesday.tr; + break; + case 3: + dateStr = TranslationLoader.lanKeys.Wednesday.tr; + break; + case 4: + dateStr = TranslationLoader.lanKeys.Thursday.tr; + break; + case 5: + dateStr = TranslationLoader.lanKeys.Friday.tr; + break; + case 6: + dateStr = TranslationLoader.lanKeys.Saturday.tr; + break; + default: + break; + } + return GestureDetector( + onTap: (){ + + }, + child: Container( + width: 70.h, + height: 70.h, + margin: EdgeInsets.all(10.h), + decoration: BoxDecoration( + // color: Colors.blue, + border: Border.all(width: 1, color: Colors.grey), + borderRadius: BorderRadius.circular(60.w), + ), + child: Center(child: Text(dateStr)), + ), + ); + } + + Widget bottomWidget(){ + return Column( + children: [ + Container(color: AppColors.mainBackgroundColor, height: 10.h,), + CommonItem(leftTitel:"${TranslationLoader.lanKeys.normallyOpen.tr} ${TranslationLoader.lanKeys.time.tr}", rightTitle:"", isHaveLine: true, isHaveRightWidget: true, + rightWidget: GestureDetector( + onTap: (){ + + }, + child: Row( + children: [ + Text(TranslationLoader.lanKeys.allDay.tr), + SizedBox(width: 5.w,), + Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,), + ], + ), + )), + Visibility( + visible: true, + child: Container( + color: Colors.white, + child: Column( + children: [ + CommonItem(leftTitel:"${TranslationLoader.lanKeys.begin.tr} ${TranslationLoader.lanKeys.time.tr}", rightTitle:"", isHaveDirection: true, isHaveLine: true, action:(){ + + }), + CommonItem(leftTitel:"${TranslationLoader.lanKeys.end.tr} ${TranslationLoader.lanKeys.time.tr}", rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 10.h), + ], + ), + ) + ), + + ], + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_page.dart b/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_page.dart new file mode 100644 index 00000000..31c206c1 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_page.dart @@ -0,0 +1,56 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class RemoteUnlockingPage extends StatefulWidget { + const RemoteUnlockingPage({Key key}) : super(key: key); + + @override + State createState() => _RemoteUnlockingPageState(); +} + +class _RemoteUnlockingPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.remoteUnlocking.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.remoteUnlockingPageTip.tr)), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys.currentMode.tr} : ${TranslationLoader.lanKeys.opened.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.closed.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_page.dart b/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_page.dart new file mode 100644 index 00000000..53bb0a8e --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_page.dart @@ -0,0 +1,57 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class ResetButtonPage extends StatefulWidget { + const ResetButtonPage({Key key}) : super(key: key); + + @override + State createState() => _ResetButtonPageState(); +} + +class _ResetButtonPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.resetButton.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.resetButtonTip.tr)), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text("${TranslationLoader.lanKeys.currentMode.tr} : ${TranslationLoader.lanKeys.opened.tr}", style: TextStyle(fontWeight: FontWeight.w600),)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.closed.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} + diff --git a/star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart b/star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart new file mode 100644 index 00000000..71454639 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/unlockQRCode/unlockQRCode_page.dart @@ -0,0 +1,70 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; +import 'package:qr_flutter/qr_flutter.dart'; + +class UnlockQRCodePage extends StatefulWidget { + const UnlockQRCodePage({Key key}) : super(key: key); + + @override + State createState() => _UnlockQRCodePageState(); +} + +class _UnlockQRCodePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.burglarAlarm.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Container( + padding: EdgeInsets.all(25.w), + margin: EdgeInsets.all(25.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(10.h)), + ), + child: Text("拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边") + ), + Container( + width: 1.sw, + padding: EdgeInsets.only(top:50.w), + margin: EdgeInsets.only(left: 25.w, right: 25.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(10.h)), + ), + child: Column( + children: [ + // Image.asset('images/main/icon_addDoorMagnetic_tip.png', width: 300.w, height: 300.w,), + // QrImageView( + // data:'二维码', + // size:300, + // ), + QrImage(data: 'www.baidu.com', size: 300.w), + SizedBox(height: 50.w,), + SubmitBtn(btnName: TranslationLoader.lanKeys.share.tr, + borderRadius: 20.w, + fontSize: 32.sp, + width: 250.w, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + SizedBox(height: 60.w,) + ], + ) + ), + ], + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/uploadData/uploadData_page.dart b/star_lock/lib/main/lockDetail/lcokSet/uploadData/uploadData_page.dart new file mode 100644 index 00000000..4b9a277f --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/uploadData/uploadData_page.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class UploadDataPage extends StatefulWidget { + const UploadDataPage({Key key}) : super(key: key); + + @override + State createState() => _UploadDataPageState(); +} + +class _UploadDataPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.uploadData.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Container( + padding: EdgeInsets.all(30.w), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded(child: Text(TranslationLoader.lanKeys.uploadDataTip.tr)), + ], + ), + SizedBox(height: 30.h,), + SubmitBtn(btnName: TranslationLoader.lanKeys.begin.tr, + borderRadius: 20.w, + fontSize: 32.sp, + // margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + ], + ), + ) + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart new file mode 100644 index 00000000..6d59ff5c --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboard/addWirelessKeyboard_page.dart @@ -0,0 +1,81 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class AddWirelessKeyboardPage extends StatefulWidget { + const AddWirelessKeyboardPage({Key key}) : super(key: key); + + @override + State createState() => _AddWirelessKeyboardPageState(); +} + +class _AddWirelessKeyboardPageState extends State { + +@override +Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.wirelessKeyboard.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 100.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.lightTouchScreen.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 90.h,), + Image.asset('images/main/icon_addWirelessKeyboardTip.png', width: 300.w, height: 300.w,), + SizedBox(height: 90.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.whenScreenFlashesClickNext.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 90.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys.next.tr, + borderRadius: 10.w, + fontSize: 28.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 15.w, bottom: 15.w), + onClick: (){ + Navigator.pushNamed(context, Routers.seletWirelessKeyboardPage); + } + ), + // SizedBox(height: 20.h,), + SubmitBtn( + btnName:TranslationLoader.lanKeys.theScreenNeverFlickered.tr, + borderRadius: 10.w, + fontSize: 28.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w), + padding: EdgeInsets.only(top: 15.w, bottom: 15.w), + onClick: (){ + Navigator.pushNamed(context, Routers.addWirelessKeyboardScreenNotLightOnPage); + } + ), + ], + ), + ); +} + + +void onShow(){ + +} + +void onHide(){ + +} +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart new file mode 100644 index 00000000..359e7795 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/addWirelessKeyboardScreenNotLightOn/addWirelessKeyboardScreenNotLightOn_page.dart @@ -0,0 +1,76 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class AddWirelessKeyboardScreenNotLightOnPage extends StatefulWidget { + const AddWirelessKeyboardScreenNotLightOnPage({Key key}) : super(key: key); + + @override + State createState() => _AddWirelessKeyboardScreenNotLightOnPageState(); +} + +class _AddWirelessKeyboardScreenNotLightOnPageState extends State { + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.wirelessKeyboard.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 100.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.enterNumberOrPressSet.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 20.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("(${TranslationLoader.lanKeys.theLocationOfTheSetKeyWillBeDifferent.tr})", style: TextStyle(fontSize: 26.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 90.h,), + Image.asset('images/main/icon_addWirelessKeyboardUnLightOnTip.png', width: 300.w, height: 300.w,), + SizedBox(height: 90.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.whenScreenFlashesClickNext.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 90.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys.next.tr, + borderRadius: 10.w, + fontSize: 28.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 15.w, bottom: 15.w), + onClick: (){ + Navigator.pushNamed(context, Routers.seletWirelessKeyboardPage); + } + ), + ], + ), + ); + } + + void onShow(){ + + } + + void onHide(){ + + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart new file mode 100644 index 00000000..319ddf56 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/seletWirelessKeyboard/seletWirelessKeyboard_page.dart @@ -0,0 +1,74 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class SeletWirelessKeyboardPage extends StatefulWidget { + const SeletWirelessKeyboardPage({Key key}) : super(key: key); + + @override + State createState() => _SeletWirelessKeyboardPageState(); +} + +class _SeletWirelessKeyboardPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.selet.tr} ${TranslationLoader.lanKeys.wirelessKeyboard.tr}", haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ + // Navigator.pushNamed(context, Routers.saveLockPage); + }); + } + ), + ); + } + + Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 80.h, + color: Colors.white, + child: Row( + children: [ + // SizedBox(width:20.w), + // Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width:20.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,), + SizedBox(width:30.w), + ], + ), + ), + Container(height: 0.5.h, color: Colors.grey,) + ], + ), + ); + } + + void onShow(){ + } + + void onHide(){ + } +} diff --git a/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart new file mode 100644 index 00000000..af5f56a4 --- /dev/null +++ b/star_lock/lib/main/lockDetail/lcokSet/wirelessKeyboard/wirelessKeyboardList/wirelessKeyboard_page.dart @@ -0,0 +1,108 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../../appRouters.dart'; +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/submitBtn.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class WirelessKeyboardPage extends StatefulWidget { + const WirelessKeyboardPage({Key key}) : super(key: key); + + @override + State createState() => _WirelessKeyboardPageState(); +} + +class _WirelessKeyboardPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.wirelessKeyboard.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.reset.tr, style: const TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: "${TranslationLoader.lanKeys.add.tr} ${TranslationLoader.lanKeys.wirelessKeyboard.tr}", + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.addWirelessKeyboardPage); + } + ), + ], + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + // SizedBox(width:20.w), + // Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart new file mode 100644 index 00000000..eed584dc --- /dev/null +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -0,0 +1,150 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class LockDetailPage extends StatefulWidget { + const LockDetailPage({Key key}) : super(key: key); + + @override + State createState() => _LockDetailPageState(); +} + +class _LockDetailPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.starLock.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + topWidget(), + Expanded(child: bottomWidget()) + ], + ), + ); + } + + Widget topWidget(){ + return Column( + children: [ + SizedBox(height:40.h), + Stack( + alignment: Alignment.centerRight, + children: [ + Align( + alignment:Alignment.center, + child: Text("MCBN01-ea9240", style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),) + ), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text("100%", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:5.w), + Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + SizedBox(width:30.w), + ], + ), + ], + ), + SizedBox(height: 40.h), + Container( + width: 1.sw, + height: 280.w, + child: Stack( + children: [ + Center(child: Image.asset('images/main/icon_main_openLockBtn.png', width: 280.w, height: 280.w)), + Align( + alignment: const Alignment(0.5, 1), + child: Image.asset('images/main/icon_main_remoteUnlocking.png', width: 90.w, height: 90.w,) + ), + ], + ), + ), + SizedBox(height: 40.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.clickUnlockAndHoldDownClose.tr,style: TextStyle(fontSize: 28.sp, color: const Color(0xFFB3B3B3), fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 40.h,), + Container(height: 0.5.h, color: Colors.grey,) + ], + ); + } + + Widget bottomWidget(){ + return Container( + margin: EdgeInsets.only(left:10.w, right:10.w, top: 25.h), + // color: Colors.blue, + child: SizedBox( + child:GridView.count( + crossAxisCount: 4, + // childAspectRatio: 3, + crossAxisSpacing: 20.w, + mainAxisSpacing: 10.h, + physics: const NeverScrollableScrollPhysics(), + children: [ + bottomItem('images/main/icon_main_clockingIn.png', TranslationLoader.lanKeys.checkingIn.tr, (){ + + }), + bottomItem('images/main/icon_main_electronicKey.png', TranslationLoader.lanKeys.electronicKey.tr, (){ + Navigator.pushNamed(context, Routers.electronicKeyListPage); + }), + bottomItem('images/main/icon_main_password.png', TranslationLoader.lanKeys.password.tr, (){ + Navigator.pushNamed(context, Routers.passwordKeyListPage); + }), + bottomItem('images/main/icon_main_icCard.png', TranslationLoader.lanKeys.card.tr, (){ + Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 0); + }), + bottomItem('images/main/icon_main_fingerprint.png', TranslationLoader.lanKeys.fingerprint.tr, (){ + Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 1); + }), + bottomItem('images/main/icon_main_remoteControl.png', TranslationLoader.lanKeys.remoteControl.tr, (){ + Navigator.pushNamed(context, Routers.otherTypeKeyListPage, arguments: 2); + }), + bottomItem('images/main/icon_main_authorizedAdmin.png', TranslationLoader.lanKeys.authorizedAdmin.tr, (){ + Navigator.pushNamed(context, Routers.authorizedAdminListPage); + }), + bottomItem('images/main/icon_main_operatingRecord.png', TranslationLoader.lanKeys.operatingRecord.tr, (){ + Navigator.pushNamed(context, Routers.lockOperatingRecordPage); + }), + bottomItem('images/main/icon_main_set.png', TranslationLoader.lanKeys.set.tr, (){ + Navigator.pushNamed(context, Routers.lockSetPage); + }), + ], + ), + ), + ); + } + + Widget bottomItem(String iconUrl,String name, Function onClick){ + var width = 65.w; + var height = 70.h; + return GestureDetector( + onTap:onClick, + child: Container( + // height: 300.h, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: width, + height: height, + child: Image.asset(iconUrl, width: width,height: height,fit: BoxFit.fitWidth), + ), + SizedBox(height: 15.w), + Expanded(child: Text(name,style: TextStyle(fontSize: 25.sp, color:const Color(0xff333333)),textAlign: TextAlign.center)) + ], + ) + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart b/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart new file mode 100644 index 00000000..8521bd2a --- /dev/null +++ b/star_lock/lib/main/lockDetail/lockOperatingRecord/lockOperatingRecord_page.dart @@ -0,0 +1,156 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../app_settings/app_colors.dart'; +import '../../../tools/jh_pop_menus.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class LockOperatingRecordPage extends StatefulWidget { + const LockOperatingRecordPage({Key key}) : super(key: key); + + @override + State createState() => _LockOperatingRecordPageState(); +} + +class _LockOperatingRecordPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys.operatingRecord.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: const Text("操作", style: TextStyle(color: Colors.white),), + onPressed: (){ + JhPopMenus.showLinePop(context, clickCallback: (index, selText) { + print('选中index: $index'); + print('选中text: $selText'); + + if (selText == '添加朋友') { + // JhNavUtils.pushNamed(context, 'WxAddFriendPage'); + } + if (selText == '扫一扫') { + // _scan(); + } + }); + },), + ],), + body: Column( + children: [ + Container( + // crossAxisAlignment: CrossAxisAlignment.start, + padding: EdgeInsets.all(20.h), + child: Text(TranslationLoader.lanKeys.lockOperatingRecordTip.tr, textAlign: TextAlign.start,), + ), + _searchWidget(), + Expanded(child: _buildMainUI()), + ], + ), + ); + } + + Widget _searchWidget(){ + return Container( + height: 60.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -22.0, right: -15.0, bottom: 10.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + hintStyle: TextStyle(fontSize: 28.sp), + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + if(index%2 == 0){ + return _dateItem("2023-06-29"); + }else{ + return _operatingRecordItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + // Navigator.pushNamed(context, Routers.electronicKeyDetailPage); + }); + } + } + ); + } + + Widget _dateItem(String lockDate){ + return Container( + height: 70.h, + // color: Colors.red, + padding: EdgeInsets.only(left:20.h, right: 20.h), + child: Row( + children: [ + Text(lockDate, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + ); + } + + Widget _operatingRecordItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 110.h, + padding: EdgeInsets.only(left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + SizedBox(height:10.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_page.dart new file mode 100644 index 00000000..f63c8e33 --- /dev/null +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeAddKey/otherTypeAddKey_page.dart @@ -0,0 +1,200 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../translations/trans_lib.dart'; + +class OtherTypeAddKeyPage extends StatefulWidget { + final String seletType; + final int lockType; + const OtherTypeAddKeyPage({Key key, @required this.seletType, @required this.lockType}) : super(key: key); + + @override + State createState() => _OtherTypeAddKeyPageState(); +} + +class _OtherTypeAddKeyPageState extends State { + + final TextEditingController _controller = TextEditingController(); + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.seletType)) { + case 0: + { + // 永久 + // return sendElectronicKeySucceed(); + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseEnter.tr, _controller), + keyBottomWidget() + ], + ); + } + break; + case 1: + { + // 限时 + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseEnter.tr, _controller), + keyTimeLimitWidget(), + keyBottomWidget() + ], + ); + } + break; + case 2: + { + // 循环 + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseEnter.tr, _controller), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"", isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + keyBottomWidget() + ], + ); + } + break; + default: + break; + } + } + + // 密码命名输入框 + Widget perpetualKeyWidget(String titleStr, String rightTitle, TextEditingController controller){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:titleStr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), + Container(height: 10.h), + ], + ); + } + + // 限时顶部选择日期 + Widget keyTimeLimitWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + Container(height: 10.h), + ], + ); + } + + Widget keyBottomWidget(){ + return Column( + children: [ + // Container( + // padding: EdgeInsets.all(20.w), + // child: Row( + // // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Expanded(child: Text(tipStr, textAlign: TextAlign.start,)), + // ], + // ), + // ), + SubmitBtn(btnName: '${TranslationLoader.lanKeys.getTip.tr} ${getAppBarTitle(widget.lockType)}', borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ); + } + + // 发送电子钥匙成功 + Widget sendElectronicKeySucceed(){ + return Column( + children: [ + Container( + height: 300.h, + width: 1.sw, + color: Colors.white, + child: Column( + children: [ + SizedBox(height: 30.h,), + Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), + SizedBox(height: 20.h,), + Text("操作成功,密码为",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), + SizedBox(height: 10.h,), + Text("62689876",style: TextStyle(fontSize: 60.sp, color: Colors.black, fontWeight: FontWeight.w500),), + ], + ), + ), + SizedBox(height: 20.h,), + SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '分享', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '标记为:已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ); + } + + String getAppBarTitle(int type){ + String title; + switch (type) { + case 0: + title = TranslationLoader.lanKeys.card.tr; + break; + case 1: + title = TranslationLoader.lanKeys.fingerprint.tr; + break; + case 2: + title = TranslationLoader.lanKeys.remoteControl.tr; + break; + default: + break; + } + return title; + } + + // 接受者信息输入框 + Widget getTFWidget(String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + ], + ), + ); + } + +} diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart new file mode 100644 index 00000000..43b5f48c --- /dev/null +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyDetail/otherTypeKeyDetail_page.dart @@ -0,0 +1,195 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class OtherTypeKeyDetailPage extends StatefulWidget { + const OtherTypeKeyDetailPage({Key key}) : super(key: key); + + @override + State createState() => _OtherTypeKeyDetailPageState(); +} + +class _OtherTypeKeyDetailPageState extends State { + @override + Widget build(BuildContext context) { + var type = ModalRoute.of(context)?.settings?.arguments; + + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${getAppBarTitle(type)}${TranslationLoader.lanKeys.number.tr}", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.share.tr, style: const TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + CommonItem(leftTitel:"${getAppBarTitle(type)}${TranslationLoader.lanKeys.number.tr}", rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.periodValidity.tr, rightTitle:"永久", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.additive.tr, rightTitle:"15080825640", action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.addTime.tr, rightTitle:"2020.06.21 11:49", action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.operatingRecord.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 40.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys.delete.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ), + ); + } + + String getAppBarTitle(int type){ + String title; + switch (type) { + case 0: + title = TranslationLoader.lanKeys.card.tr; + break; + case 1: + title = TranslationLoader.lanKeys.fingerprint.tr; + break; + case 2: + title = TranslationLoader.lanKeys.remoteControl.tr; + break; + default: + break; + } + return title; + } + + Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget rightWidget,Function action}){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // height: 80.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:20.w), + Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + isHaveRightWidget?rightWidget:Text(rightTitle, textAlign: TextAlign.end,style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) + ], + ), + ), + SizedBox(width:5.w), + isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } + + void showCupertinoAlertDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return Card( + color: const Color(0x00FFFFFF), + child: CupertinoAlertDialog( + title: const Text("修改密码"), + content: Column( + children: [ + const SizedBox(height: 10,), + Container( + height: 80.h, + // color: Colors.white, + margin: EdgeInsets.all(10.w), + child: const TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + // contentPadding: const EdgeInsets.only( + // top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: "请输入要修改的名字", + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + // icon: Padding( + // padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + // child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + // ), + // //右边图标设置 + // suffixIcon: GestureDetector( + // onTap: () { + // //addPostFrameCallback是 StatefulWidge 渲染结束的回调,只会被调用一次 + // // SchedulerBinding.instance.addPostFrameCallback((_) { + // // _controller.text = ""; + // // }); + // }, + // child: Padding( + // padding: EdgeInsets.all(8), + // child: Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + // ), + // ) + ), + ), + ) + ], + ), + actions: [ + CupertinoDialogAction( + child: const Text("取消"), + onPressed: () { + Navigator.pop(context); + // print("取消"); + }, + ), + CupertinoDialogAction( + child: const Text("确定"), + onPressed: () { + Navigator.pop(context); + // print("确定"); + }, + ), + ], + ), + ); + }); + } + +} diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart new file mode 100644 index 00000000..25767677 --- /dev/null +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyList/otherTypeKeyList_page.dart @@ -0,0 +1,153 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class OtherTypeKeyListPage extends StatefulWidget { + const OtherTypeKeyListPage({Key key}) : super(key: key); + + @override + State createState() => _OtherTypeKeyListPageState(); +} + +class _OtherTypeKeyListPageState extends State { + + @override + Widget build(BuildContext context) { + var type = ModalRoute.of(context)?.settings?.arguments; + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: getAppBarTitle(type), haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.reset.tr, style: const TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + _searchWidget(), + Expanded(child: _buildMainUI(type)), + SubmitBtn( + btnName: '${TranslationLoader.lanKeys.getTip.tr} ${getAppBarTitle(type)}', + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.otherTypeKeyManagePage, arguments: type); + } + ), + ], + ), + ); + } + + String getAppBarTitle(int type){ + String title; + switch (type) { + case 0: + title = TranslationLoader.lanKeys.card.tr; + break; + case 1: + title = TranslationLoader.lanKeys.fingerprint.tr; + break; + case 2: + title = TranslationLoader.lanKeys.remoteControl.tr; + break; + default: + break; + } + return title; + } + + Widget _searchWidget(){ + return Container( + height: 80.h, + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(int type){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + Navigator.pushNamed(context, Routers.otherTypeKeyDetailPage, arguments: type); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + SizedBox(height:5.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_page.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_page.dart new file mode 100644 index 00000000..1c9fccde --- /dev/null +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_page.dart @@ -0,0 +1,51 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; +import 'otherTypeKeyManage_tabbar.dart'; + +class OtherTypeKeyManagePage extends StatefulWidget { + const OtherTypeKeyManagePage({Key key}) : super(key: key); + + @override + State createState() => _OtherTypeKeyManagePageState(); +} + +class _OtherTypeKeyManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + var lockType = ModalRoute.of(context)?.settings?.arguments; + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys.addTip.tr} ${getAppBarTitle(lockType)}", haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + OtherTypeKeyManageTabbar(initialIndex: index, lockType: lockType), + ], + ), + ); + } + + String getAppBarTitle(int type){ + String title; + switch (type) { + case 0: + title = TranslationLoader.lanKeys.card.tr; + break; + case 1: + title = TranslationLoader.lanKeys.fingerprint.tr; + break; + case 2: + title = TranslationLoader.lanKeys.remoteControl.tr; + break; + default: + break; + } + return title; + } + +} diff --git a/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_tabbar.dart b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_tabbar.dart new file mode 100644 index 00000000..1dbcc2ec --- /dev/null +++ b/star_lock/lib/main/lockDetail/otherTypeKey/otherTypeKeyManage/otherTypeKeyManage_tabbar.dart @@ -0,0 +1,81 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../translations/trans_lib.dart'; +import '../otherTypeAddKey/otherTypeAddKey_page.dart'; + +class OtherTypeKeyManageTabbar extends StatefulWidget { + var initialIndex=1; + var lockType=0; + OtherTypeKeyManageTabbar({Key key, @required this.initialIndex, @required this.lockType}) : super(key: key); + + @override + State createState() => _OtherTypeKeyManageTabbarState(); +} + +class _OtherTypeKeyManageTabbarState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs = [ + ItemView(title: TranslationLoader.lanKeys.permanent.tr, seletType: "0"), + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, seletType: "1"), + ItemView(title: TranslationLoader.lanKeys.circulation.tr, seletType: "2"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 28.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab(child: SizedBox(width: 1.sw/5, child: Text(item.title, textAlign: TextAlign.center))); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => OtherTypeAddKeyPage(seletType: item.seletType, lockType: widget.lockType,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.seletType}); + + final String title; + final String seletType; +} diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart new file mode 100644 index 00000000..511edd58 --- /dev/null +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart @@ -0,0 +1,175 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class PasswordKeyDetailPage extends StatefulWidget { + const PasswordKeyDetailPage({Key key}) : super(key: key); + + @override + State createState() => _PasswordKeyDetailPageState(); +} + +class _PasswordKeyDetailPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.passwordDetail.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: const Text("分享", style: TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.password.tr, rightTitle:"98765432", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.name.tr, rightTitle:"你好", isHaveDirection: true, isHaveLine: true, action:(){ + showCupertinoAlertDialog(context); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"永久", isHaveDirection: true, action:(){ + Navigator.pushNamed(context, Routers.electronicKeyDetailChangeDate); + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.sender.tr, rightTitle:"15080825640", action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.senderTime.tr, rightTitle:"2020.06.21 11:49", action:(){ + + }), + Container(height: 10.h), + CommonItem(leftTitel:TranslationLoader.lanKeys.operatingRecord.tr, rightTitle:"", isHaveDirection: true, action:(){ + + }), + Container(height: 40.h), + SubmitBtn( + btnName: TranslationLoader.lanKeys.delete.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ), + ); + } + + Widget commonItem(String leftTitle, String rightTitle, {bool isHaveDirection = false, bool isHaveLine = false, bool isHaveRightWidget = false, Widget rightWidget,Function action}){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + // height: 80.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:20.w), + Text(leftTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:20.w), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + isHaveRightWidget?rightWidget:Text(rightTitle, textAlign: TextAlign.end,style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) + ], + ), + ), + SizedBox(width:5.w), + isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } + + void showCupertinoAlertDialog(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return Card( + color: const Color(0x00FFFFFF), + child: CupertinoAlertDialog( + title: Text("${TranslationLoader.lanKeys.amend.tr} ${TranslationLoader.lanKeys.password.tr}"), + content: Column( + children: [ + const SizedBox(height: 10,), + Container( + height: 80.h, + // color: Colors.white, + margin: EdgeInsets.all(10.w), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + // contentPadding: const EdgeInsets.only( + // top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + // icon: Padding( + // padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + // child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + // ), + // //右边图标设置 + // suffixIcon: GestureDetector( + // onTap: () { + // //addPostFrameCallback是 StatefulWidge 渲染结束的回调,只会被调用一次 + // // SchedulerBinding.instance.addPostFrameCallback((_) { + // // _controller.text = ""; + // // }); + // }, + // child: Padding( + // padding: EdgeInsets.all(8), + // child: Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + // ), + // ) + ), + ), + ) + ], + ), + actions: [ + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys.cancel.tr), + onPressed: () { + Navigator.pop(context); + // print("取消"); + }, + ), + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys.sure.tr), + onPressed: () { + Navigator.pop(context); + // print("确定"); + }, + ), + ], + ), + ); + }); + } + +} diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart new file mode 100644 index 00000000..bac698bc --- /dev/null +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart @@ -0,0 +1,132 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class PasswordKeyListPage extends StatefulWidget { + const PasswordKeyListPage({Key key}) : super(key: key); + + @override + State createState() => _PasswordKeyListPageState(); +} + +class _PasswordKeyListPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.password.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text(TranslationLoader.lanKeys.reset.tr, style: TextStyle(color: Colors.white),), + onPressed: (){ + + },), + ],), + body: Column( + children: [ + _searchWidget(), + Expanded(child: _buildMainUI()), + SubmitBtn( + btnName: TranslationLoader.lanKeys.getPassword.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.passwordKeyManagePage); + } + ), + ], + ), + ); + } + + Widget _searchWidget(){ + return Container( + height: 80.h, + margin: EdgeInsets.only(top:20.w, left: 20.w, right: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5)), + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: TranslationLoader.lanKeys.pleaseEnter.tr, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 20.w), + child: Image.asset('images/main/icon_main_search.png', width: 40.w, height: 40.w,), + ), + ), + ), + ); + } + + Widget _buildMainUI(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){ + Navigator.pushNamed(context, Routers.passwordKeyDetailPage); + }); + } + ); + } + + Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 100.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10.w), + ), + child: Row( + children: [ + SizedBox(width: 30.w,), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width: 30.w,), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ), + ], + ), + SizedBox(height:5.h), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text("2023.6.21 11.15 永久", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + SizedBox(width:20.h), + ], + ), + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_page.dart new file mode 100644 index 00000000..59c56bfc --- /dev/null +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_page.dart @@ -0,0 +1,32 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_tabbar.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/titleAppBar.dart'; +import '../../../../translations/trans_lib.dart'; + +class PasswordKeyManagePage extends StatefulWidget { + const PasswordKeyManagePage({Key key}) : super(key: key); + + @override + State createState() => _PasswordKeyManagePageState(); +} + +class _PasswordKeyManagePageState extends State { + var index=0; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.getPassword.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + PasswordKeyManageTabbarPage(initialIndex: index,), + ], + ), + ); + } +} diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_tabbar.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_tabbar.dart new file mode 100644 index 00000000..1741aa6b --- /dev/null +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyManage/passwordKeyManage_tabbar.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/CustomUnderlineTabIndicator.dart'; +import '../../../../translations/trans_lib.dart'; +import '../passwordKey_Perpetual/passwordKey_perpetual_page.dart'; + +class PasswordKeyManageTabbarPage extends StatefulWidget { + var initialIndex=1; + + PasswordKeyManageTabbarPage({Key key, @required this.initialIndex}) : super(key: key); + @override + State createState() => _PasswordKeyManageTabbarPageState(); +} + +class _PasswordKeyManageTabbarPageState extends State with SingleTickerProviderStateMixin { + TabController _tabController; + + final List _itemTabs = [ + ItemView(title: TranslationLoader.lanKeys.permanent.tr, type: "0"), + ItemView(title: TranslationLoader.lanKeys.timeLimit.tr, type: "1"), + ItemView(title: TranslationLoader.lanKeys.once.tr, type: "2"), + ItemView(title: TranslationLoader.lanKeys.custom.tr, type: "3"), + ItemView(title: TranslationLoader.lanKeys.circulation.tr, type: "4"), + ItemView(title: TranslationLoader.lanKeys.clearAll.tr, type: "5"), + ]; + + @override + void initState() { + // TODO: implement initState + super.initState(); + _tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex); + } + + @override + Widget build(BuildContext context) { + return Expanded( + child: Column( + children: [ + _tabBar(), + _pageWidget(), + ], + ) + ); + } + + TabBar _tabBar(){ + return TabBar( + controller: _tabController, + tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(), + isScrollable: true, + indicatorColor: Colors.red, + unselectedLabelColor: Colors.black, + unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,), + automaticIndicatorColorAdjustment:true, + labelColor: AppColors.mainColor, + labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 28.sp,fontWeight: FontWeight.w600), + indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w), + ); + } + + Tab _tab(ItemView item) { + return Tab( + // text: item.title, + child: Container( + width: 1.sw/8, + // margin: EdgeInsets.all(10.w), + // color: Colors.red, + child: Text(item.title, textAlign: TextAlign.center,), + ), + ); + } + + Widget _pageWidget(){ + return Expanded( + child: TabBarView( + controller: _tabController, + children: _itemTabs.map((ItemView item) => PasswordKeyPerpetualPage(type: item.type,)).toList(), + ), + ); + } +} + +class ItemView { + const ItemView({@required this.title, @required this.type}); + + final String title; + final String type; +} diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart new file mode 100644 index 00000000..0e6d9168 --- /dev/null +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart @@ -0,0 +1,263 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../../appRouters.dart'; +import '../../../../app_settings/app_colors.dart'; +import '../../../../tools/commonItem.dart'; +import '../../../../tools/submitBtn.dart'; +import '../../../../translations/trans_lib.dart'; + +class PasswordKeyPerpetualPage extends StatefulWidget { + final String type; + + const PasswordKeyPerpetualPage({Key key, @required this.type}) : super(key: key); + @override + State createState() => _PasswordKeyPerpetualPageState(); +} + +class _PasswordKeyPerpetualPageState extends State { + + final TextEditingController _controller = TextEditingController(); + + @override + Widget build(BuildContext context) { + return indexChangeWidget(); + } + + @override + void initState() { + // TODO: implement initState + super.initState(); + + } + + Widget indexChangeWidget(){ + switch (int.parse(widget.type)) { + case 0: + { + // 永久 + // return sendElectronicKeySucceed(); + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip1.tr) + ], + ); + } + break; + case 1: + { + // 限时 + return Column( + children: [ + keyTimeLimitWidget(), + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip2.tr) + ], + ); + } + break; + case 2: + { + // 单次 + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip3.tr) + ], + ); + } + break; + case 3: + { + // 自定义 + return Column( + children: [ + keyIfPerpetualWidget(), + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + perpetualKeyWidget(TranslationLoader.lanKeys.password.tr, "请输入6-9位数字", _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip4.tr) + ], + ); + } + break; + case 4: + { + // 循环 + return Column( + children: [ + keyCirculationWidget(), + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip5.tr) + ], + ); + } + break; + case 5: + { + // 清空 + return Column( + children: [ + perpetualKeyWidget(TranslationLoader.lanKeys.name.tr, TranslationLoader.lanKeys.pleaseNameYourPassword.tr, _controller), + keyBottomWidget(TranslationLoader.lanKeys.getPasswordTip6.tr) + ], + ); + } + break; + default: + break; + } + } + + // 密码命名输入框 + Widget perpetualKeyWidget(String titleStr, String rightTitle, TextEditingController controller){ + return Column( + children: [ + Container(height: 10.h), + CommonItem(leftTitel:titleStr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)), + Container(height: 10.h), + ], + ); + } + + // 限时顶部选择日期 + Widget keyTimeLimitWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){ + // _showDatePicker(); + }), + Container(height: 10.h), + ], + ); + } + + // 自定义是否永久 + Widget keyIfPerpetualWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.permanent.tr, rightTitle:"", isHaveRightWidget: true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch()), action:(){ + + }), + Container(height: 10.h), + ], + ); + } + + // 循环 + Widget keyCirculationWidget(){ + return Column( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.recursiveDevice.tr, rightTitle:"周末", isHaveLine: true, isHaveDirection: true, action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.effectiveTime.tr, rightTitle:"10:00", isHaveLine: true, isHaveDirection: true, action:(){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.failureTime.tr, rightTitle:"11:00", isHaveDirection: true, action:(){ + + }), + ], + ); + } + + Widget keyBottomWidget(String tipStr){ + return Column( + children: [ + Container( + padding: EdgeInsets.all(20.w), + child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: Text(tipStr, textAlign: TextAlign.start,)), + ], + ), + ), + SubmitBtn(btnName: TranslationLoader.lanKeys.getPassword.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + + } + ), + ], + ); + } + + // 发送电子钥匙成功 + Widget sendElectronicKeySucceed(){ + return Column( + children: [ + Container( + height: 300.h, + width: 1.sw, + color: Colors.white, + child: Column( + children: [ + SizedBox(height: 30.h,), + Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,), + SizedBox(height: 20.h,), + Text("操作成功,密码为",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),), + SizedBox(height: 10.h,), + Text("62689876",style: TextStyle(fontSize: 60.sp, color: Colors.black, fontWeight: FontWeight.w500),), + ], + ), + ), + SizedBox(height: 20.h,), + SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + SubmitBtn(btnName: '分享', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + Navigator.pushNamed(context, Routers.sendEmailNotificationPage); + }), + SubmitBtn(btnName: '标记为:已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){ + + }), + ], + ); + } + + // 接受者信息输入框 + Widget getTFWidget(String tfStr){ + return Container( + height: 50.h, + width: 500.w, + child: Row( + children: [ + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + textAlign:TextAlign.end, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0), + hintText: tfStr, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + SizedBox(width: 10.w,), + ], + ), + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } + +} diff --git a/star_lock/lib/main/lockMian/lockMain_page.dart b/star_lock/lib/main/lockMian/lockMain_page.dart new file mode 100644 index 00000000..658eb44b --- /dev/null +++ b/star_lock/lib/main/lockMian/lockMain_page.dart @@ -0,0 +1,147 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/mine/mineSet/mineSet_page.dart'; + +import '../../appRouters.dart'; +import '../../baseWidget.dart'; +import '../../mine/mine_page.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class StarLockMain extends StatefulWidget { + const StarLockMain({Key key}) : super(key: key); + + @override + State createState() => _StarLockMainState(); +} + +class _StarLockMainState extends State with BaseWidget{ + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF5F5F5), + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.starLock.tr, haveBack:false, haveOtherLeftWidget: true, leftWidget: Builder( + builder: (context) => IconButton( + icon: Image.asset("images/main/mainLeft_menu_icon.png",color:Colors.white, width: 60.w, height: 60.w,), + onPressed: () { + Scaffold.of(context).openDrawer(); + }, + ) + ),backgroundColor: AppColors.mainColor), + drawer: Drawer( + width:1.sw/3*2, + child: StarLockMinePage(), + ), + body: getLockList(), + // body: unHaveData(), + ); + } + + Widget getLockList(){ + return ListView.builder( + itemCount:10, + itemBuilder: (c, index){ + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ + Navigator.pushNamed(context, Routers.lockDetailPage); + }); + } + ); + } + + Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 150.h, + margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20.w), + ), + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 30.h,), + Row( + children: [ + SizedBox(width:20.w), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width:20.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Text("100%", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ), + SizedBox(width:5.w), + Image.asset('images/main/icon_main_cell.png', width: 50.w, height: 50.w,), + SizedBox(width:30.w), + ], + ), + SizedBox(height: 20.h,), + Row( + children: [ + SizedBox(width:30.w), + Text("永久/管理员", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ], + ), + ), + ); + } + + Widget unHaveData(){ + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + decoration: BoxDecoration( + border: Border.all(width: 4, color: AppColors.mainColor), + borderRadius: BorderRadius.circular(75), + ), + child:InkWell( + child: Padding( + padding: const EdgeInsets.all(30.0), + child: Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w,), + ), + onTap: () { + //实现回调函数 + Navigator.pushNamed(context, Routers.seletLockTypePage, + // arguments: { + // "url": ConstConfig.privacAgreementUrl, + // "title": '隐私政策' + // } + ); + }, + ) + ), + ], + ), + SizedBox(height: h(50.h),), + Container( + padding: EdgeInsets.all(30.w), + child: Text(TranslationLoader.lanKeys.whenAddingLockThePhoneMustBeNextToTheLock.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w800, color: AppColors.mainColor),) + ) + ], + ); + } + + void onShow(){ + + } + + void onHide(){ + + } +} diff --git a/star_lock/lib/mine/addLock/addLock/addLock_page.dart b/star_lock/lib/mine/addLock/addLock/addLock_page.dart new file mode 100644 index 00000000..3f6385f6 --- /dev/null +++ b/star_lock/lib/mine/addLock/addLock/addLock_page.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../baseWidget.dart'; +import '../../../tools/submitBtn.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class AddLockPage extends StatefulWidget { + const AddLockPage({Key key}) : super(key: key); + + @override + State createState() => _AddLockPageState(); +} + +class _AddLockPageState extends State with BaseWidget{ + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.addLock.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 100.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.lightTouchScreen.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 120.h,), + Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w,), + SizedBox(height: 120.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.lightTouchScreenTip.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 120.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys.next.tr, + borderRadius: 20.w, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), + padding: EdgeInsets.only(top: 25.w, bottom: 25.w), + onClick: (){ + Navigator.pushNamed(context, Routers.nearbyLockPage); + } + ), + ], + ), + ); + } + + + void onShow(){ + + } + + void onHide(){ + + } +} diff --git a/star_lock/lib/mine/addLock/lockAddress/lockAddress_page.dart b/star_lock/lib/mine/addLock/lockAddress/lockAddress_page.dart new file mode 100644 index 00000000..c638ed5d --- /dev/null +++ b/star_lock/lib/mine/addLock/lockAddress/lockAddress_page.dart @@ -0,0 +1,32 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class LockAddressPage extends StatefulWidget { + const LockAddressPage({Key key}) : super(key: key); + + @override + State createState() => _LockAddressPageState(); +} + +class _LockAddressPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: "锁地址", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [ + TextButton( + child: Text("保存", style: const TextStyle(color: Colors.white),), + onPressed: (){ + Navigator.pushNamed(context, Routers.saveLockPage); + },), + ],), + body:Container() + ); + } +} diff --git a/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart new file mode 100644 index 00000000..97a9f179 --- /dev/null +++ b/star_lock/lib/mine/addLock/nearbyLock/nearbyLock_page.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class NearbyLockPage extends StatefulWidget { + const NearbyLockPage({Key key}) : super(key: key); + + @override + State createState() => _NearbyLockPageState(); +} + +class _NearbyLockPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.nearbyLock.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: ListView.builder( + itemCount:20, + itemBuilder: (c, index){ + return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){ + Navigator.pushNamed(context, Routers.lockAddressPage); + }); + } + ), + ); + } + + Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 80.h, + color: Colors.white, + child: Row( + children: [ + SizedBox(width:20.w), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width:20.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + SizedBox(width:20.w), + Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,), + SizedBox(width:30.w), + ], + ), + ), + Container(height: 0.5.h, color: Colors.grey,) + ], + ), + ); + } + + void onShow(){ + } + + void onHide(){ + } +} diff --git a/star_lock/lib/mine/addLock/saveLock/saveLock_page.dart b/star_lock/lib/mine/addLock/saveLock/saveLock_page.dart new file mode 100644 index 00000000..4160b52c --- /dev/null +++ b/star_lock/lib/mine/addLock/saveLock/saveLock_page.dart @@ -0,0 +1,100 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../app_settings/app_colors.dart'; +import '../../../tools/submitBtn.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class SaveLockPage extends StatefulWidget { + const SaveLockPage({Key key}) : super(key: key); + + @override + State createState() => _SaveLockPageState(); +} + +class _SaveLockPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.addLock.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 80.h,), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(TranslationLoader.lanKeys.addSuccessfullyPleaseRename.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),), + ], + ), + SizedBox(height: 80.h,), + Container( + height: 80.h, + // color: Colors.red, + padding: EdgeInsets.only(left: 50.w, right: 50.w), + child: TextField( + textAlign:TextAlign.center, + // style:TextStyle(height: 1.1, fontSize: 36.sp, fontWeight: FontWeight.w400, color:AppColors.mainColor), + decoration: InputDecoration( + hintText: '请填写信息', + hintStyle: TextStyle( + // height: 1.1, + fontSize: 30.sp, + fontWeight: FontWeight.w400, + color: const Color(0xFF999999) + ), + border: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(50.h)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: AppColors.mainColor, + ///设置边框的粗细 + width: 1, + ), + ), + ///用来配置输入框获取焦点时的颜色 + focusedBorder: OutlineInputBorder( + ///设置边框四个角的弧度 + borderRadius: BorderRadius.all(Radius.circular(50.h)), + ///用来配置边框的样式 + borderSide: BorderSide( + ///设置边框的颜色 + color: AppColors.mainColor, + ///设置边框的粗细 + width: 1, + ), + ), + ) + ), + ), + SizedBox(height: 120.h,), + SubmitBtn( + btnName: TranslationLoader.lanKeys.sure.tr, + borderRadius: 20.w, + margin: EdgeInsets.only( + left: 50.w, + right: 50.w, + top: 30.w, + bottom: 30.w + ), + padding: EdgeInsets.only( + top: 25.w, + bottom: 25.w + ), + onClick: (){ + Navigator.pop(context); + } + ), + ], + ) + ); + } + + +} diff --git a/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart new file mode 100644 index 00000000..005445e2 --- /dev/null +++ b/star_lock/lib/mine/addLock/seletLockType/seletLockType_page.dart @@ -0,0 +1,135 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../../appRouters.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../baseWidget.dart'; +import '../../../tools/titleAppBar.dart'; +import '../../../translations/trans_lib.dart'; + +class SeletLockTypePage extends StatefulWidget { + const SeletLockTypePage({Key key}) : super(key: key); + + @override + State createState() => _SeletLockTypePageState(); +} + +class _SeletLockTypePageState extends State with BaseWidget{ + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.addLock.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + allLock(), + Expanded( + child: Container( + padding: const EdgeInsets.only(left: 10, right: 10, bottom: 10), + child: GridView.count( + crossAxisCount: 2, + childAspectRatio: 3, + crossAxisSpacing: 10, + mainAxisSpacing: 10, + children: [ + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.doorLock.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.padlock.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.safeLock.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.intelligentLockCore.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.parkingLock.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.bicycleLock.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + lockTypeItem('images/icon_lock.png', TranslationLoader.lanKeys.longRangeControl.tr, (){ + Navigator.pushNamed(context, Routers.addLockPage); + }), + ], + ), + ), + ) + ], + ), + ); + } + + + Widget allLock(){ + return GestureDetector( + onTap: (){ + + }, + child: Container( + height: 150.h, + color: Colors.white, + margin: EdgeInsets.all(10), + child: Row( + children: [ + SizedBox(width:40.w), + Image.asset('images/icon_lock.png', width: 80.w, height: 100.w,), + SizedBox(width:40.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(TranslationLoader.lanKeys.allLock.tr, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500)), + Text(TranslationLoader.lanKeys.searchAllLockType.tr, style: TextStyle(fontSize: 26.sp, fontWeight: FontWeight.w500)), + ], + ), + ), + SizedBox(width:40.w), + Image.asset('images/icon_right.png', width: 60.w, height: 60.w,), + SizedBox(width:40.w), + ], + ), + ), + ); + } + + Widget lockTypeItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Container( + height: 120.h, + color: Colors.white, + // margin: EdgeInsets.all(10), + child: Row( + children: [ + SizedBox(width:20.w), + Image.asset(lockTypeIcon, width: 40.w, height: 50.w,), + SizedBox(width:20.w), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(lockTypeTitle, style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w500)), + ], + ), + ), + SizedBox(width:20.w), + Image.asset('images/icon_right.png', width: 60.w, height: 60.w,), + SizedBox(width:20.w), + ], + ), + ), + ); + } + + void onShow(){ + } + + void onHide(){ + } +} diff --git a/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart new file mode 100644 index 00000000..6d011497 --- /dev/null +++ b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_logic.dart @@ -0,0 +1,14 @@ + +import 'dart:ui'; +import 'package:get/get.dart'; +import 'mineMultiLanguage_state.dart'; + +class MineMultiLanguageLogic extends GetxController { + final MineMultiLanguageState state = MineMultiLanguageState(); + + void changeLanguage(Locale l) { + if(l == Get.locale)return; + Get.updateLocale(l); + state.resetLan(); + } +} \ No newline at end of file diff --git a/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart new file mode 100644 index 00000000..f1c8fb61 --- /dev/null +++ b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_page.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../app_settings/app_colors.dart'; +import '../../tools/commonItem.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/app_dept.dart'; +import '../../translations/trans_lib.dart'; +import 'mineMultiLanguage_logic.dart'; + +class MineMultiLanguagePage extends StatefulWidget { + const MineMultiLanguagePage({Key key}) : super(key: key); + + @override + State createState() => _MineMultiLanguagePageState(); +} + +class _MineMultiLanguagePageState extends State { + + final logic = Get.put(MineMultiLanguageLogic()); + final state = Get.find().state; + + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.multilingual.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: _children(), + ) + ); + } + + List _children(){ + List l = []; + for(int i = 0; i < state.languages.length; i++){ + var e = state.languages[i]; + var lanType = ExtensionLanguageType.fromLanguageCode(e.languageCode); + l.add(CommonItem(leftTitel:lanType.lanTitle, rightTitle:"", allHeight: 70.h, isHaveLine: true, isHaveDirection:false, isHaveRightWidget: true, rightWidget: Obx(() => state.currentLanguageType.value == lanType ? Image(image: const AssetImage("images/icon_item_checked.png"),width:30.w,height:30.w, fit: BoxFit.contain,): Container()), action: (){ + logic.changeLanguage(e); + }),); + } + return l; + } +} diff --git a/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart new file mode 100644 index 00000000..2b8d5737 --- /dev/null +++ b/star_lock/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart @@ -0,0 +1,24 @@ + +import 'dart:ui'; +import 'package:get/get.dart'; + +import '../../tools/store_service.dart'; +import '../../translations/app_dept.dart'; + +class MineMultiLanguageState { + + List get languages { + return appDept.deptSupportedLocales; + } + + var currentLanguageType = ExtensionLanguageType.fromLanguageCode(Get.locale.languageCode).obs; + + AppLanuageConfigState() { + resetLan(); + } + + void resetLan() { + currentLanguageType.value = ExtensionLanguageType.fromLanguageCode(Get.locale.languageCode); + StoreService.to.saveLanguageCode(Get.locale.languageCode); + } +} \ No newline at end of file diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart new file mode 100644 index 00000000..3acd0c4d --- /dev/null +++ b/star_lock/lib/mine/mineSet/mineSet_page.dart @@ -0,0 +1,137 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../../appRouters.dart'; +import '../../app_settings/app_colors.dart'; +import '../../tools/commonItem.dart'; +import '../../tools/submitBtn.dart'; +import '../../tools/titleAppBar.dart'; +import '../../translations/trans_lib.dart'; + +class MineSetPage extends StatefulWidget { + const MineSetPage({Key key}) : super(key: key); + + @override + State createState() => _MineSetPageState(); +} + +class _MineSetPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys.moreSet.tr, haveBack:true, backgroundColor: AppColors.mainColor), + body:Column( + children: [ + Expanded( + child: ListView( + children: [ + CommonItem(leftTitel:TranslationLoader.lanKeys.prompTone.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + CommonItem(leftTitel:TranslationLoader.lanKeys.touchUnlock.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + CommonItem(leftTitel:TranslationLoader.lanKeys.pushNotification.tr, rightTitle:"", isHaveRightWidget:true, rightWidget: Container(width: 80.w, height: 50.h,child: _switch())), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockUserManagement.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.authorizedAdmin.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockGroup.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.transferSmartLock.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.transferGateway.tr, rightTitle:"", isHaveDirection: true, action: (){ + + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.multiLanguage.tr, rightTitle:"简体中文", isHaveLine: true, isHaveDirection: true, action: (){ + Navigator.pushNamed(context, Routers.mineMultiLanguagePage); + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.lockScreen.tr, rightTitle:TranslationLoader.lanKeys.opened.tr, isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.hideInvalidUnlockPermissions.tr, rightTitle:TranslationLoader.lanKeys.closed.tr, isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.appUnlockRequiresMobilePhoneAccessToTheLock.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.valueAddedServices.tr, rightTitle:"", isHaveDirection: true, action: (){ + + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.about.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + SizedBox(height: 10.h,), + CommonItem(leftTitel:TranslationLoader.lanKeys.userAgreement.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.privacyPolicy.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.personalInformationCollectionList.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.applicationPermissionDescription.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + CommonItem(leftTitel:TranslationLoader.lanKeys.thirdPartyInformationSharingList.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + + }), + ], + ), + ), + keyBottomWidget() + ], + ) + ); + } + + Widget keyBottomWidget() { + return Column( + children: [ + SubmitBtn(btnName: TranslationLoader.lanKeys.logout.tr, + borderRadius: 20.w, + fontSize: 32.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), + padding: EdgeInsets.only(top: 20.w, bottom: 20.w), + onClick: () { + + } + ), + Container( + padding: EdgeInsets.only(right: 30.w), + // color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + child: Text( TranslationLoader.lanKeys.deleteAccount.tr, style: TextStyle(color: AppColors.mainColor, fontWeight: FontWeight.w500),), + onPressed: () { + + }, + ), + ], + ), + ), + SizedBox(height: 30.h,) + ], + ); + } + + Switch _switch(){ + return Switch( + value: false, + onChanged: (value){ + // switchValue = !switchValue; + setState(() { + + }); + } + ); + } +} diff --git a/star_lock/lib/mine/mine_page.dart b/star_lock/lib/mine/mine_page.dart new file mode 100644 index 00000000..20691d1a --- /dev/null +++ b/star_lock/lib/mine/mine_page.dart @@ -0,0 +1,130 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +import '../appRouters.dart'; +import '../app_settings/app_colors.dart'; +import '../baseWidget.dart'; +import '../tools/titleAppBar.dart'; +import '../translations/trans_lib.dart'; + +class StarLockMinePage extends StatefulWidget { + const StarLockMinePage({Key key}) : super(key: key); + + @override + State createState() => _StarLockMinePageState(); +} + +GlobalKey<_StarLockMinePageState> starLockMineKey = GlobalKey(); +class _StarLockMinePageState extends State with BaseWidget{ + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFFFFFFF), + // appBar: TitleAppBar(barTitle: "", haveBack:false, backgroundColor: AppColors.mainColor), + body: Column( + children: [ + topWidget(), + bottomListWidget() + ], + ), + ); + } + + Widget topWidget(){ + return Container( + height: 450.h, + width: 1.sw, + color: AppColors.mainColor, + // color: Colors.red, + child: Column( + // crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 120.h,), + GestureDetector( + onTap: (){ + Navigator.pushNamed(context, Routers.starLockLoginPage); + }, + child: Container( + width: 150.w, height: 150.w, + decoration: BoxDecoration( + border: Border.all(width: 2, color: Colors.white), + borderRadius: BorderRadius.circular(60.h), + ), + padding: EdgeInsets.all(20.w), + child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 100.w, height: 100.w) + ), + ), + SizedBox(height: 20.h,), + Text("15080825640", style: TextStyle(fontSize: 30.sp, color: Colors.white, fontWeight: FontWeight.w500)), + SizedBox(height: 10.h,), + Text("账号:15080825640", style: TextStyle(fontSize: 22.sp, color: Colors.white, fontWeight: FontWeight.w500)), + ], + ), + ); + } + + Widget bottomListWidget(){ + return Expanded( + child: ListView( + padding: EdgeInsets.only(left: 110.w, top: 80.h, right: 10.w), + children: [ + mineItem('images/mine/icon_mine_main_addLock.png', TranslationLoader.lanKeys.addLock.tr, (){ + Navigator.pushNamed(context, Routers.seletLockTypePage); + }), + mineItem('images/mine/icon_mine_main_gateway.png', TranslationLoader.lanKeys.gateway.tr, (){ + + }), + mineItem('images/mine/icon_mine_main_message.png', TranslationLoader.lanKeys.message.tr, (){ + + }), + mineItem('images/mine/icon_mine_main_supportStaff.png', TranslationLoader.lanKeys.supportStaff.tr, (){ + + }), + mineItem('images/mine/icon_mine_main_set.png', TranslationLoader.lanKeys.set.tr, (){ + Navigator.pushNamed(context, Routers.mineSetPage); + }), + mineItem('images/mine/icon_mine_main_moreServices.png', TranslationLoader.lanKeys.moreServices.tr, (){ + + }), + ], + ), + ); + } + + Widget mineItem(String lockTypeIcon, String lockTypeTitle, Function action){ + return GestureDetector( + onTap: action, + child: Row( + children: [ + Center( + child: Container( + height: 80.h, + width: 300.w, + color: Colors.white, + child: Row( + children: [ + SizedBox(width:20.w), + Image.asset(lockTypeIcon, width: 50.w, height: 50.w,), + SizedBox(width:10.w), + Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ), + ], + ), + ), + ), + Container(height: 0.5.h, color: Colors.grey,) + ], + ), + ); + } + + void onShow(){ + + } + + void onHide(){ + + } +} + diff --git a/star_lock/lib/navPages.dart b/star_lock/lib/navPages.dart new file mode 100644 index 00000000..4a3477f2 --- /dev/null +++ b/star_lock/lib/navPages.dart @@ -0,0 +1,83 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:star_lock/mine/mine_page.dart'; + +import 'app_settings/app_colors.dart'; +import 'main/lockMian/lockMain_page.dart'; + +class NavPages extends StatefulWidget { + const NavPages({Key key}) : super(key: key); + + @override + State createState() => _NavPagesState(); +} + +class _NavPagesState extends State { + int _currentIndex = 0; + final List _listPage = [ + StarLockMain(), + // StarLockMinePage(key: starLockMineKey), + ]; + + @override + Widget build(BuildContext context) { + var sp; + return Scaffold( + body: IndexedStack( + /// 在这里修改 + // index: _currentIndex, + children: _listPage, + ), + // bottomNavigationBar: BottomNavigationBar( + // elevation: 0.0, + // selectedFontSize: 24.sp, + // unselectedFontSize: 24.sp, + // type: BottomNavigationBarType.fixed, + // selectedItemColor: AppColors.mainColor, + // backgroundColor: Colors.white, + // currentIndex: _currentIndex, //对应点击/显示哪个底部导航栏按钮 + // onTap: (index) { + // //bottomNavigationBar的点击事件 + // if (_currentIndex == index) { + // return; + // } + // setState(() { + // _currentIndex = index; //将选中的下标进行替换 + // }); + // if (_currentIndex == 0) { + // starLockMainKey.currentState?.onShow(); + // starLockMineKey.currentState?.onHide(); + // } else if (_currentIndex == 1) { + // starLockMainKey.currentState?.onHide(); + // starLockMineKey.currentState?.onShow(); + // } + // }, + // items: [ + // BottomNavigationBarItem( + // icon: SizedBox( + // width: 56.w, + // height: 56.w, + // child: Image.asset( + // _currentIndex == 0 + // ? 'images/tabbar/icon_tab_main_selet.png' + // : 'images/tabbar/icon_tab_main_unselet.png', + // fit: BoxFit.cover), + // ), + // label: '首页'), + // BottomNavigationBarItem( + // icon: SizedBox( + // width: 56.w, + // height: 56.w, + // child: Image.asset( + // _currentIndex == 1 + // ? 'images/tabbar/icon_tab_my_selet.png' + // : 'images/tabbar/icon_tab_my_unselet.png', + // fit: BoxFit.cover), + // ), + // label: '我的'), + // ], + // ), + ); + } +} diff --git a/star_lock/lib/starLockApplication.dart b/star_lock/lib/starLockApplication.dart new file mode 100644 index 00000000..200b87ac --- /dev/null +++ b/star_lock/lib/starLockApplication.dart @@ -0,0 +1,20 @@ + +import 'package:flutter/material.dart'; + +import 'navPages.dart'; + +class StarLockApplication extends StatefulWidget { + const StarLockApplication({Key key}) : super(key: key); + + @override + State createState() => _StarLockApplicationState(); +} + +class _StarLockApplicationState extends State { + + + @override + Widget build(BuildContext context) { + return NavPages(); + } +} diff --git a/star_lock/lib/tools/CustomUnderlineTabIndicator.dart b/star_lock/lib/tools/CustomUnderlineTabIndicator.dart new file mode 100644 index 00000000..aa0fa653 --- /dev/null +++ b/star_lock/lib/tools/CustomUnderlineTabIndicator.dart @@ -0,0 +1,92 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; + +// ------------------------------------------------------ +// author:AllenSu +// date :2021/4/18 11:23 AM +// usage :自定义 UnderlineTabIndicator +// CSDN :https://blog.csdn.net/qq_42351033 +// ------------------------------------------------------ + +class CustomUnderlineTabIndicator extends Decoration { + final BorderSide borderSide; + final EdgeInsetsGeometry insets; + final StrokeCap strokeCap; // 控制器的边角形状 + final double width; // 控制器的宽度 + + const CustomUnderlineTabIndicator({ + this.borderSide = const BorderSide(width: 2, color: Colors.white), + this.insets = EdgeInsets.zero, + this.strokeCap: StrokeCap.square, + this.width: 20, + }) : assert(borderSide != null), + assert(insets != null); + + @override + Decoration lerpFrom(Decoration a, double t) { + if (a is CustomUnderlineTabIndicator) { + return CustomUnderlineTabIndicator( + borderSide: BorderSide.lerp(a.borderSide, borderSide, t), + insets: EdgeInsetsGeometry.lerp(a.insets, insets, t), + ); + } + return super.lerpFrom(a, t); + } + + @override + Decoration lerpTo(Decoration b, double t) { + if (b is CustomUnderlineTabIndicator) { + return CustomUnderlineTabIndicator( + borderSide: BorderSide.lerp(borderSide, b.borderSide, t), + insets: EdgeInsetsGeometry.lerp(insets, b.insets, t), + ); + } + return super.lerpTo(b, t); + } + + @override + _UnderlinePainter createBoxPainter([VoidCallback onChanged]) { + return _UnderlinePainter(this, onChanged); + } + + @override + Path getClipPath(Rect rect, TextDirection textDirection) { + return Path()..addRect(_indicatorRectFor(rect, textDirection)); + } + + Rect _indicatorRectFor(Rect rect, TextDirection textDirection) { + assert(rect != null); + assert(textDirection != null); + final Rect indicator = insets.resolve(textDirection).deflateRect(rect); + + // 希望的宽度 + double wantWidth = this.width; + // 取中间坐标 + double cw = (indicator.left + indicator.right) / 2; + // 这里是核心代码 + return Rect.fromLTWH(cw - wantWidth / 2, + indicator.bottom - borderSide.width, wantWidth, borderSide.width); + } +} + +class _UnderlinePainter extends BoxPainter { + _UnderlinePainter(this.decoration, VoidCallback onChanged) + : assert(decoration != null), + super(onChanged); + + final CustomUnderlineTabIndicator decoration; + + @override + void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) { + assert(configuration != null); + assert(configuration.size != null); + final Rect rect = offset & configuration.size; + final TextDirection textDirection = configuration.textDirection; + final Rect indicator = decoration + ._indicatorRectFor(rect, textDirection) + .deflate(decoration.borderSide.width / 2); + final Paint paint = decoration.borderSide.toPaint() + ..strokeCap = decoration.strokeCap; // 这里修改控制器边角的形状 + canvas.drawLine(indicator.bottomLeft, indicator.bottomRight, paint); + } +} \ No newline at end of file diff --git a/star_lock/lib/tools/app_manager.dart b/star_lock/lib/tools/app_manager.dart new file mode 100644 index 00000000..7a5474a0 --- /dev/null +++ b/star_lock/lib/tools/app_manager.dart @@ -0,0 +1,45 @@ + +import 'package:package_info_plus/package_info_plus.dart'; + +class AppManager { + + String appName = ''; + String packageName = ''; + String version = ''; + String buildNumber = ''; + String platformName = ''; + String get showVersion =>'$version.$buildNumber'; + + static AppManager _manager; + AppManager._init(); + + static AppManager shareManager(){ + _manager ??= AppManager._init(); + return _manager; + } + + factory AppManager() => shareManager(); + AppManager get manager => shareManager(); + + //当前应用的语言 + String _languageCode = 'en-US'; + void setLanCode({String code})=>_languageCode = code; + String get languageCode => _languageCode; + + //设备唯一标识 + String _deviceID = ''; + void saveDeviceID(String id){ + _deviceID = id; + } + + Future initPackageInfo() async { + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + AppManager().appName = packageInfo.appName; + AppManager().packageName = packageInfo.packageName; + AppManager().version = packageInfo.version; + AppManager().buildNumber = packageInfo.buildNumber; + } + + String get deviceId =>_deviceID; + +} \ No newline at end of file diff --git a/star_lock/lib/tools/commonItem.dart b/star_lock/lib/tools/commonItem.dart new file mode 100644 index 00000000..f0285f84 --- /dev/null +++ b/star_lock/lib/tools/commonItem.dart @@ -0,0 +1,50 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class CommonItem extends StatelessWidget { + String leftTitel; + String rightTitle; + bool isHaveDirection; + bool isHaveLine; + bool isHaveRightWidget; + Widget rightWidget; + Function action; + double allHeight; + + CommonItem({Key key,@required this.leftTitel, this.rightTitle, this.allHeight, this.isHaveDirection = false, this.isHaveLine = false, this.isHaveRightWidget = false, this.rightWidget, this.action}) : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: action, + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: allHeight??70.h, + color: Colors.white, + padding: EdgeInsets.only(left:20.w, right: 10.w, top: 20.w, bottom: 20.w), + child: Row( + children: [ + SizedBox(width:20.w), + Expanded(child: Text(leftTitel, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))), + SizedBox(width:20.w), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + isHaveRightWidget?rightWidget:Text(rightTitle, textAlign: TextAlign.end, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),) + ], + ), + SizedBox(width:5.w), + isHaveDirection?Image.asset('images/icon_right.png', width: 50.w, height: 50.w,):SizedBox(width:10.w), + // SizedBox(width:10.w), + ], + ), + ), + isHaveLine?Container(height: 0.5.h, color: Colors.grey,):Container() + ], + ), + ); + } +} diff --git a/star_lock/lib/tools/device_info_service.dart b/star_lock/lib/tools/device_info_service.dart new file mode 100644 index 00000000..0ceaafdb --- /dev/null +++ b/star_lock/lib/tools/device_info_service.dart @@ -0,0 +1,42 @@ + +import 'dart:io'; +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:get/get.dart'; +import '../../app_settings/app_settings.dart'; +import 'app_manager.dart'; +import 'store_service.dart'; +import 'package:uuid/uuid.dart'; + +class DeviceInfoService extends GetxService { + static DeviceInfoService get to => Get.find(); + + String _deviceID = ''; + String get deviceID => _deviceID; + + Future init() async { + DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + var dId = StoreService.to.getDeviceId(); + if(dId.isEmpty){ + dId = const Uuid().v1(); + print('初始化设备ID:$dId'); + StoreService.to.saveDeviceId(dId); + } + _deviceID = dId; + + if(Platform.isAndroid){ + AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + AppPlatform.setBrandString(androidInfo.brand); + AndroidBuildVersion buildVersion = androidInfo.version; + AppPlatform.setSDKInt(buildVersion.sdkInt); + } + + if(Platform.isIOS){ + IosDeviceInfo iosInfo = await deviceInfo.iosInfo; + } + AppManager().saveDeviceID(deviceID); + print(AppManager().deviceId); + return this; + } + + +} \ No newline at end of file diff --git a/star_lock/lib/tools/forgetPwdInput.dart b/star_lock/lib/tools/forgetPwdInput.dart new file mode 100644 index 00000000..928f5df4 --- /dev/null +++ b/star_lock/lib/tools/forgetPwdInput.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class ForgetPwdInput extends StatelessWidget { + TextEditingController controller; + List inputFormatters; + TextInputType keyboardType; + String hintText; + String label; + Widget rightSlot; + bool isPwd; + ForgetPwdInput({Key key,this.rightSlot,this.isPwd,this.label,this.hintText,this.keyboardType,this.inputFormatters, @required this.controller}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + child: Row( + children: [ + SizedBox(width: 90.w, height: 40.w,), + Expanded( + child: TextField( + //输入框一行 + maxLines: 1, + // controller: _controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + hintText: hintText, + //不需要输入框下划线 + border: InputBorder.none, + ), + ), + ), + rightSlot??const SizedBox(width: 0,height: 0) + ], + ), + ), + Container(height: 0.5.h, color: Colors.grey,), + ], + ); + } +} diff --git a/star_lock/lib/tools/jh_pop_menus.dart b/star_lock/lib/tools/jh_pop_menus.dart new file mode 100644 index 00000000..42f6fab7 --- /dev/null +++ b/star_lock/lib/tools/jh_pop_menus.dart @@ -0,0 +1,220 @@ + +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'screen_utils.dart'; + +List _listData = [ + {'text': '读取记录'}, + {'text': '清空记录'}, + {'text': '导出记录'}, +]; + +const Color _bgColor = Color(0xFF2D2D2D); +const double _fontSize = 16.0; +const double _cellHeight = 50.0; +const double _imgWH = 22.0; + +class JhPopMenus { + /// 显示pop + static void show( + BuildContext context, { + Function(int selectIndex, String selectText) clickCallback, + }) { + // Cell + Widget buildMenuCell(dataArr) { + return ListView.builder( + itemCount: dataArr.length, + itemExtent: _cellHeight, + padding: const EdgeInsets.all(0.0), + physics: const NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return Material( + color: _bgColor, + child: InkWell( + onTap: () { + clickCallback?.call(index, _listData[index]['text']); + Navigator.pop(context); + }, + child: Row( + children: [ + const SizedBox(width: 25), + // Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white), + // const SizedBox(width: 15), + Text("你好", style: const TextStyle(color: Colors.white, fontSize: _fontSize)), + ], + ), + ), + ); + }, + ); + } + + Widget menusView(dataArr) { + var cellH = dataArr.length * _cellHeight; + var navH = JhScreenUtils.navigationBarHeight; + return Positioned( + right: 10, + top: navH - 10, + child: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5), + ClipRRect( + borderRadius: BorderRadius.circular(5), + child: Container(color: _bgColor, width: 160, height: cellH, child: buildMenuCell(dataArr)), + ) + ], + ), + ); + } + + Navigator.of(context).push(DialogRouter(_BasePopMenus(child: menusView(_listData)))); + } + + /// 显示带线带背景 pop + static void showLinePop(BuildContext context, {bool isShowBg = false, Function(int selectIndex, String selectText) clickCallback,}) { + // 带线 + Widget buildMenuLineCell(dataArr) { + return ListView.separated( + itemCount: dataArr.length, + padding: const EdgeInsets.all(0.0), + physics: const NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int index) { + return Material( + color: _bgColor, + child: InkWell( + onTap: () { + clickCallback?.call(index, _listData[index]['text']); + Navigator.pop(context); + }, + child: Container( + height: _cellHeight, + padding: EdgeInsets.only(left: 20.h), + child: Row( + children: [ + // const SizedBox(width: 25), + // Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white), + // const SizedBox(width: 12), + Center(child: Text(dataArr[index]['text'], style: const TextStyle(color: Colors.white, fontSize: _fontSize))) + ], + ), + ), + ), + ); + }, + separatorBuilder: (context, index) => + const Divider(height: .1, indent: 50, endIndent: 0, color: Color(0xFFE6E6E6)), + ); + } + + Widget menusView(dataArr) { + var cellH = dataArr.length * _cellHeight; + var navH = JhScreenUtils.navigationBarHeight; + if (isShowBg == true) { + navH = navH - JhScreenUtils.topSafeHeight; + } else { + navH = navH - 10; + } + return Positioned( + right: 10, + top: navH, + child: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5), + ClipRRect( + borderRadius: BorderRadius.circular(5), + child: Container(color: _bgColor, width: 180.w, height: cellH, child: buildMenuLineCell(dataArr))) + ], + ), + ); + } + + if (isShowBg == true) { + // 带背景 + showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + return _BasePopMenus(child: menusView(_listData)); + }, + ); + } else { + Navigator.of(context).push(DialogRouter(_BasePopMenus(child: menusView(_listData)))); + } + } +} + +class _BasePopMenus extends Dialog { + final child; + + const _BasePopMenus({ + Key key, + this.child, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Material( + type: MaterialType.transparency, + child: Stack( + fit: StackFit.expand, + children: [ + GestureDetector(onTap: () => Navigator.pop(context)), + // 内容 + child ?? Container() + ], + ), + ); + } +} + +class DialogRouter extends PageRouteBuilder { + final Widget page; + + DialogRouter(this.page) + : super( + opaque: false, + // 自定义遮罩颜色 + barrierColor: Colors.white10.withAlpha(1), + transitionDuration: const Duration(milliseconds: 150), + pageBuilder: (context, animation, secondaryAnimation) => page, + transitionsBuilder: (context, animation, secondaryAnimation, child) => child, + ); +} + +class CustomDialog extends Dialog { + final bool clickBgHidden; + final child; + + const CustomDialog({ + Key key, + this.child, + this.clickBgHidden = false, // 点击背景隐藏,默认不隐藏 + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Material( + // 透明层 + type: MaterialType.transparency, + child: Stack( + children: [ + InkWell( + onTap: () { + if (clickBgHidden == true) { + Navigator.pop(context); + } + }, + child: SizedBox( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + ), + ), + // 内容 + Center(child: child) + ], + ), + ); + } +} diff --git a/star_lock/lib/tools/loginInput.dart b/star_lock/lib/tools/loginInput.dart new file mode 100644 index 00000000..9c6a39fd --- /dev/null +++ b/star_lock/lib/tools/loginInput.dart @@ -0,0 +1,56 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +/* +* 登录注册页面 input +* */ + +class LoginInput extends StatelessWidget { + + TextEditingController controller; + List inputFormatters; + TextInputType keyboardType; + Color background; + String hintText; + String leftImg; + String label; + bool isPwd; + Widget rightSlot; + LoginInput({Key key, @required this.controller,this.rightSlot,this.label,this.isPwd,this.inputFormatters,this.keyboardType,this.background,this.hintText, this.leftImg}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + // color: Colors.red, + // width: 1.sp, + // height: 200.h, + child: Column( + children: [ + TextField( + //输入框一行 + maxLines: 1, + controller: controller, + autofocus: false, + decoration: InputDecoration( + //输入里面输入文字内边距设置 + contentPadding: const EdgeInsets.only( + top: 12.0, left: -19.0, right: -15.0, bottom: 8.0), + labelText: label, + hintText: hintText, + //不需要输入框下划线 + border: InputBorder.none, + //左边图标设置 + icon: (leftImg.isNotEmpty)?Padding( + padding: EdgeInsets.only(top:30.w, bottom: 20.w, right: 20.w, left: 5.w), + child: Image.asset(leftImg, width: 40.w, height: 40.w,), + ):SizedBox(width: 65.w, height: 40.w,), + ), + ), + Container(height: 0.5.h, color: Colors.grey,), + ], + ), + ); + } +} diff --git a/star_lock/lib/tools/noData.dart b/star_lock/lib/tools/noData.dart new file mode 100644 index 00000000..377d0d00 --- /dev/null +++ b/star_lock/lib/tools/noData.dart @@ -0,0 +1,17 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class NoData extends StatelessWidget { + const NoData({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return SizedBox( + width: 1.sw, + height: 1.sh - ScreenUtil().statusBarHeight, + child: Center( + child: Image.asset('images/noData.png',width: 300.w,height: 240.w), + ), + ); + } +} diff --git a/star_lock/lib/tools/platform_info_services.dart b/star_lock/lib/tools/platform_info_services.dart new file mode 100644 index 00000000..c01304fd --- /dev/null +++ b/star_lock/lib/tools/platform_info_services.dart @@ -0,0 +1,14 @@ + +import 'package:get/get.dart'; +import 'package:package_info_plus/package_info_plus.dart'; + +class PlatformInfoService extends GetxService { + static PlatformInfoService get to => Get.find(); + PackageInfo _packageInfo; + PackageInfo get info => _packageInfo; + Future init() async { + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + _packageInfo = packageInfo; + return this; + } +} \ No newline at end of file diff --git a/star_lock/lib/tools/screen_utils.dart b/star_lock/lib/tools/screen_utils.dart new file mode 100644 index 00000000..09061acc --- /dev/null +++ b/star_lock/lib/tools/screen_utils.dart @@ -0,0 +1,140 @@ +/// screen_utils.dart +/// +/// Created by iotjin on 2020/07/04. +/// description: 屏幕信息 + +import 'dart:ui' as ui show window; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class JhScreenUtils { + static init(BuildContext context) { + // 假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) + ScreenUtil.init(context, designSize: const Size(750, 1334)); + } + + static setWidth(double width) { + ScreenUtil().setWidth(width); + } + + static setHeight(double height) { + ScreenUtil().setHeight(height); + } + + static setSp(num fontSize) { + ScreenUtil().setSp(fontSize); + } + + // static double get screenWidth => ScreenUtil.screenWidth; + // + // static double get screenHeight => ScreenUtil.screenHeight; + + // static double get screenWidthPx => ScreenUtil.screenWidthPx; + // + // static double get screenHeightPx => ScreenUtil.screenHeightPx; + // + // static double get statusBarHeight => ScreenUtil.statusBarHeight; + // + // static double get bottomBarHeight => ScreenUtil.bottomBarHeight; + + // 系统方法获取 + + static double get screenWidth { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.size.width; + } + + static double get screenHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.size.height; + } + + static double get scale { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.devicePixelRatio; + } + + static double get textScaleFactor { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.textScaleFactor; + } + + static double get navigationBarHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.padding.top + kToolbarHeight; + } + + static double get topSafeHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.padding.top; + } + + static double get bottomSafeHeight { + MediaQueryData mediaQuery = MediaQueryData.fromWindow(ui.window); + return mediaQuery.padding.bottom; + } + + static updateStatusBarStyle(SystemUiOverlayStyle style) { + SystemChrome.setSystemUIOverlayStyle(style); + } +} + +/* + +ScreenUtil.pixelRatio // 设备的像素密度 +ScreenUtil.screenWidth // 设备宽度 +ScreenUtil.screenHeight // 设备高度 +ScreenUtil.bottomBarHeight // 底部安全区距离,适用于全面屏下面有按键的 +ScreenUtil.statusBarHeight // 状态栏高度 刘海屏会更高 单位px +ScreenUtil.textScaleFactory // 系统字体缩放比例 + +ScreenUtil.getInstance().scaleWidth // 实际宽度的dp与设计稿px的比例 +ScreenUtil.getInstance().scaleHeight // 实际高度的dp与设计稿px的比例 + + +width:ScreenUtil().setWidth(100) +height:ScreenUtil().setHeight(80) + +Container( +width: 50.w, +height:200.h +) + +fontSize: ScreenUtil().setSp(28) + +fontSize: ScreenUtil.getInstance().setSp(24), +fontSize: ScreenUtil(allowFontScaling: true).setSp(24), + + +print('设备宽度:${ScreenUtil.screenWidth}'); //Device width +print('设备高度:${ScreenUtil.screenHeight}'); //Device height +print('设备的像素密度:${ScreenUtil.pixelRatio}'); //Device pixel density +print('底部安全区距离:${ScreenUtil.bottomBarHeight}'); //Bottom safe zone distance,suitable for buttons with full screen +print('状态栏高度:${ScreenUtil.statusBarHeight}px'); +print('实际宽度的dp与设计稿px的比例:${ScreenUtil.getInstance().scaleWidth}'); +print('实际高度的dp与设计稿px的比例:${ScreenUtil.getInstance().scaleHeight}'); +print( '宽度和字体相对于设计稿放大的比例:${ScreenUtil.getInstance().scaleWidth * ScreenUtil.pixelRatio}'); +print( '高度相对于设计稿放大的比例:${ScreenUtil.getInstance().scaleHeight * ScreenUtil.pixelRatio}'); +print('系统的字体缩放比例:${ScreenUtil.textScaleFactor}'); + +*/ + +/* + 屏幕宽度高度:MediaQuery.of(context).size.width + 屏幕宽度高度:MediaQuery.of(context).size.height + 屏幕状态栏高度:MediaQueryData.fromWindow(WidgetBinding.instance.window).padding.top。 + + MediaQueryData mq = MediaQuery.of(context); + // 屏幕密度 + pixelRatio = mq.devicePixelRatio; + // 屏幕宽(注意是dp, 转换px 需要 screenWidth * pixelRatio) + screenWidth = mq.size.width; + // 屏幕高(注意是dp) + screenHeight = mq.size.height; + // 顶部状态栏, 随着刘海屏会增高 + statusBarHeight = mq padding.top; + // 底部功能栏, 类似于iPhone XR 底部安全区域 + bottomBarHeight = mq.padding.bottom; + +*/ diff --git a/star_lock/lib/tools/showBottomSheetTool.dart b/star_lock/lib/tools/showBottomSheetTool.dart new file mode 100644 index 00000000..186492e4 --- /dev/null +++ b/star_lock/lib/tools/showBottomSheetTool.dart @@ -0,0 +1,107 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_picker/flutter_picker.dart'; + +///2023/7/17 +///底部弹出选择器工具类 +typedef StringClickCallback = void Function(int selectIndex, Object selectStr); +typedef ArrayClickCallback = void Function(List selecteds, List strData); +typedef DateClickCallback = void Function(dynamic selectDateStr, dynamic selectDate); + +class ShowBottomSheetTool { + //选择器的高度 + double pickerHeight; + //单行的高度 + double itemHeight; + //按钮颜色 + Color btnColor; + //文本颜色 + Color titleColor; + //字体大小 + double textFontSize; + + ShowBottomSheetTool( + {this.pickerHeight = 200.0, + this.itemHeight = 45.0, + this.btnColor = Colors.black, + this.titleColor = const Color.fromRGBO(127, 127, 127, 1.0), + this.textFontSize = 16.0}); + + ///单列 + void showSingleRowPicker( + BuildContext context, { + @required List data, + String title, + String cancelTitle, + String sureTitle, + int normalIndex, + PickerDataAdapter adapter, + @required StringClickCallback clickCallBack, + }) { + openPicker(context, + title: title, + cancelTitle: cancelTitle, + sureTitle: sureTitle, + selecteds: [normalIndex ?? 0], + adapter: adapter ?? PickerDataAdapter(pickerData: data, isArray: false), + clickCallBack: (Picker picker, List selecteds) { + clickCallBack(selecteds[0], data[selecteds[0]]); + }); + } + + ///多列 + void showArrayPicker( + BuildContext context, { + @required List data, + String title, + List normalIndex, + PickerDataAdapter adapter, + @required ArrayClickCallback clickCallBack, + }) { + openPicker(context, + selecteds: normalIndex, + title: title, + adapter: adapter ?? PickerDataAdapter(pickerData: data, isArray: true), + clickCallBack: (Picker picker, List selecteds) { + clickCallBack(selecteds, picker.getSelectedValues()); + }); + } + + void openPicker( + BuildContext context, { + @required PickerAdapter adapter, + String title, + String cancelTitle, + String sureTitle, + List selecteds, + @required PickerConfirmCallback clickCallBack, + }) { + Picker( + adapter: adapter, + title: Text( + title ?? "请选择", + style: TextStyle( + color: titleColor, + fontSize: textFontSize, + ), + ), + selecteds: selecteds, + confirmText: sureTitle??'确定', + cancelText: cancelTitle??'取消', + cancelTextStyle: TextStyle( + color: btnColor, + fontSize: textFontSize, + ), + confirmTextStyle: TextStyle( + color: btnColor, + fontSize: textFontSize, + ), + textAlign: TextAlign.right, + itemExtent: itemHeight, + height: pickerHeight, + selectedTextStyle: TextStyle( + color: Colors.black, + ), + onConfirm: clickCallBack, + ).showModal(context); + } +} \ No newline at end of file diff --git a/star_lock/lib/tools/store_service.dart b/star_lock/lib/tools/store_service.dart new file mode 100644 index 00000000..1fd46669 --- /dev/null +++ b/star_lock/lib/tools/store_service.dart @@ -0,0 +1,57 @@ +import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; + +final box = GetStorage(); +class StoreService extends GetxService { + + static StoreService get to => Get.find(); + Future> init() async { + await GetStorage.init(); + // await resetUserInfo(); + return this; + } + + Future save(String key, dynamic value) => box.write(key, value); + T read(String key) => box.read(key); + Future remove(String key) => box.remove(key); + bool hasData(String key) => box.hasData(key); + + + final String _loginUserInfoKey = 'LOGIN_USER_INFO'; + final String _deviceUUID = 'DEVICE_ID'; + final String _languageCode = 'LANGUAGE_CODE'; + final String _userAccount = 'USER_ACCOUNT'; + + + // LoginEntity _loginEntity; + // LoginEntity get loginEntity => _loginEntity; + // Future resetUserInfo() async{ + // if(hasData(_loginUserInfoKey)){ + // _loginEntity = LoginEntity.fromJson(box.read(_loginUserInfoKey)); + // } + // } + // Future removeUserInfo() => remove(_loginUserInfoKey); + // + // Future saveLogInInfo(LoginEntity entity) { + // _loginEntity = LoginEntity.fromJson(entity.toJson()); + // save(_loginUserInfoKey, entity.toJson()); + // if(_loginEntity != null && _loginEntity.data != null && _loginEntity.data.email != null && _loginEntity.data.email.isNotEmpty) { + // save(_userAccount, _loginEntity.data.email); + // } + // } + + String getDeviceId() => hasData(_deviceUUID) ? read(_deviceUUID): ""; + Future saveDeviceId(String uuid) => save(_deviceUUID, uuid); + + String getLanguageCode() => hasData(_languageCode) ? read(_languageCode): ""; + Future saveLanguageCode(String code) => save(_languageCode, code); + + // bool get hadToken => loginEntity != null && loginEntity.data.token != null && loginEntity.data.token.isNotEmpty; + // String get userToken => hadToken ? loginEntity.data.token : ""; + + String getLastUserAccount() => hasData(_userAccount) ? read(_userAccount): ""; + void removeLastUserAccount() => remove(_userAccount); + + String get localUserAccount => getLastUserAccount(); + +} diff --git a/star_lock/lib/tools/submitBtn.dart b/star_lock/lib/tools/submitBtn.dart new file mode 100644 index 00000000..44d7fef3 --- /dev/null +++ b/star_lock/lib/tools/submitBtn.dart @@ -0,0 +1,71 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +import '../app_settings/app_colors.dart'; + + +/* +* 提交按钮 公用组件 +* */ + +class SubmitBtn extends StatelessWidget { + + String btnName; + + Function onClick; + + EdgeInsetsGeometry margin; + + EdgeInsetsGeometry padding; + + double width; + + double fontSize; + + Color color; + + List backgroundColorList; + + double borderRadius; + + SubmitBtn({Key key,@required this.btnName,this.borderRadius,this.color,this.padding,this.onClick,this.margin,this.width,this.backgroundColorList,this.fontSize}) : super(key: key); + + @override + Widget build(BuildContext context) { + return GestureDetector( + child: Container( + width: width??690.w, + padding: padding??EdgeInsets.only( + top: 20.w, + bottom: 20.w + ), + margin: margin??EdgeInsets.only(top: 30.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(borderRadius??30.w), + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: backgroundColorList??[ + AppColors.mainColor,AppColors.mainColor, + ], + ) + ), + child: Center( + child: Text(btnName,style: TextStyle( + fontSize: fontSize??36.sp, + height: 1.3, + decoration: TextDecoration.none, + fontWeight: FontWeight.w500, + color: color??Colors.white + )), + ), + ), + onTap: (){ + if(onClick!=null){ + onClick(); + } + }, + ); + } +} diff --git a/star_lock/lib/tools/titleAppBar.dart b/star_lock/lib/tools/titleAppBar.dart new file mode 100644 index 00000000..9d5b302c --- /dev/null +++ b/star_lock/lib/tools/titleAppBar.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class TitleAppBar extends AppBar { + + @override + final Color backgroundColor; + final String barTitle; + final Color titleColor; + final Color iconColor; + final bool haveBack; + final bool haveOtherLeftWidget; + final Widget leftWidget; + List actionsList; + + TitleAppBar({Key key,this.barTitle,this.titleColor,this.iconColor,this.backgroundColor,this.actionsList, this.haveBack, this.haveOtherLeftWidget = false , this.leftWidget}) : super(key: key); + + @override + _TitleAppBarState createState() => _TitleAppBarState(); + +} + +class _TitleAppBarState extends State { + @override + Widget build(BuildContext context) { + return AppBar( + elevation: 0, + leading:widget.haveOtherLeftWidget?widget.leftWidget:(widget.haveBack?IconButton( + icon: Icon(Icons.arrow_back_ios,color: widget.iconColor??Colors.white), + onPressed: () => Navigator.of(context).pop(), + ):Container()), + backgroundColor: widget.backgroundColor??Colors.white, + title: Text(widget.barTitle??'', style: TextStyle(color: widget.titleColor??Colors.white,fontSize: 36.sp, fontWeight:FontWeight.w500)), + centerTitle: true, + actions: widget.actionsList??[] + ); + } +} diff --git a/star_lock/lib/translations/app_dept.dart b/star_lock/lib/translations/app_dept.dart new file mode 100644 index 00000000..638defd5 --- /dev/null +++ b/star_lock/lib/translations/app_dept.dart @@ -0,0 +1,79 @@ + +import 'dart:convert'; +import 'dart:ui'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/translations/trans_lib.dart'; + +import '../tools/app_manager.dart'; + +enum AppDept { + cdl, +} + +extension ExtensionAppDept on AppDept { + + static AppDept fromAppPackageName(String packageName) { + AppDept dept = AppDept.cdl; + packageName = packageName.toLowerCase(); + if(packageName.contains('cdl')){ + dept = AppDept.cdl; + } + return dept; + } + + List get deptSupportedLocales { + Locale enL = const Locale('en', 'US'); + Locale zhL = const Locale('zh', 'CN'); + + return [enL,zhL]; + } + +} + +AppDept appDept = ExtensionAppDept.fromAppPackageName(AppManager().packageName); + +final List appSupportedLocales = appDept.deptSupportedLocales; + +enum LanguageType { + chinese, + english, + deutsch, // 德语 + francais, // 法语 + italiano, // 意大利 + dutch, // 荷兰语 + spanish, // 西班牙 + czech, // 捷克语 + slovak // 斯洛伐克语 +} + +extension ExtensionLanguageType on LanguageType { + String get lanTitle { + var str = ''; + switch(this){ + case LanguageType.english: + str = TranslationLoader.lanKeys.lanEnglish.tr; + break; + case LanguageType.chinese: + str = TranslationLoader.lanKeys.lanChinese.tr; + break; + + } + return str; + } + + static LanguageType fromLanguageCode(String code) { + LanguageType languageType = LanguageType.english; + switch(code.toLowerCase()){ + case 'en': + languageType = LanguageType.english; + break; + case 'zh': + languageType = LanguageType.chinese; + break; + + } + return languageType; + } + +} \ No newline at end of file diff --git a/star_lock/lib/translations/lanKeyEntity.dart b/star_lock/lib/translations/lanKeyEntity.dart new file mode 100644 index 00000000..c161a23b --- /dev/null +++ b/star_lock/lib/translations/lanKeyEntity.dart @@ -0,0 +1,833 @@ +class LanKeyEntity { + LanKeyEntity({ + this.starLock, + this.clickUnlockAndHoldDownClose, + this.checkingIn, + this.electronicKey, + this.password, + this.card, + this.fingerprint, + this.remoteControl, + this.operatingRecord, + this.number, + this.additive, + this.addTime, + + this.reset, + this.sendKey, + this.timeLimit, + this.permanent, + this.once, + this.circulation, + this.receiver, + this.pleaseEnterNumberOrEmail, + this.name, + this.enterYourName, + this.effectiveTime, + this.failureTime, + this.effectiveDate, + this.failureDate, + this.Monday, + this.Tuesday, + this.Wednesday, + this.Thursday, + this.Friday, + this.Saturday, + this.Sunday, + + this.realNameAuthentication, + this.sendKeyBottomTip, + this.send, + this.periodValidity, + this.sendGroupKey, + this.lock, + this.pleaseAdd, + this.pleaseSelet, + this.remoteUnlockingAllowed, + this.pleaseEnter, + this.getPassword, + this.custom, + this.clearAll, + this.recursiveDevice, + this.pleaseNameYourPassword, + this.pleaseEnterDigitsNumber, + this.getPasswordTip1, + this.getPasswordTip2, + this.getPasswordTip3, + this.getPasswordTip4, + this.getPasswordTip5, + this.getPasswordTip6, + this.getTip, + this.addTip, + this.sender, + this.senderTime, + this.keyDetail, + this.detail, + this.delete, + this.passwordDetail, + this.share, + this.amend, + this.sure, + this.cancel, + this.add, + this.accountNumber, + this.volumeAuthorizationLock, + this.authorizedAdminTip, + this.lockOperatingRecordTip, + + this.basicInformation, + this.wirelessKeyboard, + this.doorMagnetic, + this.remoteUnlocking, + this.automaticBlocking, + this.normallyOpenMode, + this.lockSound, + this.burglarAlarm, + this.resetButton, + this.lockTime, + this.diagnose, + this.uploadData, + this.importOtherLockData, + this.lockEscalation, + this.markedHouseState, + this.unlockReminder, + this.unlockQRCode, + this.lockNumber, + this.electricQuantity, + this.lockName, + this.lockGrouping, + this.adminOpenLockPassword, + this.update, + this.updateElectricQuantityTip, + this.adminOpenLockPasswordTip, + this.updateLockAdminPassword, + this.whenScreenFlashesClickNext, + this.theScreenNeverFlickered, + this.enterNumberOrPressSet, + this.theLocationOfTheSetKeyWillBeDifferent, + this.pressAndHoldTheResetButtonTwoSeconds, + this.nearbyEquipment, + this.noData, + this.doorMagneticListTopTip, + this.remoteUnlockingPageTip, + this.currentMode, + this.delayTime, + this.automaticBlockingTip, + this.time, + this.normallyOpen, + this.date, + this.begin, + this.end, + this.allDay, + this.save, + this.normallyOpenModeTip, + this.pleaseSeletLockVolume, + this.lockSoundTip, + this.low, + this.lower, + this.medium, + this.high, + this.higher, + this.burglarAlarmTip, + this.resetButtonTip, + this.calibrationTime, + this.setTheDSTMode, + this.diagnoseTip, + this.uploading, + this.uploadDataTip, + this.importOtherLockDataTip, + this.haveNewVersion, + this.currentVersion, + this.newVersion, + this.upgrade, + this.leisure, + this.checkedIn, + + this.lanEnglish, + this.lanChinese, + this.multilingual, + this.addLock, + this.gateway, + this.message, + this.supportStaff, + this.set, + this.moreServices, + + this.moreSet, + this.prompTone, + this.touchUnlock, + this.pushNotification, + this.lockUserManagement, + this.authorizedAdmin, + this.lockGroup, + this.transferSmartLock, + this.transferGateway, + + this.multiLanguage, + this.lockScreen, + this.closed, + this.opened, + this.hideInvalidUnlockPermissions, + this.appUnlockRequiresMobilePhoneAccessToTheLock, + this.valueAddedServices, + this.about, + this.userAgreement, + this.privacyPolicy, + this.personalInformationCollectionList, + this.applicationPermissionDescription, + this.thirdPartyInformationSharingList, + this.logout, + this.deleteAccount, + + this.allLock, + this.searchAllLockType, + this.doorLock, + this.padlock, + this.safeLock, + this.intelligentLockCore, + this.parkingLock, + this.bicycleLock, + this.longRangeControl, + this.lightTouchScreen, + this.lightTouchScreenTip, + this.next, + this.nearbyLock, + this.addSuccessfullyPleaseRename, + this.whenAddingLockThePhoneMustBeNextToTheLock, + + this.login, + this.register, + this.forgetPassword, + this.readAndAgree, + this.verificationCode, + this.registerPasswordTip, + this.iphone, + this.email, + this.countryAndRegion, + this.selet + }); + + LanKeyEntity.fromJson(dynamic json) { + starLock = json['starLock']; + clickUnlockAndHoldDownClose = json['clickUnlockAndHoldDownClose']; + checkingIn = json['checkingIn']; + electronicKey = json['electronicKey']; + password = json['password']; + card = json['card']; + fingerprint = json['fingerprint']; + remoteControl = json['remoteControl']; + operatingRecord = json['operatingRecord']; + number = json['number']; + additive = json['additive']; + addTime = json['addTime']; + + reset = json['reset']; + sendKey = json['sendKey']; + timeLimit = json['timeLimit']; + permanent = json['permanent']; + once = json['once']; + circulation = json['circulation']; + receiver = json['receiver']; + pleaseEnterNumberOrEmail = json['pleaseEnterNumberOrEmail']; + name = json['name']; + enterYourName = json['enterYourName']; + effectiveTime = json['effectiveTime']; + failureTime = json['failureTime']; + effectiveDate = json['effectiveDate']; + failureDate = json['failureDate']; + Monday = json['Monday']; + Tuesday = json['Tuesday']; + Wednesday = json['Wednesday']; + Thursday = json['Thursday']; + Friday = json['Friday']; + Saturday = json['Saturday']; + Sunday = json['Sunday']; + + realNameAuthentication = json['realNameAuthentication']; + sendKeyBottomTip = json['sendKeyBottomTip']; + send = json['send']; + periodValidity = json['periodValidity']; + sendGroupKey = json['sendGroupKey']; + lock = json['lock']; + pleaseAdd = json['pleaseAdd']; + pleaseSelet = json['pleaseSelet']; + remoteUnlockingAllowed = json['remoteUnlockingAllowed']; + pleaseEnter = json['pleaseEnter']; + getPassword = json['getPassword']; + custom = json['custom']; + clearAll = json['clearAll']; + recursiveDevice = json['recursiveDevice']; + pleaseNameYourPassword = json['pleaseNameYourPassword']; + pleaseEnterDigitsNumber = json['pleaseEnterDigitsNumber']; + getPasswordTip1 = json['getPasswordTip1']; + getPasswordTip2 = json['getPasswordTip2']; + getPasswordTip3 = json['getPasswordTip3']; + getPasswordTip4 = json['getPasswordTip4']; + getPasswordTip5 = json['getPasswordTip5']; + getPasswordTip6 = json['getPasswordTip6']; + getTip = json['getTip']; + addTip = json['addTip']; + sender = json['sender']; + senderTime = json['senderTime']; + keyDetail = json['keyDetail']; + detail = json['detail']; + delete = json['delete']; + passwordDetail = json['passwordDetail']; + share = json['share']; + amend = json['amend']; + sure = json['sure']; + cancel = json['cancel']; + add = json['add']; + accountNumber = json['accountNumber']; + volumeAuthorizationLock = json['volumeAuthorizationLock']; + authorizedAdminTip = json['authorizedAdminTip']; + lockOperatingRecordTip = json['lockOperatingRecordTip']; + remoteUnlockingPageTip = json['remoteUnlockingPageTip']; + currentMode = json['currentMode']; + delayTime = json['delayTime']; + automaticBlockingTip = json['automaticBlockingTip']; + time = json['time']; + normallyOpen = json['normallyOpen']; + date = json['date']; + begin = json['begin']; + end = json['end']; + allDay = json['allDay']; + save = json['save']; + normallyOpenModeTip = json['normallyOpenModeTip']; + pleaseSeletLockVolume = json['pleaseSeletLockVolume']; + lockSoundTip = json['lockSoundTip']; + low = json['low']; + lower = json['lower']; + medium = json['medium']; + high = json['high']; + higher = json['higher']; + burglarAlarmTip = json['burglarAlarmTip']; + resetButtonTip = json['resetButtonTip']; + calibrationTime = json['calibrationTime']; + setTheDSTMode = json['setTheDSTMode']; + diagnoseTip = json['diagnoseTip']; + uploading = json['uploading']; + uploadDataTip = json['uploadDataTip']; + importOtherLockDataTip = json['importOtherLockDataTip']; + haveNewVersion = json['haveNewVersion']; + currentVersion = json['currentVersion']; + newVersion = json['newVersion']; + upgrade = json['upgrade']; + leisure = json['leisure']; + checkedIn = json['checkedIn']; + + basicInformation = json['basicInformation']; + wirelessKeyboard = json['wirelessKeyboard']; + doorMagnetic = json['doorMagnetic']; + remoteUnlocking = json['remoteUnlocking']; + automaticBlocking = json['automaticBlocking']; + normallyOpenMode = json['normallyOpenMode']; + lockSound = json['lockSound']; + burglarAlarm = json['burglarAlarm']; + resetButton = json['resetButton']; + lockTime = json['lockTime']; + diagnose = json['diagnose']; + uploadData = json['uploadData']; + importOtherLockData = json['importOtherLockData']; + lockEscalation = json['lockEscalation']; + markedHouseState = json['markedHouseState']; + unlockReminder = json['unlockReminder']; + unlockQRCode = json['unlockQRCode']; + lockNumber = json['lockNumber']; + electricQuantity = json['electricQuantity']; + lockName = json['lockName']; + lockGrouping = json['lockGrouping']; + adminOpenLockPassword = json['adminOpenLockPassword']; + update = json['update']; + updateElectricQuantityTip = json['updateElectricQuantityTip']; + adminOpenLockPasswordTip = json['adminOpenLockPasswordTip']; + updateLockAdminPassword = json['updateLockAdminPassword']; + whenScreenFlashesClickNext = json['whenScreenFlashesClickNext']; + theScreenNeverFlickered = json['theScreenNeverFlickered']; + enterNumberOrPressSet = json['enterNumberOrPressSet']; + theLocationOfTheSetKeyWillBeDifferent = json['theLocationOfTheSetKeyWillBeDifferent']; + pressAndHoldTheResetButtonTwoSeconds = json['pressAndHoldTheResetButtonTwoSeconds']; + nearbyEquipment = json['nearbyEquipment']; + noData = json['noData']; + doorMagneticListTopTip = json['doorMagneticListTopTip']; + + lanEnglish = json['lanEnglish']; + lanChinese = json['lanChinese']; + multilingual = json['multilingual']; + addLock = json['addLock']; + gateway = json['gateway']; + message = json['message']; + supportStaff = json['supportStaff']; + set = json['set']; + moreServices = json['moreServices']; + + moreSet = json['moreSet']; + prompTone = json['prompTone']; + touchUnlock = json['touchUnlock']; + pushNotification = json['pushNotification']; + lockUserManagement = json['lockUserManagement']; + authorizedAdmin = json['authorizedAdmin']; + lockGroup = json['lockGroup']; + transferSmartLock = json['transferSmartLock']; + transferGateway = json['transferGateway']; + + multiLanguage = json['multiLanguage']; + lockScreen = json['lockScreen']; + closed = json['closed']; + opened = json['opened']; + hideInvalidUnlockPermissions = json['hideInvalidUnlockPermissions']; + appUnlockRequiresMobilePhoneAccessToTheLock = json['appUnlockRequiresMobilePhoneAccessToTheLock']; + valueAddedServices = json['valueAddedServices']; + about = json['about']; + userAgreement = json['userAgreement']; + privacyPolicy = json['privacyPolicy']; + personalInformationCollectionList = json['personalInformationCollectionList']; + applicationPermissionDescription = json['applicationPermissionDescription']; + thirdPartyInformationSharingList = json['thirdPartyInformationSharingList']; + logout = json['logout']; + deleteAccount = json['deleteAccount']; + + allLock = json['allLock']; + searchAllLockType = json['searchAllLockType']; + doorLock = json['doorLock']; + padlock = json['padlock']; + safeLock = json['safeLock']; + intelligentLockCore = json['intelligentLockCore']; + parkingLock = json['parkingLock']; + bicycleLock = json['bicycleLock']; + longRangeControl = json['longRangeControl']; + lightTouchScreen = json['lightTouchScreen']; + lightTouchScreenTip = json['lightTouchScreenTip']; + next = json['next']; + nearbyLock = json['nearbyLock']; + addSuccessfullyPleaseRename = json['addSuccessfullyPleaseRename']; + whenAddingLockThePhoneMustBeNextToTheLock = json['whenAddingLockThePhoneMustBeNextToTheLock']; + + login = json['login']; + register = json['register']; + forgetPassword = json['forgetPassword']; + readAndAgree = json['readAndAgree']; + verificationCode = json['verificationCode']; + registerPasswordTip = json['registerPasswordTip']; + iphone = json['iphone']; + email = json['email']; + countryAndRegion = json['countryAndRegion']; + selet = json['selet']; + } + String starLock; + String clickUnlockAndHoldDownClose; + String checkingIn; + String electronicKey; + String password; + String card; + String fingerprint; + String remoteControl; + String operatingRecord; + String number; + String additive; + String addTime; + + String reset; + String sendKey; + String timeLimit; + String permanent; + String once; + String circulation; + String receiver; + String pleaseEnterNumberOrEmail; + String name; + String enterYourName; + String effectiveTime; + String failureTime; + String effectiveDate; + String failureDate; + String Monday; + String Tuesday; + String Wednesday; + String Thursday; + String Friday; + String Saturday; + String Sunday; + + String realNameAuthentication; + String sendKeyBottomTip; + String send; + String periodValidity; + String sendGroupKey; + String lock; + String pleaseAdd; + String pleaseSelet; + String remoteUnlockingAllowed; + String pleaseEnter; + String getPassword; + String custom; + String clearAll; + String recursiveDevice; + String pleaseNameYourPassword; + String pleaseEnterDigitsNumber; + String getPasswordTip1; + String getPasswordTip2; + String getPasswordTip3; + String getPasswordTip4; + String getPasswordTip5; + String getPasswordTip6; + String getTip; + String addTip; + String sender; + String senderTime; + String keyDetail; + String detail; + String delete; + String passwordDetail; + String share; + String amend; + String sure; + String cancel; + String add; + String accountNumber; + String volumeAuthorizationLock; + String authorizedAdminTip; + String lockOperatingRecordTip; + String remoteUnlockingPageTip; + String currentMode; + String delayTime; + String automaticBlockingTip; + String time; + String normallyOpen; + String date; + String begin; + String end; + String allDay; + String save; + String normallyOpenModeTip; + String pleaseSeletLockVolume; + String lockSoundTip; + String low; + String lower; + String medium; + String high; + String higher; + String burglarAlarmTip; + String resetButtonTip; + String calibrationTime; + String setTheDSTMode; + String diagnoseTip; + String uploading; + String uploadDataTip; + String importOtherLockDataTip; + String haveNewVersion; + String currentVersion; + String newVersion; + String upgrade; + String leisure; + String checkedIn; + + String basicInformation; + String wirelessKeyboard; + String doorMagnetic; + String remoteUnlocking; + String automaticBlocking; + String normallyOpenMode; + String lockSound; + String burglarAlarm; + String resetButton; + String lockTime; + String diagnose; + String uploadData; + String importOtherLockData; + String lockEscalation; + String markedHouseState; + String unlockReminder; + String unlockQRCode; + String lockNumber; + String electricQuantity; + String lockName; + String lockGrouping; + String adminOpenLockPassword; + String update; + String updateElectricQuantityTip; + String adminOpenLockPasswordTip; + String updateLockAdminPassword; + String whenScreenFlashesClickNext; + String theScreenNeverFlickered; + String enterNumberOrPressSet; + String theLocationOfTheSetKeyWillBeDifferent; + String pressAndHoldTheResetButtonTwoSeconds; + String nearbyEquipment; + String noData; + String doorMagneticListTopTip; + + String lanEnglish; + String lanChinese; + String multilingual; + String addLock; + String gateway; + String message; + String supportStaff; + String set; + String moreServices; + + String moreSet; + String prompTone; + String touchUnlock; + String pushNotification; + String lockUserManagement; + String authorizedAdmin; + String lockGroup; + String transferSmartLock; + String transferGateway; + + String multiLanguage; + String lockScreen; + String closed; + String opened; + String hideInvalidUnlockPermissions; + String appUnlockRequiresMobilePhoneAccessToTheLock; + String valueAddedServices; + String about; + String userAgreement; + String privacyPolicy; + String personalInformationCollectionList; + String applicationPermissionDescription; + String thirdPartyInformationSharingList; + String logout; + String deleteAccount; + + String allLock; + String searchAllLockType; + String doorLock; + String padlock; + String safeLock; + String intelligentLockCore; + String parkingLock; + String bicycleLock; + String longRangeControl; + String lightTouchScreen; + String lightTouchScreenTip; + String next; + String nearbyLock; + String addSuccessfullyPleaseRename; + String whenAddingLockThePhoneMustBeNextToTheLock; + + String login; + String register; + String forgetPassword; + String readAndAgree; + String verificationCode; + String registerPasswordTip; + String iphone; + String email; + String countryAndRegion; + String selet; + + Map toJson() { + final map = {}; + map['starLock'] = starLock; + map['clickUnlockAndHoldDownClose'] = clickUnlockAndHoldDownClose; + map['checkingIn'] = checkingIn; + map['electronicKey'] = electronicKey; + map['password'] = password; + map['card'] = card; + map['fingerprint'] = fingerprint; + map['remoteControl'] = remoteControl; + map['operatingRecord'] = operatingRecord; + map['number'] = number; + map['additive'] = additive; + map['addTime'] = addTime; + + map['reset'] = reset; + map['sendKey'] = sendKey; + map['timeLimit'] = timeLimit; + map['permanent'] = permanent; + map['once'] = once; + map['circulation'] = circulation; + map['receiver'] = receiver; + map['pleaseEnterNumberOrEmail'] = pleaseEnterNumberOrEmail; + map['name'] = name; + map['enterYourName'] = enterYourName; + map['effectiveTime'] = effectiveTime; + map['failureTime'] = failureTime; + map['effectiveDate'] = effectiveDate; + map['failureDate'] = failureDate; + map['Monday'] = Monday; + map['Tuesday'] = Tuesday; + map['Wednesday'] = Wednesday; + map['Thursday'] = Thursday; + map['Friday'] = Friday; + map['Saturday'] = Saturday; + map['Sunday'] = Sunday; + + map['realNameAuthentication'] = realNameAuthentication; + map['sendKeyBottomTip'] = sendKeyBottomTip; + map['send'] = send; + map['periodValidity'] = periodValidity; + map['sendGroupKey'] = sendGroupKey; + map['lock'] = lock; + map['pleaseAdd'] = pleaseAdd; + map['pleaseSelet'] = pleaseSelet; + map['remoteUnlockingAllowed'] = remoteUnlockingAllowed; + map['pleaseEnter'] = pleaseEnter; + map['getPassword'] = getPassword; + + map['custom'] = custom; + map['clearAll'] = clearAll; + map['recursiveDevice'] = recursiveDevice; + map['pleaseNameYourPassword'] = pleaseNameYourPassword; + map['pleaseEnterDigitsNumber'] = pleaseEnterDigitsNumber; + map['getPasswordTip1'] = getPasswordTip1; + map['getPasswordTip2'] = getPasswordTip2; + map['getPasswordTip3'] = getPasswordTip3; + map['getPasswordTip4'] = getPasswordTip4; + map['getPasswordTip5'] = getPasswordTip5; + map['getPasswordTip6'] = getPasswordTip6; + map['getTip'] = getTip; + map['addTip'] = addTip; + map['sender'] = sender; + map['senderTime'] = senderTime; + map['keyDetail'] = keyDetail; + map['detail'] = detail; + map['delete'] = delete; + map['passwordDetail'] = passwordDetail; + map['share'] = share; + map['amend'] = amend; + map['sure'] = sure; + map['cancel'] = cancel; + map['add'] = add; + map['accountNumber'] = accountNumber; + map['volumeAuthorizationLock'] = volumeAuthorizationLock; + map['authorizedAdminTip'] = authorizedAdminTip; + map['lockOperatingRecordTip'] = lockOperatingRecordTip; + map['remoteUnlockingPageTip'] = remoteUnlockingPageTip; + map['currentMode'] = currentMode; + map['delayTime'] = delayTime; + map['automaticBlockingTip'] = automaticBlockingTip; + map['time'] = time; + map['normallyOpen'] = normallyOpen; + map['date'] = date; + map['begin'] = begin; + map['end'] = end; + map['allDay'] = allDay; + map['save'] = save; + map['normallyOpenModeTip'] = normallyOpenModeTip; + map['pleaseSeletLockVolume'] = pleaseSeletLockVolume; + map['lockSoundTip'] = lockSoundTip; + map['low'] = low; + map['lower'] = lower; + map['medium'] = medium; + map['high'] = high; + map['higher'] = higher; + map['burglarAlarmTip'] = burglarAlarmTip; + map['resetButtonTip'] = resetButtonTip; + map['calibrationTime'] = calibrationTime; + map['setTheDSTMode'] = setTheDSTMode; + map['diagnoseTip'] = diagnoseTip; + map['uploading'] = uploading; + map['uploadDataTip'] = uploadDataTip; + map['importOtherLockDataTip'] = importOtherLockDataTip; + map['haveNewVersion'] = haveNewVersion; + map['currentVersion'] = currentVersion; + map['newVersion'] = newVersion; + map['upgrade'] = upgrade; + map['leisure'] = leisure; + map['checkedIn'] = checkedIn; + + map['basicInformation'] = basicInformation; + map['wirelessKeyboard'] = wirelessKeyboard; + map['doorMagnetic'] = doorMagnetic; + map['remoteUnlocking'] = remoteUnlocking; + map['automaticBlocking'] = automaticBlocking; + map['normallyOpenMode'] = normallyOpenMode; + map['lockSound'] = lockSound; + map['burglarAlarm'] = burglarAlarm; + map['resetButton'] = resetButton; + map['lockTime'] = lockTime; + map['diagnose'] = diagnose; + map['uploadData'] = uploadData; + map['importOtherLockData'] = importOtherLockData; + map['lockEscalation'] = lockEscalation; + map['markedHouseState'] = markedHouseState; + map['unlockReminder'] = unlockReminder; + map['unlockQRCode'] = unlockQRCode; + map['lockNumber'] = lockNumber; + map['electricQuantity'] = electricQuantity; + map['lockName'] = lockName; + map['lockGrouping'] = lockGrouping; + map['adminOpenLockPassword'] = adminOpenLockPassword; + map['update'] = update; + map['updateElectricQuantityTip'] = updateElectricQuantityTip; + map['adminOpenLockPasswordTip'] = adminOpenLockPasswordTip; + map['updateLockAdminPassword'] = updateLockAdminPassword; + map['whenScreenFlashesClickNext'] = whenScreenFlashesClickNext; + map['theScreenNeverFlickered'] = theScreenNeverFlickered; + map['enterNumberOrPressSet'] = enterNumberOrPressSet; + map['theLocationOfTheSetKeyWillBeDifferent'] = theLocationOfTheSetKeyWillBeDifferent; + map['pressAndHoldTheResetButtonTwoSeconds'] = pressAndHoldTheResetButtonTwoSeconds; + map['nearbyEquipment'] = nearbyEquipment; + map['noData'] = noData; + map['doorMagneticListTopTip'] = doorMagneticListTopTip; + + map['lanEnglish'] = lanEnglish; + map['lanChinese'] = lanChinese; + map['multilingual'] = multilingual; + map['addLock'] = addLock; + map['gateway'] = gateway; + map['message'] = message; + map['supportStaff'] = supportStaff; + map['set'] = set; + map['moreServices'] = moreServices; + + map['moreSet'] = moreSet; + map['prompTone'] = prompTone; + map['touchUnlock'] = touchUnlock; + map['pushNotification'] = pushNotification; + map['lockUserManagement'] = lockUserManagement; + map['authorizedAdmin'] = authorizedAdmin; + map['lockGroup'] = lockGroup; + map['transferSmartLock'] = transferSmartLock; + map['transferGateway'] = transferGateway; + + map['multiLanguage'] = multiLanguage; + map['lockScreen'] = lockScreen; + map['closed'] = closed; + map['opened'] = opened; + map['hideInvalidUnlockPermissions'] = hideInvalidUnlockPermissions; + map['appUnlockRequiresMobilePhoneAccessToTheLock'] = appUnlockRequiresMobilePhoneAccessToTheLock; + map['valueAddedServices'] = valueAddedServices; + map['about'] = about; + map['userAgreement'] = userAgreement; + map['privacyPolicy'] = privacyPolicy; + map['personalInformationCollectionList'] = personalInformationCollectionList; + map['applicationPermissionDescription'] = applicationPermissionDescription; + map['thirdPartyInformationSharingList'] = thirdPartyInformationSharingList; + map['logout'] = logout; + map['deleteAccount'] = deleteAccount; + + map['allLock'] = allLock; + map['searchAllLockType'] = searchAllLockType; + map['doorLock'] = doorLock; + map['padlock'] = padlock; + map['safeLock'] = safeLock; + map['intelligentLockCore'] = intelligentLockCore; + map['parkingLock'] = parkingLock; + map['bicycleLock'] = bicycleLock; + map['longRangeControl'] = longRangeControl; + map['lightTouchScreen'] = lightTouchScreen; + map['lightTouchScreenTip'] = lightTouchScreenTip; + map['next'] = next; + map['nearbyLock'] = nearbyLock; + map['addSuccessfullyPleaseRename'] = addSuccessfullyPleaseRename; + map['whenAddingLockThePhoneMustBeNextToTheLock'] = whenAddingLockThePhoneMustBeNextToTheLock; + + map['login'] = login; + map['register'] = register; + map['forgetPassword'] = forgetPassword; + map['readAndAgree'] = readAndAgree; + map['verificationCode'] = verificationCode; + map['registerPasswordTip'] = registerPasswordTip; + map['iphone'] = iphone; + map['email'] = email; + map['countryAndRegion'] = countryAndRegion; + map['selet'] = selet; + return map; + } +} \ No newline at end of file diff --git a/star_lock/lib/translations/trans_lib.dart b/star_lock/lib/translations/trans_lib.dart new file mode 100644 index 00000000..b42e09dd --- /dev/null +++ b/star_lock/lib/translations/trans_lib.dart @@ -0,0 +1,9 @@ +library lib_trans; + +import 'dart:convert'; +import 'dart:ui'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'lanKeyEntity.dart'; +part 'translation_loader.dart'; +part 'translation_message.dart'; \ No newline at end of file diff --git a/star_lock/lib/translations/translation_loader.dart b/star_lock/lib/translations/translation_loader.dart new file mode 100644 index 00000000..9fb726b5 --- /dev/null +++ b/star_lock/lib/translations/translation_loader.dart @@ -0,0 +1,42 @@ +part of lib_trans; + + + +class TranslationLoader { + + static bool get isZh => Get.locale?.languageCode?.toLowerCase() == 'zh'; + static bool get isEn => Get.locale?.languageCode?.toLowerCase() == 'en'; + + static Map + _zhMap = {}, + _enMap = {}, + _keyMap = {}; + + static Map get zhDic => _zhMap; + static Map get enDic => _enMap; + + static LanKeyEntity _lanKeyEntity; + static LanKeyEntity get lanKeys => _lanKeyEntity; + + static Future loadTranslation({ + String zhSource, + String enSource, + String keySource,}) async { + _zhMap = await _loadJsonFile(zhSource); + _enMap = await _loadJsonFile(enSource); + _keyMap = await _loadJsonFile(keySource); + _lanKeyEntity = LanKeyEntity.fromJson(_keyMap); + } + + static Future> _loadJsonFile(String filePath) async => rootBundle.loadString(filePath).then((jsonString){ + Map enJson = jsonDecode(jsonString); + Map map = {}; + enJson.forEach((key, value) { + map[key] = value.toString(); + }); + return map; + }).onError((error, stackTrace){ + return Future.value({}); + }); + +} diff --git a/star_lock/lib/translations/translation_message.dart b/star_lock/lib/translations/translation_message.dart new file mode 100644 index 00000000..b554eacb --- /dev/null +++ b/star_lock/lib/translations/translation_message.dart @@ -0,0 +1,13 @@ +part of lib_trans; + +class TranslationMessage extends Translations { + + @override + Map> get keys => { + 'en_US' : TranslationLoader.enDic, + 'zh_CN': TranslationLoader.zhDic, + }; + + void updateLocal(Locale l) => Get.updateLocale(l); + +} \ No newline at end of file diff --git a/star_lock/linux/.gitignore b/star_lock/linux/.gitignore new file mode 100644 index 00000000..d3896c98 --- /dev/null +++ b/star_lock/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/star_lock/linux/CMakeLists.txt b/star_lock/linux/CMakeLists.txt new file mode 100644 index 00000000..62853b7e --- /dev/null +++ b/star_lock/linux/CMakeLists.txt @@ -0,0 +1,138 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "star_lock") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.star_lock") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/star_lock/linux/flutter/CMakeLists.txt b/star_lock/linux/flutter/CMakeLists.txt new file mode 100644 index 00000000..d5bd0164 --- /dev/null +++ b/star_lock/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/star_lock/linux/flutter/generated_plugin_registrant.cc b/star_lock/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 00000000..e71a16d2 --- /dev/null +++ b/star_lock/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/star_lock/linux/flutter/generated_plugin_registrant.h b/star_lock/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 00000000..e0f0a47b --- /dev/null +++ b/star_lock/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/star_lock/linux/flutter/generated_plugins.cmake b/star_lock/linux/flutter/generated_plugins.cmake new file mode 100644 index 00000000..2e1de87a --- /dev/null +++ b/star_lock/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/star_lock/linux/main.cc b/star_lock/linux/main.cc new file mode 100644 index 00000000..e7c5c543 --- /dev/null +++ b/star_lock/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/star_lock/linux/my_application.cc b/star_lock/linux/my_application.cc new file mode 100644 index 00000000..4e599fb3 --- /dev/null +++ b/star_lock/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "star_lock"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "star_lock"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/star_lock/linux/my_application.h b/star_lock/linux/my_application.h new file mode 100644 index 00000000..72271d5e --- /dev/null +++ b/star_lock/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/star_lock/macos/.gitignore b/star_lock/macos/.gitignore new file mode 100644 index 00000000..746adbb6 --- /dev/null +++ b/star_lock/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/star_lock/macos/Flutter/Flutter-Debug.xcconfig b/star_lock/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 00000000..4b81f9b2 --- /dev/null +++ b/star_lock/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/star_lock/macos/Flutter/Flutter-Release.xcconfig b/star_lock/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 00000000..5caa9d15 --- /dev/null +++ b/star_lock/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 00000000..47b97425 --- /dev/null +++ b/star_lock/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,16 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import device_info_plus +import package_info_plus +import path_provider_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) + FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) +} diff --git a/star_lock/macos/Podfile b/star_lock/macos/Podfile new file mode 100644 index 00000000..dade8dfa --- /dev/null +++ b/star_lock/macos/Podfile @@ -0,0 +1,40 @@ +platform :osx, '10.11' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/star_lock/macos/Runner.xcodeproj/project.pbxproj b/star_lock/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..00fe8982 --- /dev/null +++ b/star_lock/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,572 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* star_lock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "star_lock.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* star_lock.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* star_lock.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/star_lock/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/star_lock/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/star_lock/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/star_lock/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/star_lock/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..c1a85f2d --- /dev/null +++ b/star_lock/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/star_lock/macos/Runner.xcworkspace/contents.xcworkspacedata b/star_lock/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/star_lock/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/star_lock/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/star_lock/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/star_lock/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/star_lock/macos/Runner/AppDelegate.swift b/star_lock/macos/Runner/AppDelegate.swift new file mode 100644 index 00000000..d53ef643 --- /dev/null +++ b/star_lock/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..a2ec33f1 --- /dev/null +++ b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/star_lock/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +