insertData method
Implementation
Future<int?> insertData(StepCount event) async {
Step? lastStep = await getLastStep();
int last = event.steps;
int plus = lastStep?.plus ?? 0;
int total = event.steps;
int timestamp = event.timeStamp.millisecondsSinceEpoch;
//어플 처음 실행이 아닐 경우
if(lastStep != null) {
//재부팅이 되었을 경우, 재부팅 시점의 걸음값을 정확히 모르는 상태에서 초기화 해야함
if((lastStep.last ?? 0) > event.steps) {
// delta_steps = event.steps;
// steps = (lastStep.steps ?? 0) + event.steps;
// 0부터 시작
total = lastStep.total ?? 0;
plus = lastStep.total ?? 0; //더해야 할 값 재조정
} else {
//재부팅이 되지 않고 계속 쌓일 경우
total = event.steps + plus;
}
}
debugPrint("** insertData last: ${last}, plus: ${plus}, total: ${total}, steps: ${event.steps}, timestamp: ${timestamp}");
return await db?.insert(
tableName, // table name
{
'total': total,
'last': last,
'timestamp': timestamp,
'plus': plus,
}, // new post row data
conflictAlgorithm: ConflictAlgorithm.replace,
);
}