| // Copyright 2014 The Flutter 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 'base/config.dart'; |
| import 'base/context.dart'; |
| import 'base/file_system.dart'; |
| import 'globals.dart' as globals; |
| |
| PersistentToolState get persistentToolState => PersistentToolState.instance; |
| |
| /// A class that represents global (non-project-specific) internal state that |
| /// must persist across tool invocations. |
| abstract class PersistentToolState { |
| factory PersistentToolState([File configFile]) => |
| _DefaultPersistentToolState(configFile); |
| |
| static PersistentToolState get instance => context.get<PersistentToolState>(); |
| |
| /// Whether the welcome message should be redisplayed. |
| /// |
| /// May give null if the value has not been set. |
| bool redisplayWelcomeMessage; |
| } |
| |
| class _DefaultPersistentToolState implements PersistentToolState { |
| _DefaultPersistentToolState([File configFile]) : |
| _config = Config(configFile ?? globals.fs.file(globals.fs.path.join(userHomePath(), _kFileName))); |
| |
| static const String _kFileName = '.flutter_tool_state'; |
| static const String _kRedisplayWelcomeMessage = 'redisplay-welcome-message'; |
| |
| final Config _config; |
| |
| @override |
| bool get redisplayWelcomeMessage => _config.getValue(_kRedisplayWelcomeMessage) as bool; |
| |
| @override |
| set redisplayWelcomeMessage(bool value) { |
| _config.setValue(_kRedisplayWelcomeMessage, value); |
| } |
| } |