mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-08-24 11:28:52 -04:00
81 lines
2.3 KiB
Objective-C
81 lines
2.3 KiB
Objective-C
//
|
|
// 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
|