mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-07 20:30:08 +03:00
fix avatar fallback (#14458)
* fix avatar fallback Signed-off-by: 21pages <sunboeasy@gmail.com> * fix(ui): improve avatar fallback handling and layout consistency - Always show spacing in account section regardless of avatar presence - Handle null return from buildAvatarWidget with proper fallback - Adjust mobile settings avatar size to 28 Signed-off-by: 21pages <sunboeasy@gmail.com> --------- Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
@@ -2039,7 +2039,7 @@ class _AccountState extends State<_Account> {
|
|||||||
return Row(
|
return Row(
|
||||||
children: [
|
children: [
|
||||||
if (avatarWidget != null) avatarWidget,
|
if (avatarWidget != null) avatarWidget,
|
||||||
if (avatarWidget != null) const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
|||||||
@@ -569,11 +569,12 @@ class _CmHeaderState extends State<_CmHeader>
|
|||||||
|
|
||||||
Widget _buildClientAvatar() {
|
Widget _buildClientAvatar() {
|
||||||
return buildAvatarWidget(
|
return buildAvatarWidget(
|
||||||
avatar: client.avatar,
|
avatar: client.avatar,
|
||||||
size: 70,
|
size: 70,
|
||||||
borderRadius: 15,
|
borderRadius: 15,
|
||||||
fallback: _buildInitialAvatar(),
|
fallback: _buildInitialAvatar(),
|
||||||
)!;
|
) ??
|
||||||
|
_buildInitialAvatar();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildInitialAvatar() {
|
Widget _buildInitialAvatar() {
|
||||||
|
|||||||
@@ -857,16 +857,16 @@ class ClientInfo extends StatelessWidget {
|
|||||||
|
|
||||||
Widget _buildAvatar(BuildContext context) {
|
Widget _buildAvatar(BuildContext context) {
|
||||||
final fallback = CircleAvatar(
|
final fallback = CircleAvatar(
|
||||||
backgroundColor: str2color(
|
backgroundColor: str2color(client.name,
|
||||||
client.name,
|
|
||||||
Theme.of(context).brightness == Brightness.light ? 255 : 150),
|
Theme.of(context).brightness == Brightness.light ? 255 : 150),
|
||||||
child: Text(client.name.isNotEmpty ? client.name[0] : '?'),
|
child: Text(client.name.isNotEmpty ? client.name[0] : '?'),
|
||||||
);
|
);
|
||||||
return buildAvatarWidget(
|
return buildAvatarWidget(
|
||||||
avatar: client.avatar,
|
avatar: client.avatar,
|
||||||
size: 40,
|
size: 40,
|
||||||
fallback: fallback,
|
fallback: fallback,
|
||||||
)!;
|
) ??
|
||||||
|
fallback;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -617,7 +617,7 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
onToggle: (bool v) async {
|
onToggle: (bool v) async {
|
||||||
await mainSetLocalBoolOption(kOptionEnableShowTerminalExtraKeys, v);
|
await mainSetLocalBoolOption(kOptionEnableShowTerminalExtraKeys, v);
|
||||||
final newValue =
|
final newValue =
|
||||||
mainGetLocalBoolOptionSync(kOptionEnableShowTerminalExtraKeys);
|
mainGetLocalBoolOptionSync(kOptionEnableShowTerminalExtraKeys);
|
||||||
setState(() {
|
setState(() {
|
||||||
_showTerminalExtraKeys = newValue;
|
_showTerminalExtraKeys = newValue;
|
||||||
});
|
});
|
||||||
@@ -694,7 +694,9 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
avatar: gFFI.userModel.avatar.value);
|
avatar: gFFI.userModel.avatar.value);
|
||||||
return buildAvatarWidget(
|
return buildAvatarWidget(
|
||||||
avatar: avatar,
|
avatar: avatar,
|
||||||
size: 40,
|
size: 28,
|
||||||
|
borderRadius: null,
|
||||||
|
fallback: Icon(Icons.person),
|
||||||
) ??
|
) ??
|
||||||
Icon(Icons.person);
|
Icon(Icons.person);
|
||||||
}),
|
}),
|
||||||
@@ -837,10 +839,12 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
),
|
),
|
||||||
if (!incomingOnly)
|
if (!incomingOnly)
|
||||||
SettingsTile.switchTile(
|
SettingsTile.switchTile(
|
||||||
title: Text(translate('keep-awake-during-outgoing-sessions-label')),
|
title:
|
||||||
|
Text(translate('keep-awake-during-outgoing-sessions-label')),
|
||||||
initialValue: _preventSleepWhileConnected,
|
initialValue: _preventSleepWhileConnected,
|
||||||
onToggle: (v) async {
|
onToggle: (v) async {
|
||||||
await mainSetLocalBoolOption(kOptionKeepAwakeDuringOutgoingSessions, v);
|
await mainSetLocalBoolOption(
|
||||||
|
kOptionKeepAwakeDuringOutgoingSessions, v);
|
||||||
setState(() {
|
setState(() {
|
||||||
_preventSleepWhileConnected = v;
|
_preventSleepWhileConnected = v;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user