Commit 32d8351b authored by Felix Paul Kühne's avatar Felix Paul Kühne

playback: fix fatal runtime exception on iOS 6

The sleep timer requires iOS 7 or later
parent ebd0b86c
......@@ -245,6 +245,8 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
_sleepTimerButton.accessibilityLabel = NSLocalizedString(@"BUTTON_SLEEP_TIMER", nil);
_sleepTimerButton.isAccessibilityElement = YES;
[_sleepTimerButton setTitle:NSLocalizedString(@"BUTTON_SLEEP_TIMER", nil) forState:UIControlStateNormal];
if (!SYSTEM_RUNS_IOS7_OR_LATER)
_sleepTimerButton.hidden = YES;
_multiSelectionView = [[VLCMultiSelectionMenuView alloc] init];
_multiSelectionView.delegate = self;
......@@ -442,45 +444,47 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
_equalizerView.hidden = YES;
[self.view addSubview:_equalizerView];
/* add sleep timer UI */
_sleepTimerContainer = [[VLCFrostedGlasView alloc] initWithFrame:CGRectMake(0., 0., 300., 162.)];
_sleepTimerContainer.center = self.view.center;
_sleepTimerContainer.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
_sleepTimeDatePicker = [[UIDatePicker alloc] init];
if ([[UIDevice currentDevice] speedCategory] >= 3) {
_sleepTimeDatePicker.opaque = NO;
_sleepTimeDatePicker.backgroundColor = [UIColor clearColor];
} else
_sleepTimeDatePicker.backgroundColor = [UIColor blackColor];
_sleepTimeDatePicker.tintColor = [UIColor VLCLightTextColor];
_sleepTimeDatePicker.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
[_sleepTimerContainer addSubview:_sleepTimeDatePicker];
/* adapt the date picker style to suit our needs */
[_sleepTimeDatePicker setValue:[UIColor whiteColor] forKeyPath:@"textColor"];
SEL selector = NSSelectorFromString(@"setHighlightsToday:");
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDatePicker instanceMethodSignatureForSelector:selector]];
BOOL no = NO;
[invocation setSelector:selector];
[invocation setArgument:&no atIndex:2];
[invocation invokeWithTarget:_sleepTimeDatePicker];
if (_sleepTimerContainer.subviews.count > 0) {
NSArray *subviewsOfSubview = [_sleepTimeDatePicker.subviews[0] subviews];
NSUInteger subviewCount = subviewsOfSubview.count;
for (NSUInteger x = 0; x < subviewCount; x++) {
if ([subviewsOfSubview[x] isKindOfClass:[UILabel class]])
[subviewsOfSubview[x] setTextColor:[UIColor VLCLightTextColor]];
/* add sleep timer UI, requires iOS 7 or later */
if (SYSTEM_RUNS_IOS7_OR_LATER) {
_sleepTimerContainer = [[VLCFrostedGlasView alloc] initWithFrame:CGRectMake(0., 0., 300., 162.)];
_sleepTimerContainer.center = self.view.center;
_sleepTimerContainer.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
_sleepTimeDatePicker = [[UIDatePicker alloc] init];
if ([[UIDevice currentDevice] speedCategory] >= 3) {
_sleepTimeDatePicker.opaque = NO;
_sleepTimeDatePicker.backgroundColor = [UIColor clearColor];
} else
_sleepTimeDatePicker.backgroundColor = [UIColor blackColor];
_sleepTimeDatePicker.tintColor = [UIColor VLCLightTextColor];
_sleepTimeDatePicker.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
[_sleepTimerContainer addSubview:_sleepTimeDatePicker];
/* adapt the date picker style to suit our needs */
[_sleepTimeDatePicker setValue:[UIColor whiteColor] forKeyPath:@"textColor"];
SEL selector = NSSelectorFromString(@"setHighlightsToday:");
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDatePicker instanceMethodSignatureForSelector:selector]];
BOOL no = NO;
[invocation setSelector:selector];
[invocation setArgument:&no atIndex:2];
[invocation invokeWithTarget:_sleepTimeDatePicker];
if (_sleepTimerContainer.subviews.count > 0) {
NSArray *subviewsOfSubview = [_sleepTimeDatePicker.subviews[0] subviews];
NSUInteger subviewCount = subviewsOfSubview.count;
for (NSUInteger x = 0; x < subviewCount; x++) {
if ([subviewsOfSubview[x] isKindOfClass:[UILabel class]])
[subviewsOfSubview[x] setTextColor:[UIColor VLCLightTextColor]];
}
}
}
_sleepTimeDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;
_sleepTimeDatePicker.minuteInterval = 5;
_sleepTimeDatePicker.minimumDate = [NSDate date];
_sleepTimeDatePicker.countDownDuration = 1200.;
[_sleepTimeDatePicker addTarget:self action:@selector(sleepTimerAction:) forControlEvents:UIControlEventValueChanged];
_sleepTimeDatePicker.datePickerMode = UIDatePickerModeCountDownTimer;
_sleepTimeDatePicker.minuteInterval = 5;
_sleepTimeDatePicker.minimumDate = [NSDate date];
_sleepTimeDatePicker.countDownDuration = 1200.;
[_sleepTimeDatePicker addTarget:self action:@selector(sleepTimerAction:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:_sleepTimerContainer];
[self.view addSubview:_sleepTimerContainer];
}
}
- (BOOL)_blobCheck
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment