123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- // --------------------------------------------------------------------------------
- // The MIT License (MIT)
- //
- // Copyright (c) 2014 Shiny Development
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to deal
- // in the Software without restriction, including without limitation the rights
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- // copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in all
- // copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- // SOFTWARE.
- // --------------------------------------------------------------------------------
- #import <UIKit/UIKit.h>
- #import "SDStatusBarOverriderPost9_3.h"
- enum {
- ItemIsEnabledDoNotDisturb = 1,
- ItemIsEnabledAirplaneIcon,
- ItemIsEnabledGsmSignalStrengthShowDots,
- // 4 : unknown,
- ItemIsEnabledGsmSignalStrengthRawValue,
- ItemIsEnabledBatteryDetailString = 9,
- ItemIsEnabledBatteryBluetoothIcon = 12,
- } ItemIsEnabledIndexes;
- @class UIStatusBarServer;
- // http://localhost:10000/protocols/UIStatusBarServerClient.h
- /* Generated by RuntimeBrowser.
- */
- @protocol UIStatusBarServerClient
- @required
- - (void)statusBarServer:(UIStatusBarServer *)arg1 didReceiveDoubleHeightStatusString:(NSString *)arg2 forStyle:(long long)arg3;
- - (void)statusBarServer:(UIStatusBarServer *)arg1 didReceiveGlowAnimationState:(bool)arg2 forStyle:(long long)arg3;
- - (void)statusBarServer:(UIStatusBarServer *)arg1 didReceiveStatusBarData:(const struct { bool x1[29]; BOOL x2[64]; int x3; int x4; BOOL x5[100]; BOOL x6[100]; BOOL x7[2][100]; BOOL x8[1024]; unsigned int x9; int x10; int x11; unsigned int x12; int x13; unsigned int x14; BOOL x15[150]; int x16; int x17; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; BOOL x21[256]; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; unsigned int x25 : 1; unsigned int x26 : 1; unsigned int x27; unsigned int x28 : 1; unsigned int x29 : 1; BOOL x30[256]; BOOL x31[256]; BOOL x32[100]; }*)arg2 withActions:(int)arg3;
- - (void)statusBarServer:(UIStatusBarServer *)arg1 didReceiveStyleOverrides:(int)arg2;
- @end
- // http://localhost:10000/classes/UIStatusBarServer.h (commented some methods, and added structs)
- /* Generated by RuntimeBrowser.
- */
- typedef struct {
- bool boolitemIsEnabled[29];//x_25_1_1[29]; // boolitemIsEnabled
- char timeString[64];//x_25_1_2[64]; // timeString
- int x_25_1_3; // gsmSignalStrengthRaw
- int gsmSignalStrengthBars;//x_25_1_4; // gsmSignalStrengthBars
- char serviceString[100]; // serviceString
- char serviceCrossfadeString[100];
- char x_25_1_7[2][100];
- char x_25_1_8[1024];
- unsigned int x_25_1_9;
- int x_25_1_10;
- int x_25_1_11;
- unsigned int dataNetworkType;
- int x_25_1_13;
- unsigned int x_25_1_14;
- char batteryDetailString[150];//x_25_1_15[150];
- int x_25_1_16;
- int x_25_1_17;
- unsigned int x_25_1_18 : 1;
- unsigned int x_25_1_19 : 1;
- unsigned int x_25_1_20 : 1;
- char x_25_1_21[256];
- unsigned int bluetoothConnected: 1;//x_25_1_22 : 1;
- unsigned int x_25_1_23 : 1;
- unsigned int x_25_1_24 : 1;
- unsigned int x_25_1_25 : 1;
- unsigned int x_25_1_26 : 1;
- unsigned int x_25_1_27;
- unsigned int x_25_1_28 : 1;
- unsigned int x_25_1_29 : 1;
- char x_25_1_30[256];
- char x_25_1_31[256];
- char x_25_1_32[100];
- } StatusBarRawData;
- typedef struct {
- bool booloverrideItemIsEnabled[29];//x1[29];
- unsigned int overrideTimeString : 1; // x2 : 1; // overrideTimeString
- unsigned int x3 : 1; // overrideGsmSignalStrengthRaw
- unsigned int overrideGsmSignalStrengthBars: 1;//x4 : 1; // overrideGsmSignalStrengthBars
- unsigned int overrideServiceString: 1;//x5 : 1; // overrideServiceString
- unsigned int x6 : 2; // overrideServiceImages
- unsigned int x7 : 1; // overrideOperatorDirectory
- unsigned int x8 : 1; // overrideServiceContentType
- unsigned int x9 : 1; // overrideWifiSignalStrengthRaw
- unsigned int x10 : 1; // overrideWifiSignalStrengthBars
- unsigned int overrideDataNetworkType : 1; // overrideDataNetworkType
- unsigned int x12 : 1; // disallowsCellularDataNetworkTypes
- unsigned int x13 : 1; // overrideBatteryCapacity
- unsigned int x14 : 1; // overrideBatteryState
- unsigned int overrideBatteryDetailString: 1;//x15 : 1; // overrideBatteryDetailString
- unsigned int x16 : 1; // overrideBluetoothBatteryCapacity
- unsigned int x17 : 1; // overrideThermalColor
- unsigned int x18 : 1; // overrideSlowActivity
- unsigned int x19 : 1; // overrideActivityDisplayId
- unsigned int overrideBluetoothConnected: 1; //x20 : 1; // overrideBluetoothConnected
- unsigned int x21 : 1; // overrideDisplayRawGSMSignal
- unsigned int x22 : 1; // overrideDisplayRawWifiSignal
- unsigned int x23 : 1;
- unsigned int x24 : 1;
- StatusBarRawData values;
- } StatusBarOverrideData;
- @interface UIStatusBarServer : NSObject {
- struct __CFRunLoopSource { } * _source;
- id<UIStatusBarServerClient> _statusBar;
- }
- //@property (nonatomic, retain) <UIStatusBarServerClient> *statusBar;
- @property (nonatomic, retain) id<UIStatusBarServerClient> statusBar;
- + (unsigned int)_publisherPort;
- + (unsigned int)_serverPort;
- + (void)addStatusBarItem:(int)arg1;
- + (void)addStyleOverrides:(int)arg1;
- + (id)getDoubleHeightStatusStringForStyle:(long long)arg1;
- + (double)getGlowAnimationEndTimeForStyle:(long long)arg1;
- + (bool)getGlowAnimationStateForStyle:(long long)arg1;
- //+ (const struct { bool x1[29]; BOOL x2[64]; int x3; int x4; BOOL x5[100]; BOOL x6[100]; BOOL x7[2][100]; BOOL x8[1024]; unsigned int x9; int x10; int x11; unsigned int x12; int x13; unsigned int x14; BOOL x15[150]; int x16; int x17; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; BOOL x21[256]; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; unsigned int x25 : 1; unsigned int x26 : 1; unsigned int x27; unsigned int x28 : 1; unsigned int x29 : 1; BOOL x30[256]; BOOL x31[256]; BOOL x32[100]; }*)getStatusBarData;
- + (const StatusBarRawData *)getStatusBarData;
- //+ (struct { bool x1[29]; unsigned int x2 : 1; unsigned int x3 : 1; unsigned int x4 : 1; unsigned int x5 : 1; unsigned int x6 : 2; unsigned int x7 : 1; unsigned int x8 : 1; unsigned int x9 : 1; unsigned int x10 : 1; unsigned int x11 : 1; unsigned int x12 : 1; unsigned int x13 : 1; unsigned int x14 : 1; unsigned int x15 : 1; unsigned int x16 : 1; unsigned int x17 : 1; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; unsigned int x21 : 1; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; struct { bool x_25_1_1[29]; BOOL x_25_1_2[64]; int x_25_1_3; int x_25_1_4; BOOL x_25_1_5[100]; BOOL x_25_1_6[100]; BOOL x_25_1_7[2][100]; BOOL x_25_1_8[1024]; unsigned int x_25_1_9; int x_25_1_10; int x_25_1_11; unsigned int x_25_1_12; int x_25_1_13; unsigned int x_25_1_14; BOOL x_25_1_15[150]; int x_25_1_16; int x_25_1_17; unsigned int x_25_1_18 : 1; unsigned int x_25_1_19 : 1; unsigned int x_25_1_20 : 1; BOOL x_25_1_21[256]; unsigned int x_25_1_22 : 1; unsigned int x_25_1_23 : 1; unsigned int x_25_1_24 : 1; unsigned int x_25_1_25 : 1; unsigned int x_25_1_26 : 1; unsigned int x_25_1_27; unsigned int x_25_1_28 : 1; unsigned int x_25_1_29 : 1; BOOL x_25_1_30[256]; BOOL x_25_1_31[256]; BOOL x_25_1_32[100]; } x25; }*)getStatusBarOverrideData;
- + (StatusBarOverrideData *)getStatusBarOverrideData;
- + (int)getStyleOverrides;
- + (void)permanentizeStatusBarOverrideData;
- + (void)postDoubleHeightStatusString:(id)arg1 forStyle:(long long)arg2;
- + (void)postGlowAnimationState:(bool)arg1 forStyle:(long long)arg2;
- //+ (void)postStatusBarData:(const struct { bool x1[29]; BOOL x2[64]; int x3; int x4; BOOL x5[100]; BOOL x6[100]; BOOL x7[2][100]; BOOL x8[1024]; unsigned int x9; int x10; int x11; unsigned int x12; int x13; unsigned int x14; BOOL x15[150]; int x16; int x17; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; BOOL x21[256]; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; unsigned int x25 : 1; unsigned int x26 : 1; unsigned int x27; unsigned int x28 : 1; unsigned int x29 : 1; BOOL x30[256]; BOOL x31[256]; BOOL x32[100]; }*)arg1 withActions:(int)arg2;
- + (void)postStatusBarData:(const StatusBarRawData *)arg1 withActions:(int)arg2;
- //+ (void)postStatusBarOverrideData:(struct { bool x1[29]; unsigned int x2 : 1; unsigned int x3 : 1; unsigned int x4 : 1; unsigned int x5 : 1; unsigned int x6 : 2; unsigned int x7 : 1; unsigned int x8 : 1; unsigned int x9 : 1; unsigned int x10 : 1; unsigned int x11 : 1; unsigned int x12 : 1; unsigned int x13 : 1; unsigned int x14 : 1; unsigned int x15 : 1; unsigned int x16 : 1; unsigned int x17 : 1; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; unsigned int x21 : 1; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; struct { bool x_25_1_1[29]; BOOL x_25_1_2[64]; int x_25_1_3; int x_25_1_4; BOOL x_25_1_5[100]; BOOL x_25_1_6[100]; BOOL x_25_1_7[2][100]; BOOL x_25_1_8[1024]; unsigned int x_25_1_9; int x_25_1_10; int x_25_1_11; unsigned int x_25_1_12; int x_25_1_13; unsigned int x_25_1_14; BOOL x_25_1_15[150]; int x_25_1_16; int x_25_1_17; unsigned int x_25_1_18 : 1; unsigned int x_25_1_19 : 1; unsigned int x_25_1_20 : 1; BOOL x_25_1_21[256]; unsigned int x_25_1_22 : 1; unsigned int x_25_1_23 : 1; unsigned int x_25_1_24 : 1; unsigned int x_25_1_25 : 1; unsigned int x_25_1_26 : 1; unsigned int x_25_1_27; unsigned int x_25_1_28 : 1; unsigned int x_25_1_29 : 1; BOOL x_25_1_30[256]; BOOL x_25_1_31[256]; BOOL x_25_1_32[100]; } x25; }*)arg1;
- + (void)postStatusBarOverrideData:(StatusBarOverrideData *)arg1;
- + (void)removeStatusBarItem:(int)arg1;
- + (void)removeStyleOverrides:(int)arg1;
- + (void)runServer;
- //- (void).cxx_destruct;
- - (void)_receivedDoubleHeightStatus:(const char *)arg1 forStyle:(long long)arg2;
- - (void)_receivedGlowAnimationState:(bool)arg1 forStyle:(long long)arg2;
- - (void)_receivedStatusBarData:(struct { bool x1[29]; BOOL x2[64]; int x3; int x4; BOOL x5[100]; BOOL x6[100]; BOOL x7[2][100]; BOOL x8[1024]; unsigned int x9; int x10; int x11; unsigned int x12; int x13; unsigned int x14; BOOL x15[150]; int x16; int x17; unsigned int x18 : 1; unsigned int x19 : 1; unsigned int x20 : 1; BOOL x21[256]; unsigned int x22 : 1; unsigned int x23 : 1; unsigned int x24 : 1; unsigned int x25 : 1; unsigned int x26 : 1; unsigned int x27; unsigned int x28 : 1; unsigned int x29 : 1; BOOL x30[256]; BOOL x31[256]; BOOL x32[100]; }*)arg1 actions:(int)arg2;
- - (void)_receivedStyleOverrides:(int)arg1;
- - (void)dealloc;
- - (id)initWithStatusBar:(id)arg1;
- //- (void)setStatusBar:(id)arg1;
- //- (id)statusBar;
- @end
- @implementation SDStatusBarOverriderPost9_3
- @synthesize timeString;
- @synthesize dateString;
- @synthesize carrierName;
- @synthesize bluetoothConnected;
- @synthesize bluetoothEnabled;
- @synthesize batteryDetailEnabled;
- @synthesize networkType;
- @synthesize iPadDateEnabled;
- @synthesize iPadGsmSignalEnabled;
- - (void)enableOverrides
- {
- StatusBarOverrideData *overrides = [UIStatusBarServer getStatusBarOverrideData];
-
- // Set 9:41 time in current localization
- overrides->overrideTimeString = 1;
- strcpy(overrides->values.timeString, [self.timeString cStringUsingEncoding:NSUTF8StringEncoding]);
- // Enable 5 bars of mobile (iPhone only)
- if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
- overrides->booloverrideItemIsEnabled[ItemIsEnabledGsmSignalStrengthShowDots] = 1;
- overrides->values.boolitemIsEnabled[ItemIsEnabledGsmSignalStrengthShowDots] = 1;
- overrides->overrideGsmSignalStrengthBars = 1;
- overrides->values.gsmSignalStrengthBars = 5;
- }
-
- overrides->overrideDataNetworkType = self.networkType != SDStatusBarManagerNetworkTypeWiFi;
- overrides->values.dataNetworkType = self.networkType - 1;
-
- // Remove carrier text for iPhone, set it to "iPad" for the iPad
- NSString *carrierText = self.carrierName;
- if ([carrierText length] <= 0) {
- carrierText = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) ? @"" : @"iPad";
- }
- overrides->overrideServiceString = 1;
- strcpy(overrides->values.serviceString, [carrierText cStringUsingEncoding:NSUTF8StringEncoding]);
- // Battery
- overrides->booloverrideItemIsEnabled[ItemIsEnabledBatteryDetailString] = 1;
- overrides->values.boolitemIsEnabled[ItemIsEnabledBatteryDetailString] = 1;
- overrides->overrideBatteryDetailString = 1;
- strcpy(overrides->values.batteryDetailString, [self.batteryDetailEnabled? @"100%" : @" " cStringUsingEncoding:NSUTF8StringEncoding]); // Setting this to an empty string will not work, it needs to be a @" "
-
- // Bluetooth
- overrides->booloverrideItemIsEnabled[ItemIsEnabledBatteryBluetoothIcon] = self.bluetoothEnabled;
- overrides->values.boolitemIsEnabled[ItemIsEnabledBatteryBluetoothIcon] = self.bluetoothEnabled;
- if (self.bluetoothEnabled) {
- overrides->overrideBluetoothConnected = self.bluetoothConnected;
- overrides->values.bluetoothConnected = self.bluetoothConnected;
- }
-
- // Actually update the status bar
- [UIStatusBarServer postStatusBarOverrideData:overrides];
-
- // Remove the @" " used to trick the battery percentage into not showing, if used
- if (!self.batteryDetailEnabled) {
- strcpy(overrides->values.batteryDetailString, [@"" cStringUsingEncoding:NSUTF8StringEncoding]);
- [UIStatusBarServer postStatusBarOverrideData:overrides];
- }
-
- // Lock in the changes, reset simulator will remove this
- [UIStatusBarServer permanentizeStatusBarOverrideData];
- }
- - (void)disableOverrides
- {
- StatusBarOverrideData *overrides = [UIStatusBarServer getStatusBarOverrideData];
-
- // Remove specific overrides (separate flags)
- overrides->overrideTimeString = 0;
- overrides->overrideGsmSignalStrengthBars = 0;
- overrides->overrideDataNetworkType = 0;
- overrides->overrideBatteryDetailString = 0;
- overrides->overrideBluetoothConnected = 0;
-
- // Remove all overrides that use the array of bools
- memset(overrides->booloverrideItemIsEnabled, 0, sizeof(overrides->booloverrideItemIsEnabled));
- memset(overrides->values.boolitemIsEnabled, 0, sizeof(overrides->values.boolitemIsEnabled));
-
- // Carrier text (it's an override to set it back to the default)
- overrides->overrideServiceString = 1;
- strcpy(overrides->values.serviceString, [NSLocalizedString(@"Carrier", @"Carrier") cStringUsingEncoding:NSUTF8StringEncoding]);
-
- // Actually update the status bar
- [UIStatusBarServer postStatusBarOverrideData:overrides];
-
- // Have to call this to remove all the overrides
- [UIStatusBarServer permanentizeStatusBarOverrideData];
- }
- @end
|