From a44e307c690d7f9fb7630625f61df1e6a6750f00 Mon Sep 17 00:00:00 2001 From: David Sinclair Date: Mon, 20 Dec 2021 20:40:43 -0700 Subject: [PATCH] #1540 (comfortable/compact feeds) --- clients/ios/Classes/FeedsObjCViewController.m | 13 ++++++++++++- clients/ios/Classes/MenuViewController.h | 1 + clients/ios/Classes/MenuViewController.m | 10 +++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/clients/ios/Classes/FeedsObjCViewController.m b/clients/ios/Classes/FeedsObjCViewController.m index 026dcde34..930e76872 100644 --- a/clients/ios/Classes/FeedsObjCViewController.m +++ b/clients/ios/Classes/FeedsObjCViewController.m @@ -1046,6 +1046,14 @@ static NSArray *NewsBlurTopSectionNames; [self.appDelegate resizeFontSize]; }]; + preferenceKey = @"feed_list_spacing"; + titles = @[@"Compact", @"Comfortable"]; + values = @[@"compact", @"comfortable"]; + + [viewController addSegmentedControlWithTitles:titles values:values defaultValue:@"comfortable" preferenceKey:preferenceKey selectionShouldDismiss:YES handler:^(NSUInteger selectedIndex) { + [self reloadFeedTitlesTable]; + }]; + [viewController addThemeSegmentedControl]; UINavigationController *navController = self.navigationController; @@ -1587,7 +1595,10 @@ static NSArray *NewsBlurTopSectionNames; UIFontDescriptor *fontDescriptor = [self fontDescriptorUsingPreferredSize:UIFontTextStyleCaption1]; UIFont *font = [UIFont fontWithName:@"WhitneySSm-Medium" size:fontDescriptor.pointSize]; - return height + font.pointSize*2; + NSString *spacing = [[NSUserDefaults standardUserDefaults] objectForKey:@"feed_list_spacing"]; + NSInteger offset = [spacing isEqualToString:@"compact"] ? 6 : 0; + + return height + (font.pointSize * 2) - offset; } - (void)resetRowHeights { diff --git a/clients/ios/Classes/MenuViewController.h b/clients/ios/Classes/MenuViewController.h index d5c796633..8214d28a6 100644 --- a/clients/ios/Classes/MenuViewController.h +++ b/clients/ios/Classes/MenuViewController.h @@ -22,6 +22,7 @@ typedef void (^MenuItemSegmentedHandler)(NSUInteger selectedIndex); - (void)addTitle:(NSString *)title iconTemplateName:(NSString *)iconTemplateName selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemHandler)handler; - (void)addSegmentedControlWithTitles:(NSArray *)titles selectIndex:(NSUInteger)selectIndex selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler; - (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler; +- (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values defaultValue:(NSString *)defaultValue preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler; - (void)addThemeSegmentedControl; - (void)showFromNavigationController:(UINavigationController *)navigationController barButtonItem:(UIBarButtonItem *)barButtonItem; diff --git a/clients/ios/Classes/MenuViewController.m b/clients/ios/Classes/MenuViewController.m index 095d5b191..d56f26c57 100644 --- a/clients/ios/Classes/MenuViewController.m +++ b/clients/ios/Classes/MenuViewController.m @@ -106,11 +106,19 @@ NSString * const MenuHandler = @"handler"; } - (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler { + [self addSegmentedControlWithTitles:titles values:values defaultValue:nil preferenceKey:preferenceKey selectionShouldDismiss:selectionShouldDismiss handler:handler]; +} + +- (void)addSegmentedControlWithTitles:(NSArray *)titles values:(NSArray *)values defaultValue:(NSString *)defaultValue preferenceKey:(NSString *)preferenceKey selectionShouldDismiss:(BOOL)selectionShouldDismiss handler:(MenuItemSegmentedHandler)handler { NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults]; id value = [userPreferences objectForKey:preferenceKey]; NSUInteger valueIndex = [values indexOfObject:value]; - if (valueIndex < 0) { + if (valueIndex == NSNotFound && defaultValue != nil) { + valueIndex = [values indexOfObject:defaultValue]; + } + + if (valueIndex == NSNotFound) { valueIndex = 0; }