dual check v0.1
This commit is contained in:
1 parent
78bad1fa3d
commit
c137299016
36 files changed
+3727
-81
No files matched your search
@@ -0,0 +1,33 @@
|
||||
// 全局昵称设置
|
||||
// 持久化到 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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user