chore: make new user's avatar URLs point to S3 assets (#4495)

This commit is contained in:
ggurdin 2025-10-22 12:45:50 -04:00 committed by GitHub
parent 22ab4baa6e
commit e1d52c5328
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 15 additions and 23 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 KiB

View file

@ -6,6 +6,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:cached_network_image_platform_interface/cached_network_image_platform_interface.dart';
import 'package:shimmer/shimmer.dart';
import 'package:fluffychat/pangea/common/config/environment.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:fluffychat/widgets/mxc_image.dart';
@ -29,6 +30,12 @@ class ImageByUrl extends StatelessWidget {
return replacement ?? const SizedBox();
}
final Map<String, String> headers = {};
if (imageUrl.toString().contains(Environment.cmsApi)) {
headers['Authorization'] =
'Bearer ${MatrixState.pangeaController.userController.accessToken}';
}
return SizedBox(
width: width,
height: width,
@ -70,10 +77,7 @@ class ImageByUrl extends StatelessWidget {
error,
) =>
replacement ?? const SizedBox(),
httpHeaders: {
'Authorization':
'Bearer ${MatrixState.pangeaController.userController.accessToken}',
},
httpHeaders: headers,
imageRenderMethodForWeb: ImageRenderMethodForWeb.HttpGet,
),
),

View file

@ -2,11 +2,11 @@ import 'dart:async';
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
@ -32,14 +32,6 @@ class CreatePangeaAccountPageState extends State<CreatePangeaAccountPage> {
Object? _profileError;
Object? _courseError;
final List<String> avatarPaths = const [
"assets/pangea/Avatar_1.png",
"assets/pangea/Avatar_2.png",
"assets/pangea/Avatar_3.png",
"assets/pangea/Avatar_4.png",
"assets/pangea/Avatar_5.png",
];
@override
void initState() {
super.initState();
@ -49,6 +41,8 @@ class CreatePangeaAccountPageState extends State<CreatePangeaAccountPage> {
String? _spaceId;
String? _courseLangCode;
String avatarPath(int num) => "avatar_$num.png";
Future<LanguageSettings?> get _cachedLangCode => LangCodeRepo.get();
Future<String?> get _targetLangCode async =>
@ -122,16 +116,10 @@ class CreatePangeaAccountPageState extends State<CreatePangeaAccountPage> {
final client = Matrix.of(context).client;
try {
final random = Random();
final selectedAvatarPath =
avatarPaths[random.nextInt(avatarPaths.length)];
final ByteData byteData = await rootBundle.load(selectedAvatarPath);
final Uint8List bytes = byteData.buffer.asUint8List();
final file = MatrixFile(
bytes: bytes,
name: selectedAvatarPath,
);
await client.setAvatar(file);
final selectedAvatarPath = avatarPath(random.nextInt(4) + 1);
final avatarUrl =
Uri.parse("${AppConfig.assetsBaseURL}/$selectedAvatarPath");
await client.setAvatarUrl(client.userID!, avatarUrl);
} catch (err, s) {
ErrorHandler.logError(
e: err,