Files
toolbox/client/lib/modules/dual_check/nickname_service.dart
T
2026-08-29 23:34:01 +08:00

34 lines
1003 B
Dart

// 全局昵称设置
// 持久化到 SharedPreferences / localStorage,所有工具共享同一个昵称
import 'package:shared_preferences/shared_preferences.dart';
const _keyNickname = 'toolbox.nickname';
class NicknameService {
NicknameService._();
static final NicknameService instance = NicknameService._();
SharedPreferences? _prefs;
Future<void> _ensureInit() async {
_prefs ??= await SharedPreferences.getInstance();
}
/// 获取当前昵称,未设置时返回默认昵称
Future<String> get nickname async {
await _ensureInit();
final n = _prefs!.getString(_keyNickname);
if (n != null && n.trim().isNotEmpty) return n.trim();
return '用户';
}
/// 设置昵称(1-32 字符,过短返回 false)
Future<bool> setNickname(String value) async {
final trimmed = value.trim();
if (trimmed.isEmpty || trimmed.length > 32) return false;
await _ensureInit();
await _prefs!.setString(_keyNickname, trimmed);
return true;
}
}