mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 12:48:41 +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:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import 'package:twonly/src/services/api/messages.dart';
|
import 'package:twonly/src/services/api/messages.dart';
|
||||||
import 'package:twonly/src/utils/misc.dart';
|
import 'package:twonly/src/utils/misc.dart';
|
||||||
import "package:get/get.dart";
|
|
||||||
import 'package:twonly/src/utils/storage.dart';
|
import 'package:twonly/src/utils/storage.dart';
|
||||||
|
|
||||||
class ModifyAvatar extends StatelessWidget {
|
class ModifyAvatar extends StatefulWidget {
|
||||||
const ModifyAvatar({super.key});
|
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 {
|
Future updateUserAvatar(String json, String svg) async {
|
||||||
await updateUserdata((user) {
|
await updateUserdata((user) {
|
||||||
user.avatarJson = json;
|
user.avatarJson = json;
|
||||||
|
|
@ -80,6 +92,7 @@ class ModifyAvatar extends StatelessWidget {
|
||||||
child: AvatarMakerAvatar(
|
child: AvatarMakerAvatar(
|
||||||
radius: 130,
|
radius: 130,
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
|
controller: _avatarMakerController,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
|
@ -89,11 +102,10 @@ class ModifyAvatar extends StatelessWidget {
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: FaIcon(FontAwesomeIcons.floppyDisk),
|
icon: FaIcon(FontAwesomeIcons.floppyDisk),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final avatarMakerController =
|
await _avatarMakerController.saveAvatarSVG();
|
||||||
Get.find<AvatarMakerController>();
|
final json =
|
||||||
await avatarMakerController.saveAvatarSVG();
|
_avatarMakerController.getJsonOptionsSync();
|
||||||
final json = avatarMakerController.getJsonOptionsSync();
|
final svg = _avatarMakerController.getAvatarSVGSync();
|
||||||
final svg = avatarMakerController.getAvatarSVGSync();
|
|
||||||
await updateUserAvatar(json, svg);
|
await updateUserAvatar(json, svg);
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
|
|
@ -103,17 +115,13 @@ class ModifyAvatar extends StatelessWidget {
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: FaIcon(FontAwesomeIcons.shuffle),
|
icon: FaIcon(FontAwesomeIcons.shuffle),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
final avatarmakerController =
|
_avatarMakerController.randomizedSelectedOptions();
|
||||||
Get.find<AvatarMakerController>();
|
|
||||||
avatarmakerController.randomizedSelectedOptions();
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Icon(FontAwesomeIcons.rotateLeft),
|
icon: Icon(FontAwesomeIcons.rotateLeft),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
final avatarMakerController =
|
_avatarMakerController.restoreState();
|
||||||
Get.find<AvatarMakerController>();
|
|
||||||
avatarMakerController.restoreState();
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -127,6 +135,7 @@ class ModifyAvatar extends StatelessWidget {
|
||||||
min(600, MediaQuery.of(context).size.width * 0.85),
|
min(600, MediaQuery.of(context).size.width * 0.85),
|
||||||
autosave: false,
|
autosave: false,
|
||||||
theme: getAvatarMakerTheme(context),
|
theme: getAvatarMakerTheme(context),
|
||||||
|
controller: _avatarMakerController,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ class ProfileView extends StatefulWidget {
|
||||||
|
|
||||||
class _ProfileViewState extends State<ProfileView> {
|
class _ProfileViewState extends State<ProfileView> {
|
||||||
UserData? user;
|
UserData? user;
|
||||||
|
final AvatarMakerController _avatarMakerController =
|
||||||
|
PersistentAvatarMakerController(customizedPropertyCategories: []);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
|
@ -53,6 +55,7 @@ class _ProfileViewState extends State<ProfileView> {
|
||||||
AvatarMakerAvatar(
|
AvatarMakerAvatar(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
radius: 80,
|
radius: 80,
|
||||||
|
controller: _avatarMakerController,
|
||||||
),
|
),
|
||||||
SizedBox(height: 10),
|
SizedBox(height: 10),
|
||||||
Center(
|
Center(
|
||||||
|
|
@ -61,13 +64,16 @@ class _ProfileViewState extends State<ProfileView> {
|
||||||
child: ElevatedButton.icon(
|
child: ElevatedButton.icon(
|
||||||
icon: Icon(Icons.edit),
|
icon: Icon(Icons.edit),
|
||||||
label: Text(context.lang.settingsProfileCustomizeAvatar),
|
label: Text(context.lang.settingsProfileCustomizeAvatar),
|
||||||
onPressed: () => Navigator.push(
|
onPressed: () async {
|
||||||
|
await Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => ModifyAvatar(),
|
builder: (context) => ModifyAvatar(),
|
||||||
),
|
),
|
||||||
),
|
);
|
||||||
),
|
_avatarMakerController.performRestore();
|
||||||
|
setState(() {});
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 20),
|
SizedBox(height: 20),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue