opt: pick avatar

This commit is contained in:
bggRGjQaUbCoE
2024-11-01 16:02:11 +08:00
parent 23bd32a35c
commit 7d0056464a
4 changed files with 12 additions and 2 deletions

View File

@@ -272,6 +272,7 @@ class _CreatePanelState extends State<CreatePanel> {
dynamic result = await MsgHttp.uploadBfs( dynamic result = await MsgHttp.uploadBfs(
path: _pathList[i], path: _pathList[i],
category: 'daily', category: 'daily',
biz: 'new_dyn',
); );
if (result['status']) { if (result['status']) {
int imageSize = await File(_pathList[i]).length(); int imageSize = await File(_pathList[i]).length();

View File

@@ -3,6 +3,7 @@ import 'package:PiliPalaX/common/widgets/http_error.dart';
import 'package:PiliPalaX/http/constants.dart'; import 'package:PiliPalaX/http/constants.dart';
import 'package:PiliPalaX/http/index.dart'; import 'package:PiliPalaX/http/index.dart';
import 'package:PiliPalaX/http/loading_state.dart'; import 'package:PiliPalaX/http/loading_state.dart';
import 'package:PiliPalaX/utils/extension.dart';
import 'package:PiliPalaX/utils/storage.dart'; import 'package:PiliPalaX/utils/storage.dart';
import 'package:PiliPalaX/utils/utils.dart'; import 'package:PiliPalaX/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
@@ -15,6 +16,7 @@ import 'package:get/get.dart' hide FormData, MultipartFile;
import 'package:image_cropper/image_cropper.dart'; import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:mime/mime.dart';
enum ProfileType { uname, sign, sex, birthday } enum ProfileType { uname, sign, sex, birthday }
@@ -451,6 +453,12 @@ class _EditProfilePageState extends State<EditProfilePage> {
imageQuality: 100, imageQuality: 100,
); );
if (pickedFile != null && mounted) { if (pickedFile != null && mounted) {
String? mimeType =
lookupMimeType(pickedFile.path)?.split('/').getOrNull(1);
if (mimeType == 'gif') {
SmartDialog.showToast('不能选GIF');
return;
}
CroppedFile? croppedFile = await ImageCropper().cropImage( CroppedFile? croppedFile = await ImageCropper().cropImage(
sourcePath: pickedFile.path, sourcePath: pickedFile.path,
uiSettings: [ uiSettings: [

View File

@@ -169,7 +169,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
InlineSpan _buildContent(String content) { InlineSpan _buildContent(String content) {
final List<InlineSpan> spanChildren = <InlineSpan>[]; final List<InlineSpan> spanChildren = <InlineSpan>[];
RegExp urlRegExp = RegExp( RegExp urlRegExp = RegExp(
'#\\{([^}]*)\\}\\{"?([^}]*)"?\\}|https?:\\/\\/[^\\s/\$.?#].[^\\s]*|www\\.[^\\s/\$.?#].[^\\s]*'); r'#\{([^}]*)\}\{([^}]*)\}|https?:\/\/[^\s/\$.?#].[^\s]*|www\.[^\s/\$.?#].[^\s]*');
content.splitMapJoin( content.splitMapJoin(
urlRegExp, urlRegExp,
onMatch: (Match match) { onMatch: (Match match) {
@@ -181,7 +181,7 @@ class _SysMsgPageState extends State<SysMsgPage> {
recognizer: TapGestureRecognizer() recognizer: TapGestureRecognizer()
..onTap = () { ..onTap = () {
try { try {
Uri uri = Uri.parse(match[2]!); Uri uri = Uri.parse(match[2]!.replaceAll('"', ''));
PiliScheme.routePush(uri); PiliScheme.routePush(uri);
} catch (err) { } catch (err) {
SmartDialog.showToast(err.toString()); SmartDialog.showToast(err.toString());

View File

@@ -480,6 +480,7 @@ class _ReplyPageState extends State<ReplyPage>
dynamic result = await MsgHttp.uploadBfs( dynamic result = await MsgHttp.uploadBfs(
path: _pathList[i], path: _pathList[i],
category: 'daily', category: 'daily',
biz: 'new_dyn',
); );
if (result['status']) { if (result['status']) {
int imageSize = await File(_pathList[i]).length(); int imageSize = await File(_pathList[i]).length();