├── .gitattributes ├── .travis.yml ├── 13HUD.h ├── 13HUD.plist ├── 13hud ├── HDDRootListController.h ├── HDDRootListController.m ├── Headers │ └── CepheiPrefs │ │ ├── HBAboutListController.h │ │ ├── HBAppearanceSettings.h │ │ ├── HBDiscreteSliderTableCell.h │ │ ├── HBImageTableCell.h │ │ ├── HBInitialsLinkTableCell.h │ │ ├── HBLinkTableCell.h │ │ ├── HBListController+Actions.h │ │ ├── HBListController.h │ │ ├── HBListItemsController.h │ │ ├── HBPackageNameHeaderCell.h │ │ ├── HBPackageTableCell.h │ │ ├── HBRootListController.h │ │ ├── HBSpinnerTableCell.h │ │ ├── HBStepperTableCell.h │ │ ├── HBSupportController.h │ │ ├── HBTintedTableCell.h │ │ ├── HBTwitterCell.h │ │ └── PSListController+HBTintAdditions.h ├── Makefile ├── Resources │ ├── Info.plist │ └── Root.plist └── entry.plist ├── Frameworks ├── Cephei.framework │ ├── Cephei.tbd │ └── Headers │ │ ├── CompactConstraint.h │ │ ├── HBOutputForShellCommand.h │ │ ├── HBPreferences.h │ │ ├── HBRespringController.h │ │ ├── NSDictionary+HBAdditions.h │ │ ├── NSLayoutConstraint+CompactConstraint.h │ │ ├── NSString+HBAdditions.h │ │ ├── UIColor+HBAdditions.h │ │ └── UIView+CompactConstraint.h ├── CepheiPrefs.framework │ ├── CepheiPrefs.tbd │ └── Info.plist └── Preferences.framework │ └── Preferences.tbd ├── MRYHUDView.h ├── MRYHUDView.xm ├── Makefile ├── Tweak.xm └── control /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | os: osx 2 | language: objective-c 3 | osx_image: xcode10.1 4 | sudo: false 5 | env: 6 | global: 7 | - THEOS=~/theos 8 | before_install: 9 | - brew install dpkg ldid 10 | - git clone --recursive git://github.com/theos/theos.git ~/theos 11 | script: 12 | - make clean package FINALPACKAGE=1 13 | before_deploy: 14 | - git config --local user.name "Muirey03" 15 | - git config --local user.email "tommy.muir@btinternet.com" 16 | - export RELEASE_PKG_FILE=$(ls ./packages/*.deb) 17 | - export TRAVIS_TAG=${TRAVIS_TAG:-$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)} 18 | - git tag $TRAVIS_TAG 19 | deploy: 20 | provider: releases 21 | skip_cleanup: true 22 | api_key: 23 | secure: AGWez/LDdEv5boujxx1c/w0OwWJQvOVkNxqcfyO9SqDAldstExvh6p2bys4oIH9hSVBLKxemPr+v1c/CukVnPy7tjFitrm0I7lnDabrfOc1A9SPnTNSRMUjJDpMcLxSxZ4E9onNy6m3Ln2ryA0DGDx8LutumZYHTKKNifaknc5+NC08NUSFDKlTF7IYbiNbZJRYjhWKe/nVLun3jWfbPZz+HCCCfoi0DajM3mHcVrEghTAwCxlA56k3YTWAKWt2j8TCrU5AmdXdCm3SgW07SXjRtyEyN+JIKOLUScE1NNuaPQBRLcqWnjvTYdCG1qIIOW8NHbCcq3ojt/62rgc6WM1yXBClyFLZxofgc/E2f/6UjHExQSrslp1BG7NbQVj9xPdNJ4fcf39C56D3Vp31lt9hfFVgnsCrn+tw7Jgr4ME9IOo8+fLCCdbJZBuzOmno1RZKsQonQWk/5b4VKw68bDEm2GyslL094LooyAKgVh5/k98tY3jRBbRczDp/lpKyexOdcMzR2aWTLgpSCNMUiLlcZtqOBFwlzwKzG9oJerkFE3+rG6QPc8iRBDU/8oSxUQD84W389CM2eyUn92ZJAv7i663aXeXcyNQVaZK6UfLqB6CjT9hYN5CxBomMqTrxl2jaEsRRqjuN0VOSEiAO0jso6WtFRihQUA4JKBY3ZZfE= 24 | file_glob: true 25 | file: "${RELEASE_PKG_FILE}" 26 | on: 27 | repo: Muirey03/13HUD 28 | branch: master 29 | -------------------------------------------------------------------------------- /13HUD.h: -------------------------------------------------------------------------------- 1 | @class MRYHUDView; 2 | @interface SBHUDController : NSObject 3 | @property (nonatomic, retain) MRYHUDView* mryHUD; 4 | @property (nonatomic, retain) NSTimer* displayTimer; 5 | @property (nonatomic, retain) NSTimer* collapseTimer; 6 | +(instancetype)sharedHUDController; 7 | -(void)createMRYHUD; 8 | -(void)showMRYHUD; 9 | -(void)hideMRYHUD; 10 | -(BOOL)isHUDVisible; 11 | @end 12 | 13 | @interface SpringBoard : NSObject 14 | -(UIInterfaceOrientation)activeInterfaceOrientation; 15 | @end 16 | 17 | CGRect expandedFrame(); 18 | CGRect collapsedFrame(); 19 | 20 | //prefs: 21 | @interface NSUserDefaults (Internal) 22 | -(id)objectForKey:(id)arg1 inDomain:(id)arg2; 23 | @end 24 | BOOL PreferencesBool(NSString* key, BOOL fallback); 25 | CGFloat PreferencesFloat(NSString* key, CGFloat fallback); -------------------------------------------------------------------------------- /13HUD.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.apple.springboard" ); }; } 2 | -------------------------------------------------------------------------------- /13hud/HDDRootListController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "Headers/CepheiPrefs/HBRootListController.h" 3 | 4 | @interface HDDRootListController : HBRootListController 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /13hud/HDDRootListController.m: -------------------------------------------------------------------------------- 1 | #include "HDDRootListController.h" 2 | 3 | @implementation HDDRootListController 4 | 5 | - (NSArray *)specifiers { 6 | if (!_specifiers) { 7 | _specifiers = [self loadSpecifiersFromPlistName:@"Root" target:self]; 8 | } 9 | 10 | return _specifiers; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBAboutListController.h: -------------------------------------------------------------------------------- 1 | #import "HBListController.h" 2 | 3 | /** 4 | * The `HBAboutListController` class in `CepheiPrefs` provides a list controller 5 | * with functions that would typically be used on an "about" page. It includes 6 | * two class methods you can override to provide a developer website and 7 | * donation URL, and a class method to provide an email address so the user can 8 | * send the developer an email right from the tweak's settings. 9 | * 10 | * There is a sample of an HBAboutListController implemented in the Cephei demo 11 | * preferences. See the Cephei readme for details. 12 | * 13 | * ### Example Usage 14 | * 15 | * cell 16 | * PSLinkCell 17 | * cellClass 18 | * HBLinkTableCell 19 | * label 20 | * Visit Website 21 | * url 22 | * https://hbang.ws/ 23 | * 24 | * 25 | * cell 26 | * PSGroupCell 27 | * label 28 | * Experiencing issues? 29 | * 30 | * 31 | * action 32 | * hb_sendSupportEmail 33 | * cell 34 | * PSLinkCell 35 | * label 36 | * Email Support 37 | * 38 | * 39 | * cell 40 | * PSGroupCell 41 | * footerText 42 | * If you like this tweak, please consider a donation. 43 | * 44 | * 45 | * cell 46 | * PSLinkCell 47 | * cellClass 48 | * HBLinkTableCell 49 | * label 50 | * Donate 51 | * url 52 | * https://hbang.ws/donate/ 53 | * 54 | */ 55 | 56 | @class TSIncludeInstruction; 57 | 58 | NS_ASSUME_NONNULL_BEGIN 59 | 60 | @interface HBAboutListController : HBListController 61 | 62 | /** 63 | * @name Constants 64 | */ 65 | 66 | /** 67 | * The website URL to open when tapping the “visit website” cell. Override this 68 | * method to return your own URL. 69 | * 70 | * Deprecated. It is encouraged to use an HBLinkTableCell instead. 71 | * 72 | * @returns By default, https://www.hbang.ws/. 73 | */ 74 | + (NSURL *)hb_websiteURL __attribute((deprecated("Use an HBLinkTableCell instead."))); 75 | 76 | /** 77 | * The website URL to open when tapping the "donate" cell. Override this method 78 | * to return your own URL. 79 | * 80 | * Deprecated. It is encouraged to use an HBLinkTableCell instead. 81 | * 82 | * @returns By default, https://www.hbang.ws/donate/. 83 | */ 84 | + (NSURL *)hb_donateURL __attribute((deprecated("Use an HBLinkTableCell instead."))); 85 | 86 | /** 87 | * The email address to use in the support email composer form. Override this 88 | * method to return an email address. 89 | * 90 | * If this method returns nil, the package’s author email address is used. 91 | * 92 | * @returns By default, nil. 93 | */ 94 | + (nullable NSString *)hb_supportEmailAddress; 95 | 96 | /** 97 | * The instructions to provide to the TechSupport framework, in addition to the 98 | * default ones provided by Cephei. For details and examples of support 99 | * instructions, refer to the TechSupport project’s GitHub repo: 100 | * https://github.com/ashikase/TechSupport/tree/master/Demo 101 | * 102 | * @returns By default, nil. 103 | * @see HBSupportController 104 | */ 105 | + (nullable NSArray *)hb_supportInstructions; 106 | 107 | /** 108 | * @name Preference Specifier Actions 109 | */ 110 | 111 | /** 112 | * Opens the user's browser to the URL specified by hb_websiteURL. 113 | * 114 | * Deprecated. It is encouraged to use an HBLinkTableCell instead. 115 | */ 116 | - (void)hb_openWebsite __attribute((deprecated("Use an HBLinkTableCell instead."))); 117 | 118 | /** 119 | * Opens the user's browser to the URL specified by hb_donateURL. 120 | * 121 | * Deprecated. It is encouraged to use an HBLinkTableCell instead. 122 | */ 123 | - (void)hb_openDonate __attribute((deprecated("Use an HBLinkTableCell instead."))); 124 | 125 | /** 126 | * Displays a support composer form. 127 | * 128 | * The hb_supportEmailAddress and hb_supportInstructions methods are used to 129 | * provide the appropriate parameters to `HBSupportController`. 130 | * 131 | * @see HBSupportController 132 | */ 133 | - (void)hb_sendSupportEmail; 134 | 135 | @end 136 | 137 | NS_ASSUME_NONNULL_END 138 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBAppearanceSettings.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The `HBAppearanceSettings` class in `CepheiPrefs` provides a model object 3 | * read by other components of Cephei to determine colors to use in the user 4 | * interface. 5 | * 6 | * Appearance settings are typically set on a view controller, via the 7 | * -[PSListController+HBTintAdditions hb_appearanceSettings] property. This is 8 | * automatically managed by Cephei and provided to view controllers as they are 9 | * pushed onto the stack. 10 | * 11 | * This interface replaces the previous method that worked in the opposite way – 12 | * HBListController would work backwards to find a view controller with 13 | * appearance settings defined. This was not robust, created messy code within 14 | * Cephei, and can cause a mix of colors if a view controller with different 15 | * settings to the prior one is pushed. 16 | * 17 | * Use of the old properties on HBListController will cause a warning to be 18 | * logged. 19 | * 20 | * Most commonly, the API will be used by setting the hb_appearanceSettings 21 | * property from the init method. The following example sets the tint color, 22 | * table view background color, and enables an inverted navigation bar: 23 | * 24 | * - (instancetype)init { 25 | * self = [super init]; 26 | * 27 | * if (self) { 28 | * HBAppearanceSettings *appearanceSettings = [[HBAppearanceSettings alloc] init]; 29 | * appearanceSettings.tintColor = [UIColor colorWithRed:66.f / 255.f green:105.f / 255.f blue:154.f / 255.f alpha:1]; 30 | * appearanceSettings.tableViewBackgroundColor = [UIColor colorWithWhite:242.f / 255.f alpha:1]; 31 | * appearanceSettings.invertedNavigationBar = YES; 32 | * self.hb_appearanceSettings = appearanceSettings; 33 | * } 34 | * 35 | * return self; 36 | * } 37 | */ 38 | 39 | @interface HBAppearanceSettings : NSObject 40 | 41 | /** 42 | * @name General 43 | */ 44 | 45 | /** 46 | * The tint color to use for interactable elements within the list controller. 47 | * Override this method to return a UIColor to use. 48 | * 49 | * A nil value will cause no modification of the tint to occur. 50 | * 51 | * @returns By default, nil. 52 | */ 53 | @property (nonatomic, copy, nullable) UIColor *tintColor; 54 | 55 | /** 56 | * @name Navigation Bar 57 | */ 58 | 59 | /** 60 | * The tint color to use for the navigation bar buttons, or, if 61 | * hb_invertedNavigationBar is set, the background of the navigation bar. 62 | * Override this method to return a UIColor to use, if you don’t want to use the 63 | * same color as hb_tintColor. 64 | * 65 | * A nil value will cause no modification of the navigation bar tint to occur. 66 | * 67 | * @returns By default, the return value of hb_tintColor. 68 | */ 69 | @property (nonatomic, copy, nullable) UIColor *navigationBarTintColor; 70 | 71 | /** 72 | * The color to use for the navigation bar title label. Override this method to 73 | * return a UIColor to use. 74 | * 75 | * A nil value will cause no modification of the navigation bar title color to occur. 76 | * 77 | * @returns By default, nil. 78 | */ 79 | @property (nonatomic, copy, nullable) UIColor *navigationBarTitleColor; 80 | 81 | /** 82 | * The background color to use for the navigation bar. Override this method to 83 | * return a UIColor to use. 84 | * 85 | * A nil value will cause no modification of the navigation bar background to 86 | * occur. 87 | * 88 | * @returns By default, nil. 89 | */ 90 | @property (nonatomic, copy, nullable) UIColor *navigationBarBackgroundColor; 91 | 92 | /** 93 | * The color to use for the status bar icons. Override this method to return a UIColor to use. 94 | * 95 | * A nil value will cause no modification of the status bar color to occur. 96 | * 97 | * @returns By default, nil. 98 | */ 99 | @property (nonatomic, copy, nullable) UIColor *statusBarTintColor; 100 | 101 | /** 102 | * Whether to use an inverted navigation bar. 103 | * 104 | * Deprecated. Set navigationBarBackgroundColor and navigationBarTitleColor 105 | * instead. 106 | * 107 | * An inverted navigation bar has a tinted background, rather than the buttons 108 | * being tinted. All other interface elements will be tinted the same. 109 | * 110 | * @returns By default, NO. 111 | */ 112 | @property (nonatomic, assign) BOOL invertedNavigationBar __attribute((deprecated("Set navigationBarBackgroundColor and navigationBarTitleColor instead."))); 113 | 114 | /** 115 | * Whether to use a translucent navigation bar. Override this method if you want 116 | * this behavior. 117 | * 118 | * @returns By default, YES. 119 | */ 120 | 121 | @property (nonatomic, assign) BOOL translucentNavigationBar; 122 | 123 | /** 124 | * @name Table View 125 | */ 126 | 127 | /** 128 | * The color to be used for the overall background of the table view. 129 | * Override this method to return a UIColor to use. 130 | * 131 | * @returns By default, nil. 132 | */ 133 | @property (nonatomic, copy, nullable) UIColor *tableViewBackgroundColor; 134 | 135 | /** 136 | * The color to be used for the text color of table view cells. 137 | * Override this method to return a UIColor to use. 138 | * 139 | * @returns By default, nil. 140 | */ 141 | @property (nonatomic, copy, nullable) UIColor *tableViewCellTextColor; 142 | 143 | /** 144 | * The color to be used for the background color of table view cells. 145 | * Override this method to return a UIColor to use. 146 | * 147 | * @returns By default, nil. 148 | */ 149 | @property (nonatomic, copy, nullable) UIColor *tableViewCellBackgroundColor; 150 | 151 | /** 152 | * The color to be used for the separator between table view cells. 153 | * Override this method to return a UIColor to use. 154 | * 155 | * @returns By default, nil. 156 | */ 157 | @property (nonatomic, copy, nullable) UIColor *tableViewCellSeparatorColor; 158 | 159 | /** 160 | * The color to be used when a table view cell is selected. 161 | * This color will be shown when the cell is in the 'highlighted' state. 162 | * 163 | * Override this method to return a UIColor to use. 164 | * 165 | * @returns By default, nil. 166 | */ 167 | @property (nonatomic, copy, nullable) UIColor *tableViewCellSelectionColor; 168 | 169 | @end 170 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBDiscreteSliderTableCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * The `HBDiscreteSliderTableCell` class in `CepheiPrefs` is a subclass of the 6 | * standard slider cell, which displays a vertical line at every whole number. 7 | * Additionally, when dragging the slider, it jumps to these lines so the user’s 8 | * preference will always be a whole number. 9 | * 10 | * It is no longer necessary to use this as of iOS 8.2, which has built in 11 | * `isSegmented` and `segmentCount` parameters on PSSliderCell. This class is 12 | * kept for backwards compatibility, and will use the built-in implementation on 13 | * iOS 8.2 and newer. 14 | * 15 | * Requires iOS 7.0 or later. A normal slider is shown for older versions. 16 | * 17 | * ### Specifier Parameters 18 | * All parameters specific to 19 | * [PSSliderCell](http://iphonedevwiki.net/index.php/Preferences_specifier_plist#PSSliderCell) 20 | * are applicable here. There are no custom parameters. 21 | * 22 | * ### Example Usage 23 | * 24 | * cell 25 | * PSSliderCell 26 | * cellClass 27 | * HBDiscreteSliderTableCell 28 | * default 29 | * 5 30 | * defaults 31 | * ws.hbang.common.demo 32 | * key 33 | * Discrete 34 | * label 35 | * Discrete 36 | * max 37 | * 15 38 | * min 39 | * 1 40 | * 41 | */ 42 | 43 | @interface HBDiscreteSliderTableCell : PSControlTableCell 44 | 45 | @property (nonatomic, retain) PSDiscreteSlider *control; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBImageTableCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * The `HBImageTableCell` class in `CepheiPrefs` provides a simple way to 6 | * display an image as a table cell, or a header or footer. 7 | * 8 | * ### Specifier Parameters 9 | * 10 | * 11 | * 13 | * 14 | *
icon Required. The file name of the image to display in the 12 | * cell.
15 | * 16 | * If you use `HBImageTableCell` as a header or footer with `headerCellClass` 17 | * or `footerCellClass`, it will size automatically to fit the image. If you 18 | * use it as a cell with `cellClass`, you must set the height yourself using 19 | * the `height` key. 20 | * 21 | * ### Example Usage 22 | * 23 | * 24 | * cell 25 | * PSGroupCell 26 | * headerCellClass 27 | * HBImageTableCell 28 | * height 29 | * 100 30 | * icon 31 | * logo.png 32 | * 33 | * 34 | * 35 | * 36 | * cellClass 37 | * HBImageTableCell 38 | * height 39 | * 100 40 | * icon 41 | * logo.png 42 | * 43 | */ 44 | 45 | @interface HBImageTableCell : PSTableCell 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBInitialsLinkTableCell.h: -------------------------------------------------------------------------------- 1 | #import "HBLinkTableCell.h" 2 | 3 | /** 4 | * The `HBInitialsLinkTableCell` class in `CepheiPrefs` is a shim kept for 5 | * compatibility reasons. The class is now called HBLinkTableCell. 6 | */ 7 | 8 | @interface HBInitialsLinkTableCell : HBLinkTableCell 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBLinkTableCell.h: -------------------------------------------------------------------------------- 1 | #import "HBTintedTableCell.h" 2 | 3 | /** 4 | * The `HBLinkTableCell` class in `CepheiPrefs` displays a button that, when 5 | * tapped, opens the specified URL. A typical icon can be used, or the initials 6 | * key can be set to one or two characters to show as the icon. 7 | * 8 | * This cell can either be used without setting any cell type, or by setting it 9 | * to `PSButtonCell` to get a tinted button. 10 | * 11 | * Requires iOS 7.0 or later. 12 | * 13 | * ### Specifier Parameters 14 | * 15 | * 16 | * 18 | * 19 | * 20 | * 21 | * 22 | * 23 | * 25 | * 26 | *
initials Optional. One or two characters to show as the 17 | * icon.
url Required. The URL to open.
subtitle Optional. A subtitle to display below the label. The 24 | * default is an empty string, hiding the subtitle.
27 | * 28 | * ### Example Usage 29 | * 30 | * 31 | * cellClass 32 | * HBLinkTableCell 33 | * icon 34 | * example.png 35 | * label 36 | * Example 37 | * url 38 | * http://example.com/ 39 | * 40 | * 41 | * 42 | * 43 | * cellClass 44 | * HBLinkTableCell 45 | * initials 46 | * XX 47 | * label 48 | * Example 49 | * url 50 | * http://example.com/ 51 | * 52 | * 53 | * 54 | * 55 | * cellClass 56 | * HBLinkTableCell 57 | * label 58 | * Example 59 | * subtitle 60 | * Visit our amazing website 61 | * url 62 | * http://example.com/ 63 | * 64 | * 65 | * 66 | * 67 | * big 68 | * 69 | * cellClass 70 | * HBLinkTableCell 71 | * height 72 | * 64 73 | * label 74 | * Example 75 | * subtitle 76 | * Visit our amazing website 77 | * url 78 | * http://example.com/ 79 | * 80 | */ 81 | 82 | @interface HBLinkTableCell : HBTintedTableCell 83 | 84 | /** 85 | * Whether the cell is 64 pixels or more in height. 86 | * 87 | * This is not set automatically; the specifier for the cell must set the `big` 88 | * property to true (see examples above). 89 | */ 90 | @property (nonatomic, readonly) BOOL isBig; 91 | 92 | /** 93 | * The view containing the avatar image view. 94 | */ 95 | @property (nonatomic, retain, readonly) UIView *avatarView; 96 | 97 | /** 98 | * The avatar image view. 99 | */ 100 | @property (nonatomic, retain, readonly) UIImageView *avatarImageView; 101 | 102 | /** 103 | * The image to display as the avatar, if enabled. 104 | */ 105 | @property (nonatomic, retain) UIImage *avatarImage; 106 | 107 | @end 108 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBListController+Actions.h: -------------------------------------------------------------------------------- 1 | #import "HBListController.h" 2 | 3 | @class PSSpecifier; 4 | 5 | NS_ASSUME_NONNULL_BEGIN 6 | 7 | @interface HBListController (Actions) 8 | 9 | - (void)hb_respring:(PSSpecifier *)specifier; 10 | - (void)hb_respringAndReturn:(PSSpecifier *)specifier; 11 | 12 | - (void)hb_openURL:(PSSpecifier *)specifier; 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBListController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "PSListController+HBTintAdditions.h" 3 | 4 | /** 5 | * The `HBListController` class in `CepheiPrefs` provides a list controller with 6 | * various conveniences such as a unique tint color for the list controllers 7 | * within a preference bundle, and bug fixes for common issues within the 8 | * Settings app and Preferences framework. In particular,a bug with the list 9 | * controller's content disappearing after closing the Settings app and opening 10 | * it again is worked around, as well as an issue on iOS 7 where in some cases 11 | * a cell may stay highlighted after being tapped. 12 | * 13 | * It includes two class methods you can override to return the name of a 14 | * Preferences specifier property list, and various methods to set custom colors 15 | * in the list controller interface. 16 | */ 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @interface HBListController : PSListController 21 | 22 | /** 23 | * @name Specifiers 24 | */ 25 | 26 | /** 27 | * The property list that contains Preference framework specifiers to display 28 | * as the content of the list controller. Override this method to return the 29 | * file name of a property list inside your preference bundle, omitting the 30 | * file extension. 31 | * 32 | * If you use this method and override the `specifiers` method, ensure you call 33 | * the super method with `[super specifiers];` first in your `specifiers` 34 | * implementation. 35 | * 36 | * @returns By default, nil. 37 | */ 38 | + (nullable NSString *)hb_specifierPlist; 39 | 40 | /** 41 | * @name Colors 42 | */ 43 | 44 | /** 45 | * The tint color to use for interactable elements within the list controller. 46 | * Override this method to return a UIColor to use. 47 | * 48 | * A nil value will cause prior view controllers on the stack to be consulted 49 | * for a value. If a value is found, that will be used. 50 | * 51 | * @returns By default, nil. 52 | * @warning Appearance methods on HBListController are deprecated. Use of these 53 | * methods will result in a warning being logged. Additionally, if any of these 54 | * methods return nil, previous view controllers on the stack are consulted. 55 | * This can cause an undesired mix of color schemes. It is advised to switch to 56 | * using HBAppearanceSettings. 57 | */ 58 | + (nullable UIColor *)hb_tintColor; 59 | 60 | /** 61 | * The tint color to use for the navigation bar buttons, or, if 62 | * hb_invertedNavigationBar is set, the background of the navigation bar. 63 | * Override this method to return a UIColor to use, if you don’t want to use the 64 | * same color as hb_tintColor. 65 | * 66 | * A nil value will cause prior view controllers on the stack to be consulted 67 | * for a value. If a value is found, that will be used. 68 | * 69 | * @returns By default, the return value of hb_tintColor. 70 | * @warning Appearance methods on HBListController are deprecated. Use of these 71 | * methods will result in a warning being logged. Additionally, if any of these 72 | * methods return nil, previous view controllers on the stack are consulted. 73 | * This can cause an undesired mix of color schemes. It is advised to switch to 74 | * using HBAppearanceSettings. 75 | */ 76 | + (nullable UIColor *)hb_navigationBarTintColor; 77 | 78 | /** 79 | * Whether to use an inverted navigation bar. Override this method if you want 80 | * this behavior. 81 | * 82 | * An inverted navigation bar has a tinted background, rather than the buttons 83 | * being tinted. All other interface elements will be tinted the same. 84 | * 85 | * A NO value will cause prior view controllers on the stack to be consulted for 86 | * a value. If a value is found, that will be used. 87 | * 88 | * @returns By default, NO. 89 | * @warning Appearance methods on HBListController are deprecated. Use of these 90 | * methods will result in a warning being logged. Additionally, if any of these 91 | * methods return nil, previous view controllers on the stack are consulted. 92 | * This can cause an undesired mix of color schemes. It is advised to switch to 93 | * using HBAppearanceSettings. 94 | */ 95 | + (BOOL)hb_invertedNavigationBar; 96 | 97 | /** 98 | * Whether to use a translucent navigation bar. Override this method if you want 99 | * this behavior. 100 | * 101 | * A NO value will cause prior view controllers on the stack to be consulted for 102 | * a value. If a value is found, that will be used. 103 | * 104 | * @returns By default, YES. 105 | * @warning Appearance methods on HBListController are deprecated. Use of these 106 | * methods will result in a warning being logged. Additionally, if any of these 107 | * methods return nil, previous view controllers on the stack are consulted. 108 | * This can cause an undesired mix of color schemes. It is advised to switch to 109 | * using HBAppearanceSettings. 110 | */ 111 | + (BOOL)hb_translucentNavigationBar; 112 | 113 | /** 114 | * The color to be used for the overall background of the table view. Override 115 | * this method to return a UIColor to use. 116 | * 117 | * A nil value will cause prior view controllers on the stack to be consulted 118 | * for a value. If a value is found, that will be used. 119 | * 120 | * @returns By default, nil. 121 | * @warning Appearance methods on HBListController are deprecated. Use of these 122 | * methods will result in a warning being logged. Additionally, if any of these 123 | * methods return nil, previous view controllers on the stack are consulted. 124 | * This can cause an undesired mix of color schemes. It is advised to switch to 125 | * using HBAppearanceSettings. 126 | */ 127 | + (UIColor *)hb_tableViewBackgroundColor; 128 | 129 | /** 130 | * The color to be used for the text color of table view cells. Override this 131 | * method to return a UIColor to use. 132 | * 133 | * A nil value will cause prior view controllers on the stack to be consulted 134 | * for a value. If a value is found, that will be used. 135 | * 136 | * @returns By default, nil. 137 | * @warning Appearance methods on HBListController are deprecated. Use of these 138 | * methods will result in a warning being logged. Additionally, if any of these 139 | * methods return nil, previous view controllers on the stack are consulted. 140 | * This can cause an undesired mix of color schemes. It is advised to switch to 141 | * using HBAppearanceSettings. 142 | */ 143 | + (UIColor *)hb_tableViewCellTextColor; 144 | 145 | /** 146 | * The color to be used for the background color of table view cells. Override 147 | * this method to return a UIColor to use. 148 | * 149 | * A nil value will cause prior view controllers on the stack to be consulted 150 | * for a value. If a value is found, that will be used. 151 | * 152 | * @returns By default, nil. 153 | * @warning Appearance methods on HBListController are deprecated. Use of these 154 | * methods will result in a warning being logged. Additionally, if any of these 155 | * methods return nil, previous view controllers on the stack are consulted. 156 | * This can cause an undesired mix of color schemes. It is advised to switch to 157 | * using HBAppearanceSettings. 158 | */ 159 | + (UIColor *)hb_tableViewCellBackgroundColor; 160 | 161 | /** 162 | * The color to be used for the separator between table view cells. Override 163 | * this method to return a UIColor to use. 164 | * 165 | * A nil value will cause prior view controllers on the stack to be consulted 166 | * for a value. If a value is found, that will be used. 167 | * 168 | * @returns By default, nil. 169 | * @warning Appearance methods on HBListController are deprecated. Use of these 170 | * methods will result in a warning being logged. Additionally, if any of these 171 | * methods return nil, previous view controllers on the stack are consulted. 172 | * This can cause an undesired mix of color schemes. It is advised to switch to 173 | * using HBAppearanceSettings. 174 | */ 175 | + (UIColor *)hb_tableViewCellSeparatorColor; 176 | 177 | /** 178 | * The color to be used when a table view cell is selected. This color will be 179 | * used when the cell is in the 'highlighted' state. 180 | * 181 | * A nil value will cause prior view controllers on the stack to be consulted 182 | * for a value. If a value is found, that will be used. 183 | * 184 | * @returns By default, nil. 185 | * @warning Appearance methods on HBListController are deprecated. Use of these 186 | * methods will result in a warning being logged. Additionally, if any of these 187 | * methods return nil, previous view controllers on the stack are consulted. 188 | * This can cause an undesired mix of color schemes. It is advised to switch to 189 | * using HBAppearanceSettings. 190 | */ 191 | + (UIColor *)hb_tableViewCellSelectionColor; 192 | 193 | /** 194 | * @name Related View Controllers 195 | */ 196 | 197 | /** 198 | * Returns the “real” navigation controller for this view controller. 199 | * 200 | * As of iOS 8.0, the navigation controller that owns the navigation bar and 201 | * other responsibilities is actually a parent of `self.navigationController` on 202 | * iPhone, due to the larger Plus models. The realNavigationController method 203 | * returns the correct navigation controller. 204 | * 205 | * @returns The real navigation controller. 206 | */ 207 | - (UINavigationController *)realNavigationController; 208 | 209 | @end 210 | 211 | NS_ASSUME_NONNULL_END 212 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBListItemsController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * The `HBListItemsController` class in `CepheiPrefs` was used with previous 5 | * versions to ensure that the tint color from the previous view controller is 6 | * retained. As of Cephei 1.4, this is no longer needed, and this class is kept 7 | * for backwards compatibility purposes. 8 | */ 9 | 10 | @interface HBListItemsController : PSListItemsController 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBPackageNameHeaderCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | /** 5 | * The `HBPackageNameHeaderCell` class in `CepheiPrefs` displays a header 6 | * containing the package's icon, name, version number, and author. It can be 7 | * displayed in a subtle condensed design, or, by default, a tall header that 8 | * might be displayed at the top of a preference bundle's root list controller, 9 | * for instance. 10 | * 11 | * ### Specifier Parameters 12 | * 13 | * 14 | * 18 | * 19 | * 20 | * 22 | * 23 | * 24 | * 26 | * 27 | * 28 | * 30 | * 31 | * 32 | * 34 | * 35 | * 36 | * 38 | * 39 | * 40 | * 42 | * 43 | * 44 | * 46 | * 47 | * 48 | * 51 | * 52 | *
condensed Optional. When true, displays an icon, the package 15 | * name and version in one line, and on another displays the author name. 16 | * When false, displays a large package name, and on two lines in small font 17 | * the package version and author. The default is false.
icon Required in condensed mode. Not used otherwise. The file 21 | * name of the icon to use within the current preference bundle.
packageIdentifier Required. The package identifier to retrieve 25 | * the required information from.
packageNameOverride Optional. A custom name to use instead of 29 | * the package’s name.
showAuthor Optional. Whether to show the `Author` field of the 33 | * package. The default is true.
showVersion Optional. Whether to show the `Version` field of 37 | * the package. The default is true.
titleColor Optional. The color to apply to the name of the 41 | * package. The default is #111111.
subtitleColor Optional. The color to apply to the subtitles. 45 | * The default is #444444.
backgroundGradientColors Optional. An array of color stops to 49 | * use as a background gradient. At least one is required. The default is no 50 | * background gradient.
53 | * 54 | * ### Example Usage 55 | * 56 | * 57 | * cell 58 | * PSGroupCell 59 | * headerCellClass 60 | * HBPackageNameHeaderCell 61 | * packageIdentifier 62 | * ws.hbang.common 63 | * 64 | * 65 | * 66 | * 67 | * cell 68 | * PSGroupCell 69 | * condensed 70 | * 71 | * headerCellClass 72 | * HBPackageNameHeaderCell 73 | * icon 74 | * icon.png 75 | * packageIdentifier 76 | * ws.hbang.common 77 | * 78 | * 79 | * 80 | * 81 | * cell 82 | * PSGroupCell 83 | * headerCellClass 84 | * HBPackageNameHeaderCell 85 | * packageIdentifier 86 | * ws.hbang.common 87 | * titleColor 88 | * #CC0000 89 | * subtitleColor 90 | * 91 | * 55 92 | * 147 93 | * 230 94 | * 95 | * 96 | * 97 | * 98 | * 99 | * cell 100 | * PSGroupCell 101 | * headerCellClass 102 | * HBPackageNameHeaderCell 103 | * packageIdentifier 104 | * ws.hbang.common 105 | * backgroundGradientColors 106 | * 107 | * #5AD427 108 | * #FFDB4C 109 | * #EF4DB6 110 | * #898C90 111 | * 112 | * 113 | */ 114 | 115 | @interface HBPackageNameHeaderCell : PSTableCell 116 | 117 | @end 118 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBPackageTableCell.h: -------------------------------------------------------------------------------- 1 | #import "HBLinkTableCell.h" 2 | 3 | /** 4 | * The `HBPackageTableCell` class in `CepheiPrefs` provides a cell containing 5 | * any package's icon, name, and description. Tapping it opens the package in 6 | * in Cydia. 7 | * 8 | * ### Specifier Parameters 9 | * 10 | * 11 | * 13 | * 14 | * 15 | * 17 | * 18 | * 19 | * 20 | * 21 | * 22 | * 24 | * 25 | * 26 | *
packageIdentifier Required. The package identifier to retrieve 12 | * the required information from.
packageRepository Optional. The URL to the repository the 16 | * package is available on, if not one of the default repos.
label Required. The name of the package.
subtitleText Optional. Can be used for a description of the 23 | * package.
27 | * 28 | * ### Example Usage 29 | * 30 | * 31 | * cellClass 32 | * HBPackageTableCell 33 | * label 34 | * Cephei 35 | * packageIdentifier 36 | * ws.hbang.common 37 | * 38 | * 39 | * 40 | * 41 | * cellClass 42 | * HBPackageTableCell 43 | * label 44 | * Cephei 45 | * packageIdentifier 46 | * ws.hbang.common 47 | * subtitleText 48 | * Support library for tweaks 49 | * 50 | * 51 | * 52 | * 53 | * cellClass 54 | * HBPackageTableCell 55 | * label 56 | * Cephei 57 | * packageIdentifier 58 | * ws.hbang.common 59 | * packageRepository 60 | * https://cydia.hbang.ws 61 | * 62 | */ 63 | @interface HBPackageTableCell : HBLinkTableCell 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBRootListController.h: -------------------------------------------------------------------------------- 1 | #import "HBListController.h" 2 | 3 | /** 4 | * The `HBRootListController` class in `CepheiPrefs` provides a list controller 5 | * class that should be used as the root of the package's settings. It includes 6 | * two class methods you can override to provide a default message and a URL 7 | * that the user can share via a sharing button displayed to the right of the 8 | * navigation bar. 9 | * 10 | * It is recommended that you use this class even if its current features 11 | * aren't appealing in case of future improvements or code that relies on the 12 | * presence of an HBRootListController. 13 | */ 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface HBRootListController : HBListController 18 | 19 | /** 20 | * @name Constants 21 | */ 22 | 23 | /** 24 | * A string to be used as a default message when the user shares the package 25 | * to a friend or social website. Override this method to return your own 26 | * string. 27 | * 28 | * If the return value of this method and hb_shareURL are nil, the sharing 29 | * button will not be displayed. 30 | * 31 | * @returns By default, nil. 32 | */ 33 | + (nullable NSString *)hb_shareText; 34 | 35 | 36 | /** 37 | * The URL to be shared when the user shares the package to a friend or social 38 | * website. Override this method to return your own URL. 39 | * 40 | * If the return value of this method and hb_shareText are nil, the sharing 41 | * button will not be displayed. 42 | * 43 | * @returns By default, nil. 44 | */ 45 | + (nullable NSURL *)hb_shareURL; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBSpinnerTableCell.h: -------------------------------------------------------------------------------- 1 | #import "HBTintedTableCell.h" 2 | 3 | /** 4 | * The `HBSpinnerTableCell` class in `CepheiPrefs` displays an activity 5 | * indicator when the cell is disabled. 6 | * 7 | * ### Example Usage 8 | * Specifier plist: 9 | * 10 | * 11 | * action 12 | * doStuffTapped: 13 | * cell 14 | * PSButtonCell 15 | * cellClass 16 | * HBSpinnerTableCell 17 | * label 18 | * Do Stuff 19 | * 20 | * 21 | * List controller implementation: 22 | * 23 | * - (void)doStuffTapped:(PSSpecifier *)specifier { 24 | * PSTableCell *cell = [self cachedCellForSpecifier:specifier]; 25 | * cell.cellEnabled = NO; 26 | * // do something in the background... 27 | * cell.cellEnabled = YES; 28 | * } 29 | */ 30 | 31 | @interface HBSpinnerTableCell : HBTintedTableCell 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBStepperTableCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * The `HBStepperTableCell` class in `CepheiPrefs` allows setting a value using 5 | * a stepper control ("minus" and "plus" buttons). 6 | * 7 | * Requires iOS 6.0 or later. 8 | * 9 | * ### Specifier Parameters 10 | * 11 | * 12 | * 14 | * 15 | * 16 | * 18 | * 19 | * 20 | * 22 | * 23 | * 24 | * 26 | * 27 | *
label Required. The label displayed when the value is plural. 13 | * Use %i to denote where the number should be displayed.
max Required. The highest possible numeric value for the 17 | * stepper.
min Required. The lowest possible numeric value for the 21 | * stepper.
singularLabel Required. The label displayed when the value is 25 | * singular.
28 | * 29 | * ### Example Usage 30 | * 31 | * cellClass 32 | * HBStepperTableCell 33 | * default 34 | * 5 35 | * defaults 36 | * ws.hbang.common.demo 37 | * key 38 | * Stepper 39 | * label 40 | * %i Things 41 | * max 42 | * 15 43 | * min 44 | * 1 45 | * singularLabel 46 | * 1 Thing 47 | * 48 | */ 49 | 50 | @interface HBStepperTableCell : PSControlTableCell 51 | 52 | @property (nonatomic, retain) UIStepper *control; 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBSupportController.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The `HBSupportController` class in `CepheiPrefs` provides a factory that 3 | * configures a `TSContactViewController` for immediate use. The 4 | * `TSContactViewController` class, from 5 | * [TechSupport](https://github.com/ashikase/TechSupport) by ashikase, provides 6 | * a text box for entering a message, as well as the ability to view or remove 7 | * pre-defined attachments. After tapping the submit button, the information is 8 | * provided to the next step, which most commonly is an email composer. 9 | * 10 | * By providing a link instruction, you can have the message sent to a different 11 | * email address or posted to a website. You can also provide one or more 12 | * support instructions, which allow more files to be attached. For more 13 | * information and for examples of `TSContactViewController` usage, refer to the 14 | * [demos directory](https://github.com/ashikase/TechSupport/tree/master/Demo) 15 | * in the TechSupport source. 16 | * 17 | * A `TSContactViewController` should be pushed on your view controller stack; 18 | * it should not be presented modally. 19 | */ 20 | 21 | @class TSContactViewController, TSLinkInstruction, TSIncludeInstruction; 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | @interface HBSupportController : NSObject 26 | 27 | /** 28 | * Initialises a `TSLinkInstruction` for the provided email address. 29 | * 30 | * @param emailAddress The email address to send an email to. 31 | * @returns A pre-configured instance of `TSLinkInstruction`. 32 | */ 33 | + (TSLinkInstruction *)linkInstructionForEmailAddress:(NSString *)emailAddress; 34 | 35 | /** 36 | * Initialises a `TSContactViewController` by using information provided by a 37 | * bundle. 38 | * 39 | * Refer to supportViewControllerForBundle:preferencesIdentifier:linkInstruction:supportInstructions: 40 | * for information on how the bundle is used. 41 | * 42 | * @param bundle A bundle included with the package. 43 | * @returns A pre-configured instance of `TSContactViewController`. 44 | * @see supportViewControllerForBundle:preferencesIdentifier:linkInstruction:supportInstructions: 45 | */ 46 | + (TSContactViewController *)supportViewControllerForBundle:(NSBundle *)bundle; 47 | 48 | /** 49 | * Initialises a `TSContactViewController` by using information provided by a 50 | * bundle and references identifier. 51 | * 52 | * Refer to supportViewControllerForBundle:preferencesIdentifier:linkInstruction:supportInstructions: 53 | * for information on how the bundle and preferences identifier are used. 54 | * 55 | * @param bundle A bundle included with the package. 56 | * @param preferencesIdentifier A preferences identifier that is used by the 57 | * package. 58 | * @returns A pre-configured instance of `TSContactViewController`. 59 | * @see supportViewControllerForBundle:preferencesIdentifier:linkInstruction:supportInstructions: 60 | */ 61 | + (TSContactViewController *)supportViewControllerForBundle:(nullable NSBundle *)bundle preferencesIdentifier:(NSString *)preferencesIdentifier; 62 | 63 | /** 64 | * Initialises a `TSContactViewController` by using information provided by 65 | * either a bundle or a preferences identifier, and providing it a custom link 66 | * instruction and support instructions. 67 | * 68 | * The bundle may set the key `HBPackageIdentifier` in its Info.plist, 69 | * containing the package identifier to gather information from. Otherwise, the 70 | * dpkg file lists are searched to find the package that contains the bundle. 71 | * The package’s name, identifier, and author will be used to fill out fields in 72 | * the information that the user will submit. 73 | * 74 | * Either a bundle or preferences identifier is required. If both are nil, an 75 | * exception will be thrown. If the `linkInstruction` argument is nil, a 76 | * `TSLinkInstruction` is derived from the `Author` field of the package’s 77 | * control file. `HBSupportController` implicitly adds the user’s package 78 | * listing (output of `dpkg -l`) and the preferences plist as attachments. To 79 | * add more, provide an array of `TSIncludeInstruction`s to the 80 | * `supportInstructions` argument. 81 | * 82 | * @param bundle A bundle included with the package. 83 | * @param preferencesIdentifier The preferences identifier of the package, if 84 | * it’s different from the package identifier that contains the bundle. 85 | * @param linkInstruction The link instruction to use, or nil. 86 | * @param supportInstructions Support instructions to use in combination with 87 | * the built-in ones defined by HBSupportController, or nil. 88 | * @returns A pre-configured instance of `TSContactViewController`. 89 | */ 90 | + (TSContactViewController *)supportViewControllerForBundle:(nullable NSBundle *)bundle preferencesIdentifier:(nullable NSString *)preferencesIdentifier linkInstruction:(nullable TSLinkInstruction *)linkInstruction supportInstructions:(nullable NSArray *)supportInstructions; 91 | 92 | @end 93 | 94 | NS_ASSUME_NONNULL_END 95 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBTintedTableCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * The `HBTintedTableCell` class in `CepheiPrefs` ensures that a tint set with 5 | * +[HBListController hb_tintColor] will also be applied to the title label of a 6 | * of a cell intended to be used as a button. 7 | * 8 | * ### Example Usage 9 | * 10 | * cell 11 | * PSButtonCell 12 | * cellClass 13 | * HBTintedTableCell 14 | * label 15 | * Do Something 16 | * 17 | */ 18 | 19 | @interface HBTintedTableCell : PSTableCell 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/HBTwitterCell.h: -------------------------------------------------------------------------------- 1 | #import "HBLinkTableCell.h" 2 | 3 | /** 4 | * The `HBTwitterCell` class in `CepheiPrefs` displays a button containing a 5 | * person's name, along with their Twitter username and avatar. When tapped, 6 | * a Twitter client installed on the user's device or the Twitter website is 7 | * opened to the person's profile. 8 | * 9 | * ### Specifier Parameters 10 | * 11 | * 12 | * 15 | * 16 | * 17 | * 19 | * 20 | * 21 | * 22 | * 23 | * 24 | * 26 | * 27 | * 28 | * 29 | * 30 | *
big Optional. Whether to display the username below the name 13 | * (true) or to the right of it (false). The default is false. If you set this 14 | * to true, you should also set the cell's height to 56pt.
initials Optional. One or two characters to show instead of an 18 | * avatar.
label Required. The name of the person.
showAvatar Optional. Whether to show the avatar of the user. 25 | * The default is true.
user Required. The Twitter username of the person.
31 | * 32 | * ### Example Usage 33 | * 34 | * 35 | * cellClass 36 | * HBTwitterCell 37 | * label 38 | * HASHBANG Productions 39 | * user 40 | * hbangws 41 | * 42 | * 43 | * 44 | * 45 | * big 46 | * 47 | * cellClass 48 | * HBTwitterCell 49 | * height 50 | * 56 51 | * label 52 | * HASHBANG Productions 53 | * user 54 | * hbangws 55 | * 56 | * 57 | * 58 | * 59 | * cellClass 60 | * HBTwitterCell 61 | * label 62 | * HASHBANG Productions 63 | * showAvatar 64 | * 65 | * user 66 | * hbangws 67 | * 68 | */ 69 | 70 | @interface HBTwitterCell : HBLinkTableCell 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /13hud/Headers/CepheiPrefs/PSListController+HBTintAdditions.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The `PSListController+HBTintAdditions` class category in `CepheiPrefs` 3 | * provides a property for setting the desired appearance settings of the view 4 | * controller. 5 | */ 6 | 7 | #import 8 | 9 | @class HBAppearanceSettings; 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface PSListController (HBTintAdditions) 14 | 15 | /** 16 | * The appearance settings for the view controller. 17 | * 18 | * This should only be set in an init or viewDidLoad method of the view 19 | * controller. The result when this property or its properties are changed after 20 | * the view has appeared is undefined. 21 | */ 22 | @property (nonatomic, copy, nullable, setter=hb_setAppearanceSettings:) HBAppearanceSettings *hb_appearanceSettings; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /13hud/Makefile: -------------------------------------------------------------------------------- 1 | GO_EASY_ON_ME=1 2 | 3 | include $(THEOS)/makefiles/common.mk 4 | 5 | BUNDLE_NAME = 13HUD 6 | 13HUD_FILES = $(wildcard *.m) 7 | 13HUD_INSTALL_PATH = /Library/PreferenceBundles 8 | 13HUD_FRAMEWORKS = Preferences Cephei CepheiPrefs 9 | 13HUD_LDFLAGS += -F../Frameworks/ 10 | 13HUD_CFLAGS = -fobjc-arc 11 | 12 | include $(THEOS_MAKE_PATH)/bundle.mk 13 | 14 | internal-stage:: 15 | $(ECHO_NOTHING)mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences$(ECHO_END) 16 | $(ECHO_NOTHING)cp entry.plist $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/13HUD.plist$(ECHO_END) 17 | -------------------------------------------------------------------------------- /13hud/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | 13HUD 9 | CFBundleIdentifier 10 | com.muirey03.13hud 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1.0 21 | NSPrincipalClass 22 | HDDRootListController 23 | 24 | 25 | -------------------------------------------------------------------------------- /13hud/Resources/Root.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | items 6 | 7 | 8 | cell 9 | PSGroupCell 10 | label 11 | Top Padding 12 | 13 | 14 | cell 15 | PSSwitchCell 16 | default 17 | 18 | key 19 | kUseCustomYPadding 20 | label 21 | Custom top padding 22 | defaults 23 | com.muirey03.13hud 24 | 25 | 26 | cell 27 | PSSliderCell 28 | min 29 | 0 30 | max 31 | 500 32 | showValue 33 | 34 | isSegmented 35 | 36 | segmentCount 37 | 20 38 | default 39 | 75 40 | defaults 41 | com.muirey03.13hud 42 | key 43 | kYPadding 44 | PostNotification 45 | com.muirey03.13hud-prefsChanged 46 | 47 | 48 | 49 | cell 50 | PSGroupCell 51 | label 52 | Height 53 | 54 | 55 | cell 56 | PSSwitchCell 57 | default 58 | 59 | key 60 | kUseCustomHeight 61 | label 62 | Custom height 63 | defaults 64 | com.muirey03.13hud 65 | 66 | 67 | cell 68 | PSSliderCell 69 | min 70 | 0 71 | max 72 | 300 73 | showValue 74 | 75 | isSegmented 76 | 77 | segmentCount 78 | 30 79 | default 80 | 150 81 | defaults 82 | com.muirey03.13hud 83 | key 84 | kHeight 85 | PostNotification 86 | com.muirey03.13hud-prefsChanged 87 | 88 | 89 | 90 | cell 91 | PSGroupCell 92 | label 93 | Width 94 | 95 | 96 | cell 97 | PSSliderCell 98 | min 99 | 15 100 | max 101 | 100 102 | showValue 103 | 104 | isSegmented 105 | 106 | segmentCount 107 | 17 108 | default 109 | 50 110 | defaults 111 | com.muirey03.13hud 112 | key 113 | kWidth 114 | PostNotification 115 | com.muirey03.13hud-prefsChanged 116 | 117 | 118 | 119 | cell 120 | PSGroupCell 121 | label 122 | Timeout 123 | 124 | 125 | cell 126 | PSSliderCell 127 | min 128 | 0.5 129 | max 130 | 2.5 131 | showValue 132 | 133 | isSegmented 134 | 135 | segmentCount 136 | 8 137 | default 138 | 1.5 139 | defaults 140 | com.muirey03.13hud 141 | key 142 | kTimeout 143 | PostNotification 144 | com.muirey03.13hud-prefsChanged 145 | 146 | 147 | 148 | cell 149 | PSGroupCell 150 | label 151 | Collapse timeout 152 | 153 | 154 | cell 155 | PSSliderCell 156 | min 157 | 0.5 158 | max 159 | 2.5 160 | showValue 161 | 162 | isSegmented 163 | 164 | segmentCount 165 | 8 166 | default 167 | 1 168 | defaults 169 | com.muirey03.13hud 170 | key 171 | kCollapseTimeout 172 | PostNotification 173 | com.muirey03.13hud-prefsChanged 174 | 175 | 176 | 177 | cell 178 | PSGroupCell 179 | label 180 | General 181 | 182 | 183 | cell 184 | PSSwitchCell 185 | default 186 | 187 | key 188 | kHideRinger 189 | label 190 | Hide ringer indicator 191 | defaults 192 | com.muirey03.13hud 193 | 194 | 195 | 196 | cell 197 | PSGroupCell 198 | label 199 | Developer 200 | 201 | 202 | cellClass 203 | HBTwitterCell 204 | label 205 | Muirey03 206 | user 207 | Muirey03 208 | 209 | 210 | 211 | cell 212 | PSGroupCell 213 | label 214 | Source code 215 | 216 | 217 | cellClass 218 | HBLinkTableCell 219 | label 220 | GitHub Repository 221 | url 222 | https://github.com/Muirey03/13HUD 223 | 224 | 225 | 226 | cell 227 | PSGroupCell 228 | label 229 | Buy me a coke 230 | 231 | 232 | cellClass 233 | HBLinkTableCell 234 | label 235 | Send me a donation 236 | url 237 | https://www.paypal.me/Muirey03Dev 238 | 239 | 240 | title 241 | 13HUD 242 | 243 | 244 | -------------------------------------------------------------------------------- /13hud/entry.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | bundle 8 | 13HUD 9 | cell 10 | PSLinkCell 11 | detail 12 | HDDRootListController 13 | icon 14 | icon.png 15 | isController 16 | 17 | label 18 | 13HUD 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Cephei.tbd: -------------------------------------------------------------------------------- 1 | --- 2 | archs: [ armv7, arm64 ] 3 | platform: ios 4 | install-name: /Library/Frameworks/Cephei.framework/Cephei 5 | current-version: 0 6 | compatibility-version: 0 7 | objc-constraint: retain_release 8 | exports: 9 | - archs: [ armv7, arm64 ] 10 | symbols: [ _HBOutputForShellCommand, _HBOutputForShellCommandWithReturnCode, _HBPreferencesDidChangeNotification, 11 | _HBPreferencesNotMobileException, _KnownIdentifiers, __CFPreferencesCopyKeyListWithContainer, 12 | __CFPreferencesCopyMultipleWithContainer, __CFPreferencesCopyValueWithContainer, 13 | __CFPreferencesSetValueWithContainer, __CFPreferencesSynchronizeWithContainer, _globalBundle ] 14 | objc-classes: [ _HBPreferences, _HBPreferencesCore, _HBPreferencesIPC, _HBRespringController ] 15 | ... 16 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/CompactConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Marco Arment on 2014-04-06. 3 | // Copyright (c) 2014 Marco Arment. See included LICENSE file. 4 | // 5 | 6 | #import "NSLayoutConstraint+CompactConstraint.h" 7 | #import "UIView+CompactConstraint.h" 8 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/HBOutputForShellCommand.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | NS_ASSUME_NONNULL_BEGIN 4 | __BEGIN_DECLS 5 | 6 | /** 7 | * Executes a shell command and returns its output. 8 | * 9 | * @param command The shell command to run. 10 | * @param returnCode A pointer to an integer that will contain the return code of the command. 11 | * @returns The output of the provided command. 12 | */ 13 | NSString * _Nullable HBOutputForShellCommandWithReturnCode(NSString *command, int *returnCode); 14 | 15 | /** 16 | * Executes a shell command and returns its output. 17 | * 18 | * @param command The shell command to run. 19 | * @returns The output of the provided command, or nil if the command returned with a code other 20 | * than 0. 21 | */ 22 | NSString * _Nullable HBOutputForShellCommand(NSString *command); 23 | 24 | __END_DECLS 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/HBPreferences.h: -------------------------------------------------------------------------------- 1 | NS_ASSUME_NONNULL_BEGIN 2 | 3 | typedef void (^HBPreferencesChangeCallback)(); 4 | 5 | typedef void (^HBPreferencesValueChangeCallback)(NSString *key, id _Nullable value); 6 | 7 | /** 8 | * The `HBPreferences` class in `Cephei` provides an interface for managing user-defined preferences 9 | * of a tweak, and the default values used when the user has not yet changed a value. 10 | * 11 | * `HBPreferences` is very similar to `NSUserDefaults`, however it is specifically tailored to iOS 12 | * tweak development, since tweaks may be loaded into a sandboxed process (most obviously, App Store 13 | * apps, but also system apps like Safari), or one that runs as the `root` user (for instance, iFile, 14 | * although these apps are slowly changing their model so they now run as mobile). In both of these 15 | * cases, using `NSUserDefaults` will result in reading from preferences inside the sandbox, or 16 | * inside `root`’s home directory; both of which are not what is expected. 17 | * 18 | * Advantages `HBPreferences` has over `NSUserDefaults` are: 19 | * 20 | * - Directly reading the property list from the `mobile` user’s home directory, to support 21 | * sandboxed apps and apps running as `root`. 22 | * - Intuitive method of setting a default preference value. 23 | * - Updating of the app/tweak’s variables when preferences are changed. 24 | * - Keyed subscripting is allowed, which enables simple array syntax. 25 | * - Values in the preferences plist are called preferences, not defaults, to avoid ambiguity - 26 | * `NSUserDefaults` uses “defaults” to refer to both preferences themselves and the fallback values 27 | * if a key doesn’t exist. 28 | * 29 | * Ensure you read the discussion for -[HBPreferences registerObject:default:forKey:] before using 30 | * the automatic updating mechanism. -[HBPreferences objectForKey:] does not update as another 31 | * process updates the preferences on iOS 7 or older; if you need to support older iOS versions, use 32 | * the registration methods instead. 33 | * 34 | * ### Example usage 35 | * 36 | * HBPreferences *preferences; 37 | * BOOL doThing; 38 | * 39 | * %ctor { 40 | * preferences = [[HBPreferences alloc] initWithIdentifier:@"ws.hbang.common.demo"]; 41 | * [preferences registerDefaults:@{ 42 | * @"Enabled": @YES, 43 | * @"AnotherSetting": @1.f 44 | * }]; 45 | * 46 | * [preferences registerBool:&doThing default:NO forKey:@"DoThing"]; 47 | * 48 | * NSLog(@"Am I enabled? %i", [preferences boolForKey:@"Enabled"]); 49 | * NSLog(@"Can I do thing? %i", doThing); 50 | * } 51 | * 52 | * ### References 53 | * * [NSUserDefaults in Practice](http://dscoder.com/defaults.html) 54 | */ 55 | @interface HBPreferences : NSObject 56 | 57 | /** 58 | * @name Initializing an HBPreferences Object 59 | */ 60 | 61 | /** 62 | * Creates an instance of the class for the specified identifier. 63 | * 64 | * @param identifier The identifier to be used. This is usually the same as the package identifier 65 | * of the tweak. 66 | * @returns An autoreleased instance of HBPreferences for the specified identifier. 67 | */ 68 | + (instancetype)preferencesForIdentifier:(NSString *)identifier; 69 | 70 | /** 71 | * Initializes an instance of the class for the specified identifier. 72 | * 73 | * @param identifier The identifier to be used. This is usually the same as the package identifier 74 | * of the tweak. 75 | * @returns An autoreleased instance of HBPreferences for the specified identifier. 76 | */ 77 | - (instancetype)initWithIdentifier:(NSString *)identifier; 78 | 79 | /** 80 | * The preferences identifier provided at initialisation. 81 | */ 82 | @property (nonatomic, retain, readonly) NSString *identifier; 83 | 84 | /** 85 | * @name Synchronizing Preferences 86 | */ 87 | 88 | /** 89 | * Synchronizes preferences data to prevent race conditions. 90 | * 91 | * On iOS 8.0 and later, waits until all communications between the `cfprefsd` daemon and the 92 | * current process have completed, preventing race conditions and guaranteeing no data will be lost. 93 | * Prior to iOS 8.0, writes all pending changes to disk, and reads latest preferences from disk. 94 | * 95 | * Do not use this method directly unless you have a specific need. HBPreferences will synchronize 96 | * automatically when needed. For further information on what this method does and when to use it, 97 | * refer to [NSUserDefaults in Practice](http://dscoder.com/defaults.html) § “Sharing Defaults 98 | * Between Programs”. 99 | * 100 | * @returns `YES` if synchronization was successful, `NO` if an error occurred. 101 | */ 102 | - (BOOL)synchronize; 103 | 104 | /** 105 | * @name Registering Default Preference Values 106 | */ 107 | 108 | /** 109 | * The default preferences to be used when no value has been set by the user. 110 | * 111 | * You may modify the values of this dictionary directly. 112 | */ 113 | @property (nonatomic, copy, readonly) NSMutableDictionary *defaults; 114 | 115 | /** 116 | * Adds the contents of the specified dictionary to the defaults property. 117 | * 118 | * Merges the provided dictionary with the mutable dictionary found on the defaults property. 119 | * 120 | * @param defaultValues The dictionary of keys and values you want to register. 121 | * @see defaults 122 | */ 123 | - (void)registerDefaults:(NSDictionary *)defaultValues; 124 | 125 | /** 126 | * @name Getting Preference Values 127 | */ 128 | 129 | /** 130 | * Returns a dictionary that contains all preferences that are set. 131 | * 132 | * This does not include default values. 133 | * 134 | * @returns A dictionary containing all keys and values. 135 | */ 136 | - (NSDictionary *)dictionaryRepresentation; 137 | 138 | /** 139 | * Returns the object associated with the specified key. 140 | * 141 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 142 | * 143 | * @param key The key for which to return the corresponding value. 144 | * @returns The object associated with the specified key. 145 | * @warning You must manually synchronize preferences or use registerObject:default:forKey: for this 146 | * value to be updated when running on iOS 7 or older. 147 | */ 148 | - (id)objectForKey:(NSString *)key; 149 | 150 | /** 151 | * Returns the integer value associated with the specified key. 152 | * 153 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 154 | * 155 | * @param key The key for which to return the corresponding value. 156 | * @returns The integer value associated with the specified key. 157 | * @see objectForKey: 158 | */ 159 | - (NSInteger)integerForKey:(NSString *)key; 160 | 161 | /** 162 | * Returns the unsigned integer value associated with the specified key. 163 | * 164 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 165 | * 166 | * @param key The key for which to return the corresponding value. 167 | * @returns The unsigned integer value associated with the specified key. 168 | * @see objectForKey: 169 | */ 170 | - (NSUInteger)unsignedIntegerForKey:(NSString *)key; 171 | 172 | /** 173 | * Returns the floating-point value associated with the specified key. 174 | * 175 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 176 | * 177 | * @param key The key for which to return the corresponding value. 178 | * @returns The floating-point value associated with the specified key. 179 | * @see objectForKey: 180 | */ 181 | - (CGFloat)floatForKey:(NSString *)key; 182 | 183 | /** 184 | * Returns the double value associated with the specified key. 185 | * 186 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 187 | * 188 | * @param key The key for which to return the corresponding value. 189 | * @returns The double value associated with the specified key. 190 | * @see objectForKey: 191 | */ 192 | - (double)doubleForKey:(NSString *)key; 193 | 194 | /** 195 | * Returns the Boolean value associated with the specified key. 196 | * 197 | * If the preference is not yet set, returns the default. If no default is set, returns `nil`. 198 | * 199 | * @param key The key for which to return the corresponding value. 200 | * @returns The Boolean value associated with the specified key. 201 | * @see objectForKey: 202 | */ 203 | - (BOOL)boolForKey:(NSString *)key; 204 | 205 | /** 206 | * Returns the value associated with a given key. 207 | * 208 | * This method behaves the same as objectForKey:. 209 | * 210 | * @param key The key for which to return the corresponding value. 211 | * @returns The value associated with the specified key. 212 | * @see objectForKey: 213 | */ 214 | - (id)objectForKeyedSubscript:(id)key; 215 | 216 | /** 217 | * Returns the object associated with the specified key, or if no user preference is set, the 218 | * provided default. 219 | * 220 | * @param key The key for which to return the corresponding value. 221 | * @param defaultValue The default value to use when no user preference is set. 222 | * @returns The object associated with the specified key, or the default value. 223 | */ 224 | - (id)objectForKey:(NSString *)key default:(nullable id)defaultValue; 225 | 226 | /** 227 | * Returns the integer value associated with the specified key, or if no user preference is set, the 228 | * provided default. 229 | * 230 | * @param key The key for which to return the corresponding value. 231 | * @param defaultValue The default value to use when no user preference is set. 232 | * @returns The integer value associated with the specified key, or the default value. 233 | * @see objectForKey:default: 234 | */ 235 | - (NSInteger)integerForKey:(NSString *)key default:(NSInteger)defaultValue; 236 | 237 | /** 238 | * Returns the unsigned integer value associated with the specified key, or if no user preference is 239 | * set, the provided default. 240 | * 241 | * @param key The key for which to return the corresponding value. 242 | * @param defaultValue The default value to use when no user preference is set. 243 | * @returns The unsigned integer value associated with the specified key, or the default value. 244 | * @see objectForKey:default: 245 | */ 246 | - (NSUInteger)unsignedIntegerForKey:(NSString *)key default:(NSUInteger)defaultValue; 247 | 248 | /** 249 | * Returns the floating-point value associated with the specified key, or if no user preference is 250 | * set, the provided default. 251 | * 252 | * @param key The key for which to return the corresponding value. 253 | * @param defaultValue The default value to use when no user preference is set. 254 | * @returns The floating-point value associated with the specified key, or the default value. 255 | * @see objectForKey:default: 256 | */ 257 | - (CGFloat)floatForKey:(NSString *)key default:(CGFloat)defaultValue; 258 | 259 | /** 260 | * Returns the double value associated with the specified key, or if no user preference is set, the 261 | * provided default. 262 | * 263 | * @param key The key for which to return the corresponding value. 264 | * @param defaultValue The default value to use when no user preference is set. 265 | * @returns The double value associated with the specified key, or the default value. 266 | * @see objectForKey:default: 267 | */ 268 | - (double)doubleForKey:(NSString *)key default:(double)defaultValue; 269 | 270 | /** 271 | * Returns the Boolean value associated with the specified key, or if no user preference is set, the 272 | * provided default. 273 | * 274 | * @param key The key for which to return the corresponding value. 275 | * @param defaultValue The default value to use when no user preference is set. 276 | * @returns The Boolean value associated with the specified key, or the default value. 277 | * @see objectForKey:default: 278 | */ 279 | - (BOOL)boolForKey:(NSString *)key default:(BOOL)defaultValue; 280 | 281 | /** 282 | * @name Setting Preference Values 283 | */ 284 | 285 | /** 286 | * Sets the value of the specified key. 287 | * 288 | * You should only call these methods if you are certain that the process is running as the `mobile` 289 | * user. 290 | * 291 | * @param value The object to store in the preferences. 292 | * @param key The key with which to associate with the value. 293 | * @exception HBPreferencesNotMobileException Thrown when the method is called by a process not 294 | * running as the `mobile` user. 295 | */ 296 | - (void)setObject:(nullable id)value forKey:(NSString *)key; 297 | 298 | /** 299 | * Sets the value of the specified key to the specified integer value. 300 | * 301 | * This is a convenience method that calls setObject:forKey:. See the discussion of that method for 302 | * more details. 303 | * 304 | * @param value The integer value to store in the preferences. 305 | * @param key The key with which to associate with the value. 306 | * @see setObject:forKey: 307 | */ 308 | - (void)setInteger:(NSInteger)value forKey:(NSString *)key; 309 | 310 | /** 311 | * Sets the value of the specified key to the specified unsigned integer value. 312 | * 313 | * This is a convenience method that calls setObject:forKey:. See the discussion of that method for 314 | * more details. 315 | * 316 | * @param value The unsigned integer value to store in the preferences. 317 | * @param key The key with which to associate with the value. 318 | * @see setObject:forKey: 319 | */ 320 | - (void)setUnsignedInteger:(NSUInteger)value forKey:(NSString *)key; 321 | 322 | /** 323 | * Sets the value of the specified key to the specified floating-point value. 324 | * 325 | * This is a convenience method that calls setObject:forKey:. See the discussion of that method for 326 | * more details. 327 | * 328 | * @param value The floating-point value to store in the preferences. 329 | * @param key The key with which to associate with the value. 330 | * @see setObject:forKey: 331 | */ 332 | - (void)setFloat:(CGFloat)value forKey:(NSString *)key; 333 | 334 | /** 335 | * Sets the value of the specified key to the specified double value. 336 | * 337 | * This is a convenience method that calls setObject:forKey:. See the discussion of that method for 338 | * more details. 339 | * 340 | * @param value The double value to store in the preferences. 341 | * @param key The key with which to associate with the value. 342 | * @see setObject:forKey: 343 | */ 344 | - (void)setDouble:(double)value forKey:(NSString *)key; 345 | 346 | /** 347 | * Sets the value of the specified key to the specified Boolean value. 348 | * 349 | * This is a convenience method that calls setObject:forKey:. See the discussion of that method for 350 | * more details. 351 | * 352 | * @param value The Boolean value to store in the preferences. 353 | * @param key The key with which to associate with the value. 354 | * @see setObject:forKey: 355 | */ 356 | - (void)setBool:(BOOL)value forKey:(NSString *)key; 357 | 358 | /** 359 | * Sets the value of the specified key to the specified value. 360 | * 361 | * @param object The value to store in the preferences. 362 | * @param key The key with which to associate with the value. 363 | */ 364 | - (void)setObject:(nullable id)object forKeyedSubscript:(id)key; 365 | 366 | /** 367 | * @name Removing Preference Values 368 | */ 369 | 370 | /** 371 | * Removes a given key and its associated value from the dictionary. 372 | * 373 | * Blocks are called after HBPreferences’ cache of values is updated. The block will also be called 374 | * immediately after calling this method. See registerObject:default:forKey: for details on how to 375 | * set up callbacks. 376 | * 377 | * @param key The key to remove. 378 | */ 379 | - (void)removeObjectForKey:(NSString *)key; 380 | 381 | /** 382 | * Removes all stored preferences. 383 | * 384 | * This method acts in the same way as discussed in removeObjectForKey:. 385 | */ 386 | - (void)removeAllObjects; 387 | 388 | /** 389 | * @name Registering Variables 390 | */ 391 | 392 | /** 393 | * Register an object to be automatically set to the user’s preference. 394 | * 395 | * If the preference is not yet set, the object will be set to the provided default. 396 | * 397 | * You must post a Darwin notification after updating preferences for this to work. In particular, 398 | * it must be set to the value of identifier, followed by `/ReloadPrefs` - for instance, 399 | * `ws.hbang.common.demo/ReloadPrefs`. In a Preferences specifier property list, you can use the 400 | * `PostNotification` key on your specifiers to achieve this: 401 | * 402 | * 403 | * … 404 | * PostNotification 405 | * ws.hbang.common.demo/ReloadPrefs 406 | * 407 | * 408 | * @param object The pointer to the object. 409 | * @param defaultValue The default value to be used if no user preference is set. 410 | * @param key The key in the preferences property list. 411 | * @see registerObject:default:forKey: 412 | */ 413 | - (void)registerObject:(_Nullable id __strong * _Nonnull)object default:(nullable id)defaultValue forKey:(NSString *)key; 414 | 415 | /** 416 | * Register an integer value to be automatically set to the user’s preference. 417 | * 418 | * If the preference is not yet set, the object will be set to the provided default. 419 | * 420 | * @param object The pointer to the integer. 421 | * @param defaultValue The default value to be used if no user preference is set. 422 | * @param key The key in the preferences property list. 423 | * @see registerObject:default:forKey: 424 | */ 425 | - (void)registerInteger:(NSInteger *)object default:(NSInteger)defaultValue forKey:(NSString *)key; 426 | 427 | /** 428 | * Register an unsigned integer value to be automatically set to the user’s preference. 429 | * 430 | * If the preference is not yet set, the object will be set to the provided default. 431 | * 432 | * @param object The pointer to the unsigned integer. 433 | * @param defaultValue The default value to be used if no user preference is set. 434 | * @param key The key in the preferences property list. 435 | * @see registerObject:default:forKey: 436 | */ 437 | - (void)registerUnsignedInteger:(NSUInteger *)object default:(NSUInteger)defaultValue forKey:(NSString *)key; 438 | 439 | /** 440 | * Register a floating-point value to be automatically set to the user’s preference. 441 | * 442 | * If the preference is not yet set, the object will be set to the provided default. 443 | * 444 | * @param object The pointer to the integer. 445 | * @param defaultValue The default value to be used if no user preference is set. 446 | * @param key The key in the preferences property list. 447 | * @see registerObject:default:forKey: 448 | */ 449 | - (void)registerFloat:(CGFloat *)object default:(CGFloat)defaultValue forKey:(NSString *)key; 450 | 451 | /** 452 | * Register a double value to be automatically set to the user’s preference. 453 | * 454 | * If the preference is not yet set, the object will be set to the provided default. 455 | * 456 | * @param object The pointer to the double. 457 | * @param defaultValue The default value to be used if no user preference is set. 458 | * @param key The key in the preferences property list. 459 | * @see registerObject:default:forKey: 460 | */ 461 | - (void)registerDouble:(double *)object default:(double)defaultValue forKey:(NSString *)key; 462 | 463 | /** 464 | * Register a Boolean value to be automatically set to the user’s preference. 465 | * 466 | * If the preference is not yet set, the object will be set to the provided default. 467 | * 468 | * @param object The pointer to the Boolean. 469 | * @param defaultValue The default value to be used if no user preference is set. 470 | * @param key The key in the preferences property list. 471 | * @see registerObject:default:forKey: 472 | */ 473 | - (void)registerBool:(BOOL *)object default:(BOOL)defaultValue forKey:(NSString *)key; 474 | 475 | /** 476 | * @name Preference Change Callbacks 477 | */ 478 | 479 | /** 480 | * Register a block to be called when a preference change is detected. 481 | * 482 | * Blocks are called after HBPreferences’ cache of values is updated. The block will also be called 483 | * immediately after calling this method. See registerObject:default:forKey: for details on how to 484 | * set up callbacks. 485 | * 486 | * @param callback A block object called when the specified key’s value changes. The block object 487 | * takes no parameters and returns no value. 488 | * @see registerObject:default:forKey: 489 | */ 490 | - (void)registerPreferenceChangeBlock:(HBPreferencesChangeCallback)callback; 491 | 492 | /** 493 | * Register a block to be called when a specific preference is changed. 494 | * 495 | * Blocks are called after HBPreferences’ cache of values is updated. The block will also be called 496 | * immediately after calling this method. See registerObject:default:forKey: for details on how to 497 | * set up callbacks. 498 | * 499 | * @param callback A block object called when the specified key’s value changes. The block object’s 500 | * parameters are the key and its new value. 501 | * @param key The key to listen for. 502 | * @see registerObject:default:forKey: 503 | */ 504 | - (void)registerPreferenceChangeBlock:(HBPreferencesValueChangeCallback)callback forKey:(NSString *)key; 505 | 506 | @end 507 | 508 | /** 509 | * Name of an exception that occurs when attempting to set preferences from a process not running as 510 | * the `mobile` user. 511 | */ 512 | extern NSString *const HBPreferencesNotMobileException; 513 | 514 | /** 515 | * This notification is posted when a change is made to a registered preferences identifier. The 516 | * notification object is the associated HBPreferences object. 517 | */ 518 | extern NSString *const HBPreferencesDidChangeNotification; 519 | 520 | NS_ASSUME_NONNULL_END 521 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/HBRespringController.h: -------------------------------------------------------------------------------- 1 | NS_ASSUME_NONNULL_BEGIN 2 | 3 | /** 4 | * The `HBRespringController` class in `Cephei` provides conveniences for restarting the system app 5 | * (usually SpringBoard). It also ensures battery usage statistics are not lost when performing the 6 | * restart. 7 | */ 8 | @interface HBRespringController : NSObject 9 | 10 | /** 11 | * Restart the system app. 12 | * 13 | * On iOS 8.0 and newer, fades out and then returns to the home screen (system remains unlocked). On 14 | * older iOS versions, a standard restart occurs. 15 | */ 16 | + (void)respring; 17 | 18 | /** 19 | * Restart the system app and immediately launch a URL. 20 | * 21 | * Requires iOS 8.0 or newer. On older iOS versions, a standard restart occurs and the URL is not 22 | * opened. 23 | * 24 | * @param returnURL The URL to launch after restarting. 25 | */ 26 | + (void)respringAndReturnTo:(nullable NSURL *)returnURL; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/NSDictionary+HBAdditions.h: -------------------------------------------------------------------------------- 1 | NS_ASSUME_NONNULL_BEGIN 2 | 3 | /** 4 | * NSDictionary (HBAdditions) is a class category in `Cephei` that provides some convenience methods. 5 | */ 6 | @interface NSDictionary (HBAdditions) 7 | 8 | /** 9 | * Constructs and returns an NSString object that is the result of joining the dictionary keys and 10 | * values into an HTTP query string. 11 | * 12 | * On iOS 8.0 and newer, this uses the built in NSURLComponents functionality to deserialize the 13 | * query string. On earlier versions, uses an approximation implemented within Cephei. This 14 | * implementation is simplistic and does not handle edge cases that NSURLComponents does support. 15 | * 16 | * @returns An NSString containing an HTTP query string. 17 | */ 18 | - (NSString *)hb_queryString; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/NSLayoutConstraint+CompactConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Marco Arment on 2014-04-06. 3 | // Copyright (c) 2014 Marco Arment. See included LICENSE file. 4 | // 5 | 6 | /** 7 | * NSLayoutConstraint (CompactConstraint), a class category from Marco Arment’s 8 | * [CompactConstraint](https://github.com/marcoarment/CompactConstraint) 9 | * library, is integrated with Cephei. CompactConstraint provides an Auto Layout 10 | * grammar and methods that are easier to use and understand than UIKit’s built 11 | * in functions for programmatically adding constraints. 12 | * 13 | * Refer to 14 | * [its readme](https://github.com/marcoarment/CompactConstraint/blob/master/README.md) 15 | * to learn how to use it. There are two changes to note: most importantly, the 16 | * methods have an `hb_` prefix, and two methods that are marked as deprecated 17 | * in the original project have been removed. 18 | * 19 | * CompactConstraint is licensed under the MIT License. 20 | */ 21 | @interface NSLayoutConstraint (CompactConstraint) 22 | 23 | + (instancetype)hb_compactConstraint:(NSString *)relationship metrics:(NSDictionary *)metrics views:(NSDictionary *)views self:(id)selfView; 24 | + (NSArray *)hb_compactConstraints:(NSArray *)relationshipStrings metrics:(NSDictionary *)metrics views:(NSDictionary *)views self:(id)selfView; 25 | 26 | // And a convenient shortcut for creating constraints with the visualFormat string as the identifier 27 | + (NSArray *)hb_identifiedConstraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/NSString+HBAdditions.h: -------------------------------------------------------------------------------- 1 | NS_ASSUME_NONNULL_BEGIN 2 | 3 | /** 4 | * NSString (HBAdditions) is a class category in `Cephei` that provides some convenience methods. 5 | */ 6 | @interface NSString (HBAdditions) 7 | 8 | /** 9 | * Returns a string encoded for an HTTP query parameter. 10 | * 11 | * This method encodes a variety of symbols that can conflict with other portions of a URL, such as 12 | * `&` and `=`, and other similar symbols that could otherwise be misinterpreted by some 13 | * implementations. 14 | * 15 | * @returns A string encoded for an HTTP query parameter. 16 | */ 17 | - (NSString *)hb_stringByEncodingQueryPercentEscapes; 18 | 19 | /** 20 | * Returns a string decoded from an HTTP query parameter. 21 | * 22 | * This method decodes percent escapes, as well as spaces encoded with a `+`. 23 | * 24 | * @returns A string decoded from an HTTP query parameter. 25 | */ 26 | - (NSString *)hb_stringByDecodingQueryPercentEscapes; 27 | 28 | /** 29 | * Returns a dictionary containing the HTTP query parameters in the string. 30 | * 31 | * The string is expected to be in the format `key=value&key=value`, with both keys and values 32 | * encoded where necessary. 33 | * 34 | * @returns An NSDictionary object containing the keys and values from the query string. 35 | */ 36 | - (NSDictionary *)hb_queryStringComponents; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/UIColor+HBAdditions.h: -------------------------------------------------------------------------------- 1 | NS_ASSUME_NONNULL_BEGIN 2 | 3 | /** 4 | * UIColor (HBAdditions) is a class category in `Cephei` that provides some 5 | * convenience methods. 6 | */ 7 | @interface UIColor (HBAdditions) 8 | 9 | /** 10 | * Creates and returns a color object using data from the specified object. 11 | * 12 | * The value is expected to either be an array of 3 or 4 integer RGB or RGBA 13 | * color components (respectively), with values between 0 and 255, or a CSS 14 | * hexadecimal color code string. 15 | * 16 | * @param value The object to retrieve data from. See the discussion for the 17 | * supported object types. 18 | * @returns The color object. The color information represented by this object 19 | * is in the device RGB colorspace. 20 | */ 21 | + (instancetype)hb_colorWithPropertyListValue:(id)value; 22 | 23 | /** 24 | * Initializes and returns a color object using data from the specified object. 25 | * 26 | * The value is expected to either be an array of 3 or 4 integer RGB or RGBA 27 | * color components (respectively), with values between 0 and 255, or a CSS 28 | * hexadecimal color code string. 29 | * 30 | * @param value The object to retrieve data from. See the discussion for the 31 | * supported object types. 32 | * @returns An initialized color object. The color information represented by 33 | * this object is in the device RGB colorspace. 34 | */ 35 | - (instancetype)hb_initWithPropertyListValue:(id)value; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Frameworks/Cephei.framework/Headers/UIView+CompactConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Marco Arment on 2014-04-06. 3 | // Copyright (c) 2014 Marco Arment. See included LICENSE file. 4 | // 5 | 6 | #import "NSLayoutConstraint+CompactConstraint.h" 7 | 8 | /** 9 | * UIView (CompactConstraint), a class category from Marco Arment’s 10 | * [CompactConstraint](https://github.com/marcoarment/CompactConstraint) 11 | * library, is integrated with Cephei. CompactConstraint provides an Auto Layout 12 | * grammar and methods that are easier to use and understand than UIKit’s built 13 | * in functions for programmatically adding constraints. 14 | * 15 | * Refer to 16 | * [its readme](https://github.com/marcoarment/CompactConstraint/blob/master/README.md) 17 | * to learn how to use it. There are two changes to note: most importantly, the 18 | * methods have an `hb_` prefix, and two methods that are marked as deprecated 19 | * in the original project have been removed. 20 | * 21 | * CompactConstraint is licensed under the MIT License. 22 | */ 23 | @interface UIView (CompactConstraint) 24 | 25 | // Add a single constraint with the compact syntax 26 | - (NSLayoutConstraint *)hb_addCompactConstraint:(NSString *)relationship metrics:(NSDictionary *)metrics views:(NSDictionary *)views; 27 | 28 | // Add any number of constraints. Can also mix in Visual Format Language strings. 29 | - (NSArray *)hb_addCompactConstraints:(NSArray *)relationshipStrings metrics:(NSDictionary *)metrics views:(NSDictionary *)views; 30 | 31 | // And a convenient shortcut for what we always end up doing with the visualFormat call. 32 | - (void)hb_addConstraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Frameworks/CepheiPrefs.framework/CepheiPrefs.tbd: -------------------------------------------------------------------------------- 1 | --- 2 | archs: [ armv7, arm64 ] 3 | platform: ios 4 | install-name: /Library/Frameworks/CepheiPrefs.framework/CepheiPrefs 5 | current-version: 0 6 | compatibility-version: 0 7 | objc-constraint: retain_release 8 | exports: 9 | - archs: [ armv7, arm64 ] 10 | symbols: [ _animateBarTintColor, _globalBundle, _translucentNavigationBar ] 11 | objc-classes: [ _HBAboutListController, _HBAppearanceSettings, _HBDemoAboutListController, 12 | _HBDemoRootListController, _HBDiscreteSliderTableCell, _HBForceCepheiPrefs, _HBImageTableCell, 13 | _HBInitialsLinkTableCell, _HBLinkTableCell, _HBListController, _HBListItemsController, 14 | _HBPackageNameHeaderCell, _HBPackageTableCell, _HBRootListController, _HBSpinnerTableCell, 15 | _HBStepperTableCell, _HBSupportController, _HBTintedTableCell, _HBTwitterCell ] 16 | ... 17 | -------------------------------------------------------------------------------- /Frameworks/CepheiPrefs.framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | CepheiPrefs 9 | CFBundleIdentifier 10 | ws.hbang.common.prefs 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Cephei 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | DTPlatformName 24 | iphoneos 25 | HBPackageIdentifier 26 | ws.hbang.common 27 | NSPrincipalClass 28 | HBDemoRootListController 29 | 30 | 31 | -------------------------------------------------------------------------------- /Frameworks/Preferences.framework/Preferences.tbd: -------------------------------------------------------------------------------- 1 | --- 2 | archs: [ armv7, armv7s, arm64, i386, x86_64 ] 3 | platform: ios 4 | install-name: /System/Library/PrivateFrameworks/Preferences.framework/Preferences 5 | current-version: 1 6 | compatibility-version: 1 7 | exports: 8 | - archs: [ armv7, armv7s, arm64, i386, x86_64 ] 9 | symbols: [ _ContactsOption, _CreateDetailControllerInstanceWithClass, _CreateRangeTimeLabel, 10 | _CreateRangeTitleLabel, _DeviceName, _EveryoneOption, _FallbackYear, _FavoritesOption, _FilePathKey, 11 | _ForceDisplayWeibo, _LocalizableGTStringKeyForKey, _LocalizeWeeAppName, _LocalizedPolarisExplanation, 12 | _NameKey, _NoOneOption, _ObjectAndOffsetForURLPair, _PSAbbreviatedFormattedTimeString, 13 | _PSAbbreviatedFormattedTimeStringWithDays, _PSAboutDeviceSupervision, _PSAboutLocationAndPrivacyText, 14 | _PSAccessoryKey, _PSAccountSettingsDataclassesKey, _PSAccountsClientDataclassFilterKey, _PSActionKey, 15 | _PSAdjustFontSizeToFitWidthKey, _PSAirDropImage, _PSAlignmentKey, _PSAppGroupBundleIDKey, 16 | _PSAppGroupDomainKey, _PSAppSettingsBundleIDKey, _PSAppSettingsBundleKey, _PSAppTintColor, 17 | _PSAppleIDPrivacyText, _PSApplicationDeletionCompletionNotification, 18 | _PSApplicationDisplayIdentifiersCapability, _PSApplicationSpecifierForBBSection, 19 | _PSApplyBuddyThemeToNavigationBar, _PSAuthorizationTokenForPasscode, _PSAutoCapsKey, 20 | _PSAutoCorrectionKey, _PSAutoWhiteBalanceCapability, _PSBackupClass, _PSBadgeNumberKey, 21 | _PSBestGuesserKey, _PSBlankIconImage, _PSBundleCustomIconPathKey, _PSBundleHasBundleIconKey, 22 | _PSBundleHasIconKey, _PSBundleIconPathKey, _PSBundleIdentifierNews, _PSBundleIdentifierPlaygroundsBeta, 23 | _PSBundleIdentifierPodcasts, _PSBundleIdentifieriBooks, _PSBundleIdentifieriTunesU, 24 | _PSBundleIsControllerKey, _PSBundleOverridePrincipalClassKey, _PSBundlePathForPreferenceBundle, 25 | _PSBundlePathKey, _PSBundleSearchControllerClassKey, _PSBundleSearchIconPathKey, 26 | _PSBundleSupportsSearchKey, _PSBundleTintedIconPathKey, _PSButtonActionKey, _PSCancelKey, 27 | _PSCellClassKey, _PSCityForSpecifier, _PSCityForTimeZone, _PSCloudFamilyRestrictionsControllerForDSID, 28 | _PSConfirmationActionKey, _PSConfirmationCancelActionKey, _PSConfirmationCancelKey, 29 | _PSConfirmationDestructiveKey, _PSConfirmationKey, _PSConfirmationOKKey, _PSConfirmationPromptKey, 30 | _PSConfirmationTitleKey, _PSContainerBundleIDKey, _PSControlIsLoadingKey, _PSControlKey, 31 | _PSControlMaximumKey, _PSControlMinimumKey, _PSControllerLoadActionKey, _PSCopyableCellKey, 32 | _PSCreateSecTrustFromCertificateChain, _PSCurrentCallTypes, _PSDataSourceClassKey, 33 | _PSDecimalKeyboardKey, _PSDefaultValueKey, _PSDefaultsKey, _PSDeferItemSelectionKey, 34 | _PSDeletionActionKey, _PSDetailControllerClassKey, _PSDeviceUDID, _PSDisplayNameForBBSection, 35 | _PSDisplaySortedByTitleKey, _PSDisplayZoomCapability, _PSEditPaneClassKey, 36 | _PSEditableTableCellTextFieldShouldPopOnReturn, _PSEditingCellHorizontalInset, 37 | _PSEmailAddressKeyboardKey, _PSEmailAddressingKeyboardKey, _PSEmergencySOSCapability, 38 | _PSEmergencySOSSelectableNumberOfClicksCapability, _PSEnabledKey, _PSEthernetChangedNotification, 39 | _PSExpectedSpokenLanguage, _PSFindViewOfClass, _PSFooterAlignmentGroupKey, _PSFooterCellClassGroupKey, 40 | _PSFooterHyperlinkViewActionKey, _PSFooterHyperlinkViewLinkRangeKey, _PSFooterHyperlinkViewTargetKey, 41 | _PSFooterHyperlinkViewTitleKey, _PSFooterHyperlinkViewURLKey, _PSFooterTextGroupKey, _PSFooterViewKey, 42 | _PSFormattedTimeString, _PSFormattedTimeStringWithDays, _PSGetCapabilityBoolAnswer, _PSGetterKey, 43 | _PSHasStockholmPass, _PSHeaderCellClassGroupKey, _PSHeaderDetailTextGroupKey, _PSHeaderViewKey, 44 | _PSHidesDisclosureIndicatorKey, _PSIDKey, _PSIPKeyboardKey, _PSIconImageKey, 45 | _PSIconImageShouldFlipForRightToLeftCalendarKey, _PSIconImageShouldFlipForRightToLeftKey, 46 | _PSIconImageShouldLoadAlternateImageForRightToLeftKey, _PSInEDUModeCapability, 47 | _PSInStoreDemoModeCapability, _PSIsBundleIDInstalled, _PSIsDebug, _PSIsGreenTeaCapable, 48 | _PSIsHostingPersonalHotspot, _PSIsInEDUMode, _PSIsInternalInstall, _PSIsKeychainSecureBackupEnabled, 49 | _PSIsLoggingEnabled, _PSIsN56, _PSIsNanoMirroringDomain, _PSIsPerGizmoKey, _PSIsRadioGroupKey, 50 | _PSIsRunningInAssistant, _PSIsSkippedInEDUModeKey, _PSIsThirdPartyDetailKey, _PSIsTopLevelKey, 51 | _PSIsUsingPasscode, _PSIsiPad, _PSIsiPhone, _PSKeyNameKey, _PSKeyboardTypeKey, 52 | _PSKeychainSyncErrorDomain, _PSKeychainSyncGetCircleMembershipStatus, _PSKeychainSyncGetStatus, 53 | _PSKeychainSyncIsUsingICDP, _PSKillProcessNamed, _PSLazilyLoadedBundleKey, _PSLazyIconAppID, 54 | _PSLazyIconDontUnload, _PSLazyIconLoading, _PSLazyIconLoadingCustomQueue, _PSLazyIconURL, 55 | _PSLegacyCityFromCity, _PSLegalCopyLocalizedAboutDiagnosticsAppActivityAndPrivacyInfoText, 56 | _PSLegalCopyLocalizedAboutiCloudAnalyticsAndPrivacyInfoText, _PSLicenseFilePath, _PSLicensePath, 57 | _PSLocaleLanguageDirection, _PSLocaleUses24HourClock, _PSLocalizableMesaStringForKey, 58 | _PSLocalizableStockholmStringForKey, _PSLocalizedStringFromTableInBundleForLanguage, _PSLog, 59 | _PSMagnifyModeDidChangeNotification, _PSManifestEntriesKey, _PSManifestSectionKey, 60 | _PSManifestStringTableKey, _PSMarginWidthKey, _PSMigrateSoundsDefaults_10_0, _PSMultipickerStringsName, 61 | _PSNETRBChangedNotification, _PSNavigationControllerWillShow, _PSNavigationControllerWillShowAppearing, 62 | _PSNavigationControllerWillShowDisappearing, _PSNavigationControllerWillShowOperationType, 63 | _PSNegateValueKey, _PSNightShiftCapability, _PSNotifyNanoKey, _PSNumberKeyboardKey, 64 | _PSPIDForProcessNamed, _PSPaneTitleKey, _PSPassbookImage, _PSPerformSelector, _PSPerformSelector2, 65 | _PSPlaceholderKey, _PSPlistNameKey, _PSPointImageOfColor, _PSPreferencesFrameworkBundle, 66 | _PSPreferencesLaunchURL, _PSPreferredLanguageIsEnglish, _PSPrioritizeValueTextDisplayKey, 67 | _PSPurgeKeyboardCache, _PSPurpleBuddyIdentifier, _PSRadioGroupCheckedSpecifierKey, 68 | _PSRaiseToWakeCapability, _PSRegulatoryImage, _PSRequiredCapabilitiesKey, _PSRequiredCapabilitiesOrKey, 69 | _PSRerootPreferencesNavigationNotification, _PSRootControllerDidSuspendNotification, 70 | _PSRoundRectToPixel, _PSRoundToPixel, _PSScheduledDNDEnabled, _PSSearchInlineTogglesEnabled, 71 | _PSSearchNanoApplicationsBundlePath, _PSSearchNanoInternalSettingsBundlePath, 72 | _PSSearchNanoSettingsBundlePath, _PSSecureBackupAccountInfo, _PSSelectedTintedImageFromMask, 73 | _PSSetBatteryMonitoringEnabled, _PSSetCustomWatchCapabilityCheck, _PSSetLoggingEnabled, 74 | _PSSetScheduledDNDEnabled, _PSSetScheduledDNDRange, _PSSetterKey, _PSSetupAssistantNeedsToRun, 75 | _PSSetupCustomClassKey, _PSSetupFinishedAllStepsKey, _PSShortFormattedTimeString, 76 | _PSShortTitlesDataSourceKey, _PSShortTitlesKey, _PSShowEnableKeychainSync, _PSShowKeychainSyncRecovery, 77 | _PSSimIsMissing, _PSSimIsRequired, _PSSiriFlatImageNamed, _PSSiriImage, _PSSiriImageNamed, 78 | _PSSliderIsContinuous, _PSSliderIsSegmented, _PSSliderLeftImageKey, _PSSliderLeftImagePromiseKey, 79 | _PSSliderLocksToSegment, _PSSliderRightImageKey, _PSSliderRightImagePromiseKey, _PSSliderSegmentCount, 80 | _PSSliderShowValueKey, _PSSliderSnapsToSegment, _PSSoundsPreferencesDomain, 81 | _PSSpeciferForThirdPartyBundle, _PSSpecifierActionKey, _PSSpecifierAuthenticationTokenKey, 82 | _PSSpecifierForThirdPartyBundle, _PSSpecifierIsSearchableKey, _PSSpecifierIsSectionKey, 83 | _PSSpecifierPasscodeKey, _PSSpecifierSearchBundleKey, _PSSpecifierSearchDetailPath, 84 | _PSSpecifierSearchKeywordsKey, _PSSpecifierSearchPlistKey, _PSSpecifierSearchSectionID, 85 | _PSSpecifierSearchTitleKey, _PSSpecifierSearchURL, _PSSpecifierSupportsSearchToggleKey, 86 | _PSSpecifiersKey, _PSStaticTextMessageKey, _PSStockholmLocallyStoredValuePassNames, 87 | _PSStorageAndBackupClass, _PSStorageClass, _PSStringForDays, _PSStringForHours, _PSStringForMins, 88 | _PSStringForMinutes, _PSStringsTableKey, _PSSupportsAccountSettingsDataclassesKey, _PSSupportsMesa, 89 | _PSSystemHapticsPreferenceskey, _PSSystemHapticsSetting, _PSTableCellClassKey, _PSTableCellHeightKey, 90 | _PSTableCellKey, _PSTableCellSubtitleColorKey, _PSTableCellSubtitleTextKey, 91 | _PSTableCellUseEtchedAppearanceKey, _PSTableSectionFooterBottomPad, _PSTableSectionFooterTopPad, 92 | _PSTableViewSideInset, _PSTableViewSideInsetPad, _PSTextFieldNoAutoCorrectKey, 93 | _PSTextViewBottomMarginKey, _PSTextViewInsets, _PSTimeStringIsShortened, _PSTimeZoneArrayForSpecifier, 94 | _PSTimeZoneArrayForTimeZone, _PSTintedIcon, _PSTintedImageFromMask, _PSTitleKey, 95 | _PSTitlesDataSourceKey, _PSToolbarLabelsTextColor, _PSURLKeyboardKey, _PSUsageBundleAppKey, 96 | _PSUsageBundleCategoryKey, _PSUsageBundleDeletingKey, _PSUsedByHSA2Account, _PSUsedByManagedAccount, 97 | _PSValidTitlesKey, _PSValidValuesKey, _PSValueChangedNotificationKey, _PSValueKey, 98 | _PSValuesDataSourceKey, _PSWarrantyFilePath, _PSWarrantyPath, _PSWifiChangedNotification, 99 | _PSWifiNameKey, _PSWifiPowerStateKey, _PSWifiTetheringStateKey, _PathKey, 100 | _PreferencesTableViewCellLeftPad, _PreferencesTableViewCellRightPad, _PreferencesTableViewFooterColor, 101 | _PreferencesTableViewFooterFont, _PreferencesTableViewHeaderColor, _PreferencesTableViewHeaderFont, 102 | _ProcessedSpecifierBundle, _ProductType, _RestrictionsAccessGroup, _RestrictionsAccountName, 103 | _RestrictionsServiceName, _ScreenScale, _SearchEntriesFromSpecifiers, _SearchEntryFromSpecifier, 104 | _SearchSpecifiersFromPlist, _SetDeviceName, _ShouldShowWeibo, _ShowInNotificationsState, 105 | _SpecifiersFromPlist, _SystemHasCapabilities, _TopToBottomLeftToRightViewCompare, _UsageSizeKey, 106 | _UserInterfaceIdiom, _WifiStateChanged, __PSFindViewRecursively, __PSLoggingFacility, 107 | __clearKeychainSyncCache, __consuming_xpc_release, __screenScale, _gBBSettingsGatewayDispatchQ, 108 | _kHeaderHorizontalMargin, _kKeychainSyncCountryInfoKey, _kKeychainSyncPhoneNumberKey, 109 | _kKeychainSyncSecurityCodeAdvancedOptionsResult, _kKeychainSyncSecurityCodeKey, 110 | _kKeychainSyncSecurityCodePeerApprovalResult, _kKeychainSyncSecurityCodeResetKeychainResult, 111 | _kKeychainSyncSecurityCodeSetUpLaterResult, _kKeychainSyncSecurityCodeTypeKey, 112 | _kKeychainSyncSpinnerKey, _kNumberOfPasscodeFieldsProperty, _kPSLargeTextUsesExtendedRangeKey, 113 | _kPSSIMStatusReadyNotification, _kPSWirelessDataUsageChangedNotification, 114 | _kQuotaInformationChangedNotification, _kTCCBluetoothSharingID, _kTCCCalendarsID, _kTCCCameraID, 115 | _kTCCContactsID, _kTCCFacebookID, _kTCCLiverpoolID, _kTCCMediaLibraryID, _kTCCMicrophoneID, 116 | _kTCCMotionID, _kTCCPhotosID, _kTCCRemindersID, _kTCCSinaWeiboID, _kTCCSpeechRecognitionID, 117 | _kTCCTencentWeiboID, _kTCCTwitterID, _kTCCWillowID, _kWantsIcon, _resetLocale ] 118 | objc-classes: [ _AlphanumericPINTableViewCell, _AlphanumericPINTextField, _AppWirelessDataUsageManager, 119 | _AppWirelessDataUsageSpecifierFactory, _BlkTraceController, _DevicePINController, _DevicePINKeypad, 120 | _DevicePINPane, _DevicePINSetupController, _DiagnosticDataController, _DiscreteSlider, _FailureBarView, 121 | _FontSizeSliderCell, _KeychainSyncAdvancedSecurityCodeController, _KeychainSyncAppleSupportController, 122 | _KeychainSyncCountryInfo, _KeychainSyncDevicePINController, _KeychainSyncPhoneNumberController, 123 | _KeychainSyncPhoneSettingsFragment, _KeychainSyncSMSVerificationController, 124 | _KeychainSyncSecurityCodeCell, _KeychainSyncSetupController, _PINView, _PSAboutHTMLSheetViewController, 125 | _PSAboutTextSheetViewController, _PSAccessibilitySettingsDetail, _PSAccountSecurityController, 126 | _PSAccountsClientListCell, _PSAccountsClientListController, _PSAirplaneModeSettingsDetail, 127 | _PSAppListController, _PSAppleIDSplashViewController, _PSAssistiveTouchSettingsDetail, 128 | _PSAutoLockSettingsDetail, _PSBadgedTableCell, _PSBarButtonSpinnerView, _PSBiometricIdentity, 129 | _PSBluetoothSettingsDetail, _PSBrightnessController, _PSBrightnessSettingsDetail, _PSBulletedPINView, 130 | _PSBundleController, _PSCapabilityManager, _PSCastleSettingsDetail, _PSCellularDataSettingsDetail, 131 | _PSClearBackgroundCell, _PSCloudStorageOffersManager, _PSCloudStorageQuotaManager, 132 | _PSCompassSettingsDetail, _PSConfirmationSpecifier, _PSControlCenterSettingsDetail, 133 | _PSControlTableCell, _PSDNDSettingsDetail, _PSDUETSettingsDetail, _PSDetailController, 134 | _PSEditableListController, _PSEditableTableCell, _PSEditingPane, _PSExpandableAppListGroupController, 135 | _PSExpandableListGroupController, _PSFaceTimeSettingsDetail, _PSFacebookSettingsDetail, 136 | _PSFlickrSettingsDetail, _PSFooterHyperlinkView, _PSGameCenterSettingsDetail, 137 | _PSGuidedAccessSettingsDetail, _PSIconMarginTableCell, _PSInternationalController, 138 | _PSInternationalLanguageController, _PSInternationalLanguageSetupController, 139 | _PSInvertColorsSettingsDetail, _PSKeyboardSettingsDetail, _PSKeychainSyncHeaderView, 140 | _PSKeychainSyncManager, _PSKeychainSyncPhoneNumber, _PSKeychainSyncSecurityCodeController, 141 | _PSKeychainSyncTextEntryController, _PSKeychainSyncViewController, _PSLanguage, _PSLanguageSelector, 142 | _PSLargeTextController, _PSLazyImagePromise, _PSLegalMessagePane, _PSListContainerView, 143 | _PSListController, _PSListItemsController, _PSLocaleController, _PSLocaleSelector, 144 | _PSLocationServicesSettingsDetail, _PSLowPowerModeSettingsDetail, _PSMCCSettingsDetail, 145 | _PSMagnifyController, _PSMagnifyMode, _PSMapsSettingsDetail, _PSMessagesSettingsDetail, 146 | _PSMigratorUtilities, _PSMusicSettingsDetail, _PSNavBarSpinnerManager, 147 | _PSNonMovableTapGestureRecognizer, _PSNotesSettingsDetail, _PSNotificationSettingsDetail, 148 | _PSPasscodeField, _PSPasscodeSettingsDetail, _PSPhoneNumberSpecifier, _PSPhoneNumberTableCell, 149 | _PSPhoneSettingsDetail, _PSPhotosAndCameraSettingsDetail, _PSPowerlogListController, 150 | _PSPrivacySettingsDetail, _PSQuotaInfo, _PSRegion, _PSRemindersSettingsDetail, 151 | _PSRestrictionsController, _PSRestrictionsPasscodeController, _PSRootController, 152 | _PSSafariSettingsDetail, _PSSearchController, _PSSearchEntry, _PSSearchIndexOperation, _PSSearchModel, 153 | _PSSearchOperation, _PSSearchResults, _PSSearchResultsCell, _PSSearchResultsController, 154 | _PSSearchResultsSwitchCell, _PSSegmentTableCell, _PSSegmentableSlider, _PSSettingsFunctions, 155 | _PSSetupController, _PSSinaWeiboSettingsDetail, _PSSiriSettingsDetail, _PSSliderTableCell, 156 | _PSSoftwareUpdateAnimatedIcon, _PSSoftwareUpdateReleaseNotesDetail, _PSSoftwareUpdateTableView, 157 | _PSSoftwareUpdateTermsManager, _PSSoftwareUpdateTitleCell, _PSSoundsSettingsDetail, _PSSpecifier, 158 | _PSSpecifierAction, _PSSpecifierDataSource, _PSSpecifierGroupIndex, _PSSpecifierUpdateContext, 159 | _PSSpecifierUpdateOperation, _PSSpecifierUpdates, _PSSpinnerTableCell, _PSSplitViewController, 160 | _PSStackPushAnimationController, _PSStoreSettingsDetail, _PSSubtitleDisclosureTableCell, 161 | _PSSubtitleSwitchTableCell, _PSSwitchTableCell, _PSSystemConfiguration, 162 | _PSSystemConfigurationDynamicStoreEthernetWatcher, _PSSystemConfigurationDynamicStoreNETRBWatcher, 163 | _PSSystemConfigurationDynamicStoreWifiWatcher, _PSSystemPolicyForApp, _PSSystemPolicyManager, 164 | _PSTableCell, _PSTableCellHighlightContext, _PSTencentWeiboSettingsDetail, _PSTextEditingCell, 165 | _PSTextEditingPane, _PSTextFieldPINView, _PSTextFieldSpecifier, _PSTextSizeSettingsDetail, _PSTextView, 166 | _PSTextViewPane, _PSTextViewTableCell, _PSThirdPartyApp, _PSThirdPartySettingsDetail, _PSTimeRangeCell, 167 | _PSTorchSettingsDetail, _PSTwitterSettingsDetail, _PSUICellularUsageApp, _PSUISearchController, 168 | _PSUIWirelessDataOptionsListController, _PSUsageBundleApp, _PSUsageBundleCategory, _PSUsageBundleCell, 169 | _PSUsageBundleDetailController, _PSUsageBundleManager, _PSUsageSizeHeader, 170 | _PSVideoSubscriberPrivacyCell, _PSVideosSettingsDetail, _PSViewController, _PSVimeoSettingsDetail, 171 | _PSVoiceOverSettingsDetail, _PSWeakReference, _PSWebContainerView, _PSWiFiSettingsDetail, 172 | _PasscodeFieldCell, _PopBackListItemsController, _PrefsUILinkLabel, _ProblemReportingAboutController, 173 | _ProblemReportingController, _QuietHoursStateController, _WirelessDataUsageWorkspace, 174 | __PSDeferredUpdates, __PSDeleteButtonCell, __PSSpinnerHandlingNavigationController, 175 | __PSSpinnerViewController ] 176 | objc-ivars: [ _AlphanumericPINTableViewCell._pinTextField, _AppWirelessDataUsageManager._cancelled, 177 | _AppWirelessDataUsageManager._managedBundleIDs, _AppWirelessDataUsageManager._showInternalDetails, 178 | _DevicePINController._allowOptionsButton, _DevicePINController._cancelButton, 179 | _DevicePINController._doneButton, _DevicePINController._doneButtonTitle, _DevicePINController._error1, 180 | _DevicePINController._error2, _DevicePINController._hasBeenDismissed, 181 | _DevicePINController._hidesCancelButton, _DevicePINController._hidesNavigationButtons, 182 | _DevicePINController._lastEntry, _DevicePINController._mode, _DevicePINController._nextButton, 183 | _DevicePINController._numericPIN, _DevicePINController._oldPassword, _DevicePINController._pinDelegate, 184 | _DevicePINController._pinLength, _DevicePINController._requiresKeyboard, 185 | _DevicePINController._sepLockInfo, _DevicePINController._sepOnceToken, 186 | _DevicePINController._shouldDismissWhenDone, _DevicePINController._simplePIN, 187 | _DevicePINController._substate, _DevicePINController._success, _DevicePINController._useSEPLockInfo, 188 | _DevicePINPane._PINLength, _DevicePINPane._autocapitalizationType, _DevicePINPane._autocorrectionType, 189 | _DevicePINPane._isBlocked, _DevicePINPane._keyboardAppearance, _DevicePINPane._keyboardType, 190 | _DevicePINPane._keypad, _DevicePINPane._keypadActive, _DevicePINPane._numericKeyboard, 191 | _DevicePINPane._passcodeOptionsHandler, _DevicePINPane._pinView, _DevicePINPane._playSound, 192 | _DevicePINPane._simplePIN, _DevicePINPane._transitionView, _DevicePINPane._transitioning, 193 | _DevicePINSetupController._allowOptionsButton, _DevicePINSetupController._success, 194 | _FailureBarView._titleLabel, _FontSizeSliderCell._largeSizeLabel, _FontSizeSliderCell._smallSizeLabel, 195 | _FontSizeSliderCell._veryLargeSizeLabel, _KeychainSyncAdvancedSecurityCodeController._cellFont, 196 | _KeychainSyncAdvancedSecurityCodeController._cellTextWidth, 197 | _KeychainSyncAdvancedSecurityCodeController._showsDisableRecoveryOption, 198 | _KeychainSyncCountryInfo._countryCode, _KeychainSyncCountryInfo._countryName, 199 | _KeychainSyncCountryInfo._dialingPrefix, _KeychainSyncCountryInfo._localizedCountryName, 200 | _KeychainSyncDevicePINController._devicePINController, 201 | _KeychainSyncDevicePINController._disabledKeyboard, 202 | _KeychainSyncDevicePINController._enterPasscodeReason, 203 | _KeychainSyncDevicePINController._enterPasscodeTitle, 204 | _KeychainSyncDevicePINController._showingBlockedMessage, 205 | _KeychainSyncPhoneNumberController._footerLabel, 206 | _KeychainSyncPhoneNumberController._phoneSettingsFragment, 207 | _KeychainSyncPhoneSettingsFragment._countryInfo, _KeychainSyncPhoneSettingsFragment._countrySpecifier, 208 | _KeychainSyncPhoneSettingsFragment._delegate, _KeychainSyncPhoneSettingsFragment._listController, 209 | _KeychainSyncPhoneSettingsFragment._phoneNumber, 210 | _KeychainSyncPhoneSettingsFragment._phoneNumberSpecifier, 211 | _KeychainSyncPhoneSettingsFragment._specifiers, _KeychainSyncPhoneSettingsFragment._title, 212 | _KeychainSyncSMSVerificationController._countryCode, 213 | _KeychainSyncSMSVerificationController._dialingPrefix, 214 | _KeychainSyncSMSVerificationController._footerButton, 215 | _KeychainSyncSMSVerificationController._keychainSyncManager, 216 | _KeychainSyncSMSVerificationController._phoneNumber, _KeychainSyncSecurityCodeCell._bulletTextLabel, 217 | _KeychainSyncSecurityCodeCell._firstPasscodeEntry, _KeychainSyncSecurityCodeCell._mode, 218 | _KeychainSyncSecurityCodeCell._securityCodeType, _KeychainSyncSetupController._manager, 219 | _PINView._delegate, _PINView._error, _PINView._errorTitleLabel, _PINView._failureView, 220 | _PINView._optionsButton, _PINView._passcodeOptionsHandler, _PINView._pinPolicyLabel, 221 | _PINView._titleLabel, _PSAccountSecurityController._SMSTarget, 222 | _PSAccountSecurityController._SMSTargetCountryInfo, _PSAccountSecurityController._devicePINController, 223 | _PSAccountSecurityController._devicePasscodeChangeSetupController, 224 | _PSAccountSecurityController._manager, _PSAccountSecurityController._passcodeSpecifiers, 225 | _PSAccountSecurityController._phoneSettingsFragment, _PSAccountSecurityController._recoverySwitch, 226 | _PSAccountSecurityController._secureBackupEnabled, _PSAccountSecurityController._securityCode, 227 | _PSAccountSecurityController._securityCodeType, _PSAccountsClientListController._acObserver, 228 | _PSAccountsClientListController._accountSpecifier, _PSAccountsClientListController._noAccountsSetUp, 229 | _PSAccountsClientListController._showExtraVC, _PSAppListController._systemPolicy, 230 | _PSAppleIDSplashViewController._authController, _PSAppleIDSplashViewController._cancelButtonBarItem, 231 | _PSAppleIDSplashViewController._createNewAccountButtonSpecifier, 232 | _PSAppleIDSplashViewController._idleJiggleTimer, _PSAppleIDSplashViewController._isPasswordDirty, 233 | _PSAppleIDSplashViewController._isPresentedModally, _PSAppleIDSplashViewController._monogrammer, 234 | _PSAppleIDSplashViewController._nextButtonBarItem, _PSAppleIDSplashViewController._password, 235 | _PSAppleIDSplashViewController._powerAssertion, _PSAppleIDSplashViewController._remoteUICompletion, 236 | _PSAppleIDSplashViewController._remoteUIController, 237 | _PSAppleIDSplashViewController._shouldHideBackButton, 238 | _PSAppleIDSplashViewController._shouldShowCreateAppleIDButton, 239 | _PSAppleIDSplashViewController._signInButtonSpecifier, _PSAppleIDSplashViewController._silhouetteView, 240 | _PSAppleIDSplashViewController._spinner, _PSAppleIDSplashViewController._spinnerBarItem, 241 | _PSAppleIDSplashViewController._textFieldTextDidChangeObserver, 242 | _PSAppleIDSplashViewController._username, _PSBadgedTableCell._badgeImageView, 243 | _PSBadgedTableCell._badgeInt, _PSBadgedTableCell._badgeNumberLabel, _PSBarButtonSpinnerView._spinner, 244 | _PSBrightnessController._brightnessChangedExternally, _PSBrightnessController._isTracking, 245 | _PSBulletedPINView._passcodeField, _PSBundleController._parent, _PSCapabilityManager._overrides, 246 | _PSCloudStorageOffersManager._commerceDelegate, _PSCloudStorageOffersManager._delegate, 247 | _PSCloudStorageOffersManager._requiredStorageThreshold, 248 | _PSCloudStorageOffersManager._skipCompletionAlert, _PSCloudStorageOffersManager._supportsModernAlerts, 249 | _PSConfirmationSpecifier._cancelButton, _PSConfirmationSpecifier._okButton, 250 | _PSConfirmationSpecifier._prompt, _PSConfirmationSpecifier._title, _PSControlTableCell._control, 251 | _PSDetailController._pane, _PSEditableListController._editable, 252 | _PSEditableListController._editingDisabled, _PSEditableTableCell._controllerDelegate, 253 | _PSEditableTableCell._delaySpecifierRelease, _PSEditableTableCell._delegate, 254 | _PSEditableTableCell._forceFirstResponder, _PSEditableTableCell._realTarget, 255 | _PSEditableTableCell._returnKeyTapped, _PSEditableTableCell._targetSetter, 256 | _PSEditableTableCell._textColor, _PSEditableTableCell._valueChanged, _PSEditingPane._delegate, 257 | _PSEditingPane._requiresKeyboard, _PSEditingPane._specifier, _PSEditingPane._viewController, 258 | _PSExpandableListGroupController._collaspeAfterCount, _PSExpandableListGroupController._groupSpecifier, 259 | _PSExpandableListGroupController._listController, _PSExpandableListGroupController._showAll, 260 | _PSExpandableListGroupController._showAllSpecifier, _PSExpandableListGroupController._specifiers, 261 | _PSExpandableListGroupController._spinnerSpecifier, _PSFooterHyperlinkView._URL, 262 | _PSFooterHyperlinkView._action, _PSFooterHyperlinkView._iconView, _PSFooterHyperlinkView._linkRange, 263 | _PSFooterHyperlinkView._target, _PSFooterHyperlinkView._text, _PSFooterHyperlinkView._textView, 264 | _PSInternationalLanguageController._checkedLanguage, _PSInternationalLanguageController._contentView, 265 | _PSInternationalLanguageController._deviceLanguages, 266 | _PSInternationalLanguageController._filteredDeviceLanguages, 267 | _PSInternationalLanguageController._languageSelector, 268 | _PSInternationalLanguageController._localeSelector, 269 | _PSInternationalLanguageController._savedSearchTerm, _PSInternationalLanguageController._searchBar, 270 | _PSInternationalLanguageController._searchIsActive, _PSInternationalLanguageController._tableView, 271 | _PSInternationalLanguageSetupController._languageSelector, _PSKeychainSyncHeaderView._detailLabel, 272 | _PSKeychainSyncHeaderView._titleLabel, _PSKeychainSyncHeaderView._usesCompactLayout, 273 | _PSKeychainSyncManager._advancedSecurityCodeChoiceController, 274 | _PSKeychainSyncManager._appleIDPasswordOrEquivalentToken, _PSKeychainSyncManager._appleIDRawPassword, 275 | _PSKeychainSyncManager._appleIDUsername, _PSKeychainSyncManager._buddyNavigationController, 276 | _PSKeychainSyncManager._changeSecurityCodeCompletion, _PSKeychainSyncManager._circleJoinCompletion, 277 | _PSKeychainSyncManager._circleNotificationToken, _PSKeychainSyncManager._circleWasReset, 278 | _PSKeychainSyncManager._completion, _PSKeychainSyncManager._complexSecurityCodeController, 279 | _PSKeychainSyncManager._credentialExpirationTimer, _PSKeychainSyncManager._devicePinController, 280 | _PSKeychainSyncManager._flow, _PSKeychainSyncManager._hostViewController, 281 | _PSKeychainSyncManager._joinAfterRecoveryTimeoutTimer, _PSKeychainSyncManager._joiningCircle, 282 | _PSKeychainSyncManager._joiningCircleAfterRecovery, _PSKeychainSyncManager._passwordPromptCompletion, 283 | _PSKeychainSyncManager._phoneNumberController, _PSKeychainSyncManager._resetCompletion, 284 | _PSKeychainSyncManager._resetPromptControllerHost, _PSKeychainSyncManager._securityCodeRecoveryAttempt, 285 | _PSKeychainSyncManager._securityCodeRecoveryController, 286 | _PSKeychainSyncManager._settingsSetupController, _PSKeychainSyncManager._simpleSecurityCodeController, 287 | _PSKeychainSyncManager._smsValidationController, _PSKeychainSyncManager._spinnerCount, 288 | _PSKeychainSyncManager._spinningView, _PSKeychainSyncManager._stagedSecurityCode, 289 | _PSKeychainSyncManager._stagedSecurityCodeType, _PSKeychainSyncPhoneNumber._countryInfo, 290 | _PSKeychainSyncPhoneNumber._digits, _PSKeychainSyncSecurityCodeController._firstPasscodeEntry, 291 | _PSKeychainSyncSecurityCodeController._footerButton, 292 | _PSKeychainSyncSecurityCodeController._footerLabel, 293 | _PSKeychainSyncSecurityCodeController._generatedCode, 294 | _PSKeychainSyncSecurityCodeController._keyboardHeight, _PSKeychainSyncSecurityCodeController._mode, 295 | _PSKeychainSyncSecurityCodeController._securityCodeType, 296 | _PSKeychainSyncSecurityCodeController._showsAdvancedSettings, 297 | _PSKeychainSyncTextEntryController._convertsNumeralsToASCII, 298 | _PSKeychainSyncTextEntryController._hidesNextButton, 299 | _PSKeychainSyncTextEntryController._numberOfPasscodeFields, 300 | _PSKeychainSyncTextEntryController._secureTextEntry, _PSKeychainSyncTextEntryController._textEntryCell, 301 | _PSKeychainSyncTextEntryController._textEntrySpecifier, 302 | _PSKeychainSyncTextEntryController._textEntryType, _PSKeychainSyncTextEntryController._textEntryView, 303 | _PSKeychainSyncTextEntryController._textFieldHasRoundBorder, 304 | _PSKeychainSyncTextEntryController._textValue, _PSKeychainSyncViewController._delegate, 305 | _PSKeychainSyncViewController._groupSpecifier, _PSKeychainSyncViewController._headerView, 306 | _PSLanguage._languageCode, _PSLanguage._languageName, _PSLanguage._localizedLanguageName, 307 | _PSLargeTextController._bodyExampleLabel, _PSLargeTextController._contentSizeCategories, 308 | _PSLargeTextController._headlineExampleLabel, _PSLargeTextController._selectedCategoryIndex, 309 | _PSLargeTextController._showsExtendedRangeSwitch, _PSLargeTextController._sliderGroupSpecifier, 310 | _PSLargeTextController._usesExtendedRange, _PSLazyImagePromise._image, 311 | _PSLazyImagePromise._imageBundle, _PSLazyImagePromise._imageLoaded, _PSLazyImagePromise._imageName, 312 | _PSLazyImagePromise._imagePath, _PSLazyImagePromise._loadBlock, _PSLegalMessagePane._webView, 313 | _PSListContainerView._delegate, _PSListController._altTextColor, _PSListController._backgroundColor, 314 | _PSListController._bundleControllers, _PSListController._bundlesLoaded, 315 | _PSListController._buttonTextColor, _PSListController._cachesCells, 316 | _PSListController._cellAccessoryColor, _PSListController._cellAccessoryHighlightColor, 317 | _PSListController._cellHighlightColor, _PSListController._cells, _PSListController._containerView, 318 | _PSListController._contentOffsetWithKeyboard, _PSListController._dataSource, 319 | _PSListController._edgeToEdgeCells, _PSListController._editableInsertionPointColor, 320 | _PSListController._editablePlaceholderTextColor, _PSListController._editableSelectionBarColor, 321 | _PSListController._editableSelectionHighlightColor, _PSListController._editableTextColor, 322 | _PSListController._footerHyperlinkColor, _PSListController._forceSynchronousIconLoadForCreatedCells, 323 | _PSListController._foregroundColor, _PSListController._groups, _PSListController._hasAppeared, 324 | _PSListController._highlightItemName, _PSListController._isVisible, _PSListController._keyboard, 325 | _PSListController._keyboardWasVisible, _PSListController._offsetItemName, 326 | _PSListController._pendingURLResourceDictionary, _PSListController._popupIsDismissing, 327 | _PSListController._popupIsModal, _PSListController._prequeuedReusablePSTableCells, 328 | _PSListController._requestingSpecifiersFromDataSource, _PSListController._reusesCells, 329 | _PSListController._savedSelectedIndexPath, _PSListController._sectionContentInsetInitialized, 330 | _PSListController._segmentedSliderTrackColor, _PSListController._separatorColor, 331 | _PSListController._showingSetupController, _PSListController._specifierID, 332 | _PSListController._specifierIDPendingPush, _PSListController._specifiers, 333 | _PSListController._specifiersByID, _PSListController._table, _PSListController._textColor, 334 | _PSListController._usesDarkTheme, _PSListController._verticalContentOffset, 335 | _PSListItemsController._deferItemSelection, _PSListItemsController._lastSelectedSpecifier, 336 | _PSListItemsController._restrictionList, _PSListItemsController._retainedTarget, 337 | _PSListItemsController._rowToSelect, _PSLocaleController._contentView, 338 | _PSLocaleController._currentRegion, _PSLocaleController._filteredListContent, 339 | _PSLocaleController._hideKeyboardInSearchMode, _PSLocaleController._localeSelector, 340 | _PSLocaleController._regionsList, _PSLocaleController._searchBar, _PSLocaleController._searchMode, 341 | _PSLocaleController._sections, _PSLocaleController._tableView, 342 | _PSMagnifyController._HTMLResourceBaseURL, _PSMagnifyController._alwaysShowCancelButton, 343 | _PSMagnifyController._delegate, _PSMagnifyController._dividerLine, 344 | _PSMagnifyController._doneButtonCommits, _PSMagnifyController._firstLoadSemaphore, 345 | _PSMagnifyController._initialMagnifyMode, _PSMagnifyController._loaded, 346 | _PSMagnifyController._magnifyModePicker, _PSMagnifyController._originalMagnifyMode, 347 | _PSMagnifyController._pageControl, _PSMagnifyController._previewsScroller, 348 | _PSMagnifyController._scrolledPreviewPage, _PSMagnifyController._selectedMagnifyMode, 349 | _PSMagnifyController._webViewsForMagnifyMode, _PSMagnifyMode._localizedName, _PSMagnifyMode._name, 350 | _PSMagnifyMode._previewHTMLStrings, _PSMagnifyMode._previewStyleSheets, _PSMagnifyMode._size, 351 | _PSMagnifyMode._zoomed, _PSNavBarSpinnerManager._navigationItems, 352 | _PSNavBarSpinnerManager._savedLeftItems, _PSNavBarSpinnerManager._savedRightItems, 353 | _PSPasscodeField._dashViews, _PSPasscodeField._delegate, _PSPasscodeField._digitViews, 354 | _PSPasscodeField._dotFullViews, _PSPasscodeField._dotOutlineViews, _PSPasscodeField._enabled, 355 | _PSPasscodeField._fieldSpacing, _PSPasscodeField._foregroundColor, 356 | _PSPasscodeField._keyboardAppearance, _PSPasscodeField._numberOfEntryFields, 357 | _PSPasscodeField._securePasscodeEntry, _PSPasscodeField._shouldBecomeFirstResponderOnTap, 358 | _PSPasscodeField._stringValue, _PSPhoneNumberSpecifier._countryCode, _PSQuotaInfo._mediaKindDict, 359 | _PSQuotaInfo._totalStorage, _PSQuotaInfo._usedStorage, _PSRegion._regionCode, _PSRegion._regionName, 360 | _PSRootController._deallocating, _PSRootController._specifier, 361 | _PSRootController._stackAnimationController, _PSRootController._supportedOrientationsOverride, 362 | _PSRootController._tasks, _PSSearchController._delegate, 363 | _PSSearchController._iconForSearchEntryHandler, _PSSearchController._listController, 364 | _PSSearchController._notifyToken, _PSSearchController._resultsController, 365 | _PSSearchController._searchController, _PSSearchController._searchEnabled, _PSSearchEntry._action, 366 | _PSSearchEntry._additionalDetailTextComponents, _PSSearchEntry._bundleName, 367 | _PSSearchEntry._childEntries, _PSSearchEntry._groupName, _PSSearchEntry._groupSpecifier, 368 | _PSSearchEntry._hasDetailController, _PSSearchEntry._hasListController, _PSSearchEntry._identifier, 369 | _PSSearchEntry._isRootURL, _PSSearchEntry._isSection, _PSSearchEntry._keywords, 370 | _PSSearchEntry._manifestBundleName, _PSSearchEntry._name, _PSSearchEntry._parentEntry, 371 | _PSSearchEntry._plistName, _PSSearchEntry._sectionIdentifier, _PSSearchEntry._specifier, 372 | _PSSearchEntry._url, _PSSearchIndexOperation._delegate, _PSSearchIndexOperation._searchEntry, 373 | _PSSearchModel._activeSearchOperation, _PSSearchModel._currentQuery, _PSSearchModel._currentResults, 374 | _PSSearchModel._dataSource, _PSSearchModel._deferredSpecifierUpdates, _PSSearchModel._delegates, 375 | _PSSearchModel._entriesBeingIndexed, _PSSearchModel._entriesPendingSearch, 376 | _PSSearchModel._hasLoadedRootEntries, _PSSearchModel._hasStartedIndexing, 377 | _PSSearchModel._indexOperationQueue, _PSSearchModel._indexing, 378 | _PSSearchModel._indexingEntriesWithLoadedDataSources, _PSSearchModel._queryForCurrentResults, 379 | _PSSearchModel._removedEntriesStillIndexing, _PSSearchModel._removedEntriesStillSearching, 380 | _PSSearchModel._rootEntries, _PSSearchModel._searchOperationQueue, 381 | _PSSearchModel._searchStateAccessQueue, _PSSearchModel._showSectionInDetailText, 382 | _PSSearchModel._specifierDataSources, _PSSearchModel._waitUntilFinished, 383 | _PSSearchOperation._currentResults, _PSSearchOperation._delegate, _PSSearchOperation._newQuery, 384 | _PSSearchOperation._query, _PSSearchOperation._rootEntries, _PSSearchResults._entriesBySection, 385 | _PSSearchResults._entryComparator, _PSSearchResults._explicitlyAddedSectionEntries, 386 | _PSSearchResults._needsSorting, _PSSearchResults._sectionComparator, _PSSearchResults._sectionEntries, 387 | _PSSearchResults._treatSectionEntriesAsRegularEntries, _PSSearchResultsCell._shouldIndentContent, 388 | _PSSearchResultsCell._shouldIndentSeparator, _PSSearchResultsController._delegate, 389 | _PSSearchResultsController._iconViewMap, _PSSearchResultsController._reusableIconViews, 390 | _PSSearchResultsController._searchResults, _PSSearchResultsController._tableView, 391 | _PSSearchResultsSwitchCell._action, _PSSearchResultsSwitchCell._specifier, 392 | _PSSearchResultsSwitchCell._switch, _PSSegmentTableCell._titleDict, _PSSegmentTableCell._values, 393 | _PSSegmentableSlider._locksToSegment, _PSSegmentableSlider._retargetFeedback, 394 | _PSSegmentableSlider._segmentCount, _PSSegmentableSlider._segmented, 395 | _PSSegmentableSlider._snapsToSegment, _PSSegmentableSlider._trackMarkersColor, 396 | _PSSetupController._parentController, _PSSetupController._parentRootController, 397 | _PSSetupController._rootInfo, _PSSliderTableCell._disabledView, 398 | _PSSoftwareUpdateAnimatedIcon._animating, _PSSoftwareUpdateAnimatedIcon._innerGearView, 399 | _PSSoftwareUpdateAnimatedIcon._outerGearShadowView, _PSSoftwareUpdateAnimatedIcon._outerGearView, 400 | _PSSoftwareUpdateReleaseNotesDetail._releaseNotes, 401 | _PSSoftwareUpdateTableView._checkingForUpdateSpinner, _PSSoftwareUpdateTableView._checkingStatusLabel, 402 | _PSSoftwareUpdateTableView._currentVersion, _PSSoftwareUpdateTableView._sourceOfUpdateRestriction, 403 | _PSSoftwareUpdateTableView._state, _PSSoftwareUpdateTableView._subtitleLabel, 404 | _PSSoftwareUpdateTermsManager._hostController, _PSSoftwareUpdateTermsManager._overrideNextRUIAction, 405 | _PSSoftwareUpdateTermsManager._presentedViewController, _PSSoftwareUpdateTermsManager._serverFlowStyle, 406 | _PSSoftwareUpdateTermsManager._showProgressViewController, 407 | _PSSoftwareUpdateTermsManager._termsCompletion, _PSSoftwareUpdateTermsManager._termsRemoteUI, 408 | _PSSoftwareUpdateTermsManager._update, _PSSoftwareUpdateTitleCell._animatedGearView, 409 | _PSSoftwareUpdateTitleCell._animatingGearView, _PSSoftwareUpdateTitleCell._gearBackgroundImageView, 410 | _PSSoftwareUpdateTitleCell._progressBar, _PSSoftwareUpdateTitleCell._progressStyle, 411 | _PSSoftwareUpdateTitleCell._releaseNotesSummaryView, _PSSoftwareUpdateTitleCell._updateStatusLabel, 412 | _PSSoftwareUpdateTitleCell._updateStatusLabelVerticalConstraint, _PSSpecifier._buttonAction, 413 | _PSSpecifier._confirmationAction, _PSSpecifier._confirmationCancelAction, 414 | _PSSpecifier._controllerLoadAction, _PSSpecifier._name, _PSSpecifier._properties, 415 | _PSSpecifier._shortTitleDict, _PSSpecifier._showContentString, _PSSpecifier._titleDict, 416 | _PSSpecifier._userInfo, _PSSpecifier._values, _PSSpecifier.action, _PSSpecifier.autoCapsType, 417 | _PSSpecifier.autoCorrectionType, _PSSpecifier.cancel, _PSSpecifier.cellType, 418 | _PSSpecifier.detailControllerClass, _PSSpecifier.editPaneClass, _PSSpecifier.getter, 419 | _PSSpecifier.keyboardType, _PSSpecifier.setter, _PSSpecifier.target, _PSSpecifier.textFieldType, 420 | _PSSpecifierAction._getter, _PSSpecifierAction._setter, _PSSpecifierDataSource._observerRefs, 421 | _PSSpecifierDataSource._specifiers, _PSSpecifierDataSource._specifiersLoaded, 422 | _PSSpecifierGroupIndex._groupSections, _PSSpecifierGroupIndex._groupSpecifiers, 423 | _PSSpecifierGroupIndex._specifiers, _PSSpecifierGroupIndex._ungroupedPrefixSpecifiers, 424 | _PSSpecifierGroupIndex._wantsDebugCallbacks, _PSSpecifierUpdateContext._animated, 425 | _PSSpecifierUpdateContext._updateModelOnly, _PSSpecifierUpdateContext._userInfo, 426 | _PSSpecifierUpdateOperation._index, _PSSpecifierUpdateOperation._operation, 427 | _PSSpecifierUpdateOperation._specifier, _PSSpecifierUpdateOperation._toIndex, 428 | _PSSpecifierUpdates._context, _PSSpecifierUpdates._currentSpecifiers, _PSSpecifierUpdates._groupIndex, 429 | _PSSpecifierUpdates._originalSpecifiers, _PSSpecifierUpdates._updates, 430 | _PSSpecifierUpdates._wantsDebugCallbacks, _PSSpinnerTableCell._spinner, 431 | _PSSplitViewController._containerNavigationController, _PSSplitViewController._navigationDelegate, 432 | _PSStackPushAnimationController._animationPreset, 433 | _PSStackPushAnimationController._animationsToRunAlongsideToVC, 434 | _PSStackPushAnimationController._completionBlock, _PSStackPushAnimationController._completionStagger, 435 | _PSStackPushAnimationController._hasStartedAnimation, 436 | _PSStackPushAnimationController._navigationController, _PSStackPushAnimationController._pushDuration, 437 | _PSStackPushAnimationController._snapshots, _PSStackPushAnimationController._springDamping, 438 | _PSStackPushAnimationController._startStagger, _PSStackPushAnimationController._viewControllers, 439 | _PSSubtitleDisclosureTableCell._valueLabel, _PSSwitchTableCell._activityIndicator, 440 | _PSSystemConfiguration._prefs, _PSSystemConfigurationDynamicStoreEthernetWatcher._dynamicStore, 441 | _PSSystemConfigurationDynamicStoreEthernetWatcher._dynamicStoreSource, 442 | _PSSystemConfigurationDynamicStoreNETRBWatcher._netrbReason, 443 | _PSSystemConfigurationDynamicStoreNETRBWatcher._netrbState, 444 | _PSSystemConfigurationDynamicStoreNETRBWatcher._scDynamicStore, 445 | _PSSystemConfigurationDynamicStoreNETRBWatcher._scRunLoopSource, 446 | _PSSystemConfigurationDynamicStoreWifiWatcher._prefs, 447 | _PSSystemConfigurationDynamicStoreWifiWatcher._tetheringLink, 448 | _PSSystemConfigurationDynamicStoreWifiWatcher._wifiInterface, 449 | _PSSystemConfigurationDynamicStoreWifiWatcher._wifiKey, _PSSystemPolicyForApp._bundleIdentifier, 450 | _PSSystemPolicyForApp._forcePolicyOptions, _PSSystemPolicyForApp._policyOptions, 451 | _PSTableCell._alignment, _PSTableCell._cellEnabled, _PSTableCell._checked, 452 | _PSTableCell._checkedImageView, _PSTableCell._customHighlightContext, 453 | _PSTableCell._forceHideDisclosureIndicator, _PSTableCell._hiddenTitle, _PSTableCell._isCopyable, 454 | _PSTableCell._lazyIcon, _PSTableCell._lazyIconAppID, _PSTableCell._lazyIconDontUnload, 455 | _PSTableCell._lazyIconForceSynchronous, _PSTableCell._lazyIconURL, _PSTableCell._longTapRecognizer, 456 | _PSTableCell._pAction, _PSTableCell._pTarget, _PSTableCell._reusedCell, _PSTableCell._shouldHideTitle, 457 | _PSTableCell._specifier, _PSTableCell._type, _PSTableCell._urlSession, _PSTableCell._value, 458 | _PSTableCellHighlightContext._animateUnhighlight, _PSTableCellHighlightContext._cell, 459 | _PSTableCellHighlightContext._originalSelectionStyle, _PSTableCellHighlightContext._timer, 460 | _PSTableCellHighlightContext._valid, _PSTextEditingPane._cell, _PSTextEditingPane._table, 461 | _PSTextEditingPane._textField, _PSTextFieldPINView._cell, _PSTextFieldPINView._passcodeField, 462 | _PSTextFieldPINView._table, _PSTextFieldPINView._usesNumericKeyboard, 463 | _PSTextFieldSpecifier._placeholder, _PSTextFieldSpecifier.bestGuess, _PSTextView._cell, 464 | _PSTextViewPane._textView, _PSTextViewTableCell._textView, _PSThirdPartyApp._localizedName, 465 | _PSThirdPartyApp._proxy, _PSTimeRangeCell._constraints, _PSTimeRangeCell._delegate, 466 | _PSTimeRangeCell._fromTime, _PSTimeRangeCell._fromTitle, _PSTimeRangeCell._toTime, 467 | _PSTimeRangeCell._toTitle, _PSUICellularUsageApp._bundleIdentifier, _PSUICellularUsageApp._displayName, 468 | _PSUICellularUsageApp._roamingBytesUsed, _PSUICellularUsageApp._totalBytesUsed, 469 | _PSUsageBundleApp._bundleIdentifier, _PSUsageBundleApp._categories, 470 | _PSUsageBundleApp._deletionRestricted, _PSUsageBundleApp._name, 471 | _PSUsageBundleApp._storageReporterReference, _PSUsageBundleApp._totalSize, 472 | _PSUsageBundleCategory._identifier, _PSUsageBundleCategory._name, 473 | _PSUsageBundleCategory._usageBundleApp, _PSUsageBundleManager._bundleMap, 474 | _PSUsageBundleManager._storageReporters, _PSUsageBundleManager._usageBundleApps, 475 | _PSUsageSizeHeader._height, _PSUsageSizeHeader._sizeLabel, _PSUsageSizeHeader._titleLabel, 476 | _PSViewController._parentController, _PSViewController._rootController, _PSViewController._specifier, 477 | _PSWeakReference._location, _PSWebContainerView._content, _PSWebContainerView._webView, 478 | _PasscodeFieldCell._convertsNumeralsToASCII, _PasscodeFieldCell._delegate, 479 | _PasscodeFieldCell._denyFirstResponder, _PasscodeFieldCell._passcodeField, _PrefsUILinkLabel._URL, 480 | _PrefsUILinkLabel._action, _PrefsUILinkLabel._target, _PrefsUILinkLabel._touchingURL, 481 | _PrefsUILinkLabel._url, _ProblemReportingController._aboutDiagnosticsLinkLabel, 482 | _ProblemReportingController._appActivitySpecifiers, 483 | _ProblemReportingController._filesystemMetadataSnapshotSpecifier, 484 | _ProblemReportingController._healthDataSpecifiers, _ProblemReportingController._iCloudSpecifiers, 485 | _ProblemReportingController._spinnerSpecifier, _ProblemReportingController._wheelchairDataSpecifiers, 486 | _QuietHoursStateController._bbGateway, _QuietHoursStateController._behaviorOverrides, 487 | _QuietHoursStateController._fromComponents, _QuietHoursStateController._isEffectiveWhileUnlocked, 488 | _QuietHoursStateController._mode, _QuietHoursStateController._overrideStatus, 489 | _QuietHoursStateController._overrideType, _QuietHoursStateController._overrides, 490 | _QuietHoursStateController._privilegeTypes, _QuietHoursStateController._recordID, 491 | _QuietHoursStateController._toComponents, _QuietHoursStateController._valid, 492 | _WirelessDataUsageWorkspace._analyticsWorkspace, _WirelessDataUsageWorkspace._pendingProcessAnalytics, 493 | _WirelessDataUsageWorkspace._processAnalytics, _WirelessDataUsageWorkspace._subscriberTag, 494 | __PSDeferredUpdates._invalidatedSpecifiers, __PSDeferredUpdates._searchEntries, 495 | __PSDeferredUpdates._specifierUpdates, __PSSpinnerViewController._spinner ] 496 | ... 497 | -------------------------------------------------------------------------------- /MRYHUDView.h: -------------------------------------------------------------------------------- 1 | @class CCUIContentModuleContainerViewController; 2 | @class CCUIAudioModule; 3 | @interface MRYHUDView : UIView 4 | @property (nonatomic, retain) UIView* containerView; 5 | @property (nonatomic, retain) CCUIAudioModule* audioModule; 6 | @property (nonatomic, retain) CCUIContentModuleContainerViewController* sliderVC; 7 | @property (nonatomic, assign) BOOL expanded; 8 | -(void)setCornerRadius:(CGFloat)arg1; 9 | -(void)collapseAnimated:(BOOL)animated; 10 | -(void)expandAnimated:(BOOL)animated; 11 | @end 12 | 13 | @class CCUIContentModuleContentContainerView; 14 | @interface CCUIContentModuleContainerViewController : UIViewController 15 | @property (nonatomic, retain) CCUIContentModuleContentContainerView* contentContainerView; 16 | @property (nonatomic,retain) UIViewController* contentViewController; 17 | -(id)initWithModuleIdentifier:(id)arg1 contentModule:(id)arg2; 18 | @end 19 | 20 | @interface CCUIAudioModule : NSObject 21 | -(UIViewController*)contentViewController; 22 | -(UIViewController*)backgroundViewController; 23 | @end 24 | 25 | @interface CCUIVolumeSliderView : UIView 26 | @property (nonatomic, assign) CGFloat continuousSliderCornerRadius; 27 | @property (assign,nonatomic) CGFloat value; 28 | @property (nonatomic, assign) BOOL glyphVisible; 29 | @end 30 | 31 | @interface CCUIAudioModuleViewController : UIViewController 32 | @end 33 | 34 | @interface CCUIContentModuleContentContainerView : UIView 35 | -(void)_setContinuousCornerRadius:(CGFloat)arg1; 36 | @end 37 | 38 | @interface CALayer (Internal) 39 | @property (assign) BOOL continuousCorners; 40 | @end 41 | 42 | @interface MPVolumeController : NSObject 43 | @property (nonatomic,copy) NSString* volumeAudioCategory; 44 | @property (assign,nonatomic) float volumeValue; 45 | @end 46 | 47 | @interface PSUISoundsPrefController : UIViewController 48 | -(BOOL)_canChangeRingtoneWithButtons; 49 | @end 50 | 51 | @interface CABackdropLayer : CALayer 52 | @end 53 | 54 | @interface UIView (Internal) 55 | -(UIViewController*)_viewControllerForAncestor; 56 | @end 57 | 58 | @interface SBHUDWindow : UIWindow 59 | @end -------------------------------------------------------------------------------- /MRYHUDView.xm: -------------------------------------------------------------------------------- 1 | #import "13HUD.h" 2 | #import "MRYHUDView.h" 3 | 4 | #define expandedCornerRadius 17. 5 | #define collapseAnimDuration 0.3 6 | 7 | //stop slider overriding HUD: 8 | %hook CCUIAudioModuleViewController 9 | -(BOOL)isOnScreen 10 | { 11 | if ([self.view.window isKindOfClass:%c(SBHUDWindow)]) 12 | return NO; 13 | return %orig; 14 | } 15 | %end 16 | 17 | //animate fill: 18 | static BOOL finishedSetup = NO; 19 | %hook CCUIContentModuleContext 20 | +(void)performWithoutAnimationWhileHidden:(void(^)(void))arg1 21 | { 22 | if (finishedSetup && [(SBHUDController*)[%c(SBHUDController) sharedHUDController] isHUDVisible]) 23 | { 24 | arg1(); 25 | } 26 | else 27 | { 28 | %orig; 29 | } 30 | } 31 | %end 32 | 33 | //stop PSUISoundsPrefController crashing out: 34 | %hook SpringBoard 35 | %new 36 | -(id)rootController 37 | { 38 | return [[UIApplication sharedApplication] keyWindow].rootViewController; 39 | } 40 | %end 41 | 42 | //should volume buttons change ringtone? 43 | BOOL useRingtoneCategory() 44 | { 45 | return [[[%c(PSUISoundsPrefController) alloc] init] _canChangeRingtoneWithButtons]; 46 | } 47 | 48 | @implementation MRYHUDView 49 | { 50 | UIVisualEffectView* blurView; 51 | } 52 | 53 | -(instancetype)initWithFrame:(CGRect)frame 54 | { 55 | self = [super initWithFrame:frame]; 56 | if (self) 57 | { 58 | finishedSetup = NO; 59 | 60 | //start off hidden and expanded: 61 | self.hidden = YES; 62 | self.expanded = YES; 63 | 64 | //create container: 65 | self.containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)]; 66 | self.containerView.clipsToBounds = YES; 67 | self.containerView.layer.continuousCorners = YES; 68 | 69 | //create blurred background for slider: 70 | UIBlurEffect* blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; 71 | blurView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 72 | blurView.frame = self.containerView.bounds; 73 | blurView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin; 74 | [self.containerView addSubview:blurView]; 75 | 76 | //create slider: 77 | self.audioModule = [[%c(CCUIAudioModule) alloc] init]; 78 | self.sliderVC = [[%c(CCUIContentModuleContainerViewController) alloc] initWithModuleIdentifier:@"com.apple.control-center.AudioModule" contentModule:self.audioModule]; 79 | self.sliderVC.view.frame = self.containerView.bounds; 80 | self.sliderVC.view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin; 81 | 82 | if (useRingtoneCategory()) 83 | { 84 | MPVolumeController* volControl = MSHookIvar(self.sliderVC.contentViewController, "_volumeController"); 85 | volControl.volumeAudioCategory = @"Ringtone"; 86 | } 87 | 88 | //rotate glyphs if landscape: 89 | CCUIVolumeSliderView* slider = MSHookIvar(self.sliderVC.contentViewController, "_sliderView"); 90 | UIView* glyph1 = MSHookIvar(slider, "_glyphPackageView"); 91 | UIView* glyph2 = MSHookIvar(slider, "_compensatingGlyphPackageView"); 92 | UIInterfaceOrientation orientation = [(SpringBoard*)[UIApplication sharedApplication] activeInterfaceOrientation]; 93 | if (orientation == UIInterfaceOrientationLandscapeRight) 94 | { 95 | glyph1.transform = CGAffineTransformMakeRotation(90. * M_PI/180); 96 | glyph2.transform = CGAffineTransformMakeRotation(90. * M_PI/180); 97 | } 98 | else if (orientation == UIInterfaceOrientationLandscapeLeft) 99 | { 100 | glyph1.transform = CGAffineTransformMakeRotation(-90. * M_PI/180); 101 | glyph2.transform = CGAffineTransformMakeRotation(-90. * M_PI/180); 102 | } 103 | 104 | [self.containerView addSubview:self.sliderVC.view]; 105 | 106 | //add as subview: 107 | [self addSubview:self.containerView]; 108 | 109 | //set corner radius: 110 | [self setCornerRadius:expandedCornerRadius]; 111 | 112 | //gesture recognizer for touches began and ended: 113 | UIPanGestureRecognizer* panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panStateChanged:)]; 114 | [self addGestureRecognizer:panGesture]; 115 | 116 | //this is a hack... 117 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.05 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 118 | finishedSetup = YES; 119 | }); 120 | } 121 | return self; 122 | } 123 | 124 | -(void)setCornerRadius:(CGFloat)arg1 125 | { 126 | //container: 127 | self.containerView.layer.cornerRadius = arg1; 128 | //fill layer: 129 | CCUIVolumeSliderView* slider = MSHookIvar([self.sliderVC contentViewController], "_sliderView"); 130 | slider.continuousSliderCornerRadius = 0.; 131 | UIView* bgView = MSHookIvar(slider, "_continuousValueBackgroundView"); 132 | UIView* backdrop = MSHookIvar(bgView, "_backdropView"); 133 | backdrop.layer.cornerRadius = 0.; 134 | //background: 135 | [self.sliderVC.contentContainerView _setContinuousCornerRadius:arg1]; 136 | } 137 | 138 | //expand when you drag your finger, collapse when you release 139 | -(void)panStateChanged:(UIPanGestureRecognizer*)sender 140 | { 141 | if (sender.state == UIGestureRecognizerStateBegan) 142 | { 143 | [self expandAnimated:YES]; 144 | } 145 | else if (sender.state == UIGestureRecognizerStateEnded) 146 | { 147 | [self collapseAnimated:YES]; 148 | } 149 | } 150 | 151 | -(void)collapseAnimated:(BOOL)animated 152 | { 153 | if (self.expanded) 154 | { 155 | self.expanded = NO; 156 | 157 | CGRect collapsedF = collapsedFrame(); 158 | CGRect f = CGRectMake(0, 0, collapsedF.size.width, collapsedF.size.height); 159 | 160 | CCUIVolumeSliderView* slider = MSHookIvar([self.sliderVC contentViewController], "_sliderView"); 161 | 162 | CGFloat radius = f.size.width / 2.; 163 | CGFloat duration = animated ? collapseAnimDuration : 0.; 164 | [UIView animateWithDuration:duration animations:^{ 165 | self.frame = collapsedF; 166 | self.containerView.frame = f; 167 | slider.glyphVisible = NO; 168 | [self setCornerRadius:radius]; 169 | [self.containerView layoutIfNeeded]; 170 | [self setCornerRadius:radius]; 171 | }]; 172 | } 173 | } 174 | 175 | -(void)expandAnimated:(BOOL)animated 176 | { 177 | if (!self.expanded) 178 | { 179 | self.expanded = YES; 180 | 181 | CGRect expandedF = expandedFrame(); 182 | CGRect f = CGRectMake(0, 0, expandedF.size.width, expandedF.size.height); 183 | 184 | CCUIVolumeSliderView* slider = MSHookIvar([self.sliderVC contentViewController], "_sliderView"); 185 | 186 | CGFloat radius = expandedCornerRadius; 187 | CGFloat duration = animated ? collapseAnimDuration : 0.; 188 | 189 | [UIView animateWithDuration:duration animations:^{ 190 | self.frame = expandedF; 191 | self.containerView.frame = f; 192 | self.sliderVC.view.frame = f; 193 | slider.glyphVisible = YES; 194 | [self.containerView layoutIfNeeded]; 195 | [self setCornerRadius:radius]; 196 | }]; 197 | } 198 | } 199 | @end 200 | 201 | //update volumeValue when ringer volume changes: 202 | #define kMRYRingerValueChanged @"com.muirey03.13hud.ringerchanged" 203 | %hook MPVolumeController 204 | -(id)init 205 | { 206 | self = %orig; 207 | if (self) 208 | { 209 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateVolumeValue) name:kMRYRingerValueChanged object:nil]; 210 | } 211 | return self; 212 | } 213 | %end 214 | 215 | //post notifications when ringer volume changes: 216 | %hook VolumeControl 217 | -(void)_effectiveVolumeChanged:(NSNotification*)note 218 | { 219 | %orig; 220 | [[NSNotificationCenter defaultCenter] postNotificationName:kMRYRingerValueChanged object:nil]; 221 | } 222 | %end -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | export ARCHS = arm64 armv7 arm64e 2 | 3 | include $(THEOS)/makefiles/common.mk 4 | 5 | TWEAK_NAME = 13HUD 6 | 13HUD_FILES = $(wildcard *.xm *.mm) 7 | 13HUD_FRAMEWORKS = UIKit 8 | 13HUD_CFLAGS = -fobjc-arc 9 | 10 | include $(THEOS_MAKE_PATH)/tweak.mk 11 | 12 | after-install:: 13 | install.exec "killall -9 SpringBoard" 14 | SUBPROJECTS += 13hud 15 | include $(THEOS_MAKE_PATH)/aggregate.mk 16 | -------------------------------------------------------------------------------- /Tweak.xm: -------------------------------------------------------------------------------- 1 | #import "13HUD.h" 2 | #import "MRYHUDView.h" 3 | 4 | #define screenHeight [UIScreen mainScreen].bounds.size.height 5 | #define screenWidth [UIScreen mainScreen].bounds.size.width 6 | #define animDuration 0.2 7 | 8 | //prefs: 9 | #define kUseCustomYPadding PreferencesBool(@"kUseCustomYPadding", NO) 10 | #define kYPadding PreferencesFloat(@"kYPadding", 75.) 11 | #define kUseCustomHeight PreferencesBool(@"kUseCustomHeight", NO) 12 | #define kHeight PreferencesFloat(@"kHeight", 150.) 13 | #define kWidth PreferencesFloat(@"kWidth", 50.) 14 | #define kHideRinger PreferencesBool(@"kHideRinger", NO) 15 | #define dismissDelay PreferencesFloat(@"kTimeout", 1.5) 16 | #define collapseDelay PreferencesFloat(@"kCollapseTimeout", 1.) 17 | 18 | #define HUDXPadding 15. 19 | #define HUDHeightMultiplier 0.22 20 | #define HUDYMultiplier 0.22 21 | #define HUDCollapsedWidth 12. 22 | CGRect expandedFrame() 23 | { 24 | UIInterfaceOrientation orientation = [(SpringBoard*)[UIApplication sharedApplication] activeInterfaceOrientation]; 25 | BOOL landscape = UIInterfaceOrientationIsLandscape(orientation); 26 | 27 | CGFloat yPadding; 28 | CGFloat height; 29 | CGFloat xPadding = HUDXPadding; 30 | 31 | if (!landscape) 32 | { 33 | height = kUseCustomHeight ? kHeight : (screenHeight * HUDHeightMultiplier); 34 | yPadding = kUseCustomYPadding ? kYPadding : ((screenHeight * HUDYMultiplier) - (height / 2)); 35 | } 36 | else 37 | { 38 | height = screenWidth * 1./3.; 39 | yPadding = (screenWidth - height) / 2; 40 | 41 | if (orientation == UIInterfaceOrientationLandscapeRight) 42 | { 43 | xPadding = screenHeight - kWidth - HUDXPadding; 44 | } 45 | } 46 | 47 | //round height to nearest multiple of 2 48 | height = round(height); 49 | if (((int)height % 2) != 0) 50 | height++; 51 | 52 | return CGRectMake(xPadding, yPadding, kWidth, height); 53 | } 54 | CGRect startFrame() 55 | { 56 | CGRect f = expandedFrame(); 57 | CGFloat xPosition = f.size.width * -1.; 58 | UIInterfaceOrientation orientation = [(SpringBoard*)[UIApplication sharedApplication] activeInterfaceOrientation]; 59 | if (orientation == UIInterfaceOrientationLandscapeRight) 60 | { 61 | xPosition = screenWidth + f.size.width; 62 | } 63 | return CGRectMake(xPosition, f.origin.y, f.size.width, f.size.height); 64 | } 65 | CGRect collapsedFrame() 66 | { 67 | CGRect f = expandedFrame(); 68 | CGFloat xPosition = f.origin.x; 69 | UIInterfaceOrientation orientation = [(SpringBoard*)[UIApplication sharedApplication] activeInterfaceOrientation]; 70 | if (orientation == UIInterfaceOrientationLandscapeRight) 71 | { 72 | xPosition = screenHeight - HUDXPadding - HUDCollapsedWidth; 73 | } 74 | return CGRectMake(xPosition, f.origin.y, HUDCollapsedWidth, f.size.height); 75 | } 76 | 77 | //prefs: 78 | #define domain @"com.muirey03.13hud" 79 | BOOL PreferencesBool(NSString* key, BOOL fallback) 80 | { 81 | id val = [[NSUserDefaults standardUserDefaults] objectForKey:key inDomain:domain]; 82 | return val ? [val boolValue] : fallback; 83 | } 84 | CGFloat PreferencesFloat(NSString* key, CGFloat fallback) 85 | { 86 | id val = [[NSUserDefaults standardUserDefaults] objectForKey:key inDomain:domain]; 87 | return val ? [val floatValue] : fallback; 88 | } 89 | 90 | %hook SBHUDController 91 | %property (nonatomic, retain) MRYHUDView* mryHUD; 92 | %property (nonatomic, retain) NSTimer* displayTimer; 93 | %property (nonatomic, retain) NSTimer* collapseTimer; 94 | 95 | -(void)presentHUDView:(UIView*)oldHUD autoDismissWithDelay:(double)delay 96 | { 97 | if (![oldHUD isKindOfClass:%c(SBRingerHUDView)]) 98 | { 99 | delay = dismissDelay; 100 | 101 | //hide old HUD: 102 | oldHUD.hidden = YES; 103 | %orig; 104 | 105 | //invalidate old timer: 106 | if (self.displayTimer) 107 | { 108 | [self.displayTimer invalidate]; 109 | self.displayTimer = nil; 110 | } 111 | 112 | //create new hide timer: 113 | self.displayTimer = [NSTimer scheduledTimerWithTimeInterval:delay 114 | target:self 115 | selector:@selector(hideMRYHUD) 116 | userInfo:nil repeats:NO]; 117 | 118 | void (^collapseBlock)(void) = ^{ 119 | [self.mryHUD collapseAnimated:YES]; 120 | }; 121 | 122 | //collapse after a certain time 123 | if (!self.collapseTimer.valid) 124 | { 125 | self.collapseTimer = [NSTimer scheduledTimerWithTimeInterval:collapseDelay 126 | target:collapseBlock 127 | selector:@selector(invoke) 128 | userInfo:nil repeats:NO]; 129 | } 130 | 131 | [self showMRYHUD]; 132 | } 133 | else 134 | { 135 | //remove old HUD: 136 | if (kHideRinger) 137 | oldHUD = nil; 138 | %orig; 139 | } 140 | } 141 | 142 | -(void)_tearDown 143 | { 144 | self.mryHUD = nil; 145 | %orig; 146 | } 147 | 148 | //create a brand new HUD 149 | %new 150 | -(void)createMRYHUD 151 | { 152 | if (self.mryHUD.superview) 153 | [self.mryHUD removeFromSuperview]; 154 | 155 | //get HUD window: 156 | UIWindow* hudWindow = MSHookIvar(self, "_hudWindow"); 157 | 158 | //create new HUD: 159 | self.mryHUD = [[MRYHUDView alloc] initWithFrame:startFrame()]; 160 | [hudWindow addSubview:self.mryHUD]; 161 | } 162 | 163 | //show the HUD (animated) 164 | %new 165 | -(void)showMRYHUD 166 | { 167 | if (!self.mryHUD || self.mryHUD.hidden) 168 | { 169 | //create HUD if it doesn't already exist: 170 | [self createMRYHUD]; 171 | 172 | [self.mryHUD expandAnimated:NO]; 173 | self.mryHUD.hidden = NO; 174 | [UIView animateWithDuration:animDuration animations:^{ 175 | self.mryHUD.frame = expandedFrame(); 176 | }]; 177 | } 178 | } 179 | 180 | //hide the HUD (animated) 181 | %new 182 | -(void)hideMRYHUD 183 | { 184 | if (!self.mryHUD.hidden) 185 | { 186 | [UIView animateWithDuration:animDuration animations:^{ 187 | self.mryHUD.frame = startFrame(); 188 | } completion:^(BOOL finished){ 189 | self.mryHUD.hidden = YES; 190 | }]; 191 | } 192 | } 193 | 194 | //is showing the MRYHUD 195 | %new 196 | -(BOOL)isHUDVisible 197 | { 198 | return self.mryHUD && !self.mryHUD.hidden; 199 | } 200 | %end 201 | 202 | //allow touches: 203 | %hook SBHUDWindow 204 | -(BOOL)_ignoresHitTest 205 | { 206 | return NO; 207 | } 208 | 209 | -(id)hitTest:(CGPoint)arg1 withEvent:(id)arg2 210 | { 211 | MRYHUDView* mryHUD = ((SBHUDController*)[%c(SBHUDController) sharedHUDController]).mryHUD; 212 | if (CGRectContainsPoint(mryHUD.frame, arg1)) 213 | { 214 | CGPoint p = [(UIWindow*)self convertPoint:arg1 toView:mryHUD]; 215 | return [mryHUD hitTest:p withEvent:arg2]; 216 | } 217 | return %orig; 218 | } 219 | %end 220 | 221 | //override corner radius of fill layer: 222 | void (*oldSetCornerRadius)(CCUIVolumeSliderView* self, SEL _cmd, CGFloat arg1); 223 | void newSetCornerRadius(CCUIVolumeSliderView* self, SEL _cmd, CGFloat arg1) 224 | { 225 | if ([self.window isKindOfClass:%c(SBHUDWindow)]) 226 | arg1 = 0.; 227 | (*oldSetCornerRadius)(self, _cmd, arg1); 228 | } 229 | 230 | //stop HUD from collapsing when being changed: 231 | void (*oldHandleValueChanged)(CCUIVolumeSliderView* self, SEL _cmd, id arg1); 232 | void newHandleValueChanged(CCUIVolumeSliderView* self, SEL _cmd, id arg1) 233 | { 234 | (*oldHandleValueChanged)(self, _cmd, arg1); 235 | if ([self.window isKindOfClass:%c(SBHUDWindow)]) 236 | [[[%c(SBHUDController) sharedHUDController] collapseTimer] invalidate]; 237 | } 238 | 239 | %ctor 240 | { 241 | //load bundles: 242 | NSArray* bundles = @[ 243 | @"/System/Library/ControlCenter/Bundles/AudioModule.bundle", 244 | @"/System/Library/PrivateFrameworks/ControlCenterUIKit.framework", 245 | @"/System/Library/PrivateFrameworks/ControlCenterServices.framework", 246 | @"/System/Library/PrivateFrameworks/ControlCenterUI.framework" 247 | ]; 248 | 249 | for (NSString* bundlePath in bundles) 250 | { 251 | NSBundle* bundle = [NSBundle bundleWithPath:bundlePath]; 252 | if (!bundle.loaded) 253 | [bundle load]; 254 | } 255 | 256 | %init; 257 | //I couldn't get logos to work, so let's do it manually 258 | MSHookMessageEx(%c(CCUIVolumeSliderView), @selector(setContinuousSliderCornerRadius:), (IMP)&newSetCornerRadius, (IMP*)&oldSetCornerRadius); 259 | MSHookMessageEx(%c(CCUIVolumeSliderView), @selector(_handleValueChangeGestureRecognizer:), (IMP)&newHandleValueChanged, (IMP*)&oldHandleValueChanged); 260 | } -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: com.muirey03.13hud 2 | Name: 13HUD 3 | Depends: mobilesubstrate, preferenceloader, ws.hbang.common (>= 1.11) 4 | Conflicts: applebetas.ios.tweak.willow, es.ubikstyl.sonus12, org.fwdr.sonus, com.midkin.byebyehud, me.nepeta.flashyhud, com.lnx.aerify, com.ruler225.videohud, me.nepeta.brokenhud, com.ikilledappl3.switchhud, com.yakir.volhud 5 | Version: 1.0.1 6 | Architecture: iphoneos-arm 7 | Description: iOS 13 volume HUD for iOS 11/12 8 | Maintainer: Muirey03 9 | Author: Muirey03 10 | Section: Tweaks 11 | --------------------------------------------------------------------------------