mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-12-26 12:58:51 +00:00
Force square account image
This commit is contained in:
parent
e70aaabbc9
commit
f8910c8f8b
@ -8,6 +8,7 @@ import 'package:file_picker/file_picker.dart';
|
||||
import 'package:filesize/filesize.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:image_cropper/image_cropper.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:mime/mime.dart';
|
||||
|
||||
@ -91,6 +92,7 @@ Future<BytesFile> showPickFileDialog({
|
||||
List<String> allowedMimeTypes,
|
||||
int imageMaxWidth,
|
||||
int imageMaxHeight,
|
||||
CropAspectRatio aspectRatio,
|
||||
}) async {
|
||||
assert(allowedMimeTypes != null);
|
||||
|
||||
@ -133,7 +135,7 @@ Future<BytesFile> showPickFileDialog({
|
||||
|
||||
file = BytesFile(image.path.split("/").last, await image.readAsBytes());
|
||||
|
||||
file = await showImageCropper(context, file);
|
||||
file = await showImageCropper(context, file, aspectRatio: aspectRatio);
|
||||
|
||||
break;
|
||||
|
||||
|
@ -17,8 +17,8 @@ import '../../utils/files_utils.dart';
|
||||
/// Attempt to crop image
|
||||
///
|
||||
/// Return original image in case of error / if the user did not crop the image
|
||||
Future<BytesFile> showImageCropper(
|
||||
BuildContext context, BytesFile source) async {
|
||||
Future<BytesFile> showImageCropper(BuildContext context, BytesFile source,
|
||||
{CropAspectRatio aspectRatio}) async {
|
||||
assert(context != null);
|
||||
assert(source != null);
|
||||
|
||||
@ -32,6 +32,7 @@ Future<BytesFile> showImageCropper(
|
||||
File cropped = await ImageCropper.cropImage(
|
||||
sourcePath: file.absolute.path,
|
||||
compressFormat: ImageCompressFormat.png,
|
||||
aspectRatio: aspectRatio,
|
||||
androidUiSettings: AndroidUiSettings(
|
||||
toolbarColor: Colors.black,
|
||||
toolbarTitle: tr("Crop Photo"),
|
||||
|
@ -12,6 +12,7 @@ import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:identicon/identicon.dart';
|
||||
import 'package:image_cropper/image_cropper.dart';
|
||||
import 'package:random_string/random_string.dart';
|
||||
import 'package:settings_ui/settings_ui.dart';
|
||||
|
||||
@ -160,7 +161,8 @@ class _AccountImageSettingsScreenState
|
||||
/// Upload a new account image
|
||||
void _uploadAccountImage() async {
|
||||
try {
|
||||
final image = await pickImage(context);
|
||||
final image = await pickImage(context,
|
||||
aspectRatio: CropAspectRatio(ratioX: 5, ratioY: 5));
|
||||
|
||||
if (image == null) return;
|
||||
|
||||
|
@ -254,7 +254,7 @@ class _PostCreateFormWidgetState extends State<PostCreateFormWidget> {
|
||||
});
|
||||
} catch (e, s) {
|
||||
logError(e, s);
|
||||
snack(context, tr("Failed to pick image for post!"));
|
||||
snack(context, tr("Failed to pick an image for the post!"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:image_cropper/image_cropper.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:random_string/random_string.dart';
|
||||
@ -15,12 +16,14 @@ import '../ui/dialogs/pick_file_dialog.dart';
|
||||
/// Ask the user to choose an image, either from the gallery or using the camera
|
||||
///
|
||||
/// Throws an exception null in case of failure
|
||||
Future<BytesFile> pickImage(BuildContext context) async {
|
||||
Future<BytesFile> pickImage(BuildContext context,
|
||||
{CropAspectRatio aspectRatio}) async {
|
||||
return await showPickFileDialog(
|
||||
context: context,
|
||||
allowedMimeTypes: ["image/png", "image/jpeg", "image/gif"],
|
||||
imageMaxHeight: 10000,
|
||||
imageMaxWidth: 10000,
|
||||
aspectRatio: aspectRatio,
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user