diff --git a/star_lock/lib/blue/blue_manage.dart b/star_lock/lib/blue/blue_manage.dart index e14e419d..a2d8b501 100644 --- a/star_lock/lib/blue/blue_manage.dart +++ b/star_lock/lib/blue/blue_manage.dart @@ -399,15 +399,14 @@ class BlueManage { } // await bluetoothConnectDevice!.connect(); - Get.log("5555555:回调状态:$bluetoothConnectionState"); if (bluetoothConnectionState == BluetoothConnectionState.connected) { try { bluetoothConnectDevice!.discoverServices().then((services) { for (BluetoothService service in services) { - // Get.log("11111service.remoteId:${service.remoteId}" - // " service.uuid:${service.uuid}" - // " service.characteristics:${service.characteristics}" - // " service.includedServices:${service.includedServices}"); + Get.log("11111service.remoteId:${service.remoteId}" + " service.uuid:${service.uuid}" + " service.characteristics:${service.characteristics}" + " service.includedServices:${service.includedServices}"); if (service.uuid == _serviceIdConnect) { for (BluetoothCharacteristic characteristic in service.characteristics) { // Get.log("22222characteristic.remoteId:${characteristic.remoteId}" diff --git a/star_lock/lib/mine/mine/starLockMine_logic.dart b/star_lock/lib/mine/mine/starLockMine_logic.dart index 65af7e7c..fea21986 100644 --- a/star_lock/lib/mine/mine/starLockMine_logic.dart +++ b/star_lock/lib/mine/mine/starLockMine_logic.dart @@ -35,7 +35,7 @@ class StarLockMineLogic extends BaseGetXController { state.userEmail.value = (await Storage.getEmail())!; state.userHeadUrl.value = (await Storage.getHeadUrl())!; - Get.log("userNickName:${state.userNickName.value} userMobile:${state.userMobile.value} userEmail:${state.userEmail.value}"); + Get.log("userNickName:${state.userNickName.value} userMobile:${state.userMobile.value} userEmail:${state.userEmail.value} userHeadUrl:${state.userHeadUrl.value}"); } } diff --git a/star_lock/lib/mine/mine/starLockMine_page.dart b/star_lock/lib/mine/mine/starLockMine_page.dart index 2a413fc7..4bfa4f8b 100644 --- a/star_lock/lib/mine/mine/starLockMine_page.dart +++ b/star_lock/lib/mine/mine/starLockMine_page.dart @@ -69,24 +69,24 @@ class StarLockMinePageState extends State with BaseWidget { Get.back(); Get.toNamed(Routers.minePersonInfoPage); }, - child: Container( - width: 105.w, - height: 105.w, - // decoration: BoxDecoration( - // borderRadius: - // BorderRadius.all(Radius.circular(52.5.w)), - // ), - child: ClipRRect( - borderRadius: BorderRadius.circular(52.5.w), - child: CustomNetworkImage(url:state.userHeadUrl.value??"", width:105.w, height:105.h), - ), - // state.headUrl().isNotEmpty ? - // Image(image: NetworkImage(state.loginData.value.data!.headUrl!)) : - // Image.asset( - // 'images/mine/icon_mine_main_defaultAvatar.png', - // width: 60.w, - // height: 60.w) - ), + child: Obx(() => Container( + width: 105.w, + height: 105.w, + // decoration: BoxDecoration( + // borderRadius: + // BorderRadius.all(Radius.circular(52.5.w)), + // ), + child: ClipRRect( + borderRadius: BorderRadius.circular(52.5.w), + child: CustomNetworkImage(url:state.userHeadUrl.value??"", defaultUrl: 'images/controls_user.png', width:105.w, height:105.h), + ), + // state.headUrl().isNotEmpty ? + // Image(image: NetworkImage(state.loginData.value.data!.headUrl!)) : + // Image.asset( + // 'images/mine/icon_mine_main_defaultAvatar.png', + // width: 60.w, + // height: 60.w) + )), ), SizedBox( height: 20.h, diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/MinePersonInfoEditName_logic.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/MinePersonInfoEditName_logic.dart index 544dc7bf..4006fab0 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/MinePersonInfoEditName_logic.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/MinePersonInfoEditName_logic.dart @@ -1,3 +1,4 @@ + import 'dart:async'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; @@ -8,12 +9,12 @@ import '../../../../tools/baseGetXController.dart'; import '../../../tools/storage.dart'; class MinePersonInfoEditNameLogic extends BaseGetXController { - final MinePersonInfoEditNamePageState state = - MinePersonInfoEditNamePageState(); + final MinePersonInfoEditNamePageState state = MinePersonInfoEditNamePageState(); //更新个人信息-昵称 Future updateUserInfoRequest() async { - var entity = - await ApiRepository.to.updateUserInfo(state.inputNickName.value); + var entity = await ApiRepository.to.updateUserNameInfo( + nickname: state.inputNickName.value, + ); if (entity.errorCode!.codeIsSuccessful) { showToast("操作成功"); final loginData = await Storage.getLoginData(); diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_state.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_state.dart index 6b219c12..f997e17c 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_state.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoEditName/minePersonInfoEditName_state.dart @@ -1,7 +1,11 @@ import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; +import '../minePersonInfoPage/minePersonInfo_entity.dart'; + class MinePersonInfoEditNamePageState { + final mineInfoData = MinePersonInfoData().obs; + final TextEditingController nickNameController = TextEditingController(); final inputNickName = ''.obs; @@ -10,6 +14,8 @@ class MinePersonInfoEditNamePageState { MinePersonInfoEditNamePageState() { Map map = Get.arguments; - inputNickName.value = map["nickName"]; + mineInfoData.value = map["mineInfoData"]; + nickNameController.text = mineInfoData.value.nickname!; + inputNickName.value = mineInfoData.value.nickname!; } } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart index 167d7fd2..795a74de 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart @@ -1,28 +1,31 @@ import 'dart:async'; +import 'dart:io'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; +import '../../../tools/eventBusEventManage.dart'; +import '../../../tools/storage.dart'; import 'minePersonGetUploadFileInfo_entity.dart'; class MinePersonInfoLogic extends GetConnect { - final MinePersonInfoState state = MinePersonInfoState(); + MinePersonInfoState state = MinePersonInfoState(); + //用户信息 Future getUserInfoRequest() async { - MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo(""); + MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo(); if (entity.errorCode!.codeIsSuccessful) { state.mineInfoData.value = entity.data!; + state.headUrl.value = state.mineInfoData.value.headUrl!; } } //上传头像 先获取upToken 再调用updateUserInfo Future getUpTokenRequest(String filename, int size) async { var entity = await ApiRepository.to.getUpToken( - module: 'avatar', - typeKey: 'userId', - type: state.mineInfoData.value.uid!.toString(), + userId: state.mineInfoData.value.uid!.toString(), filename: filename, size: size); if (entity.errorCode!.codeIsSuccessful) { @@ -33,44 +36,32 @@ class MinePersonInfoLogic extends GetConnect { // 上传头像 void uploadFile(MinePersonGetUploadFileInfoEntity minePersonGetUploadFileInfoEntity) async { - // String json = JsonDecoder(minePersonGetUploadFileInfoEntity.data!.formData!); - - // var formData = FormData(); - // - // formData.files.add(MapEntry( - // "files", //后台接收的名字 - // MultipartFile(state.image!.path, filename: 'b'), - // )); - Map user = minePersonGetUploadFileInfoEntity.data!.formData!; - user[minePersonGetUploadFileInfoEntity.data!.fileField!] = state.image!.path; - final form = FormData(user); - var entity = await ApiRepository.to.uploadFile( - url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form); - if (entity.errorCode!.codeIsSuccessful) {} - - // final formData = FormData.fromMap({ - // 'file': await MultipartFile.fromFile(imageFile.path, contentType: MediaType.parse(mimeType)) - // }); - - // final form = FormData(user); - // Response response= await post(minePersonGetUploadFileInfoEntity.data!.uploadUrl, form); - // print("statusText:${response.statusText} statusCode:${response.statusCode} response:$response"); - } - - void postCases(List image) async { + var bytes = File(state.image!.path); + var enc = await bytes.readAsBytes(); + user[minePersonGetUploadFileInfoEntity.data!.fileField!] = enc; final form = FormData({ - 'file': MultipartFile(image, filename: 'avatar.png'), - 'otherFile': MultipartFile(image, filename: 'cover.png'), + 'file': MultipartFile(enc, filename: minePersonGetUploadFileInfoEntity.data!.formData!["key"]), }); - Response response = await post('http://youapi/users/upload', form); + var entity = await ApiRepository.to.uploadFile(url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form); + if (entity.errorCode! == -1) { + // 没有返回 返回null成功 + updateUserInfoRequest(minePersonGetUploadFileInfoEntity.data!.fileUrl!); + } } //更新个人信息-头像 - Future updateUserInfoRequest() async { - var entity = await ApiRepository.to - .updateUserInfo(state.mineInfoData.value.headUrl!); + Future updateUserInfoRequest(String headUrl) async { + var entity = await ApiRepository.to.updateUserHeadUrlInfo( + headUrl: headUrl + ); if (entity.errorCode!.codeIsSuccessful) { + state.headUrl.value = headUrl; + state.mineInfoData.value.headUrl = state.headUrl.value!; + final loginData = await Storage.getLoginData(); + loginData!.headUrl = headUrl; + await Storage.saveLoginData(loginData); + eventBus.fire(MineInfoChangeRefreshUI()); EasyLoading.showToast("操作成功", duration: 2000.milliseconds); } } @@ -80,7 +71,6 @@ class MinePersonInfoLogic extends GetConnect { // TODO: implement onReady super.onReady(); - getUserInfoRequest(); } @override @@ -88,6 +78,7 @@ class MinePersonInfoLogic extends GetConnect { // TODO: implement onInit super.onInit(); + getUserInfoRequest(); } @override diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart index 98043c78..c5f46a0b 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart @@ -60,20 +60,16 @@ class _MinePersonInfoPageState extends State backgroundColor: AppColors.mainColor), body: Column( children: [ - CommonItem( + Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.avatar!.tr, rightTitle: "", allHeight: 100.h, isHaveLine: true, isHaveDirection: true, isHaveRightWidget: true, - rightWidget: - Container( - // color: Colors.orange, - child: ClipRRect( - borderRadius: BorderRadius.circular(36.w), - child: CustomNetworkImage(url:"https://ui-avatars.com/api/?name=%E6%98%B5&color=7F9CF5&background=EBF4FF", width:72.w, height:72.w), - ), + rightWidget: ClipRRect( + borderRadius: BorderRadius.circular(36.w), + child: CustomNetworkImage(url:state.headUrl.value, defaultUrl: 'images/controls_user.png', width:72.w, height:72.w), ), // ClipOval( // child: state.image != null @@ -102,7 +98,7 @@ class _MinePersonInfoPageState extends State _openModalBottomSheet(); } }, - ), + )), Obx(() => CommonItem( leftTitel: TranslationLoader.lanKeys!.nickName!.tr, rightTitle: state.mineInfoData.value.nickname != null ? state.mineInfoData.value.nickname! : "", @@ -110,7 +106,7 @@ class _MinePersonInfoPageState extends State isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.minePersonInfoEditNamePage, - arguments: {'nickName': state.mineInfoData.value.nickname}) + arguments: {'mineInfoData': state.mineInfoData.value}) .then((value) => logic.getUserInfoRequest()); })), Obx(() => CommonItem( @@ -280,9 +276,11 @@ class _MinePersonInfoPageState extends State int getSelectIndex = value; if (getSelectIndex == 0) { //拍照选项 - state.hasCameraPermission.value == true ? selectCamera() : _requestCameraPermission(); + // state.hasCameraPermission.value == true ? selectCamera() : _requestCameraPermission(); + _checkCameraPermission(); } else if (getSelectIndex == 1) { - state.hasPhotoPermission.value == true ? selectImage() : _requestPhotoPermission(); + // state.hasPhotoPermission.value == true ? selectImage() : _requestPhotoPermission(); + _checkPhotoPermission(); } }, ); @@ -294,8 +292,9 @@ class _MinePersonInfoPageState extends State XFile? photo = await state.imagePicker.pickImage(source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear); if (photo != null) { state.image = photo; - // logic.getUpTokenRequest(); - setState(() {}); + var bytes = File(state.image!.path); + var enc = await bytes.readAsBytes(); + logic.getUpTokenRequest(state.image!.name, enc.length); } } @@ -310,37 +309,28 @@ class _MinePersonInfoPageState extends State state.image = image; var bytes = File(state.image!.path); var enc = await bytes.readAsBytes(); - print(enc.length); - print( - "state.image!.path:${state.image!.path} state.image!.name:${state.image!.name} state.image!.length():${state.image!.length()}"); logic.getUpTokenRequest(state.image!.name, enc.length); - setState(() {}); } } Future _checkCameraPermission() async { var status = await Permission.camera.status; if (status.isGranted) { - setState(() { - state.hasCameraPermission.value = true; // 如果权限已经被授予,更新状态变量 - }); + selectCamera(); } else { - setState(() { - state.hasCameraPermission.value = false; // 如果权限未被授予,更新状态变量 - }); + _requestCameraPermission(); } } Future _checkPhotoPermission() async { var status = await Permission.photos.status; if (status.isGranted) { - setState(() { - state.hasPhotoPermission.value = true; // 如果权限已经被授予,更新状态变量 - }); + selectImage(); } else { - setState(() { - state.hasPhotoPermission.value = false; // 如果权限未被授予,更新状态变量 - }); + // setState(() { + // state.hasPhotoPermission.value = false; // 如果权限未被授予,更新状态变量 + // }); + _requestPhotoPermission(); } } diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart index ac5e2f75..c884f770 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart @@ -4,6 +4,7 @@ import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_ class MinePersonInfoState { final mineInfoData = MinePersonInfoData().obs; + final headUrl = ''.obs; var typeStr = '2'.obs; //2:上传头像 @@ -15,4 +16,6 @@ class MinePersonInfoState { var hasPhotoPermission = false.obs; //是否有相册权限 var hasCameraPermission = false.obs; //是否有相机权限 + + } diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index 7782a639..8f9cd047 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -175,8 +175,7 @@ abstract class Api { '/safeAnswer/getOwnQuestionList'; //获取已设置的安全信息 final String updateSafeAnswerURL = '/safeAnswer/update'; //修改安全信息 final String setSafeAnswerURL = '/safeAnswer/set'; //设置安全信息 - final String getUpTokenURL = - '/file/getUploadParams'; //上传头像 先获取upToken 再调用updateUserInfo + final String getUpTokenURL = '/file/getUploadParams'; //上传头像 先获取upToken 再调用updateUserInfo final String unbindPhoneTokenURL = '/user/unbindPhoneToken'; //获取解绑手机号Token final String unbindEmailTokenURL = '/user/unbindEmailToken'; //获取解绑邮箱Token final String pushBindAppIdURL = '/user/bindAppId'; //推送绑定APP设备 diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 7b7303f6..82a4470b 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -1555,9 +1555,17 @@ class ApiProvider extends BaseProvider { 'xWidth': xWidth, })); - //更新个人信息-头像/昵称 - Future updateUserInfo(String nickname) => - post(updateUserInfoURL.toUrl, jsonEncode({'nickname': nickname})); + //更新个人信息-昵称 + Future updateUserNameInfo(String nickname) => + post(updateUserInfoURL.toUrl, jsonEncode({ + 'nickname': nickname, + })); + + //更新个人信息-头像 + Future updateUserHeadUrlInfo(String headUrl) => + post(updateUserInfoURL.toUrl, jsonEncode({ + 'headUrl': headUrl, + })); //修改绑定手机号 Future bindPhone(String countryCode, String account, @@ -1617,20 +1625,23 @@ class ApiProvider extends BaseProvider { jsonEncode({"questionAndAnswerList": questionAndAnswerList})); // 获取上传文件的upToken 再调用updateUserInfo - Future getUpToken(String module, String typeKey, String type, - String filename, int size) => + Future getUpHeadToken( + String userId, + String filename, + int size, + ) => post( getUpTokenURL.toUrl, jsonEncode({ - "module": module, - typeKey: type, + "module": "avatar", + "userId": userId, "filename": filename, "size": size, })); // 文件上传 Future uploadFile(String url, dynamic boay) => post(url, boay, - isUnUploadFile: false, contentType: 'multipart/form-data'); + isUnUploadFile: false, contentType: 'multipart/form-data', isUserBaseUrl: false); //获取解绑手机号Token Future unbindPhoneToken(String verificationCode) => post( diff --git a/star_lock/lib/network/api_provider_base.dart b/star_lock/lib/network/api_provider_base.dart index 2821339e..e38b52b6 100644 --- a/star_lock/lib/network/api_provider_base.dart +++ b/star_lock/lib/network/api_provider_base.dart @@ -29,10 +29,17 @@ class BaseProvider extends GetConnect with Api { Decoder? decoder, bool? isUnUploadFile = true, Progress? uploadProgress, - bool? isUnShowLoading = false}) async { + bool? isUnShowLoading = false,// 是否显示loading + bool? isUserBaseUrl = true,// 文件上传不使用baseUrl + }) async { // print("post: url:${url} body:${body} contentType:${contentType} headers:${headers} query:${query}"); if (isUnShowLoading == false) EasyLoading.show(); // print('请求url======>$url'); + if (isUserBaseUrl == false){ + httpClient.baseUrl = ''; + }else{ + httpClient.baseUrl = '${F.apiPrefix}/api'; + } print('请求body体======>$body'); var res = await super.post(url, body, contentType: contentType, @@ -59,7 +66,7 @@ class BaseProvider extends GetConnect with Api { statusText: res.statusText, ); } else {} - // print('得到的数据======>${res.bodyString}'); + print('得到的数据======>${res.bodyString}'); getDataResult(res.body); return res; } diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 4c674ea2..095a094d 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -1573,8 +1573,8 @@ class ApiRepository { } //获取个人信息 - Future getUserInfo(String operatorUid) async { - final res = await apiProvider.getUserInfo(operatorUid); + Future getUserInfo() async { + final res = await apiProvider.getUserInfo(""); return MinePersonInfoEntity.fromJson(res.body); } @@ -1596,9 +1596,21 @@ class ApiRepository { return SendValidationCodeEntity.fromJson(res.body); } - //更新个人信息-头像/昵称 - Future updateUserInfo(String nickname) async { - final res = await apiProvider.updateUserInfo(nickname); + //更新个人信息-昵称 + Future updateUserNameInfo( + { + required String nickname, + }) async { + final res = await apiProvider.updateUserNameInfo(nickname); + return PasswordKeyListEntity.fromJson(res.body); + } + + //更新个人信息-头像 + Future updateUserHeadUrlInfo( + { + required String headUrl + }) async { + final res = await apiProvider.updateUserHeadUrlInfo(headUrl); return PasswordKeyListEntity.fromJson(res.body); } @@ -1652,14 +1664,13 @@ class ApiRepository { } //上传头像 先获取upToken 再调用updateUserInfo - Future getUpToken( - {required String module, - required String typeKey, - required String type, - required String filename, - required int size}) async { + Future getUpToken({ + required String userId, + required String filename, + required int size, + }) async { final res = - await apiProvider.getUpToken(module, typeKey, type, filename, size); + await apiProvider.getUpHeadToken(userId, filename, size); return MinePersonGetUploadFileInfoEntity.fromJson(res.body); } diff --git a/star_lock/lib/network/response_interceptor_log.dart b/star_lock/lib/network/response_interceptor_log.dart index 58552bea..6d7401f3 100644 --- a/star_lock/lib/network/response_interceptor_log.dart +++ b/star_lock/lib/network/response_interceptor_log.dart @@ -4,8 +4,7 @@ import 'package:get/get.dart'; import 'package:get/get_connect/http/src/request/request.dart'; FutureOr responseLogInterceptor(Request request, Response response) { - Get.log( - 'HTTP request:${request.url}\n RESPONSE => stataCode:${response.statusCode} ${response.bodyString} ${response.headers}'); + // Get.log('HTTP request:${request.url}\n RESPONSE => stataCode:${response.statusCode} ${response.bodyString} ${response.headers}'); EasyLoading.dismiss(animation: true); return response; } diff --git a/star_lock/lib/tools/customNetworkImage.dart b/star_lock/lib/tools/customNetworkImage.dart index a7827be7..6b14818b 100644 --- a/star_lock/lib/tools/customNetworkImage.dart +++ b/star_lock/lib/tools/customNetworkImage.dart @@ -8,14 +8,15 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; class CustomNetworkImage extends StatelessWidget { final String url; + final String defaultUrl; final double width; final double height; final BoxFit boxFit; - const CustomNetworkImage({Key? key, required this.url, required this.width, required this.height, this.boxFit=BoxFit.cover}) : super(key: key); + const CustomNetworkImage({Key? key, required this.url, required this.defaultUrl, required this.width, required this.height, this.boxFit=BoxFit.cover}) : super(key: key); @override Widget build(BuildContext context) { - return CachedNetworkImage( + return url.isNotEmpty ? CachedNetworkImage( width: width, height: height, fit: boxFit, @@ -28,7 +29,17 @@ class CustomNetworkImage extends StatelessWidget { colorFilter: const ColorFilter.mode(Colors.transparent, BlendMode.colorBurn)), ), ), - errorWidget: (context, url, error) => Icon(Icons.error,size: 40.sp) + errorWidget: (context, url, error) => Image.asset( + defaultUrl, + width: width, + height: height, + fit: BoxFit.fill, + ), + ) :Image.asset( + defaultUrl, + width: width, + height: height, + fit: BoxFit.fill, ); } } diff --git a/star_lock/lib/tools/storage.dart b/star_lock/lib/tools/storage.dart index 84061fda..7a242c5c 100644 --- a/star_lock/lib/tools/storage.dart +++ b/star_lock/lib/tools/storage.dart @@ -187,7 +187,7 @@ class Storage { if (data != null && data.isNotEmpty) { loginData = LoginData.fromJson(jsonDecode(data)); } - print("loginData:$loginData"); + // print("loginData:$loginData"); return loginData; } diff --git a/star_lock/lib/versionUndate/versionUndateTool.dart b/star_lock/lib/versionUndate/versionUndateTool.dart index ef5224d4..2e2fc2f7 100644 --- a/star_lock/lib/versionUndate/versionUndateTool.dart +++ b/star_lock/lib/versionUndate/versionUndateTool.dart @@ -78,6 +78,7 @@ class VersionUndateTool { builder: (context) { return CupertinoAlertDialog( content: Column( + mainAxisSize: MainAxisSize.min, children: [ Container( // color: AppColors.mainColor,