修改拍照头像上传慢的问题
This commit is contained in:
parent
0fe024bc9f
commit
0e38550b94
@ -1,14 +1,19 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/login/login/entity/LoginData.dart';
|
||||
import 'package:star_lock/login/login/entity/LoginEntity.dart';
|
||||
import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart';
|
||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
|
||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_state.dart';
|
||||
import 'package:star_lock/widget/permission/permission_dialog.dart';
|
||||
import '../../../../network/api_repository.dart';
|
||||
import '../../../../tools/baseGetXController.dart';
|
||||
import '../../../app_settings/app_settings.dart';
|
||||
import '../../../tools/eventBusEventManage.dart';
|
||||
import '../../../tools/storage.dart';
|
||||
import 'minePersonGetUploadFileInfo_entity.dart';
|
||||
@ -18,7 +23,7 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
//用户信息
|
||||
Future<void> getUserInfoRequest() async {
|
||||
MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo();
|
||||
final MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo();
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
state.mineInfoData.value = entity.data!;
|
||||
state.headUrl.value = state.mineInfoData.value.headUrl!;
|
||||
@ -27,7 +32,7 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
//上传头像 先获取upToken 再调用updateUserInfo
|
||||
Future<void> getUpTokenRequest(String filename, int size) async {
|
||||
var entity = await ApiRepository.to.getUpToken(
|
||||
final MinePersonGetUploadFileInfoEntity entity = await ApiRepository.to.getUpToken(
|
||||
userId: state.mineInfoData.value.uid!.toString(),
|
||||
filename: filename,
|
||||
size: size);
|
||||
@ -41,18 +46,18 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
MinePersonGetUploadFileInfoEntity
|
||||
minePersonGetUploadFileInfoEntity) async {
|
||||
// Map<String, dynamic> user = minePersonGetUploadFileInfoEntity.data!.formData!;
|
||||
var bytes = File(state.image!.path);
|
||||
var enc = await bytes.readAsBytes();
|
||||
final File bytes = File(state.image!.path);
|
||||
final Uint8List enc = await bytes.readAsBytes();
|
||||
// user[minePersonGetUploadFileInfoEntity.data!.fileField!] = enc;
|
||||
|
||||
final form = FormData(minePersonGetUploadFileInfoEntity.data!.formData!);
|
||||
final FormData form = FormData(minePersonGetUploadFileInfoEntity.data!.formData!);
|
||||
form.files.add(MapEntry(
|
||||
minePersonGetUploadFileInfoEntity.data!.fileField!,
|
||||
MultipartFile(enc,
|
||||
filename:
|
||||
minePersonGetUploadFileInfoEntity.data!.formData!["key"])));
|
||||
minePersonGetUploadFileInfoEntity.data!.formData!['key'])));
|
||||
|
||||
var entity = await ApiRepository.to.uploadFile(
|
||||
final LoginEntity entity = await ApiRepository.to.uploadFile(
|
||||
url: minePersonGetUploadFileInfoEntity.data!.uploadUrl!, body: form);
|
||||
if (entity.errorCode! == -1) {
|
||||
// 没有返回 返回null成功
|
||||
@ -62,15 +67,15 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
//更新个人信息-头像
|
||||
Future<void> updateUserInfoRequest(String headUrl) async {
|
||||
var entity = await ApiRepository.to.updateUserHeadUrlInfo(headUrl: headUrl);
|
||||
final PasswordKeyListEntity 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();
|
||||
final LoginData? loginData = await Storage.getLoginData();
|
||||
loginData!.headUrl = headUrl;
|
||||
await Storage.saveLoginData(loginData);
|
||||
eventBus.fire(MineInfoChangeRefreshUI());
|
||||
showToast("上传成功".tr);
|
||||
showToast('上传成功'.tr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,34 +91,38 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
///拍摄照片
|
||||
Future<void> selectCamera() async {
|
||||
XFile? photo = await state.imagePicker.pickImage(
|
||||
source: ImageSource.camera, preferredCameraDevice: CameraDevice.rear);
|
||||
final XFile? photo = await state.imagePicker.pickImage(
|
||||
source: ImageSource.camera,
|
||||
maxHeight: 250,
|
||||
maxWidth: 250,
|
||||
imageQuality: 80
|
||||
);
|
||||
if (photo != null) {
|
||||
state.image = photo;
|
||||
var bytes = File(state.image!.path);
|
||||
var enc = await bytes.readAsBytes();
|
||||
final File bytes = File(state.image!.path);
|
||||
final Uint8List enc = await bytes.readAsBytes();
|
||||
getUpTokenRequest(state.image!.name, enc.length);
|
||||
}
|
||||
}
|
||||
|
||||
///从相册选取
|
||||
Future<void> selectImage() async {
|
||||
XFile? image = await state.imagePicker.pickImage(
|
||||
final XFile? image = await state.imagePicker.pickImage(
|
||||
source: ImageSource.gallery,
|
||||
maxHeight: 250,
|
||||
maxWidth: 250,
|
||||
);
|
||||
if (image != null) {
|
||||
state.image = image;
|
||||
var bytes = File(state.image!.path);
|
||||
var enc = await bytes.readAsBytes();
|
||||
final File bytes = File(state.image!.path);
|
||||
final Uint8List enc = await bytes.readAsBytes();
|
||||
getUpTokenRequest(state.image!.name, enc.length);
|
||||
}
|
||||
}
|
||||
|
||||
//权限判断 访问相机
|
||||
Future<void> _checkCameraPermission() async {
|
||||
var status = await PermissionDialog.request(Permission.camera);
|
||||
final bool status = await PermissionDialog.request(Permission.camera);
|
||||
if (status) {
|
||||
selectCamera();
|
||||
}
|
||||
@ -121,7 +130,7 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
//权限判断 访问相册
|
||||
Future<void> _checkPhotoPermission() async {
|
||||
var status = await PermissionDialog.requestPhotos();
|
||||
final bool status = await PermissionDialog.requestPhotos();
|
||||
if (status) {
|
||||
selectImage();
|
||||
}
|
||||
@ -129,13 +138,11 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
// TODO: implement onReady
|
||||
super.onReady();
|
||||
}
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
// TODO: implement onInit
|
||||
super.onInit();
|
||||
|
||||
getUserInfoRequest();
|
||||
@ -143,6 +150,5 @@ class MinePersonInfoLogic extends BaseGetXController {
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
// TODO: implement onClose
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:star_lock/app_settings/app_colors.dart';
|
||||
import 'package:star_lock/flavors.dart';
|
||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
|
||||
import 'package:get/get.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
|
||||
|
||||
class MinePersonInfoState {
|
||||
final mineInfoData = MinePersonInfoData().obs;
|
||||
final headUrl = ''.obs;
|
||||
final Rx<MinePersonInfoData> mineInfoData = MinePersonInfoData().obs;
|
||||
final RxString headUrl = ''.obs;
|
||||
|
||||
var typeStr = '2'.obs; //2:上传头像
|
||||
RxString typeStr = '2'.obs; //2:上传头像
|
||||
|
||||
// ImagePicker获取内容后返回的对象是XFile
|
||||
XFile? image;
|
||||
@ -14,8 +15,8 @@ class MinePersonInfoState {
|
||||
// 使用ImagePicker前必须先实例化
|
||||
final ImagePicker imagePicker = ImagePicker();
|
||||
|
||||
var hasPhotoPermission = false.obs; //是否有相册权限
|
||||
var hasCameraPermission = false.obs; //是否有相机权限
|
||||
RxBool hasPhotoPermission = false.obs; //是否有相册权限
|
||||
RxBool hasCameraPermission = false.obs; //是否有相机权限
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -205,7 +205,8 @@ dependencies:
|
||||
file_picker: ^5.3.1
|
||||
# 错误日志监控
|
||||
flutter_bugly_plugin: ^0.0.9
|
||||
|
||||
# 图片压缩
|
||||
flutter_image_compress: ^2.3.0
|
||||
|
||||
dependency_overrides:
|
||||
#强制设置google_maps_flutter_ios 为 2.5.2
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user