mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-06-25 11:14:07 +00:00
print avatar warning
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run
This commit is contained in:
parent
0ab6eba47d
commit
83fd99ea70
3 changed files with 35 additions and 20 deletions
|
|
@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:twonly/globals.dart';
|
import 'package:twonly/globals.dart';
|
||||||
import 'package:twonly/locator.dart';
|
import 'package:twonly/locator.dart';
|
||||||
|
import 'package:twonly/src/utils/log.dart';
|
||||||
|
|
||||||
String getAvatarSvg(Uint8List avatarSvgCompressed) {
|
String getAvatarSvg(Uint8List avatarSvgCompressed) {
|
||||||
return utf8.decode(gzip.decode(avatarSvgCompressed));
|
return utf8.decode(gzip.decode(avatarSvgCompressed));
|
||||||
|
|
@ -16,6 +17,7 @@ Future<void> createPushAvatars({int? forceForUserId}) async {
|
||||||
final contacts = await twonlyDB.contactsDao.getAllContacts();
|
final contacts = await twonlyDB.contactsDao.getAllContacts();
|
||||||
|
|
||||||
for (final contact in contacts) {
|
for (final contact in contacts) {
|
||||||
|
try {
|
||||||
if (contact.avatarSvgCompressed == null) continue;
|
if (contact.avatarSvgCompressed == null) continue;
|
||||||
|
|
||||||
if (forceForUserId == null) {
|
if (forceForUserId == null) {
|
||||||
|
|
@ -29,7 +31,10 @@ Future<void> createPushAvatars({int? forceForUserId}) async {
|
||||||
|
|
||||||
final avatarSvg = getAvatarSvg(contact.avatarSvgCompressed!);
|
final avatarSvg = getAvatarSvg(contact.avatarSvgCompressed!);
|
||||||
|
|
||||||
final pictureInfo = await vg.loadPicture(SvgStringLoader(avatarSvg), null);
|
final pictureInfo = await vg.loadPicture(
|
||||||
|
SvgStringLoader(avatarSvg),
|
||||||
|
null,
|
||||||
|
);
|
||||||
|
|
||||||
final image = await pictureInfo.picture.toImage(270, 300);
|
final image = await pictureInfo.picture.toImage(270, 300);
|
||||||
|
|
||||||
|
|
@ -38,6 +43,9 @@ Future<void> createPushAvatars({int? forceForUserId}) async {
|
||||||
|
|
||||||
await avatarPNGFile(contact.userId).writeAsBytes(pngBytes);
|
await avatarPNGFile(contact.userId).writeAsBytes(pngBytes);
|
||||||
pictureInfo.picture.dispose();
|
pictureInfo.picture.dispose();
|
||||||
|
} catch (e) {
|
||||||
|
Log.error(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:twonly/locator.dart';
|
import 'package:twonly/locator.dart';
|
||||||
import 'package:twonly/src/database/twonly.db.dart';
|
import 'package:twonly/src/database/twonly.db.dart';
|
||||||
import 'package:twonly/src/utils/avatars.dart';
|
import 'package:twonly/src/utils/avatars.dart';
|
||||||
|
import 'package:twonly/src/utils/log.dart';
|
||||||
import 'package:vector_graphics/vector_graphics.dart';
|
import 'package:vector_graphics/vector_graphics.dart';
|
||||||
|
|
||||||
class AvatarIcon extends StatefulWidget {
|
class AvatarIcon extends StatefulWidget {
|
||||||
|
|
@ -64,6 +65,12 @@ class _AvatarIconState extends State<AvatarIcon> {
|
||||||
errorBuilder: errorBuilder,
|
errorBuilder: errorBuilder,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.warn(
|
||||||
|
'PNG avatar file for contact ${contact.userId} does not exist. Generating in background.',
|
||||||
|
);
|
||||||
|
unawaited(createPushAvatars(forceForUserId: contact.userId));
|
||||||
|
|
||||||
if (contact.avatarSvgCompressed != null) {
|
if (contact.avatarSvgCompressed != null) {
|
||||||
return SvgPicture.string(
|
return SvgPicture.string(
|
||||||
getAvatarSvg(contact.avatarSvgCompressed!),
|
getAvatarSvg(contact.avatarSvgCompressed!),
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.3.1+140
|
version: 0.3.1+141
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.11.0
|
sdk: ^3.11.0
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue