// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:convert'; import 'dart:io'; import 'dart:async'; import 'package:path/path.dart' as path; import 'main.dart'; import 'package:sky/mojo/activity.dart'; String cachedDataFilePath = null; Future dataFilePath() async { if (cachedDataFilePath == null) { String dataDir = await getFilesDir(); cachedDataFilePath = path.join(dataDir, 'data.json'); } return cachedDataFilePath; } Future> loadFitnessData() async { List items = []; String dataPath = await dataFilePath(); print("Loading from $dataPath"); JsonDecoder decoder = new JsonDecoder(); var data = await decoder.convert(await new File(dataPath).readAsString()); data.forEach((item) { items.add(new Measurement.fromJson(item)); }); return items; } // Intentionally synchronous for execution just before shutdown. Future saveFitnessData(List data) async { String dataPath = await dataFilePath(); print("Saving to $dataPath"); JsonEncoder encoder = new JsonEncoder(); String contents = await encoder.convert(data); File dataFile = await new File(dataPath).writeAsString(contents); print("Success! $dataFile"); }