-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathOldVersion.xm
60 lines (49 loc) · 1.32 KB
/
OldVersion.xm
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
#import "Headers.h"
static UIImage *rebootKnobImage = nil;
static BOOL powerDownMode = YES;
%hook _UIActionSlider
- (void)setKnobImage:(UIImage*)image
{
%orig();
UITapGestureRecognizer *knobTap = [[UITapGestureRecognizer alloc] initWithTarget: self
action:@selector(knobTapped)];
knobTap.numberOfTapsRequired = 1;
[[self _knobView] addGestureRecognizer: knobTap];
}
%new
- (void)setNewKnobImage:(UIImage*)image
{
UIImageView *knobImageView = MSHookIvar<UIImageView*>(self, "_knobImageView");
UIImage *newKnobImage = [image imageWithRenderingMode: UIImageRenderingModeAlwaysTemplate];
knobImageView.image = newKnobImage;
if (powerDownMode)
knobImageView.tintColor = [UIColor redColor];
else
knobImageView.tintColor = [UIColor orangeColor];
}
%new
- (void)knobTapped
{
if (!rebootKnobImage)
rebootKnobImage = [UIImage imageWithContentsOfFile:
@"/Library/Application Support/Slide to Reboot/RebootKnob.png"];
if (powerDownMode){
powerDownMode = NO;
self.trackText = @"slide to reboot";
[self setNewKnobImage: rebootKnobImage];
} else {
powerDownMode = YES;
self.trackText = @"slide to power off";
[self setNewKnobImage: [UIImage imageNamed: @"PowerDownKnob"]];
}
}
%end
%hook SBPowerDownController
- (void)powerDown
{
if (powerDownMode)
%orig;
else
[[UIApplication sharedApplication] reboot];
}
%end