diff --git a/Classes/Models/RZDebugMenuSettingsDataSource.h b/Classes/Models/RZDebugMenuSettingsDataSource.h index bd4622b..24c004a 100644 --- a/Classes/Models/RZDebugMenuSettingsDataSource.h +++ b/Classes/Models/RZDebugMenuSettingsDataSource.h @@ -16,5 +16,6 @@ - (id)initWithDictionary:(NSDictionary *)plistData; - (RZDebugMenuSettingsItem *)settingsItemAtIndexPath:(NSIndexPath *)indexPath; +- (void)resetTableDefaults; @end diff --git a/Classes/Models/RZDebugMenuSettingsDataSource.m b/Classes/Models/RZDebugMenuSettingsDataSource.m index 9da6b32..d355c1f 100644 --- a/Classes/Models/RZDebugMenuSettingsDataSource.m +++ b/Classes/Models/RZDebugMenuSettingsDataSource.m @@ -362,4 +362,11 @@ - (RZDebugMenuSettingsItem *)settingsItemAtIndexPath:(NSIndexPath *)indexPath return [cellItemsMetaData objectAtIndex:indexPath.row]; } +#pragma mark - reset settings method + +- (void)resetTableDefaults +{ + [RZDebugMenuSettingsInterface resetDefaultsForSettings:self.groupedSections]; +} + @end diff --git a/Classes/Models/RZDebugMenuSettingsInterface.h b/Classes/Models/RZDebugMenuSettingsInterface.h index 14398c5..86b6cc6 100644 --- a/Classes/Models/RZDebugMenuSettingsInterface.h +++ b/Classes/Models/RZDebugMenuSettingsInterface.h @@ -12,6 +12,7 @@ + (void)setValue:(id)value forDebugSettingsKey:(NSString *)key; + (id)valueForDebugSettingsKey:(NSString *)key; ++ (void)resetDefaultsForSettings:(NSDictionary *)settingsItems; + (NSString *)generateSettingsKey:(NSString *)identifier; @end diff --git a/Classes/Models/RZDebugMenuSettingsInterface.m b/Classes/Models/RZDebugMenuSettingsInterface.m index e3efa25..15d8e67 100644 --- a/Classes/Models/RZDebugMenuSettingsInterface.m +++ b/Classes/Models/RZDebugMenuSettingsInterface.m @@ -9,6 +9,7 @@ #import "RZDebugMenuSettingsInterface.h" #import "RZDebugMenu.h" +#import "RZDebugMenuSettingsItem.h" static NSString * const kRZUserSettingsDebugPrefix = @"DEBUG_"; @@ -50,6 +51,21 @@ + (void)setValue:(id)value forDebugSettingsKey:(NSString *)key } } +#pragma mark - reset setting method + ++ (void)resetDefaultsForSettings:(NSDictionary *)settingsItems +{ + // settingsItems is dictionary registered with user defaults. Still holds original default values + NSArray *sections = [settingsItems allKeys]; + for ( NSString *section in sections ) { + NSArray *sectionSettings = [settingsItems objectForKey:section]; + + for ( RZDebugMenuSettingsItem *settingItem in sectionSettings ) { + [self setValue:settingItem.settingsValue forDebugSettingsKey:settingItem.settingsKey]; + } + } +} + #pragma mark - Preprocessing methods + (NSString *)generateSettingsKey:(NSString *)identifier diff --git a/Classes/RZDebugMenuSettingsObserverManager.m b/Classes/RZDebugMenuSettingsObserverManager.m index 4587191..85f2a2f 100644 --- a/Classes/RZDebugMenuSettingsObserverManager.m +++ b/Classes/RZDebugMenuSettingsObserverManager.m @@ -72,7 +72,6 @@ - (void)removeObserver:(id)observer forKey:(NSString *)key - (void)notifyObserversWithValue:(id)value forKey:(NSString *)key { - NSSet *observers = [self.observerKeyMap objectForKey:key]; for (RZDebugMenuObserver *observer in observers) { id target = observer.target; diff --git a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m index c8b567f..54360cd 100644 --- a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m +++ b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m @@ -28,6 +28,7 @@ static NSString * const kRZDisclosureReuseIdentifier = @"environments"; static NSString * const kRZToggleReuseIdentifier = @"toggle"; static NSString * const kRZVersionInfoReuseIdentifier = @"version"; +static NSString * const kRZResetButtonTitle = @"Reset"; @interface RZDebugMenuModalViewController ()