getLocalAllDrawLine method
dynamic
getLocalAllDrawLine()
Implementation
getLocalAllDrawLine() async {
try {
final prefs = await SharedPreferences.getInstance();
String jsonStr = prefs.getString('${klineState.widget.propertys['id']}drawlinekey') ?? '';
// print('存储的k线: ${jsonStr}');
if (jsonStr != '') {
allLineData = json.decode(jsonStr);
//这里判断是否清除很久以前绘制的线
var now = DateTime.now().millisecondsSinceEpoch;
var maxT = 86400000*30;//最长保留30天
var isDel = false;
for (var key in allLineData.keys) {
if(now-allLineData[key]['time']>maxT){
allLineData.remove(key);
isDel = true;
}
}
if(isDel){
//从新存储,在颜色反序列化之前
await prefs.setString('${klineState.widget.propertys['id']}drawlinekey', json.encode(allLineData));
}
//颜色反序列化
for (var lineData in allLineData.values) {
for(var line in lineData['data'].values){
int lineL = line.length;
for (int i = 0; i < lineL; i++) {
var obj = line[i]['style'];
for (var entry in obj.entries) {
if(entry.value is Map){
if(entry.value['color'] is List){
entry.value['color'] = Tools.getColorFromList(entry.value['color']);
}
if(entry.value['fillc'] is List){
entry.value['fillc'] = Tools.getColorFromList(entry.value['fillc']);
}
}
}
}
}
}
}
} catch (error) {
// print(error);
}
}