// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef REMOTING_IOS_PERSISTENCE_REMOTING_PREFERENCES_H_
#define REMOTING_IOS_PERSISTENCE_REMOTING_PREFERENCES_H_
#import <Foundation/Foundation.h>
@class HostSettings;
typedef NSString* RemotingFlag NS_STRING_ENUM;
extern RemotingFlag const RemotingFlagUseWebRTC;
extern RemotingFlag const RemotingFlagLastSeenNotificationMessageId;
extern RemotingFlag const RemotingFlagNotificationUiState;
extern RemotingFlag const RemotingFlagNotificationShownTimes;
// |RemotingPreferences| is the centralized place to ask for information about
// defaults and preferences.
@interface RemotingPreferences : NSObject
- (HostSettings*)settingsForHost:(NSString*)hostId;
- (void)setSettings:(HostSettings*)settings forHost:(NSString*)hostId;
- (id)objectForFlag:(RemotingFlag)flag;
- (void)setObject:(id)object forFlag:(RemotingFlag)flag;
- (BOOL)boolForFlag:(RemotingFlag)flag;
- (void)setBool:(BOOL)value forFlag:(RemotingFlag)flag;
- (void)synchronizeFlags;
// Access to the singleton shared instance from this property.
@property(nonatomic, readonly, class) RemotingPreferences* instance;
@property(nonatomic) NSString* activeUserKey;
@end
#endif // REMOTING_IOS_PERSISTENCE_REMOTING_PREFERENCES_H_