// Author: fengshengxiong // Date: 2024/5/8 // Description: 喜欢的歌曲 import 'package:get/get.dart'; import 'package:tone_snap/data/models/music_model.dart'; import 'package:tone_snap/data/storage/hive_storage.dart'; class LoveSongsBox { LoveSongsBox._(); static final LoveSongsBox _instance = LoveSongsBox._(); factory LoveSongsBox() { return _instance; } /// 声明盒子 /// 注意, main函数中这个盒子已经打开, 可以进行存储操作 final _box = getLoveSongsBox(); /// 获取数据 List getList() { return _box.values.toList(); } /// 添加数据 Future addData(MusicModel model) async { return await _box.add(model); } /// 校验该歌曲是否加入喜欢 bool isLove(String videoId) { var model = getList().firstWhereOrNull((e) => e.videoId == videoId); return model != null; } /// 删除 Future delete(String videoId) async { var list = getList(); var model = list.firstWhereOrNull((e) => e.videoId == videoId); if (model != null) { await _box.delete(list.indexOf(model)); await _box.flush(); } } /// 清空所有数据 Future clear() async { await _box.clear(); await _box.flush(); } }