-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCSMetroLockScreenGradientView.m
executable file
·74 lines (60 loc) · 3.65 KB
/
CSMetroLockScreenGradientView.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#import "CSMetroLockScreenGradientView.h"
#import "CSMetroLockScreenSettingsManager.h"
@implementation CSMetroLockScreenGradientView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self){
_gradientLayer = [CAGradientLayer layer];
if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad)
_gradientLayer.colors = @[(id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor clearColor].CGColor];
else
_gradientLayer.colors = @[(id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor];
_gradientLayer.locations = @[@0, @0.5, @1];
[self.layer addSublayer:_gradientLayer];
_savedGradient = _gradientLayer.colors;
if (![[CSMetroLockScreenSettingsManager sharedInstance] mediaPlayerBackdrop])
_gradientLayer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor];
}
return self;
}
- (void)refreshGradient {
if (![[CSMetroLockScreenSettingsManager sharedInstance] mediaPlayerBackdrop])
_gradientLayer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor];
else
_gradientLayer.colors = _savedGradient;
}
- (void)setLightGradientColor:(UIColor *)gradientColor {
if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad)
_gradientLayer.colors = @[(id)gradientColor.CGColor, (id)[gradientColor colorWithAlphaComponent:0.5].CGColor, (id)[gradientColor colorWithAlphaComponent:0.3].CGColor];
else
_gradientLayer.colors = @[(id)gradientColor.CGColor, (id)gradientColor.CGColor, (id)gradientColor.CGColor];
_gradientLayer.locations = @[@0, @0.8, @1];
_savedGradient = _gradientLayer.colors;
if (![[CSMetroLockScreenSettingsManager sharedInstance] mediaPlayerBackdrop])
_gradientLayer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor];
}
- (void)setGradientColor:(UIColor *)gradientColor {
if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad)
_gradientLayer.colors = @[(id)gradientColor.CGColor, (id)[gradientColor colorWithAlphaComponent:0.5].CGColor, (id)[gradientColor colorWithAlphaComponent:0.3].CGColor];
else
_gradientLayer.colors = @[(id)gradientColor.CGColor, (id)gradientColor.CGColor, (id)gradientColor.CGColor];
_gradientLayer.locations = @[@0, @0.5, @1];
_savedGradient = _gradientLayer.colors;
if (![[CSMetroLockScreenSettingsManager sharedInstance] mediaPlayerBackdrop])
_gradientLayer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor];
}
- (void)resetGradient {
if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad)
_gradientLayer.colors = @[(id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor clearColor].CGColor];
else
_gradientLayer.colors = @[(id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor, (id)[UIColor colorWithWhite:0.0 alpha:0.5].CGColor];
_gradientLayer.locations = @[@0, @0.5, @1];
_savedGradient = _gradientLayer.colors;
if (![[CSMetroLockScreenSettingsManager sharedInstance] mediaPlayerBackdrop])
_gradientLayer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor, (id)[UIColor clearColor].CGColor];
}
- (void)layoutSubviews {
_gradientLayer.frame = self.bounds;
[super layoutSubviews];
}
@end