From bc535addceda50fc3ca35e7ec3b668a6652f1c9e Mon Sep 17 00:00:00 2001 From: Clayton R Date: Mon, 21 Jul 2014 11:38:49 -0400 Subject: [PATCH 1/4] added button to nav bar --- .../View Controllers/RZDebugMenuModalViewController.m | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m index c8b567f..abd93c6 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 () Date: Mon, 21 Jul 2014 14:13:25 -0400 Subject: [PATCH 2/4] figuring out architecture for reset button --- Classes/Models/RZDebugMenuSettingsInterface.h | 1 + Classes/Models/RZDebugMenuSettingsInterface.m | 7 +++++++ .../UI/View Controllers/RZDebugMenuModalViewController.m | 4 +++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Classes/Models/RZDebugMenuSettingsInterface.h b/Classes/Models/RZDebugMenuSettingsInterface.h index 14398c5..bd6d87c 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)resetSettings; + (NSString *)generateSettingsKey:(NSString *)identifier; @end diff --git a/Classes/Models/RZDebugMenuSettingsInterface.m b/Classes/Models/RZDebugMenuSettingsInterface.m index e3efa25..e33be45 100644 --- a/Classes/Models/RZDebugMenuSettingsInterface.m +++ b/Classes/Models/RZDebugMenuSettingsInterface.m @@ -50,6 +50,13 @@ + (void)setValue:(id)value forDebugSettingsKey:(NSString *)key } } +#pragma mark - reset setting method + ++ (void)resetDefaultsForSettings:(NSDictionary *)settingsItems +{ + +} + #pragma mark - Preprocessing methods + (NSString *)generateSettingsKey:(NSString *)identifier diff --git a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m index abd93c6..908ba26 100644 --- a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m +++ b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m @@ -134,7 +134,9 @@ - (void)closeView - (void)resetSettings { - +// TODO: Reset all settings to default +// TODO: Notify observers +// TODO: Reload the table } #pragma mark - table view delegate methods From 76fdbb4bbc2c9130066acb9b98b200c8586c6f0a Mon Sep 17 00:00:00 2001 From: Clayton R Date: Mon, 21 Jul 2014 15:38:55 -0400 Subject: [PATCH 3/4] hooking things up. Have to notify observers --- Classes/Models/RZDebugMenuSettingsDataSource.h | 1 + Classes/Models/RZDebugMenuSettingsDataSource.m | 7 +++++++ Classes/Models/RZDebugMenuSettingsInterface.h | 2 +- Classes/Models/RZDebugMenuSettingsInterface.m | 12 +++++++++++- Classes/RZDebugMenuSettingsObserverManager.m | 1 - .../RZDebugMenuModalViewController.m | 2 ++ 6 files changed, 22 insertions(+), 3 deletions(-) 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 bd6d87c..86b6cc6 100644 --- a/Classes/Models/RZDebugMenuSettingsInterface.h +++ b/Classes/Models/RZDebugMenuSettingsInterface.h @@ -12,7 +12,7 @@ + (void)setValue:(id)value forDebugSettingsKey:(NSString *)key; + (id)valueForDebugSettingsKey:(NSString *)key; -+ (void)resetSettings; ++ (void)resetDefaultsForSettings:(NSDictionary *)settingsItems; + (NSString *)generateSettingsKey:(NSString *)identifier; @end diff --git a/Classes/Models/RZDebugMenuSettingsInterface.m b/Classes/Models/RZDebugMenuSettingsInterface.m index e33be45..6aa0349 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_"; @@ -54,7 +55,16 @@ + (void)setValue:(id)value forDebugSettingsKey:(NSString *)key + (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 ) { + NSString *userDefaultsKey = [self generateSettingsKey:settingItem.settingsKey]; + [self setValue:settingItem.settingsValue forDebugSettingsKey:userDefaultsKey]; + } + } } #pragma mark - Preprocessing methods 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 908ba26..0b3ed0f 100644 --- a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m +++ b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m @@ -135,8 +135,10 @@ - (void)closeView - (void)resetSettings { // TODO: Reset all settings to default + [self.debugSettingsDataSource resetTableDefaults]; // TODO: Notify observers // TODO: Reload the table + [self.optionsTableView reloadData]; } #pragma mark - table view delegate methods From b79058db11ba3b68ff30f26d221574c159025c1f Mon Sep 17 00:00:00 2001 From: Clayton R Date: Mon, 21 Jul 2014 15:47:42 -0400 Subject: [PATCH 4/4] implemented reset button --- Classes/Models/RZDebugMenuSettingsInterface.m | 3 +-- Classes/UI/View Controllers/RZDebugMenuModalViewController.m | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/Classes/Models/RZDebugMenuSettingsInterface.m b/Classes/Models/RZDebugMenuSettingsInterface.m index 6aa0349..15d8e67 100644 --- a/Classes/Models/RZDebugMenuSettingsInterface.m +++ b/Classes/Models/RZDebugMenuSettingsInterface.m @@ -61,8 +61,7 @@ + (void)resetDefaultsForSettings:(NSDictionary *)settingsItems NSArray *sectionSettings = [settingsItems objectForKey:section]; for ( RZDebugMenuSettingsItem *settingItem in sectionSettings ) { - NSString *userDefaultsKey = [self generateSettingsKey:settingItem.settingsKey]; - [self setValue:settingItem.settingsValue forDebugSettingsKey:userDefaultsKey]; + [self setValue:settingItem.settingsValue forDebugSettingsKey:settingItem.settingsKey]; } } } diff --git a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m index 0b3ed0f..54360cd 100644 --- a/Classes/UI/View Controllers/RZDebugMenuModalViewController.m +++ b/Classes/UI/View Controllers/RZDebugMenuModalViewController.m @@ -134,10 +134,7 @@ - (void)closeView - (void)resetSettings { -// TODO: Reset all settings to default [self.debugSettingsDataSource resetTableDefaults]; -// TODO: Notify observers -// TODO: Reload the table [self.optionsTableView reloadData]; }