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:
		
							
								
								
									
										80
									
								
								Tweaks/FLEX/Editing/FLEXDefaultEditorViewController.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								Tweaks/FLEX/Editing/FLEXDefaultEditorViewController.m
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| // | ||||
| //  FLEXDefaultEditorViewController.m | ||||
| //  Flipboard | ||||
| // | ||||
| //  Created by Ryan Olson on 5/23/14. | ||||
| //  Copyright (c) 2020 FLEX Team. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import "FLEXDefaultEditorViewController.h" | ||||
| #import "FLEXFieldEditorView.h" | ||||
| #import "FLEXRuntimeUtility.h" | ||||
| #import "FLEXArgumentInputView.h" | ||||
| #import "FLEXArgumentInputViewFactory.h" | ||||
|  | ||||
| @interface FLEXDefaultEditorViewController () | ||||
|  | ||||
| @property (nonatomic, readonly) NSUserDefaults *defaults; | ||||
| @property (nonatomic, readonly) NSString *key; | ||||
|  | ||||
| @end | ||||
|  | ||||
| @implementation FLEXDefaultEditorViewController | ||||
|  | ||||
| + (instancetype)target:(NSUserDefaults *)defaults key:(NSString *)key commitHandler:(void(^_Nullable)(void))onCommit { | ||||
|     FLEXDefaultEditorViewController *editor = [self target:defaults data:key commitHandler:onCommit]; | ||||
|     editor.title = @"Edit Default"; | ||||
|     return editor; | ||||
| } | ||||
|  | ||||
| - (NSUserDefaults *)defaults { | ||||
|     return [_target isKindOfClass:[NSUserDefaults class]] ? _target : nil; | ||||
| } | ||||
|  | ||||
| - (NSString *)key { | ||||
|     return _data; | ||||
| } | ||||
|  | ||||
| - (void)viewDidLoad { | ||||
|     [super viewDidLoad]; | ||||
|      | ||||
|     self.fieldEditorView.fieldDescription = self.key; | ||||
|  | ||||
|     id currentValue = [self.defaults objectForKey:self.key]; | ||||
|     FLEXArgumentInputView *inputView = [FLEXArgumentInputViewFactory | ||||
|         argumentInputViewForTypeEncoding:FLEXEncodeObject(currentValue) | ||||
|         currentValue:currentValue | ||||
|     ]; | ||||
|     inputView.backgroundColor = self.view.backgroundColor; | ||||
|     inputView.inputValue = currentValue; | ||||
|     self.fieldEditorView.argumentInputViews = @[inputView]; | ||||
| } | ||||
|  | ||||
| - (void)actionButtonPressed:(id)sender { | ||||
|     id value = self.firstInputView.inputValue; | ||||
|     if (value) { | ||||
|         [self.defaults setObject:value forKey:self.key]; | ||||
|     } else { | ||||
|         [self.defaults removeObjectForKey:self.key]; | ||||
|     } | ||||
|     [self.defaults synchronize]; | ||||
|      | ||||
|     // Dismiss keyboard and handle committed changes | ||||
|     [super actionButtonPressed:sender]; | ||||
|      | ||||
|     // Go back after setting, but not for switches. | ||||
|     if (sender) { | ||||
|         [self.navigationController popViewControllerAnimated:YES]; | ||||
|     } else { | ||||
|         self.firstInputView.inputValue = [self.defaults objectForKey:self.key]; | ||||
|     } | ||||
| } | ||||
|  | ||||
| + (BOOL)canEditDefaultWithValue:(id)currentValue { | ||||
|     return [FLEXArgumentInputViewFactory | ||||
|         canEditFieldWithTypeEncoding:FLEXEncodeObject(currentValue) | ||||
|         currentValue:currentValue | ||||
|     ]; | ||||
| } | ||||
|  | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn