Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# NestSDK Changelog

## 0.1.5

- Fixed: swift submiting archived build error
- Fixed: advanced example run

## 0.1.4

- Fixed: data manager observers removal for multiple instances
Expand Down
4 changes: 2 additions & 2 deletions NestSDK/NestSDK/NestSDKDataModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

- (void)copyPropertiesToDataModelCopy:(id <NestSDKDataModelProtocol>)copy;

- (NSArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol;
- (NSMutableArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol;

- (NSDictionary *)toWritableDataModelDictionary;

@end
@end
4 changes: 2 additions & 2 deletions NestSDK/NestSDK/NestSDKDataModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ - (id)copy {
- (void)copyPropertiesToDataModelCopy:(id <NestSDKDataModelProtocol>)copy {
}

- (NSArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol {
- (NSMutableArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol {
unsigned int propertyCount = 0;
objc_property_t *properties = protocol_copyPropertyList(aProtocol, &propertyCount);

Expand Down Expand Up @@ -101,4 +101,4 @@ - (NSDictionary *)toWritableDataModelDictionary {
}


@end
@end
3 changes: 2 additions & 1 deletion NestSDK/NestSDK/NestSDKThermostat.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ typedef NS_ENUM(NSUInteger, NestSDKThermostatTemperatureScale) {

typedef NS_ENUM(NSUInteger, NestSDKThermostatHVACMode) {
NestSDKThermostatHVACModeUndefined = 0,
NestSDKThermostatHVACModeEco,
NestSDKThermostatHVACModeHeat,
NestSDKThermostatHVACModeCool,
NestSDKThermostatHVACModeHeatCool,
Expand Down Expand Up @@ -187,4 +188,4 @@ typedef NS_ENUM(NSUInteger, NestSDKThermostatHVACState) {
@property(nonatomic, readonly) NestSDKThermostatHVACState hvacState;


@end
@end
41 changes: 31 additions & 10 deletions NestSDK/NestSDK/NestSDKThermostatDataModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
static NSString *const kHVACStateStringCooling = @"cooling";
static NSString *const kHVACStateStringHeating = @"heating";

static NSString *const kHVACModeStringEco = @"eco";
static NSString *const kHVACModeStringHeat = @"heat";
static NSString *const kHVACModeStringCool = @"cool";
static NSString *const kHVACModeStringHeatCool = @"heat-cool";
Expand All @@ -41,6 +42,9 @@
const NSUInteger NestSDKThermostatTemperatureFAllowableMin = 50;
const NSUInteger NestSDKThermostatTemperatureFAllowableMax = 90;

@interface NestSDKThermostatDataModel ()
@property(nonatomic) NestSDKThermostatHVACMode currentHVACMode;
@end

@implementation NestSDKThermostatDataModel
#pragma mark Private
Expand All @@ -67,7 +71,7 @@ - (NSUInteger)_temperatureInAllowableRangeWithTemperatureF:(NSUInteger)temperatu
allowableMax:NestSDKThermostatTemperatureFAllowableMax];
}

- (NSArray *)_writablePropertyNamesArraySatisfyingTemperatureScaleWithArray:(NSArray *)array {
- (void)_writablePropertyNamesArraySatisfyingTemperatureScaleWithArray:(NSMutableArray *)array {
NSString *suffix;

switch (self.temperatureScale) {
Expand All @@ -85,11 +89,7 @@ - (NSArray *)_writablePropertyNamesArraySatisfyingTemperatureScaleWithArray:(NSA
}

NSArray *propertyNamesToRemoveArray = [self _writableTemperaturePropertyNameWithSuffix:suffix];

NSMutableArray *mutableArray = [array mutableCopy];
[mutableArray removeObjectsInArray:propertyNamesToRemoveArray];

return mutableArray;
[array removeObjectsInArray:propertyNamesToRemoveArray];
}

- (NSArray *)_writableTemperaturePropertyNameWithSuffix:(NSString *)suffix {
Expand Down Expand Up @@ -133,6 +133,7 @@ - (void)setTargetTemperatureLowC:(CGFloat)targetTemperatureLowC {
}

- (void)setHvacMode:(NestSDKThermostatHVACMode)hvacMode {
_currentHVACMode = self.hvacMode;
_hvacMode = hvacMode;
}

Expand Down Expand Up @@ -229,6 +230,9 @@ - (void)setHvacModeWithNSString:(NSString *)hvacModeString {
} else if ([hvacModeString isEqualToString:kHVACModeStringOff]) {
self.hvacMode = NestSDKThermostatHVACModeOff;

} else if ([hvacModeString isEqualToString:kHVACModeStringEco]) {
self.hvacMode = NestSDKThermostatHVACModeEco;

} else {
self.hvacMode = NestSDKThermostatHVACModeUndefined;
}
Expand All @@ -250,14 +254,31 @@ - (id)JSONObjectForHvacMode {

case NestSDKThermostatHVACModeOff:
return kHVACModeStringOff;

case NestSDKThermostatHVACModeEco:
return kHVACModeStringEco;
}

return nil;
}

- (NSArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol {
NSArray *array = [super writablePropertyNamesArrayWithProtocol:aProtocol];
array = [self _writablePropertyNamesArraySatisfyingTemperatureScaleWithArray:array];
- (NSMutableArray *)writablePropertyNamesArrayWithProtocol:(Protocol *)aProtocol {
NSMutableArray *array = [super writablePropertyNamesArrayWithProtocol:aProtocol];
[self _writablePropertyNamesArraySatisfyingTemperatureScaleWithArray:array];

if (!_hasFan) {
[array removeObject:@"fanTimerActive"];
}

if (self.currentHVACMode == NestSDKThermostatHVACModeEco) {
for (NSUInteger i = 0; i < array.count; i++) {
NSString *val = array[i];
if ([val hasPrefix:@"targetTemperature"]) {
[array removeObjectAtIndex:i];
i--;
}
}
}

return array;
}
Expand Down Expand Up @@ -367,4 +388,4 @@ - (BOOL)isEqual:(id)other {
(self.hvacState == otherThermostat.hvacState));
}

@end
@end