Index: samples/pop_pop_win/lib/src/game_storage.dart |
diff --git a/samples/pop_pop_win/lib/src/game_storage.dart b/samples/pop_pop_win/lib/src/game_storage.dart |
deleted file mode 100644 |
index 633e642a43496c714c065c27537b553fb7217d49..0000000000000000000000000000000000000000 |
--- a/samples/pop_pop_win/lib/src/game_storage.dart |
+++ /dev/null |
@@ -1,91 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
-library pop_pop_win.game_storage; |
- |
-import 'dart:async'; |
- |
-import 'game.dart'; |
-import 'platform.dart'; |
- |
-class GameStorage { |
- static const _gameCountKey = 'gameCount'; |
- final StreamController _bestTimeUpdated = new StreamController(); |
- final Map<String, String> _cache = new Map<String, String>(); |
- |
- Future<int> get gameCount => _getIntValue(_gameCountKey); |
- |
- Stream get bestTimeUpdated => _bestTimeUpdated.stream; |
- |
- void recordState(GameState state) { |
- assert(state != null); |
- _incrementIntValue(state.name); |
- } |
- |
- Future<bool> updateBestTime(Game game) { |
- assert(game != null); |
- assert(game.state == GameState.won); |
- |
- var w = game.field.width; |
- var h = game.field.height; |
- var m = game.field.bombCount; |
- var duration = game.duration.inMilliseconds; |
- |
- var key = _getKey(w, h, m); |
- |
- return _getIntValue(key, null).then((int currentScore) { |
- if (currentScore == null || currentScore > duration) { |
- _setIntValue(key, duration); |
- _bestTimeUpdated.add(null); |
- return true; |
- } else { |
- return false; |
- } |
- }); |
- } |
- |
- Future<int> getBestTimeMilliseconds(int width, int height, int bombCount) { |
- final key = _getKey(width, height, bombCount); |
- return _getIntValue(key, null); |
- } |
- |
- Future reset() { |
- _cache.clear(); |
- return targetPlatform.clearValues(); |
- } |
- |
- Future<int> _getIntValue(String key, [int defaultValue = 0]) { |
- assert(key != null); |
- if (_cache.containsKey(key)) { |
- return new Future.value(_parseValue(_cache[key], defaultValue)); |
- } |
- |
- return targetPlatform.getValue(key).then((String strValue) { |
- _cache[key] = strValue; |
- return _parseValue(strValue, defaultValue); |
- }); |
- } |
- |
- Future _setIntValue(String key, int value) { |
- assert(key != null); |
- _cache.remove(key); |
- String val = (value == null) ? null : value.toString(); |
- return targetPlatform.setValue(key, val); |
- } |
- |
- Future _incrementIntValue(String key) { |
- return _getIntValue(key).then((int val) { |
- return _setIntValue(key, val + 1); |
- }); |
- } |
- |
- static String _getKey(int w, int h, int m) => "w$w-h$h-m$m"; |
- |
- static int _parseValue(String value, int defaultValue) { |
- if (value == null) { |
- return defaultValue; |
- } else { |
- return int.parse(value); |
- } |
- } |
-} |