mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 04:44:14 -04:00 
			
		
		
		
	added files via upload
This commit is contained in:
		
							
								
								
									
										367
									
								
								Tweaks/iSponsorBlock/SponsorBlockSettingsController.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										367
									
								
								Tweaks/iSponsorBlock/SponsorBlockSettingsController.m
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,367 @@ | ||||
| #import "Headers/SponsorBlockSettingsController.h" | ||||
| #import "Headers/Localization.h" | ||||
|  | ||||
| @implementation SponsorBlockTableCell | ||||
| - (void)colorPicker:(id)colorPicker didSelectColor:(UIColor *)color { | ||||
|     self.colorWell.color = color; | ||||
|     NSString *hexString = hexFromUIColor(color); | ||||
|  | ||||
|     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); | ||||
|     NSString *documentsDirectory = [paths objectAtIndex:0]; | ||||
|     NSString *settingsPath = [documentsDirectory stringByAppendingPathComponent:@"iSponsorBlock.plist"]; | ||||
|     NSMutableDictionary *settings = [NSMutableDictionary dictionary]; | ||||
|     [settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:settingsPath]]; | ||||
|     NSDictionary *categorySettings = [settings objectForKey:@"categorySettings"]; | ||||
|  | ||||
|     [categorySettings setValue:hexString forKey:[NSString stringWithFormat:@"%@Color", self.category]]; | ||||
|     [settings setValue:categorySettings forKey:@"categorySettings"]; | ||||
|     [settings writeToURL:[NSURL fileURLWithPath:settingsPath isDirectory:NO] error:nil]; | ||||
|     CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.galacticdev.isponsorblockprefs.changed"), NULL, NULL, YES); | ||||
| } | ||||
|  | ||||
| - (void)presentColorPicker:(UITableViewCell *)sender { | ||||
|     HBColorPickerViewController *viewController = [[objc_getClass("HBColorPickerViewController") alloc] init]; | ||||
|     viewController.delegate = self; | ||||
|     viewController.popoverPresentationController.sourceView = self; | ||||
|  | ||||
|     HBColorPickerConfiguration *configuration = [[objc_getClass("HBColorPickerConfiguration") alloc] initWithColor:self.colorWell.color]; | ||||
|     configuration.supportsAlpha = NO; | ||||
|     viewController.configuration = configuration; | ||||
|  | ||||
|     UIViewController *rootViewController = self._viewControllerForAncestor; | ||||
|     [rootViewController presentViewController:viewController animated:YES completion:nil]; | ||||
|      | ||||
|     //fixes the bottom of the color picker from getting cut off | ||||
|     viewController.view.frame = CGRectMake(0,-50, viewController.view.frame.size.width, viewController.view.frame.size.height); | ||||
| } | ||||
| @end | ||||
|  | ||||
| @implementation SponsorBlockSettingsController | ||||
| - (void)viewDidLoad { | ||||
|     [super viewDidLoad]; | ||||
|  | ||||
|     UIBarButtonItem *dismissButton; | ||||
|  | ||||
|     dismissButton = [[UIBarButtonItem alloc] initWithImage:[UIImage systemImageNamed:@"xmark"] | ||||
|                                                      style:UIBarButtonItemStylePlain | ||||
|                                                     target:self | ||||
|                                                     action:@selector(dismissButtonTapped:)]; | ||||
|  | ||||
|     dismissButton.tintColor = [UIColor blackColor]; | ||||
|     self.navigationItem.leftBarButtonItem = dismissButton; | ||||
|  | ||||
|     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); | ||||
|     NSString *documentsDirectory = [paths objectAtIndex:0]; | ||||
|     self.settingsPath = [documentsDirectory stringByAppendingPathComponent:@"iSponsorBlock.plist"]; | ||||
|     self.settings = [NSMutableDictionary dictionary]; | ||||
|     [self.settings addEntriesFromDictionary:[NSDictionary dictionaryWithContentsOfFile:self.settingsPath]]; | ||||
|  | ||||
|     self.view.backgroundColor = UIColor.systemBackgroundColor; | ||||
|  | ||||
|     //detects if device is an se gen 1 or not, crude fix for text getting cut off | ||||
|     if ([UIScreen mainScreen].bounds.size.width > 320) { | ||||
|         self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleInsetGrouped]; | ||||
|     } | ||||
|     else { | ||||
|         self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; | ||||
|     } | ||||
|  | ||||
|     [self.view addSubview:self.tableView]; | ||||
|     self.tableView.translatesAutoresizingMaskIntoConstraints = NO; | ||||
|     [self.tableView.heightAnchor constraintEqualToAnchor:self.view.heightAnchor].active = YES; | ||||
|     [self.tableView.widthAnchor constraintEqualToAnchor:self.view.widthAnchor].active = YES; | ||||
|     self.tableView.delegate = self; | ||||
|     self.tableView.dataSource = self; | ||||
|  | ||||
|     NSBundle *tweakBundle = iSponsorBlockBundle(); | ||||
|     UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[tweakBundle pathForResource:@"LogoSponsorBlocker128px" ofType:@"png"]]]; | ||||
|     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)]; | ||||
|     label.text = @"iSponsorBlock"; | ||||
|     label.font = [UIFont boldSystemFontOfSize:48]; | ||||
|     self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0,0,0,200)]; | ||||
|     [self.tableView.tableHeaderView addSubview:imageView]; | ||||
|     [self.tableView.tableHeaderView addSubview:label]; | ||||
|  | ||||
|     self.tweakTitle = label.text; | ||||
|  | ||||
|     imageView.translatesAutoresizingMaskIntoConstraints = NO; | ||||
|     label.translatesAutoresizingMaskIntoConstraints = NO; | ||||
|     [imageView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES; | ||||
|     [imageView.topAnchor constraintEqualToAnchor:self.tableView.tableHeaderView.topAnchor constant:5].active = YES; | ||||
|     [label.centerXAnchor constraintEqualToAnchor:imageView.centerXAnchor].active = YES; | ||||
|     [label.topAnchor constraintEqualToAnchor:imageView.bottomAnchor constant:5].active = YES; | ||||
|  | ||||
|     //for dismissing num pad when tapping anywhere on the string | ||||
|     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(endEditing:)]; | ||||
|     tap.cancelsTouchesInView = NO; | ||||
|     [self.view addGestureRecognizer:tap]; | ||||
|  | ||||
|     self.sectionTitles = @[LOC(@"Sponsor"), LOC(@"Intermission/IntroAnimation"), LOC(@"Endcards/Credits"), LOC(@"InteractionReminder"), LOC(@"Unpaid/SelfPromotion"), LOC(@"Non-MusicSection"), LOC(@"SponsorBlockUserID"), LOC(@"SponsorBlockAPIInstance")]; | ||||
| } | ||||
|  | ||||
| //Add iSponsorBlock text to Navbar label if header text out of screen | ||||
| - (void)scrollViewDidScroll:(UIScrollView *)scrollView { | ||||
|     CGRect labelCellRect = [self.tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; | ||||
|     CGRect visibleRect = CGRectMake(self.tableView.contentOffset.x, | ||||
|                                     self.tableView.contentOffset.y + self.navigationController.navigationBar.frame.size.height, | ||||
|                                     self.tableView.bounds.size.width, | ||||
|                                     self.tableView.bounds.size.height - self.navigationController.navigationBar.frame.size.height); | ||||
|  | ||||
|     if (!CGRectContainsRect(visibleRect, labelCellRect)) { | ||||
|         self.title = self.tweakTitle; | ||||
|         [UIView animateWithDuration:0.3 animations:^{ | ||||
|             self.navigationItem.titleView.alpha = 1.0; | ||||
|         }]; | ||||
|     } else { | ||||
|         self.title = nil; | ||||
|         [UIView animateWithDuration:0.3 animations:^{ | ||||
|             self.navigationItem.titleView.alpha = 0.0; | ||||
|         }]; | ||||
|     } | ||||
| } | ||||
|  | ||||
| - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { | ||||
|     return 18; | ||||
| } | ||||
|  | ||||
| - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { | ||||
|     if (section == 0) return 1; | ||||
|     else if (section <= 6 || section == 17) return 2; | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { | ||||
|     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SponsorBlockCell"]; | ||||
|     if (!cell) { | ||||
|         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SponsorBlocKCell"]; | ||||
|     } | ||||
|  | ||||
|     if (indexPath.section == 0) { | ||||
|         cell.textLabel.text = LOC(@"Enabled"); | ||||
|         UISwitch *enabledSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0,0,51,31)]; | ||||
|         cell.accessoryView = enabledSwitch; | ||||
|         [enabledSwitch addTarget:self action:@selector(enabledSwitchToggled:) forControlEvents:UIControlEventValueChanged]; | ||||
|         if ([self.settings valueForKey:@"enabled"]) { | ||||
|             [enabledSwitch setOn:[[self.settings valueForKey:@"enabled"] boolValue] animated:NO]; | ||||
|         } | ||||
|         else { | ||||
|             [enabledSwitch setOn:YES animated:NO]; | ||||
|             [self enabledSwitchToggled:enabledSwitch]; | ||||
|         } | ||||
|         return cell; | ||||
|     } | ||||
|  | ||||
|     if (indexPath.section <= 6) { | ||||
|         SponsorBlockTableCell *tableCell = [[SponsorBlockTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SponsorBlockCell2"]; | ||||
|         NSDictionary *categorySettings = [self.settings objectForKey:@"categorySettings"]; | ||||
|         UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[LOC(@"Disable"), LOC(@"AutoSkip"), LOC(@"ShowInSeekBar"), LOC(@"ManualSkip")]]; | ||||
|  | ||||
|         //make it so "Show in Seek Bar" text won't be cut off on certain devices | ||||
|         NSMutableArray *segments = [segmentedControl valueForKey:@"_segments"]; | ||||
|         UISegment *segment = segments[2]; | ||||
|         UILabel *label = [segment valueForKey:@"_info"]; | ||||
|         label.adjustsFontSizeToFitWidth = YES; | ||||
|  | ||||
|         switch (indexPath.section) { | ||||
|             case 1: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"sponsor"] intValue]; | ||||
|                 tableCell.category = @"sponsor"; | ||||
|                 break; | ||||
|             case 2: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"intro"] intValue]; | ||||
|                 tableCell.category = @"intro"; | ||||
|                 break; | ||||
|             case 3: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"outro"] intValue]; | ||||
|                 tableCell.category = @"outro"; | ||||
|                 break; | ||||
|             case 4: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"interaction"] intValue]; | ||||
|                 tableCell.category = @"interaction"; | ||||
|                 break; | ||||
|             case 5: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"selfpromo"] intValue]; | ||||
|                 tableCell.category = @"selfpromo"; | ||||
|                 break; | ||||
|             case 6: | ||||
|                 segmentedControl.selectedSegmentIndex = [[categorySettings objectForKey:@"music_offtopic"] intValue]; | ||||
|                 tableCell.category = @"music_offtopic"; | ||||
|                 break; | ||||
|                  | ||||
|             default: | ||||
|                 break; | ||||
|         } | ||||
|         if (indexPath.row == 0) { | ||||
|             [segmentedControl addTarget:self action:@selector(categorySegmentSelected:) forControlEvents:UIControlEventValueChanged]; | ||||
|             segmentedControl.apportionsSegmentWidthsByContent = YES; | ||||
|             [tableCell.contentView addSubview:segmentedControl]; | ||||
|             segmentedControl.translatesAutoresizingMaskIntoConstraints = NO; | ||||
|             [segmentedControl.centerYAnchor constraintEqualToAnchor:tableCell.contentView.centerYAnchor].active = YES; | ||||
|             [segmentedControl.widthAnchor constraintEqualToAnchor:tableCell.contentView.widthAnchor].active = YES; | ||||
|         } | ||||
|         else { | ||||
|             tableCell.textLabel.text = LOC(@"SetColorToShowInSeekBar"); | ||||
|             tableCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|             HBColorWell *colorWell = [[objc_getClass("HBColorWell") alloc] initWithFrame:CGRectMake(0,0,32,32)]; | ||||
|             [colorWell addTarget:tableCell action:@selector(presentColorPicker:) forControlEvents:UIControlEventTouchUpInside]; | ||||
|             [colorWell addTarget:tableCell action:@selector(colorWellValueChanged:) forControlEvents:UIControlEventValueChanged]; | ||||
|             UIColor *color = colorWithHexString([categorySettings objectForKey:[NSString stringWithFormat:@"%@Color", tableCell.category]]); | ||||
|             colorWell.color = color; | ||||
|             tableCell.accessoryView = colorWell; | ||||
|             tableCell.colorWell = colorWell; | ||||
|         } | ||||
|         return tableCell; | ||||
|     } | ||||
|     if (indexPath.section == 7) { | ||||
|         UITableViewCell *textCell = [[UITableViewCell alloc] initWithStyle:1000 reuseIdentifier:@"SponsorBlockTextCell"]; | ||||
|         textCell.textLabel.text = LOC(@"UserID"); | ||||
|         textCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|         [textCell editableTextField].text = [self.settings valueForKey:@"userID"]; | ||||
|         [textCell editableTextField].delegate = self; | ||||
|         return textCell; | ||||
|     } | ||||
|     if (indexPath.section == 8) { | ||||
|         UITableViewCell *textCell = [[UITableViewCell alloc] initWithStyle:1000 reuseIdentifier:@"SponsorBlockTextCell"]; | ||||
|         textCell.textLabel.text = LOC(@"API_URL"); | ||||
|         textCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|         [textCell editableTextField].text = [self.settings valueForKey:@"apiInstance"]; | ||||
|         [textCell editableTextField].delegate = self; | ||||
|         return textCell; | ||||
|     } | ||||
|     if (indexPath.section == 9) { | ||||
|         UITableViewCell *textCell = [[UITableViewCell alloc] initWithStyle:1000 reuseIdentifier:@"SponsorBlockTextCell"]; | ||||
|         textCell.textLabel.text = LOC(@"MinimumSegmentDuration"); | ||||
|         textCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|         [textCell editableTextField].text = [NSString stringWithFormat:@"%.1f", [[self.settings valueForKey:@"minimumDuration"] floatValue]]; | ||||
|         [textCell editableTextField].keyboardType = UIKeyboardTypeDecimalPad; | ||||
|         [textCell editableTextField].delegate = self; | ||||
|         return textCell; | ||||
|     } | ||||
|     if (indexPath.section == 10) { | ||||
|         UITableViewCell *textCell = [[UITableViewCell alloc] initWithStyle:1000 reuseIdentifier:@"SponsorBlockTextCell"]; | ||||
|         textCell.textLabel.text = LOC(@"HowLongNoticeWillAppear"); | ||||
|         textCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|         [textCell editableTextField].text = [NSString stringWithFormat:@"%.1f", [[self.settings valueForKey:@"skipNoticeDuration"] floatValue]]; | ||||
|         [textCell editableTextField].keyboardType = UIKeyboardTypeDecimalPad; | ||||
|         [textCell editableTextField].delegate = self; | ||||
|         return textCell; | ||||
|     } | ||||
|     if (indexPath.section >= 11 && indexPath.section < 17) { | ||||
|         NSArray *titles = @[LOC(@"ShowSkipNotice"), LOC(@"ShowButtonsInPlayer"), LOC(@"HideStartEndButtonInPlayer"), LOC(@"ShowModifiedTime"), LOC(@"AudioNotificationOnSkip"), LOC(@"EnableSkipCountTracking")]; | ||||
|         NSArray *titlesNames = @[@"showSkipNotice", @"showButtonsInPlayer", @"hideStartEndButtonInPlayer", @"showModifiedTime", @"skipAudioNotification", @"enableSkipCountTracking"]; | ||||
|         UITableViewCell *tableCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SponsorBlockCell3"]; | ||||
|  | ||||
|         tableCell.textLabel.text = titles[indexPath.section-11]; | ||||
|         tableCell.textLabel.adjustsFontSizeToFitWidth = YES; | ||||
|  | ||||
|         UISwitch *toggleSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0,0,51,31)]; | ||||
|         tableCell.accessoryView = toggleSwitch; | ||||
|         [toggleSwitch addTarget:self action:@selector(switchToggled:) forControlEvents:UIControlEventValueChanged]; | ||||
|         if ([self.settings valueForKey:titlesNames[indexPath.section-11]]) { | ||||
|             [toggleSwitch setOn:[[self.settings valueForKey:titlesNames[indexPath.section-11]] boolValue] animated:NO]; | ||||
|         } else { | ||||
|             [toggleSwitch setOn:YES animated:NO]; | ||||
|             [self switchToggled:toggleSwitch]; | ||||
|         } | ||||
|         return tableCell; | ||||
|     } | ||||
|     if (indexPath.section == 17) { | ||||
|         UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"SponsorBlockDonationCell"]; | ||||
|         cell.textLabel.text = indexPath.row == 0 ? LOC(@"DonateOnVenmo") : LOC(@"DonateOnPayPal"); | ||||
|         cell.imageView.image = [UIImage systemImageNamed:@"dollarsign.circle.fill"]; | ||||
|         return cell; | ||||
|     } | ||||
|     return nil; | ||||
| } | ||||
|  | ||||
| - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { | ||||
|     if (section == 0) return nil; | ||||
|     if (section <= 8) return self.sectionTitles[section-1]; | ||||
|     return nil; | ||||
| } | ||||
|  | ||||
| - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { | ||||
|     if (section == 0) return LOC(@"RestartFooter"); | ||||
|     if (section == 7) return LOC(@"UserIDFooter"); | ||||
|     if (section == 8) return LOC(@"APIFooter"); | ||||
|     if (section == 15) return LOC(@"AudioFooter"); | ||||
|     return nil; | ||||
| } | ||||
|  | ||||
| //To allow highlights only for certain sections | ||||
| - (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath { | ||||
|     if (indexPath.section == 17) { | ||||
|         return YES; | ||||
|     } else { | ||||
|         return NO; | ||||
|     } | ||||
| } | ||||
|  | ||||
| - (void)dismissButtonTapped:(id)sender { | ||||
|     [self dismissViewControllerAnimated:YES completion:nil]; | ||||
| } | ||||
|  | ||||
| - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { | ||||
|     if (indexPath.section == 17) { | ||||
|         if (indexPath.row == 0) { | ||||
|             if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"venmo://"]]) { | ||||
|                 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"venmo://venmo.com/code?user_id=3178620965093376215"] options:@{} completionHandler:nil]; | ||||
|             } else { | ||||
|                 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://venmo.com/code?user_id=3178620965093376215"] options:@{} completionHandler:nil]; | ||||
|             } | ||||
|  | ||||
|         } else { | ||||
|             [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://paypal.me/DBrett684"] options:@{} completionHandler:nil]; | ||||
|         } | ||||
|     } | ||||
|     [tableView deselectRowAtIndexPath:indexPath animated:YES]; //To prevent highlight sticking after pressing on buttons | ||||
| } | ||||
|  | ||||
| - (void)enabledSwitchToggled:(UISwitch *)sender { | ||||
|     [self.settings setValue:@(sender.on) forKey:@"enabled"]; | ||||
|     [self writeSettings]; | ||||
| } | ||||
|  | ||||
| - (void)switchToggled:(UISwitch *)sender { | ||||
|     UITableViewCell *cell = (UITableViewCell *)sender.superview; | ||||
|     NSArray *titlesNames = @[@"showSkipNotice", @"showButtonsInPlayer", @"hideStartEndButtonInPlayer", @"showModifiedTime", @"skipAudioNotification", @"enableSkipCountTracking"]; | ||||
|     NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; | ||||
|     [self.settings setValue:@(sender.on) forKey:titlesNames[indexPath.section-11]]; | ||||
|     [self writeSettings]; | ||||
| } | ||||
|  | ||||
| - (void)categorySegmentSelected:(UISegmentedControl *)segmentedControl { | ||||
|     NSMutableDictionary *categorySettings = [self.settings valueForKey:@"categorySettings"]; | ||||
|     [categorySettings setValue:@(segmentedControl.selectedSegmentIndex) forKey:[(SponsorBlockTableCell *)segmentedControl.superview.superview category]]; | ||||
|  | ||||
|     [self.settings setValue:categorySettings forKey:@"categorySettings"]; | ||||
|     [self writeSettings]; | ||||
| } | ||||
|  | ||||
| - (void)textFieldDidEndEditing:(UITextField *)textField { | ||||
|     UITableViewCell *cell = (UITableViewCell *)textField.superview.superview; | ||||
|     NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; | ||||
|     f.numberStyle = NSNumberFormatterDecimalStyle; | ||||
|  | ||||
|     NSString *minimumDurationTitle = LOC(@"MinimumSegmentDuration"); | ||||
|     NSString *skipNoticeDurationTitle = LOC(@"HowLongNoticeWillAppear"); | ||||
|     NSString *userIDTitle = LOC(@"UserID"); | ||||
|     NSString *apiURLTitle = LOC(@"API_URL"); | ||||
|  | ||||
|     if ([cell.textLabel.text isEqualToString:minimumDurationTitle]) { | ||||
|         [self.settings setValue:[f numberFromString:textField.text] forKey:@"minimumDuration"]; | ||||
|     } else if ([cell.textLabel.text isEqualToString:skipNoticeDurationTitle]) { | ||||
|         [self.settings setValue:[f numberFromString:textField.text] forKey:@"skipNoticeDuration"]; | ||||
|     } else if ([cell.textLabel.text isEqualToString:userIDTitle]) { | ||||
|         [self.settings setValue:textField.text forKey:@"userID"]; | ||||
|     } else if ([cell.textLabel.text isEqualToString:apiURLTitle]) { | ||||
|         [self.settings setValue:textField.text forKey:@"apiInstance"]; | ||||
|     } | ||||
|     [self writeSettings]; | ||||
| } | ||||
|  | ||||
| - (void)writeSettings { | ||||
|     [self.settings writeToURL:[NSURL fileURLWithPath:self.settingsPath isDirectory:NO] error:nil]; | ||||
|     CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.galacticdev.isponsorblockprefs.changed"), NULL, NULL, YES); | ||||
| } | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn