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