mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 09:08:40 +00:00
fix avatar_maker update
This commit is contained in:
parent
3cab405ec3
commit
e13712459a
2 changed files with 37 additions and 22 deletions
|
|
@ -4,12 +4,24 @@ import 'package:flutter/material.dart';
|
|||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:twonly/src/services/api/messages.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
import "package:get/get.dart";
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
|
||||
class ModifyAvatar extends StatelessWidget {
|
||||
class ModifyAvatar extends StatefulWidget {
|
||||
const ModifyAvatar({super.key});
|
||||
|
||||
@override
|
||||
State<ModifyAvatar> createState() => _ModifyAvatarState();
|
||||
}
|
||||
|
||||
class _ModifyAvatarState extends State<ModifyAvatar> {
|
||||
final AvatarMakerController _avatarMakerController =
|
||||
PersistentAvatarMakerController(customizedPropertyCategories: []);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Future updateUserAvatar(String json, String svg) async {
|
||||
await updateUserdata((user) {
|
||||
user.avatarJson = json;
|
||||
|
|
@ -80,6 +92,7 @@ class ModifyAvatar extends StatelessWidget {
|
|||
child: AvatarMakerAvatar(
|
||||
radius: 130,
|
||||
backgroundColor: Colors.transparent,
|
||||
controller: _avatarMakerController,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
|
|
@ -89,11 +102,10 @@ class ModifyAvatar extends StatelessWidget {
|
|||
IconButton(
|
||||
icon: FaIcon(FontAwesomeIcons.floppyDisk),
|
||||
onPressed: () async {
|
||||
final avatarMakerController =
|
||||
Get.find<AvatarMakerController>();
|
||||
await avatarMakerController.saveAvatarSVG();
|
||||
final json = avatarMakerController.getJsonOptionsSync();
|
||||
final svg = avatarMakerController.getAvatarSVGSync();
|
||||
await _avatarMakerController.saveAvatarSVG();
|
||||
final json =
|
||||
_avatarMakerController.getJsonOptionsSync();
|
||||
final svg = _avatarMakerController.getAvatarSVGSync();
|
||||
await updateUserAvatar(json, svg);
|
||||
if (context.mounted) {
|
||||
Navigator.pop(context);
|
||||
|
|
@ -103,17 +115,13 @@ class ModifyAvatar extends StatelessWidget {
|
|||
IconButton(
|
||||
icon: FaIcon(FontAwesomeIcons.shuffle),
|
||||
onPressed: () {
|
||||
final avatarmakerController =
|
||||
Get.find<AvatarMakerController>();
|
||||
avatarmakerController.randomizedSelectedOptions();
|
||||
_avatarMakerController.randomizedSelectedOptions();
|
||||
},
|
||||
),
|
||||
IconButton(
|
||||
icon: Icon(FontAwesomeIcons.rotateLeft),
|
||||
onPressed: () {
|
||||
final avatarMakerController =
|
||||
Get.find<AvatarMakerController>();
|
||||
avatarMakerController.restoreState();
|
||||
_avatarMakerController.restoreState();
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
@ -127,6 +135,7 @@ class ModifyAvatar extends StatelessWidget {
|
|||
min(600, MediaQuery.of(context).size.width * 0.85),
|
||||
autosave: false,
|
||||
theme: getAvatarMakerTheme(context),
|
||||
controller: _avatarMakerController,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ class ProfileView extends StatefulWidget {
|
|||
|
||||
class _ProfileViewState extends State<ProfileView> {
|
||||
UserData? user;
|
||||
final AvatarMakerController _avatarMakerController =
|
||||
PersistentAvatarMakerController(customizedPropertyCategories: []);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
|
@ -53,21 +55,25 @@ class _ProfileViewState extends State<ProfileView> {
|
|||
AvatarMakerAvatar(
|
||||
backgroundColor: Colors.transparent,
|
||||
radius: 80,
|
||||
controller: _avatarMakerController,
|
||||
),
|
||||
SizedBox(height: 10),
|
||||
Center(
|
||||
child: SizedBox(
|
||||
height: 35,
|
||||
child: ElevatedButton.icon(
|
||||
icon: Icon(Icons.edit),
|
||||
label: Text(context.lang.settingsProfileCustomizeAvatar),
|
||||
onPressed: () => Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ModifyAvatar(),
|
||||
),
|
||||
),
|
||||
),
|
||||
icon: Icon(Icons.edit),
|
||||
label: Text(context.lang.settingsProfileCustomizeAvatar),
|
||||
onPressed: () async {
|
||||
await Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ModifyAvatar(),
|
||||
),
|
||||
);
|
||||
_avatarMakerController.performRestore();
|
||||
setState(() {});
|
||||
}),
|
||||
),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
|
|
|
|||
Loading…
Reference in a new issue