diff --git a/Classes/Haptic.h b/Classes/Haptic.h new file mode 100644 index 0000000..9c1e454 --- /dev/null +++ b/Classes/Haptic.h @@ -0,0 +1,35 @@ +// +// Haptic.h +// Tranquil +// +// Created by Dana Buehre on 3/15/22. +// +// + +#import +#import +#import +#import + + +NS_INLINE void PlayImpact(UIImpactFeedbackStyle feedbackStyle) +{ + UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:feedbackStyle]; + [feedbackGenerator prepare]; + [feedbackGenerator impactOccurred]; +} + +NS_INLINE void PlayImpactWithSound(UIImpactFeedbackStyle feedbackStyle, SystemSoundID soundID) +{ + UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:feedbackStyle]; + [feedbackGenerator prepare]; + AudioServicesPlaySystemSound(soundID); + [feedbackGenerator impactOccurred]; +} + +NS_INLINE void PlayNotificationWithSound(UINotificationFeedbackType type) +{ + UINotificationFeedbackGenerator *feedbackGenerator = [[UINotificationFeedbackGenerator alloc] init]; + [feedbackGenerator prepare]; + [feedbackGenerator notificationOccurred:type]; +} diff --git a/Classes/Material.h b/Classes/Material.h new file mode 100644 index 0000000..36663a3 --- /dev/null +++ b/Classes/Material.h @@ -0,0 +1,42 @@ +// +// Material.h +// Tranquil +// +// Created by Dana Buehre on 3/22/22. +// +// + +#import + +@interface MTMaterialView : UIView ++ (MTMaterialView *)materialViewWithRecipe:(NSInteger)recipe configuration:(NSInteger)configuration; ++ (MTMaterialView *)materialViewWithRecipe:(NSInteger)recipe options:(NSUInteger)options; +@end + +NS_INLINE __unused MTMaterialView *ControlCenterMaterialWithConfiguration(NSInteger configuration, NSUInteger legacyOptions) +{ + NSInteger controlCenterRecipe = 4; + Class _MTMaterialView = NSClassFromString(@"MTMaterialView"); + + if ([_MTMaterialView respondsToSelector:@selector(materialViewWithRecipe:configuration:)]) { + + return [_MTMaterialView materialViewWithRecipe:controlCenterRecipe configuration:configuration]; + } + + return [_MTMaterialView materialViewWithRecipe:controlCenterRecipe options:legacyOptions]; +} + +NS_INLINE __unused MTMaterialView *ControlCenterBackgroundMaterial() +{ + return ControlCenterMaterialWithConfiguration(2, 1); +} + +NS_INLINE __unused MTMaterialView *ControlCenterForegroundMaterial() +{ + return ControlCenterMaterialWithConfiguration(1, 2); +} + +NS_INLINE __unused MTMaterialView *ControlCenterVibrantLightMaterial() +{ + return ControlCenterMaterialWithConfiguration(3, 32); +} \ No newline at end of file diff --git a/Classes/Prefix.h b/Classes/Prefix.h new file mode 100644 index 0000000..31539c2 --- /dev/null +++ b/Classes/Prefix.h @@ -0,0 +1,235 @@ +// +// Prefix.h +// Tranquil +// +// Created by Dana Buehre on 3/14/22. +// +// + + +#ifndef TRANQUIL_PREFIX_H +#define TRANQUIL_PREFIX_H + +#import +#import +#import + +// https://stackoverflow.com/a/14770282/4668186 +#define CLAMP(x, low, high) ({\ + __typeof__(x) __x = (x); \ + __typeof__(low) __low = (low);\ + __typeof__(high) __high = (high);\ + __x > __high ? __high : (__x < __low ? __low : __x);\ + }) + +// return negative value if condition is true +#define NEGATE_IF(x, c) (c == true ? -x : x) + +NS_INLINE __unused NSBundle *ModuleBundle(BOOL loadIfNeeded) +{ + static NSBundle *moduleBundle; + + if (!moduleBundle) { + + moduleBundle = [NSBundle bundleWithPath:@"/Library/ControlCenter/Bundles/Tranquil.bundle"]; + } + + if (loadIfNeeded && ![moduleBundle isLoaded]) { + + [moduleBundle load]; + } + + return moduleBundle; +} + +NS_INLINE __unused NSDictionary *Defaults(void) +{ + static NSDictionary *defaults; + + if (!defaults) { + + defaults = @{ + @"kBackgroundSoundsActive" : @NO, + @"kPauseOnRouteChange" : @YES, + @"kPlaybackVolume" : @0.6, + @"kPlaybackVolumeWithMedia" : @0.2, + @"kUseWhenMediaIsPlaying" : @YES, + @"kActiveSound" : [ModuleBundle(NO).bundlePath stringByAppendingPathComponent:@"Audio/BROWN_NOISE.m4a"] + }; + } + + return defaults; +} + +NS_INLINE __unused id DefaultValueForKey(NSString *key) +{ + if (!key) { + + return nil; + } + + return Defaults()[key]; +} + +NS_INLINE __unused BOOL RTLLayout (UIView *view) +{ + return [UIView userInterfaceLayoutDirectionForSemanticContentAttribute:view.semanticContentAttribute] == UIUserInterfaceLayoutDirectionRightToLeft; +} + +NS_INLINE __unused NSString * LocalizeWithTable(NSString *key, NSString *table) +{ + if (!table) { + + table = @"Localizable"; + } + + return [ModuleBundle(YES) localizedStringForKey:key value:nil table:table]; +} + +NS_INLINE __unused NSString * Localize(NSString *key) +{ + return LocalizeWithTable(key, nil); +} + +NS_INLINE __unused void SetCornerRadiusLayer(CALayer *layer, CGFloat radius) +{ + layer.cornerRadius = radius; + layer.masksToBounds = YES; + + if (@available(iOS 13.0, *)) { + + layer.cornerCurve = kCACornerCurveContinuous; + + } else if ([layer respondsToSelector:@selector(continuousCorners)]) { + + [layer performSelector:@selector(continuousCorners) withObject:@YES]; + } +} + +NS_INLINE __unused void OpenApplicationUrl(NSURL *url) +{ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + + void (*SBSOpenSensitiveURLAndUnlock)(NSURL *, BOOL); + + if ((SBSOpenSensitiveURLAndUnlock = (void (*)(NSURL *, BOOL)) dlsym(RTLD_DEFAULT, "SBSOpenSensitiveURLAndUnlock"))) { + + (*SBSOpenSensitiveURLAndUnlock)(url, YES); + + } else { + + dispatch_async(dispatch_get_main_queue(), ^{ + + [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; + }); + } + }); +} + +NS_INLINE __unused NSArray *AudioMetadata(NSString *bundlePath) +{ + NSString *bundledAudioPath = [bundlePath stringByAppendingPathComponent:@"Audio"]; + NSArray *bundledAudioFiles = [NSFileManager.defaultManager contentsOfDirectoryAtPath:bundledAudioPath error:nil]; + + NSString *userProvidedAudioPath = @"/var/mobile/Library/Application Support/Tranquil/Audio"; + NSArray *userProvidedAudioFiles = [NSFileManager.defaultManager contentsOfDirectoryAtPath:userProvidedAudioPath error:nil]; + + __block NSMutableArray *combinedMetadata = [NSMutableArray new]; + + void (^generateMetadata)(NSArray *, NSString *) = ^(NSArray *files, NSString *basePath) + { + NSArray *sortedFiles = [files sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; + + for (NSString *file in sortedFiles) + { + [combinedMetadata addObject:@{ + @"path" : [basePath stringByAppendingPathComponent:file], + @"name" : [file stringByDeletingPathExtension] + }]; + } + }; + + generateMetadata(bundledAudioFiles, bundledAudioPath); + generateMetadata(userProvidedAudioFiles, userProvidedAudioPath); + + return combinedMetadata; +} + +NS_INLINE __unused NSArray *DownloadableAudioFileNames(void) +{ + static NSArray *downloadableAudioFileNames; + + if (!downloadableAudioFileNames) { + + downloadableAudioFileNames = @[ + @"FLOWING_STREAM.m4a", + @"LIGHT_RAIN.m4a", + @"OCEAN_WAVES.m4a", + @"THUNDER_STORM.m4a", + @"INFRA_NOISE.m4a", + @"ULTRA_NOISE.m4a" + ]; + } + + return downloadableAudioFileNames; +} + +NS_INLINE __unused NSArray *DownloadableAudioMetadata(void) +{ + static NSArray *downloadableAudioMetadata; + + if (!downloadableAudioMetadata) { + + downloadableAudioMetadata = @[ + @{ + @"name" : @"INFRA_NOISE", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/INFRA_NOISE.m4a" + }, @{ + @"name" : @"ULTRA_NOISE", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/ULTRA_NOISE.m4a" + }, @{ + @"name" : @"FLOWING_STREAM", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/FLOWING_STREAM.m4a" + }, @{ + @"name" : @"LIGHT_RAIN", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/LIGHT_RAIN.m4a" + }, @{ + @"name" : @"OCEAN_WAVES", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/OCEAN_WAVES.m4a" + }, @{ + @"name" : @"THUNDER_STORM", + @"path" : @"/var/mobile/Library/Application Support/Tranquil/Audio/THUNDER_STORM.m4a" + } + ]; + } + + return downloadableAudioMetadata; +} + +NS_INLINE __unused BOOL DownloadableContentAvailable(void) +{ + BOOL downloadsAvailable = NO; + for (NSDictionary *entry in DownloadableAudioMetadata()) + { + if ([NSFileManager.defaultManager fileExistsAtPath:entry[@"path"]]) continue; + downloadsAvailable = YES; + break; + } + + return downloadsAvailable; +} + +NS_INLINE __unused UIAlertController *GenericErrorAlert(NSError *error, UIViewController *controller) +{ + UIAlertController *errorAlert = [UIAlertController alertControllerWithTitle:Localize(@"GENERIC_ERROR_TITLE") message:error.localizedFailureReason preferredStyle:UIAlertControllerStyleAlert]; + [errorAlert addAction:[UIAlertAction actionWithTitle:@"More Info" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { + UIAlertController *detailedErrorAlert = [UIAlertController alertControllerWithTitle:Localize(@"GENERIC_ERROR_TITLE") message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; + [detailedErrorAlert addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleCancel handler:nil]]; + [controller presentViewController:detailedErrorAlert animated:YES completion:nil]; + }]]; + [errorAlert addAction:[UIAlertAction actionWithTitle:@"Okay" style:UIAlertActionStyleDefault handler:nil]]; + + return errorAlert; +} + +#endif //TRANQUIL_PREFIX_H diff --git a/Classes/TranquilListItemsController.h b/Classes/TranquilListItemsController.h new file mode 100644 index 0000000..ed1d86d --- /dev/null +++ b/Classes/TranquilListItemsController.h @@ -0,0 +1,14 @@ +// +// TranquilListItemsController.h +// Tranquil +// +// Created by Dana Buehre on 3/26/22. +// +// + +#import +#import + +@interface TranquilListItemsController : PSListItemsController + +@end \ No newline at end of file diff --git a/Classes/TranquilListItemsController.m b/Classes/TranquilListItemsController.m new file mode 100644 index 0000000..b63a0b1 --- /dev/null +++ b/Classes/TranquilListItemsController.m @@ -0,0 +1,276 @@ +// +// TranquilListItemsController.m +// Tranquil +// +// Created by Dana Buehre on 3/26/22. +// +// + +#import +#import +#import "TranquilListItemsController.h" +#import "UIImage+TranquilModule.h" +#import "TranquilPreferencesController.h" +#import "Prefix.h" + +@implementation TranquilListItemsController + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + PSTableCell *cell = (PSTableCell *)[super tableView:tableView cellForRowAtIndexPath:indexPath]; + + if ([self audioFileNeedsDownload:indexPath]) { + + [self setDownloadIconForCell:cell]; + } + + return cell; +} + +- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath +{ + PSSpecifier *specifier = [self specifierAtIndexPath:indexPath]; + NSString *path = specifier.values.firstObject; + NSMutableArray *actions = [NSMutableArray new]; + + if ([path hasPrefix:@"/var/mobile/Library/Application Support/Tranquil/Audio"]) { + + if ([NSFileManager.defaultManager fileExistsAtPath:path]) { + + [actions addObject:[UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:Localize(@"SWIPE_ACTION_DELETE_TITLE") handler:^(UIContextualAction *action, __kindof UIView *sourceView, void (^completionHandler)(BOOL)) { + + [self deleteFileForIndexPath:indexPath]; + completionHandler(YES); + }]]; + } + + if (![DownloadableAudioFileNames() containsObject:path.lastPathComponent]) { + + [actions addObject:[UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:Localize(@"SWIPE_ACTION_RENAME_TITLE") handler:^(UIContextualAction *action, __kindof UIView *sourceView, void (^completionHandler)(BOOL)) { + + [self renameFileForIndexPath:indexPath]; + completionHandler(YES); + }]]; + + [actions.lastObject setBackgroundColor:[UIColor systemBlueColor]]; + } + } + + UISwipeActionsConfiguration *configuration = [UISwipeActionsConfiguration configurationWithActions:actions]; + configuration.performsFirstActionWithFullSwipe = NO; + + return configuration; +} + +- (void)listItemSelected:(NSIndexPath *)indexPath +{ + if ([self audioFileNeedsDownload:indexPath]) { + + // prevent playing default sound when selecting a sound that is not yet downloaded + [[(TranquilPreferencesController *) self.parentController preferences] setBool:YES forKey:@"kPauseForDownload"]; + [super listItemSelected:indexPath]; + [self downloadAudioFileForSpecifierAtIndexPath:indexPath]; + + } else { + + [super listItemSelected:indexPath]; + } +} + +- (void)downloadAudioFileForSpecifierAtIndexPath:(NSIndexPath *)indexPath +{ + PSSpecifier *specifier = [self specifierAtIndexPath:indexPath]; + NSString *identifier = [specifier.values.firstObject lastPathComponent]; + + if ([DownloadableAudioFileNames() containsObject:identifier]) { + + NSString *destinationPath = [@"/var/mobile/Library/Application Support/Tranquil/Audio" stringByAppendingPathComponent:identifier]; + + if ([NSFileManager.defaultManager fileExistsAtPath:destinationPath]) { + + return; + } + + [self setSpinnerForCellAtIndexPath:indexPath enabled:YES]; + + NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; + NSURL *downloadURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://creaturecoding.com/shared/.tranquil_audio/%@", identifier]]; + + [[session downloadTaskWithURL:downloadURL completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) { + + if (error || !location || ![NSFileManager.defaultManager fileExistsAtPath:location.path]) { + + dispatch_async(dispatch_get_main_queue(), ^{ + if (error) { + + [self presentViewController:GenericErrorAlert(error, self) animated:YES completion:nil]; + } + + [self _selectDefaultValue]; + [(PSListController *) self.parentController reloadSpecifier:self.specifier]; + [self setDownloadIconForCell:[self.table cellForRowAtIndexPath:indexPath]]; + }); + + return; + } + + [NSFileManager.defaultManager moveItemAtURL:location toURL:[NSURL fileURLWithPath:destinationPath] error:nil]; + NSDictionary *filePermissions = @{ NSFileOwnerAccountID: @(501), NSFileGroupOwnerAccountID: @(501), NSFilePosixPermissions: @(0755) }; + [NSFileManager.defaultManager setAttributes:filePermissions ofItemAtPath:destinationPath error:nil]; + + [[(TranquilPreferencesController *) self.parentController preferences] setBool:NO forKey:@"kPauseForDownload"]; + [self.parentController setPreferenceValue:specifier.values.firstObject specifier:self.specifier]; + CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.creaturecoding.tranquil/preferences-changed"), NULL, NULL, TRUE); + + dispatch_async(dispatch_get_main_queue(), ^{ + [self setSpinnerForCellAtIndexPath:indexPath enabled:NO]; + }); + }] resume]; + } +} + +- (BOOL)audioFileNeedsDownload:(NSIndexPath *)indexPath +{ + PSSpecifier *specifier = [self specifierAtIndexPath:indexPath]; + NSString *path = specifier.values.firstObject; + return [DownloadableAudioFileNames() containsObject:path.lastPathComponent] + && ![NSFileManager.defaultManager fileExistsAtPath:path]; +} + +- (void)setDownloadIconForCell:(PSTableCell *)cell +{ + UIImage *downloadImage = [[UIImage tranquil_moduleImageNamed:@"Download"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + UIImageView *download = [[UIImageView alloc] initWithImage:downloadImage]; + [download setContentMode:UIViewContentModeScaleAspectFill]; + [download setTintColor:UIColor.systemBlueColor]; + [cell setAccessoryView:download]; +} + +- (void)setSpinnerForCellAtIndexPath:(NSIndexPath *)indexPath enabled:(BOOL)enabled +{ + UITableViewCell *cell = [self.table cellForRowAtIndexPath:indexPath]; + if (enabled) { + + if (!cell.accessoryView || ![cell.accessoryView isKindOfClass:UIActivityIndicatorView.class]) { + + UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; + [spinner setColor:UIColor.systemGrayColor]; + [spinner setFrame:CGRectMake(0, 0, 24, 24)]; + [cell setAccessoryView:spinner]; + [spinner startAnimating]; + } + + } else { + + [cell setAccessoryView:nil]; + } +} + +- (void)deleteFileForIndexPath:(NSIndexPath *)indexPath +{ + PSSpecifier *specifier = [self specifierAtIndexPath:indexPath]; + NSString *path = specifier.values.firstObject; + + NSError *error; + [NSFileManager.defaultManager removeItemAtPath:path error:&error]; + + if (error != nil) { + + [self presentViewController:GenericErrorAlert(error, self) animated:YES completion:nil]; + + } else { + + NSString *activeSound = [self.parentController readPreferenceValue:self.specifier]; + BOOL isActiveSound = [activeSound isEqualToString:path]; + + if (isActiveSound) { + + [self _selectDefaultValue]; + } + + [(PSListController *) self.parentController reloadSpecifier:self.specifier]; + + if ([self audioFileNeedsDownload:indexPath]) { + + [self setDownloadIconForCell:[self.table cellForRowAtIndexPath:indexPath]]; + + } else { + + [self removeSpecifier:specifier animated:YES]; + } + } +} + +- (void)renameFileForIndexPath:(NSIndexPath *)indexPath +{ + PSSpecifier *specifier = [self specifierAtIndexPath:indexPath]; + __block NSString *path = specifier.values.firstObject; + __block NSString *fileName = [path.lastPathComponent stringByDeletingPathExtension]; + + UIAlertController *renameController = [UIAlertController alertControllerWithTitle:Localize(@"RENAME_FILE_TITLE") message:Localize(@"RENAME_FILE_MESSAGE") preferredStyle:UIAlertControllerStyleAlert]; + [renameController addTextFieldWithConfigurationHandler:^(UITextField *textField) { + textField.text = fileName; + textField.placeholder = fileName; + }]; + + [renameController addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { + NSString *newFileName = [renameController.textFields.firstObject text]; + + // invalid name + if (newFileName.length == 0 || [newFileName hasPrefix:@"."]) { + + NSString *message = [NSString stringWithFormat:Localize(@"RENAME_FILE_ERROR_MESSAGE"), fileName, newFileName]; + UIAlertController *invalidAlert = [UIAlertController alertControllerWithTitle:Localize(@"RENAME_FILE_TITLE") message:message preferredStyle:UIAlertControllerStyleAlert]; + [invalidAlert addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { + [renameController.textFields[0] setText:fileName]; + [renameController.textFields[0] setPlaceholder:fileName]; + [self presentViewController:renameController animated:YES completion:nil]; + }]]; + + [self presentViewController:invalidAlert animated:YES completion:nil]; + + // valid name + } else { + + NSString *fullFileName = [newFileName stringByAppendingPathExtension:path.pathExtension]; + + NSError *error; + NSString *destination = [[path stringByDeletingLastPathComponent] stringByAppendingPathComponent:fullFileName]; + [NSFileManager.defaultManager moveItemAtPath:path toPath:destination error:&error]; + + if (error != nil) { + + [self presentViewController:GenericErrorAlert(error, self) animated:YES completion:nil]; + + } else { + + [specifier setName:newFileName]; + [specifier setIdentifier:newFileName]; + [specifier setValues:@[destination] titles:@[newFileName]]; + + NSString *activeSound = [self.parentController readPreferenceValue:self.specifier]; + if ([activeSound isEqualToString:path]) { + + [self.parentController setPreferenceValue:destination specifier:self.specifier]; + } + + [(PSListController *) self.parentController reloadSpecifiers]; + [self reloadSpecifier:specifier animated:YES]; + } + } + }]]; + + [renameController addAction:[UIAlertAction actionWithTitle:Localize(@"CANCEL_LABEL") style:UIAlertActionStyleCancel handler:nil]]; + + [self presentViewController:renameController animated:YES completion:nil]; +} + +- (void)_selectDefaultValue +{ + NSString *defaultValue = DefaultValueForKey(@"kActiveSound"); + [self.parentController setPreferenceValue:defaultValue specifier:self.specifier]; + NSInteger index = [self.specifier.values indexOfObject:defaultValue]; + [self listItemSelected:[NSIndexPath indexPathForRow:index inSection:0]]; +} + +@end diff --git a/Classes/TranquilMediaPlayer.h b/Classes/TranquilMediaPlayer.h new file mode 100644 index 0000000..b3a9bf5 --- /dev/null +++ b/Classes/TranquilMediaPlayer.h @@ -0,0 +1,38 @@ +// +// TranquilMediaPlayer.h +// Tranquil +// +// Created by Dana Buehre on 3/8/22. +// +// + +#import + +@class TranquilModule; + +NS_ASSUME_NONNULL_BEGIN + +@interface TranquilMediaPlayer : NSObject + ++ (TranquilMediaPlayer *)sharedInstance; ++ (void)play:(NSString *)filePath volume:(float)volume; ++ (void)play:(NSString *)filePath volume:(float)volume withCompletion:(void (^_Nullable)(BOOL))completion; ++ (void)stop; ++ (BOOL)isPlaying; ++ (BOOL)isOtherAudioPlaying; ++ (void)setVolume:(float)volume; ++ (void)setModule:(TranquilModule *)module; ++ (void)pauseForSample; + +- (void)play:(NSString *)filePath volume:(float)volume; +- (void)play:(NSString *)filePath volume:(float)volume withCompletion:(void(^_Nullable)(BOOL))completion; +- (void)stop; +- (BOOL)isPlaying; +- (BOOL)isOtherAudioPlaying; +- (void)setVolume:(float)volume; +- (void)setModule:(TranquilModule *)module; +- (void)pauseForSample; + +@end + +NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Classes/TranquilMediaPlayer.m b/Classes/TranquilMediaPlayer.m new file mode 100644 index 0000000..eb21e1a --- /dev/null +++ b/Classes/TranquilMediaPlayer.m @@ -0,0 +1,242 @@ +// +// TranquilMediaPlayer.m +// Tranquil +// +// Created by Dana Buehre on 3/8/22. +// +// + +#import "TranquilMediaPlayer.h" +#import "TranquilModule.h" + +#import + +@interface SBMediaController : NSObject + +@property (assign, nonatomic) int nowPlayingProcessPID; + ++ (id)sharedInstance; +- (BOOL)isPlaying; + +@end + +@interface TranquilMediaPlayer () + +@end + +@implementation TranquilMediaPlayer { + + __strong AVAudioPlayer *_player; + __weak TranquilModule *_module; + NSString *_currentlyPlayingFile; + float _volume; + BOOL _interrupted; + BOOL _otherAudioIsPlaying; +} + ++ (TranquilMediaPlayer *)sharedInstance +{ + static dispatch_once_t once; + static TranquilMediaPlayer *sharedInstance; + dispatch_once(&once, ^{ + sharedInstance = [TranquilMediaPlayer new]; + + [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback mode:AVAudioSessionModeDefault options:AVAudioSessionCategoryOptionMixWithOthers error:nil]; + [[NSClassFromString(@"SBMediaController") sharedInstance] addObserver:sharedInstance forKeyPath:NSStringFromSelector(@selector(nowPlayingProcessPID)) options:NSKeyValueObservingOptionNew context:NULL]; + }); + + return sharedInstance; +} + ++ (void)play:(NSString *)filePath volume:(float)volume +{ + [[TranquilMediaPlayer sharedInstance] play:filePath volume:volume]; +} + ++ (void)play:(NSString *)filePath volume:(float)volume withCompletion:(void (^_Nullable)(BOOL))completion +{ + [[TranquilMediaPlayer sharedInstance] play:filePath volume:volume withCompletion:completion]; +} + ++ (void)stop +{ + [[TranquilMediaPlayer sharedInstance] stop]; +} + ++ (BOOL)isPlaying +{ + return [[TranquilMediaPlayer sharedInstance] isPlaying]; +} + ++ (BOOL)isOtherAudioPlaying +{ + return [[TranquilMediaPlayer sharedInstance] isOtherAudioPlaying]; +} + ++ (void)setVolume:(float)volume +{ + [[TranquilMediaPlayer sharedInstance] setVolume:volume]; +} + ++ (void)setModule:(TranquilModule *)module +{ + [[TranquilMediaPlayer sharedInstance] setModule:module]; +} + ++ (void)pauseForSample +{ + [[TranquilMediaPlayer sharedInstance] pauseForSample]; +} + +- (void)setModule:(TranquilModule *)module +{ + _module = module; +} + +- (void)play:(NSString *)filePath volume:(float)volume +{ + [self play:filePath volume:volume withCompletion:nil]; +} + +- (void)play:(NSString *)filePath volume:(float)volume withCompletion:(void(^_Nullable)(BOOL))completion +{ + _volume = volume; + + if (!filePath || ([self isPlaying] && [_currentlyPlayingFile isEqualToString:filePath])) { + + _player.volume = _volume; + if (completion) completion([self isPlaying]); + return; + } + + if (_player && _player.isPlaying) { + + [_player stop]; + [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; + } + + if ([NSFileManager.defaultManager fileExistsAtPath:filePath]) { + + NSURL *fileURL = [NSURL fileURLWithPath:filePath]; + + _currentlyPlayingFile = filePath; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + + self->_player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil]; + [self->_player setNumberOfLoops:-1]; + [self->_player setVolume:_volume]; + + [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback mode:AVAudioSessionModeDefault options:AVAudioSessionCategoryOptionMixWithOthers error:nil]; + [[AVAudioSession sharedInstance] setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; + + [self->_player prepareToPlay]; + + dispatch_async(dispatch_get_main_queue(), ^{ + [self->_player play]; + if (completion) completion([self isPlaying]); + }); + }); + + } else if (completion) { + + completion([self isPlaying]); + } +} + +- (void)stop +{ + if (_player && _player.isPlaying) { + + [_player stop]; + [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; + } + + _otherAudioIsPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying]; +} + +- (BOOL)isPlaying +{ + return _player && _player.isPlaying; +} + +- (BOOL)isOtherAudioPlaying +{ + return _otherAudioIsPlaying; +} + +- (void)setVolume:(float)volume +{ + _volume = volume; + + if (_player) { + + _player.volume = volume; + } +} + +- (void)pauseForSample +{ + if (_player && _player.isPlaying) { + + [_player pause]; + [[AVAudioSession sharedInstance] setActive:NO error:nil]; + } +} + +// due to limitations of AVAudioSession categories, we can either offer mixed audio, or receive interruption notifications +// but not both, due to these limitations, we have to watch for now playing changes through private API inorder to replicate +// iOS 15 background sounds features, specifically changing the volume when other media is playing. There are various ways +// of accomplishing this, but all of which have other limitations they introduce such as respecting the physical silent switch +// witch is undesirable for our purposes. so here we observe SBMediaController to check for now playing state changes. +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if ([object isKindOfClass:NSClassFromString(@"SBMediaController")] && [keyPath isEqualToString:NSStringFromSelector(@selector(nowPlayingProcessPID))]) { + + BOOL otherAudioWasPlaying = _otherAudioIsPlaying; + BOOL mixWithOtherAudio = [_module.preferences boolForKey:@"kUseWhenMediaIsPlaying"]; + _otherAudioIsPlaying = [object isPlaying]; + + if (_otherAudioIsPlaying) { + + if (mixWithOtherAudio) { + + float volume = [_module.preferences floatForKey:@"kPlaybackVolumeWithMedia"]; + + [self setVolume:volume]; + + } else if ([self isPlaying]) { + + _interrupted = YES; + [self stop]; + } + + [_module refreshState]; + + } else if (otherAudioWasPlaying) { + + float volume = [_module.preferences floatForKey:@"kPlaybackVolume"]; + + [self setVolume:volume]; + + if (_interrupted && _player) { + + [_player play]; + _interrupted = NO; + } + + [_module refreshState]; + } + + } else { + + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + +- (void)dealloc +{ + [[NSClassFromString(@"SBMediaController") sharedInstance] removeObserver:self forKeyPath:NSStringFromSelector(@selector(nowPlayingProcessPID))]; +} + +@end \ No newline at end of file diff --git a/Classes/TranquilModule.h b/Classes/TranquilModule.h new file mode 100644 index 0000000..8bda3b7 --- /dev/null +++ b/Classes/TranquilModule.h @@ -0,0 +1,38 @@ +// +// TranquilModule.h +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#import "TranquilModuleContentViewController.h" +#import "TranquilModuleBackgroundViewController.h" + +#import + +@interface TranquilModule : NSObject { + + TranquilModuleContentViewController* _contentViewController; + TranquilModuleBackgroundViewController* _backgroundViewController; +} + +@property (nonatomic, strong) NSUserDefaults *preferences; +@property (nonatomic, readonly) BOOL isPlaying; +@property (nonatomic, readonly) BOOL isTimerRunning; + +- (NSBundle *)moduleBundle; +- (NSArray *)audioMetadata; +- (void)refreshState; +- (void)updatePreferences; +- (void)updatePreferencesExternally; + +- (void)updateDisableTimerWithTimeInterval:(NSTimeInterval)interval enable:(BOOL)enabled; + +- (void)playTrack:(NSString *)filePath; +- (void)stopTrack; +- (void)resumeTrack; +- (float)getVolume; +- (void)setVolume:(float)volume; + +@end \ No newline at end of file diff --git a/Classes/TranquilModule.m b/Classes/TranquilModule.m new file mode 100644 index 0000000..2e39983 --- /dev/null +++ b/Classes/TranquilModule.m @@ -0,0 +1,248 @@ +// +// TranquilModule.m +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#import "TranquilModule.h" +#import "TranquilMediaPlayer.h" +#import "Prefix.h" + +#import +#import +#import + +@interface CCUIModuleInstanceManager (CCSupport) +- (CCUIModuleInstance*)instanceForModuleIdentifier:(NSString*)moduleIdentifier; +@end + +@implementation TranquilModule { + + NSTimer *_disableTimer; + NSTimer *_disableTimerUpdater; +} + +- (instancetype)init +{ + if (self = [super init]) { + + _contentViewController = [TranquilModuleContentViewController new]; + _contentViewController.module = self; + + _backgroundViewController = [TranquilModuleBackgroundViewController new]; + _backgroundViewController.module = self; + + _preferences = [[NSUserDefaults alloc] initWithSuiteName:@"com.creaturecoding.tranquil"]; + + // disable playback after respring / reload + [_preferences setBool:NO forKey:@"kBackgroundSoundsActive"]; + + [self updateDefaults]; + [self updatePreferences]; + + [TranquilMediaPlayer setModule:self]; + + __weak typeof(self) weakSelf = self; + [[NSNotificationCenter defaultCenter] addObserverForName:AVAudioSessionRouteChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { + + if ([weakSelf.preferences boolForKey:@"kPauseOnRouteChange"]) { + + [weakSelf stopTrack]; + } + }]; + } + + return self; +} + +- (UIViewController *)contentViewController +{ + return _contentViewController; +} + +- (UIViewController *)backgroundViewController +{ + return _backgroundViewController; +} + +- (NSBundle *)moduleBundle +{ + return [NSBundle bundleForClass:self.class]; +} + +- (NSArray *)audioMetadata +{ + return AudioMetadata([self moduleBundle].bundlePath); +} + +- (void)refreshState +{ + BOOL pauseForEvent = [_preferences boolForKey:@"kPauseForSample"] || [_preferences boolForKey:@"kPauseForDownload"]; + + if (pauseForEvent) { + + [TranquilMediaPlayer pauseForSample]; + [_contentViewController setSelected:NO]; + [_backgroundViewController updateVolumeState]; + [_backgroundViewController updatePlaybackState]; + [_backgroundViewController updateTimerState]; + return; + } + + _isPlaying = [_preferences boolForKey:@"kBackgroundSoundsActive"]; + float activeVolume = [self getVolume]; + + [_contentViewController setSelected:_isPlaying]; + [_backgroundViewController updateVolumeState]; + [_backgroundViewController updatePlaybackState]; + [_backgroundViewController updateTimerState]; + [TranquilMediaPlayer setVolume:activeVolume]; + + if (_isPlaying) { + + [TranquilMediaPlayer play:[_preferences stringForKey:@"kActiveSound"] volume:activeVolume withCompletion:^(BOOL isPlaying) { + // in the event that the last active sound cannot be played, revert to the default sound + if (!isPlaying) + { + NSString *defaultSound = DefaultValueForKey(@"kActiveSound"); + if (![defaultSound isEqualToString:[_preferences stringForKey:@"kActiveSound"]]) + { + [_preferences setObject:defaultSound forKey:@"kActiveSound"]; + [self updatePreferencesExternally]; + [self refreshState]; + } + } + + [_contentViewController updateItemSelection]; + }]; + + } else if ([TranquilMediaPlayer isPlaying]) { + + [TranquilMediaPlayer stop]; + } +} + +- (void)updatePreferences +{ + [self refreshState]; +} + +- (void)updatePreferencesExternally +{ + CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.creaturecoding.tranquil/preferences-changed-externally"), NULL, NULL, TRUE); +} + +- (void)updateDefaults +{ + __block BOOL defaultsUpdated = NO; + NSDictionary *defaults = Defaults(); + + [defaults enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) { + if (![self->_preferences objectForKey:key]) { + + [self->_preferences setObject:obj forKey:key]; + defaultsUpdated = YES; + } + }]; + + if (defaultsUpdated) { + + [_preferences synchronize]; + } +} + +- (void)updateDisableTimerWithTimeInterval:(NSTimeInterval)interval enable:(BOOL)enabled +{ + if (_disableTimer) { + + [_disableTimer invalidate]; + _disableTimer = nil; + } + + if (_disableTimerUpdater) { + + [_disableTimerUpdater invalidate]; + _disableTimerUpdater = nil; + } + + if (enabled) { + + _disableTimer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(disableTimerDidFire) userInfo:nil repeats:NO]; + _disableTimerUpdater = [NSTimer scheduledTimerWithTimeInterval:60 target:_backgroundViewController selector:@selector(subtractOneMinuteFromTimerControl) userInfo:nil repeats:YES]; + } +} + +- (void)disableTimerDidFire +{ + [_disableTimer invalidate]; + _disableTimer = nil; + [_disableTimerUpdater invalidate]; + _disableTimerUpdater = nil; + [_backgroundViewController updateTimerControlWithTimeInterval:0]; + [self stopTrack]; + [self refreshState]; +} + +- (BOOL)isTimerRunning +{ + return _disableTimer != nil && _disableTimer.isValid && [_disableTimer.fireDate timeIntervalSinceNow] > 0; +} + +- (void)playTrack:(NSString *)filePath +{ + [_preferences setBool:YES forKey:@"kBackgroundSoundsActive"]; + [_preferences setObject:filePath forKey:@"kActiveSound"]; + + [self refreshState]; + [self updatePreferencesExternally]; +} + +- (void)stopTrack +{ + [_preferences setBool:NO forKey:@"kBackgroundSoundsActive"]; + + [self updateDisableTimerWithTimeInterval:0 enable:NO]; + [self refreshState]; + [self updatePreferencesExternally]; +} + +- (void)resumeTrack +{ + [_preferences setBool:YES forKey:@"kBackgroundSoundsActive"]; + + [self refreshState]; + [self updatePreferencesExternally]; +} + +- (float)getVolume +{ + return [_preferences floatForKey:[TranquilMediaPlayer isOtherAudioPlaying] ? @"kPlaybackVolumeWithMedia" : @"kPlaybackVolume"]; +} + +- (void)setVolume:(float)volume +{ + [_preferences setFloat:volume forKey:[TranquilMediaPlayer isOtherAudioPlaying] ? @"kPlaybackVolumeWithMedia" : @"kPlaybackVolume"]; + [self refreshState]; +} + +- (void)dealloc +{ + [TranquilMediaPlayer stop]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVAudioSessionRouteChangeNotification object:nil]; +} + +@end + +void preferencesChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) +{ + CCUIModuleInstance* moduleInstance = [[NSClassFromString(@"CCUIModuleInstanceManager") sharedInstance] instanceForModuleIdentifier:@"com.creaturecoding.tranquil"]; + [(TranquilModule*)moduleInstance.module updatePreferences]; +} + +__attribute__((constructor)) +static void init(void) +{ + CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, preferencesChanged, CFSTR("com.creaturecoding.tranquil/preferences-changed"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately); +} \ No newline at end of file diff --git a/Classes/TranquilModuleBackgroundViewController.h b/Classes/TranquilModuleBackgroundViewController.h new file mode 100644 index 0000000..46ef0ee --- /dev/null +++ b/Classes/TranquilModuleBackgroundViewController.h @@ -0,0 +1,28 @@ +// +// TranquilModuleBackgroundViewController.h +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#import + +@class TranquilModule, CCUISliderModuleBackgroundViewController; + +@interface TranquilModuleBackgroundViewController : CCUISliderModuleBackgroundViewController + +@property (nonatomic, weak) TranquilModule* module; + +@property (nonatomic) BOOL volumeControlsShowing; +@property (nonatomic) BOOL timerControlsShowing; + +- (BOOL)controlsAreShowing; + +- (void)subtractOneMinuteFromTimerControl; +- (void)updateTimerControlWithTimeInterval:(NSTimeInterval)interval; +- (void)updateVolumeState; +- (void)updatePlaybackState; +- (void)updateTimerState; + +@end \ No newline at end of file diff --git a/Classes/TranquilModuleBackgroundViewController.m b/Classes/TranquilModuleBackgroundViewController.m new file mode 100644 index 0000000..edf604e --- /dev/null +++ b/Classes/TranquilModuleBackgroundViewController.m @@ -0,0 +1,580 @@ +// +// TranquilModuleBackgroundViewController.m +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#import +#import "TranquilModuleBackgroundViewController.h" + +#import "Prefix.h" +#import "Haptic.h" +#import "Material.h" +#import "TranquilModule.h" +#import "TranquilModuleSlider.h" +#import "TranquilModuleStepper.h" +#import "UIImage+TranquilModule.h" + +#import +#import +#import + +typedef NS_ENUM(NSUInteger, TMControlType) { + TMControlTypeVolume = 0, + TMControlTypePlayback = 1, + TMControlTypeTimer = 2 +}; + +typedef NS_ENUM(NSUInteger, TMLayoutDirection) { + TMLayoutDirectionVertical = 0, + TMLayoutDirectionHorizontal = 1 +}; + +@interface CCUILabeledRoundButtonViewController (iOS12) +@property (assign, nonatomic) BOOL useAlternateBackground; +@end + +@interface TranquilModuleBackgroundViewController () { + + float _lastVolume; + + UIView *_controlContainer; + + TranquilModuleSlider *_volumeSlider; + TranquilModuleStepper *_timerStepper; + + MTMaterialView *_timerControlContainer; + MTMaterialView *_volumeControlContainer; + + CCUILabeledRoundButtonViewController *_volumeButtonViewController; + CCUILabeledRoundButtonViewController *_playbackButtonViewController; + CCUILabeledRoundButtonViewController *_timerButtonViewController; + + UITapGestureRecognizer *_controlDismissRecognizer; + + NSLayoutConstraint *_timerControlTrailingAnchor; + NSLayoutConstraint *_volumeControlLeadingAnchor; + NSLayoutConstraint *_timerControlContainerLeadingAnchor; + NSLayoutConstraint *_volumeControlContainerTrailingAnchor; + NSLayoutConstraint *_timerControlBottomAnchor; + NSLayoutConstraint *_volumeControlTopAnchor; + NSLayoutConstraint *_timerControlContainerTopAnchor; + NSLayoutConstraint *_volumeControlContainerBottomAnchor; + NSArray *_verticalConstraints; + NSArray *_horizontalConstraints; +} + +@end + +@implementation TranquilModuleBackgroundViewController + +- (instancetype)init +{ + return [self initWithNibName:nil bundle:nil]; +} + +- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + float volume = [_module getVolume]; + + _controlDismissRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_backgroundTapped:)]; + [self.view addGestureRecognizer:_controlDismissRecognizer]; + + _controlContainer = [UIView new]; + [_controlContainer setTranslatesAutoresizingMaskIntoConstraints:NO]; + + _timerControlContainer = ControlCenterBackgroundMaterial(); + [_timerControlContainer setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_timerControlContainer setUserInteractionEnabled:YES]; + SetCornerRadiusLayer(_timerControlContainer.layer, 27); + + _volumeControlContainer = ControlCenterBackgroundMaterial(); + [_volumeControlContainer setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_volumeControlContainer setUserInteractionEnabled:YES]; + SetCornerRadiusLayer(_volumeControlContainer.layer, 27); + + _volumeButtonViewController = [self _labeledRoundButtonControllerWithGlyph:@"VolumeMax" highlightColor:UIColor.systemBlueColor initialState:volume > 0 useLongPress:YES]; + _playbackButtonViewController = [self _labeledRoundButtonControllerWithGlyph:@"Play" highlightColor:UIColor.systemBlueColor initialState:YES useLongPress:NO]; + _timerButtonViewController = [self _labeledRoundButtonControllerWithGlyph:@"Timer" highlightColor:UIColor.systemOrangeColor initialState:NO useLongPress:YES]; + + _volumeSlider = [TranquilModuleSlider new]; + [_volumeSlider setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_volumeSlider addTarget:self action:@selector(_sliderValueDidChange:) forControlEvents:UIControlEventValueChanged]; + [_volumeSlider addTarget:self action:@selector(_sliderDidEndDrag:) forControlEvents:(UIControlEventTouchUpInside | UIControlEventTouchUpOutside | UIControlEventTouchCancel)]; + [_volumeSlider setContinuous:YES]; + [_volumeSlider setMinValue:0]; + [_volumeSlider setMaxValue:1]; + [_volumeSlider setValue:volume]; + + _timerStepper = [TranquilModuleStepper new]; + [_timerStepper setTranslatesAutoresizingMaskIntoConstraints:NO]; + [_timerStepper addTarget:self action:@selector(_stepperValueDidChange:) forControlEvents:UIControlEventValueChanged]; + [_timerStepper setMinValue:0]; // min 0 (disabled) + [_timerStepper setMaxValue:12*60*60]; // max 12 hrs + [_timerStepper setStepValue:1*60]; // step 1 min + [_timerStepper setLabelTextColor:[UIColor lightTextColor]]; + [_timerStepper setDecrementButtonBackgroundColor:[UIColor systemBlueColor]]; + [_timerStepper setIncrementButtonBackgroundColor:[UIColor systemBlueColor]]; + + [self.view addSubview:_controlContainer]; + [_controlContainer addSubview:_timerControlContainer]; + [_controlContainer addSubview:_volumeControlContainer]; + [_timerControlContainer addSubview:_timerStepper]; + [_volumeControlContainer addSubview:_volumeSlider]; + [_controlContainer addSubview:_volumeButtonViewController.view]; + [_controlContainer addSubview:_playbackButtonViewController.view]; + [_controlContainer addSubview:_timerButtonViewController.view]; + + [self _configureConstraints]; + [self _configureVolumeControllerState]; + [self _configurePlaybackControllerState]; + [self _configureTimerControllerState]; +} + +- (void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; + + // update layout for ControlCenter orientation + TMLayoutDirection direction = [self _currentLayoutDirection]; + [self updateConstraintsForLayoutDirection:direction]; + + // collapse controls + [self _updateControlType:TMControlTypeVolume animated:NO opening:NO]; + [self _updateControlType:TMControlTypeTimer animated:NO opening:NO]; + + // configure glyph states + [self _configureVolumeControllerState]; + [self _configurePlaybackControllerState]; +} + +- (void)viewLayoutMarginsDidChange +{ + [super viewLayoutMarginsDidChange]; + + TMLayoutDirection direction = [self _currentLayoutDirection]; + [self updateConstraintsForLayoutDirection:direction]; +} + +- (void)_backgroundTapped:(UITapGestureRecognizer *)sender +{ + if (sender.state == UIGestureRecognizerStateRecognized) { + + CGPoint location = [sender locationInView:self.view]; + UIEdgeInsets sausageFingersInsets = UIEdgeInsetsMake(-16, -16, -16, -16); // add a dead-zone for large fingers + + if (CGRectContainsPoint(UIEdgeInsetsInsetRect(_controlContainer.frame, sausageFingersInsets), location)) { + + return; + } + + if (_timerControlsShowing) { + + [self _updateTimerControls:YES]; + + } else if (_volumeControlsShowing) { + + [self _updateVolumeControls:YES]; + } + } +} + +- (void)_buttonPressed:(UILongPressGestureRecognizer *)sender +{ + if ([sender isKindOfClass:UILongPressGestureRecognizer.class] && sender.state == UIGestureRecognizerStateBegan) { + + PlayImpactWithSound(UIImpactFeedbackStyleMedium, 1104); + + if (sender.view == _volumeButtonViewController.button) { + + [self _updateVolumeControls:YES]; + + } else if (sender.view == _timerButtonViewController.button) { + + [self _updateTimerControls:YES]; + } + } +} + +- (void)_buttonTapped:(CCUIRoundButton *)sender +{ + if (sender == _volumeButtonViewController.button) { + + if (_volumeControlsShowing) { + + [self _updateVolumeControls:YES]; + + } else { + + float volume = [_module getVolume]; + float newVolume = volume > 0 ? 0 : (_lastVolume ? : 0.6f); + [_module setVolume:newVolume]; + [self updateVolumeState]; + _lastVolume = volume; + } + + } else if (sender == _playbackButtonViewController.button) { + + if ([_module isPlaying]) { + + [_module stopTrack]; + + } else { + + [_module resumeTrack]; + } + + [self _configurePlaybackControllerState]; + + } else if (sender == _timerButtonViewController.button) { + + if (_module.isTimerRunning) { + + [_module updateDisableTimerWithTimeInterval:0 enable:NO]; + + } else if (_timerStepper.value > 0 && [_module isPlaying]) { + + [_module updateDisableTimerWithTimeInterval:_timerStepper.value enable:YES]; + } + + [self _configureTimerControllerState]; + + if (_timerControlsShowing) { + + [self _updateTimerControls:YES]; + } + } +} + +- (void)_stepperValueDidChange:(TranquilModuleStepper *)sender +{ + if (_timerButtonViewController.enabled) { + + BOOL enabled = sender.value > 0; + [_module updateDisableTimerWithTimeInterval:sender.value enable:enabled]; + [self _configureTimerControllerState]; + } +} + +- (void)_sliderValueDidChange:(UISlider *)sender +{ + _lastVolume = 0; + [_module setVolume:sender.value]; + [self _configureVolumeControllerState]; +} + +- (void)_sliderDidEndDrag:(UISlider *)sender +{ + [_module setVolume:sender.value]; + [_module updatePreferencesExternally]; +} + +- (BOOL)controlsAreShowing +{ + return _timerControlsShowing || _volumeControlsShowing; +} + +- (void)subtractOneMinuteFromTimerControl +{ + [_timerStepper setValue:_timerStepper.value = 60]; +} + +- (void)updateTimerControlWithTimeInterval:(NSTimeInterval)interval +{ + [_timerStepper setValue:(NSInteger) interval]; +} + +- (void)updateVolumeState +{ + [_volumeSlider setValue:[_module getVolume] animated:YES]; + [self _configureVolumeControllerState]; +} + +- (void)updatePlaybackState +{ + [self _configurePlaybackControllerState]; +} + +- (void)updateTimerState +{ + [self _configureTimerControllerState]; +} + +- (void)_configureVolumeControllerState +{ + float split = 1.f / 3; + float value = _volumeSlider.value; + NSString *glyphName = (value <= 0) ? @"VolumeMute" + : (value > 0 && value < split) ? @"VolumeLow" + : (value >= split && value < (split * 2)) ? @"VolumeHigh" + : (value >= (split * 2)) ? @"VolumeMax" + : @"VolumeMute"; + + [_volumeButtonViewController setGlyphImage:[UIImage tranquil_moduleImageNamed:glyphName]]; + [_volumeButtonViewController setEnabled:value > 0]; + [_volumeButtonViewController.button setNeedsLayout]; + [_volumeButtonViewController setTitle:[NSString stringWithFormat:Localize(@"VOLUME_STATUS_LABEL"), (int)(value * 100)]]; +} + +- (void)_configurePlaybackControllerState +{ + NSString *glyphName = [_module isPlaying] ? @"Stop" : @"Play"; + [_playbackButtonViewController setGlyphImage:[UIImage tranquil_moduleImageNamed:glyphName]]; + [_playbackButtonViewController.button setNeedsLayout]; +} + +- (void)_configureTimerControllerState +{ + BOOL timerRunning = _module.isTimerRunning; + [_timerButtonViewController setEnabled:timerRunning]; + [_timerButtonViewController setTitle:[NSString stringWithFormat:Localize(@"TIMER_STATUS_LABEL"), Localize(timerRunning ? @"STATUS_ON" : @"STATUS_OFF")]]; +} + +- (void)_updateVolumeControls:(BOOL)animated +{ + [self _updateControlType:TMControlTypeVolume animated:animated opening:!_volumeControlsShowing]; +} + +- (void)_updateTimerControls:(BOOL)animated +{ + [self _updateControlType:TMControlTypeTimer animated:animated opening:!_timerControlsShowing]; +} + +// some ugly multi-element animation, works great, looks like hell though +- (void)_updateControlType:(TMControlType)type animated:(BOOL)animated opening:(BOOL)opening +{ + if (type == TMControlTypePlayback) return; + + TMLayoutDirection direction = [self _currentLayoutDirection]; + BOOL isVolume = type == TMControlTypeVolume; + CGAffineTransform buttonTransform = opening + ? CGAffineTransformScale(CGAffineTransformIdentity, 0.8519, 0.8519) + : CGAffineTransformIdentity; + + void (^updateAlpha)(void) = ^{ + _playbackButtonViewController.view.alpha = !opening; + (isVolume ? (UIControl*)_volumeSlider : (UIControl*)_timerStepper).enabled = opening; + (isVolume ? _volumeControlContainer : _timerControlContainer).alpha = opening; + (isVolume ? _timerButtonViewController : _volumeButtonViewController).view.alpha = !opening; + }; + + void (^updateLayout)(void) = ^{ + switch (direction) { + case TMLayoutDirectionVertical: { + CGFloat controlWidth = (UIEdgeInsetsInsetRect(self.view.bounds, self.view.layoutMargins).size.width - 76); + (isVolume ? _volumeControlContainerTrailingAnchor : _timerControlContainerLeadingAnchor).constant = opening ? 0 : NEGATE_IF(controlWidth, isVolume); + (isVolume ? _volumeControlLeadingAnchor : _timerControlTrailingAnchor).constant = opening ? NEGATE_IF(65, !isVolume) : NEGATE_IF(3, !isVolume); + } break; + case TMLayoutDirectionHorizontal: { + CGFloat controlHeight = (UIEdgeInsetsInsetRect(self.view.bounds, self.view.layoutMargins).size.height - 76); + (isVolume ? _volumeControlContainerBottomAnchor : _timerControlContainerTopAnchor).constant = opening ? 0 : NEGATE_IF(controlHeight, isVolume); + (isVolume ? _volumeControlTopAnchor : _timerControlBottomAnchor).constant = opening ? NEGATE_IF(65, !isVolume) : NEGATE_IF(3, !isVolume); + } break; + } + + (isVolume ? _volumeButtonViewController : _timerButtonViewController).view.transform = buttonTransform; + (isVolume ? _volumeButtonViewController : _timerButtonViewController).useAlternateBackground = opening; + ((CCUIRoundButton *)(isVolume ? _volumeButtonViewController : _timerButtonViewController).button).glyphImageView.tintColor = opening ? UIColor.blackColor : UIColor.whiteColor; + + [self.view layoutIfNeeded]; + }; + + _controlDismissRecognizer.enabled = opening; + if (isVolume) _volumeControlsShowing = opening; + else _timerControlsShowing = opening; + + [_volumeButtonViewController setLabelsVisible:!opening]; + [_playbackButtonViewController setLabelsVisible:!opening]; + [_timerButtonViewController setLabelsVisible:!opening]; + + if (animated) { + + UIViewAnimationOptions options = UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction; + [UIView animateWithDuration:opening ? 0.16 : 0.3 delay:opening ? 0 : 0.2 usingSpringWithDamping:0.8 initialSpringVelocity:0 options:options animations:updateAlpha completion:nil]; + [UIView animateWithDuration:0.8 delay:0 usingSpringWithDamping:0.8 initialSpringVelocity:0 options:options animations:updateLayout completion:nil]; + + } else { + + updateAlpha(); + updateLayout(); + } +} + +- (TMLayoutDirection)_currentLayoutDirection +{ + return [self _layoutDirectionForSize:self.view.bounds.size]; +} + +- (TMLayoutDirection)_layoutDirectionForSize:(CGSize)size +{ + if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { + + return TMLayoutDirectionVertical; + } + + return (size.height > size.width) ? TMLayoutDirectionVertical : TMLayoutDirectionHorizontal; +} + +- (void)updateConstraintsForLayoutDirection:(TMLayoutDirection)direction +{ + switch (direction) { + case TMLayoutDirectionVertical: { + + [_volumeSlider setDirection:RTLLayout(self.view) ? TMSSliderDirectionRightToLeft : TMSSliderDirectionLeftToRight]; + [_timerStepper setDirection:TMStepperLayoutDirectionHorizontal]; + [NSLayoutConstraint deactivateConstraints:_horizontalConstraints]; + [self.view removeConstraints:_horizontalConstraints]; + [NSLayoutConstraint activateConstraints:_verticalConstraints]; + + } break; + case TMLayoutDirectionHorizontal: { + + [_volumeSlider setDirection:TMSSliderDirectionBottomToTop]; + [_timerStepper setDirection:TMStepperLayoutDirectionVertical]; + [NSLayoutConstraint deactivateConstraints:_verticalConstraints]; + [self.view removeConstraints:_verticalConstraints]; + [NSLayoutConstraint activateConstraints:_horizontalConstraints]; + + } break; + } + + // ensure controls are collapsed, and layout is ready for presentation + [self _updateControlType:TMControlTypeTimer animated:NO opening:NO]; + [self _updateControlType:TMControlTypeVolume animated:NO opening:NO]; + + [self.view setNeedsLayout]; +} + +- (void)_configureConstraints +{ + CGFloat bottomMargin = -88; + CGFloat fixedHeight = 54; + CGFloat openHeight = 46; + CGFloat margin = 38; + UILayoutGuide *marginsGuide = self.view.layoutMarginsGuide; + + _timerControlTrailingAnchor = [_timerStepper.trailingAnchor constraintEqualToAnchor:_timerControlContainer.trailingAnchor constant:-65]; + _volumeControlLeadingAnchor = [_volumeSlider.leadingAnchor constraintEqualToAnchor:_volumeControlContainer.leadingAnchor constant:65]; + _timerControlContainerLeadingAnchor = [_timerControlContainer.leadingAnchor constraintEqualToAnchor:_controlContainer.leadingAnchor]; + _volumeControlContainerTrailingAnchor = [_volumeControlContainer.trailingAnchor constraintEqualToAnchor:_controlContainer.trailingAnchor]; + + _verticalConstraints = @[ + _timerControlTrailingAnchor, + _volumeControlLeadingAnchor, + _timerControlContainerLeadingAnchor, + _volumeControlContainerTrailingAnchor, + [_controlContainer.heightAnchor constraintEqualToConstant:fixedHeight], + [_controlContainer.centerYAnchor constraintEqualToAnchor:marginsGuide.bottomAnchor constant:bottomMargin], + [_controlContainer.leadingAnchor constraintEqualToAnchor:marginsGuide.leadingAnchor constant:margin], + [_controlContainer.trailingAnchor constraintEqualToAnchor:marginsGuide.trailingAnchor constant:-margin], + [_timerControlContainer.trailingAnchor constraintEqualToAnchor:_controlContainer.trailingAnchor], + [_timerControlContainer.centerYAnchor constraintEqualToAnchor:_controlContainer.centerYAnchor], + [_timerControlContainer.heightAnchor constraintEqualToConstant:fixedHeight], + [_volumeControlContainer.leadingAnchor constraintEqualToAnchor:_controlContainer.leadingAnchor], + [_volumeControlContainer.centerYAnchor constraintEqualToAnchor:_controlContainer.centerYAnchor], + [_volumeControlContainer.heightAnchor constraintEqualToConstant:fixedHeight], + [_volumeSlider.heightAnchor constraintEqualToConstant:openHeight], + [_volumeSlider.trailingAnchor constraintEqualToAnchor:_volumeControlContainer.trailingAnchor constant:-4], + [_volumeSlider.centerYAnchor constraintEqualToAnchor:_volumeControlContainer.centerYAnchor], + [_timerStepper.leadingAnchor constraintEqualToAnchor:_timerControlContainer.leadingAnchor constant:4], + [_timerStepper.topAnchor constraintEqualToAnchor:_timerControlContainer.topAnchor constant:4], + [_timerStepper.bottomAnchor constraintEqualToAnchor:_timerControlContainer.bottomAnchor constant:-4], + [_volumeButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_volumeButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_volumeButtonViewController.view.leadingAnchor constraintEqualToAnchor:_controlContainer.leadingAnchor constant:-27], + [_volumeButtonViewController.view.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor], + [_playbackButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_playbackButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_playbackButtonViewController.view.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor], + [_playbackButtonViewController.view.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor], + [_timerButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_timerButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_timerButtonViewController.view.trailingAnchor constraintEqualToAnchor:_controlContainer.trailingAnchor constant:27], + [_timerButtonViewController.view.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor], + ]; + + _timerControlBottomAnchor = [_timerStepper.bottomAnchor constraintEqualToAnchor:_timerControlContainer.bottomAnchor constant:-65]; + _volumeControlTopAnchor = [_volumeSlider.topAnchor constraintEqualToAnchor:_volumeControlContainer.topAnchor constant:65]; + _timerControlContainerTopAnchor = [_timerControlContainer.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor]; + _volumeControlContainerBottomAnchor = [_volumeControlContainer.bottomAnchor constraintEqualToAnchor:_controlContainer.bottomAnchor]; + + _horizontalConstraints = @[ + _timerControlBottomAnchor, + _volumeControlTopAnchor, + _timerControlContainerTopAnchor, + _volumeControlContainerBottomAnchor, + [_controlContainer.widthAnchor constraintEqualToConstant:fixedHeight], + [_controlContainer.centerXAnchor constraintEqualToAnchor:marginsGuide.trailingAnchor constant:bottomMargin], + [_controlContainer.topAnchor constraintEqualToAnchor:marginsGuide.topAnchor constant:margin], + [_controlContainer.bottomAnchor constraintEqualToAnchor:marginsGuide.bottomAnchor constant:-margin], + [_timerControlContainer.bottomAnchor constraintEqualToAnchor:_controlContainer.bottomAnchor], + [_timerControlContainer.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor], + [_timerControlContainer.widthAnchor constraintEqualToConstant:fixedHeight], + [_volumeControlContainer.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor], + [_volumeControlContainer.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor], + [_volumeControlContainer.widthAnchor constraintEqualToConstant:fixedHeight], + [_volumeSlider.widthAnchor constraintEqualToConstant:openHeight], + [_volumeSlider.bottomAnchor constraintEqualToAnchor:_volumeControlContainer.bottomAnchor constant:-4], + [_volumeSlider.centerXAnchor constraintEqualToAnchor:_volumeControlContainer.centerXAnchor], + [_timerStepper.topAnchor constraintEqualToAnchor:_timerControlContainer.topAnchor constant:4], + [_timerStepper.leadingAnchor constraintEqualToAnchor:_timerControlContainer.leadingAnchor constant:4], + [_timerStepper.trailingAnchor constraintEqualToAnchor:_timerControlContainer.trailingAnchor constant:-4], + [_volumeButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_volumeButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_volumeButtonViewController.view.topAnchor constraintEqualToAnchor:_controlContainer.topAnchor], + [_volumeButtonViewController.view.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor], + [_playbackButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_playbackButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_playbackButtonViewController.view.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor], + [_playbackButtonViewController.view.centerYAnchor constraintEqualToAnchor:_controlContainer.centerYAnchor], + [_timerButtonViewController.view.widthAnchor constraintEqualToConstant:108], + [_timerButtonViewController.view.heightAnchor constraintEqualToConstant:fixedHeight], + [_timerButtonViewController.view.bottomAnchor constraintEqualToAnchor:_controlContainer.bottomAnchor], + [_timerButtonViewController.view.centerXAnchor constraintEqualToAnchor:_controlContainer.centerXAnchor] + ]; +} + +- (CCUILabeledRoundButtonViewController *)_labeledRoundButtonControllerWithGlyph:(NSString *)glyphName highlightColor:(UIColor *)color initialState:(BOOL)state useLongPress:(BOOL)useLongPress +{ + CCUILabeledRoundButtonViewController *controller = [[CCUILabeledRoundButtonViewController alloc] initWithGlyphImage:[UIImage tranquil_moduleImageNamed:glyphName] highlightColor:color]; + [controller.button addTarget:self action:@selector(_buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; + [controller.view setTranslatesAutoresizingMaskIntoConstraints:NO]; + [controller.buttonContainer setLabelsVisible:YES]; + [controller setToggleStateOnTap:NO]; + [controller setEnabled:state]; + + if (useLongPress) { + + UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(_buttonPressed:)]; + [longPress setMinimumPressDuration:0.2]; + [longPress setCancelsTouchesInView:YES]; + [controller.button addGestureRecognizer:longPress]; + } + + if ([controller respondsToSelector:@selector(useAlternateBackground)]) { + + [controller setUseAlternateBackground:NO]; + } + + [self addChildViewController:controller]; + + return controller; +} + +- (BOOL)_canShowWhileLocked +{ + return YES; +} + +@end \ No newline at end of file diff --git a/Classes/TranquilModuleContentViewController.h b/Classes/TranquilModuleContentViewController.h new file mode 100644 index 0000000..deb5948 --- /dev/null +++ b/Classes/TranquilModuleContentViewController.h @@ -0,0 +1,18 @@ +// +// TranquilModuleContentViewController.h +// Tranquil +// +// Created by Dana Buehre on 3/8/22. +// +// + +#import +#import + +@class TranquilModule; + +@interface TranquilModuleContentViewController : CCUIMenuModuleViewController +@property (nonatomic, weak) TranquilModule* module; + +- (void)updateItemSelection; +@end diff --git a/Classes/TranquilModuleContentViewController.m b/Classes/TranquilModuleContentViewController.m new file mode 100644 index 0000000..35a32f6 --- /dev/null +++ b/Classes/TranquilModuleContentViewController.m @@ -0,0 +1,219 @@ +// +// TranquilModuleContentViewController.m +// Tranquil +// +// Created by Dana Buehre on 3/8/22. +// +// + +#import "TranquilModuleContentViewController.h" +#import "TranquilModule.h" +#import "UIImage+TranquilModule.h" +#import "Prefix.h" + +@interface NSObject () +- (id)safeValueForKey:(NSString *)key; +@end + +@interface TranquilModuleContentViewController () { + + NSMutableDictionary *_checkmarksByID; + BOOL _isExpanded; +} + +@end + +@implementation TranquilModuleContentViewController + +- (instancetype)initWithNibName:(NSString *)name bundle:(NSBundle *)bundle +{ + if (self = [super initWithNibName:name bundle:bundle]) { + + self.title = Localize(@"PROJECT_NAME"); + self.glyphImage = [UIImage tranquil_moduleImageNamed:@"Icon"]; + self.selectedGlyphColor = [UIColor systemGrayColor]; + } + + return self; +} + +#pragma mark - CCUIMenuModuleViewController + +- (void)buttonTapped:(id)arg1 forEvent:(id)arg2 +{ + // toggle playback on module button tap + BOOL newState = ![self isSelected]; + + if (newState) { + + [_module resumeTrack]; + + } else { + + [_module stopTrack]; + } + + [self setSelected:[_module isPlaying]]; +} + +- (void)setSelected:(BOOL)selected +{ + // prevent highlighting the glyph when expanded + [super setSelected:_isExpanded ? NO : selected]; +} + +- (void)setExpanded:(BOOL)expanded +{ + // track our own expanded state, and update glyph highlighting + // to ensure that the glyph is not highlighted while expanded + _isExpanded = expanded; + [self setSelected:[_module isPlaying]]; +} + +- (CGFloat)preferredExpandedContentHeight +{ + // ensure the height does not exceed the safe area bounds + UIView *background = _module.backgroundViewController.view; + UIEdgeInsets insets = UIEdgeInsetsMake(32, 32, 32, 32); + CGFloat max = UIEdgeInsetsInsetRect(background.bounds, insets).size.height; + return MIN(375, max); +} + +- (BOOL)shouldBeginTransitionToExpandedContentModule +{ + // this will return false after the first expansion, + // so it's overridden to always allow expansion + return YES; +} + +- (void)willTransitionToExpandedContentMode:(BOOL)expand +{ + [super willTransitionToExpandedContentMode:expand]; + + [self setExpanded:expand]; + + if (!expand) return; + + // refresh the action items each time the module is expanded + // this circumvents an issue where the module will automatically + // remove actions after collapsing, as well as keeping the list + // synchronized with any added or removed sounds. + [self removeAllActions]; + + __weak typeof(self) weakSelf = self; + _checkmarksByID = [NSMutableDictionary new]; + NSArray *metadata = [self.module audioMetadata]; + UIStackView *menuItemsContainer = [self safeValueForKey:@"_menuItemsContainer"]; + + for (NSDictionary *entry in metadata) + { + [self addActionWithTitle:Localize(entry[@"name"]) glyph:[UIImage tranquil_moduleImageNamed:@"Sound"] handler:^{ + [weakSelf.module playTrack:entry[@"path"]]; + [weakSelf updateItemSelection]; + return NO; + }]; + + // checkmarks are available for actions on iOS 13+, but for consistency lets use a custom implementation. + // this will only work for later iOS versions, earlier versions will use _setupMenuItems + if (menuItemsContainer) { + + UIView *itemView = menuItemsContainer.arrangedSubviews.lastObject; + [self _configureCheckmarkWithKey:entry[@"path"] inItemView:itemView]; + } + } + + if (DownloadableContentAvailable()) { + + [self addActionWithTitle:Localize(@"DOWNLOADS_AVAILABLE_TITLE") glyph:[UIImage tranquil_moduleImageNamed:@"Download"] handler:^{ + NSString *urlString = [NSString stringWithFormat:@"prefs:root=ControlCenter&path=Tranquil/activeSoundSpecifier"]; + NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]]; + + OpenApplicationUrl(url); + return NO; + }]; + } + + [self setFooterButtonTitle:Localize(@"PROJECT_SETTINGS_TITLE") handler:^{ + NSString *urlString = [NSString stringWithFormat:@"prefs:root=ControlCenter&path=Tranquil"]; + NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]]; + + OpenApplicationUrl(url); + return NO; + }]; + + [self updateItemSelection]; +} + +- (void)_setupMenuItems +{ + [super _setupMenuItems]; + + // this will only work for earlier iOS versions, later versions will use willTransitionToExpandedContentMode: + if (!_checkmarksByID || _checkmarksByID.count == 0) { + + _checkmarksByID = [NSMutableDictionary new]; + NSArray *metadata = [self.module audioMetadata]; + UIStackView *menuItemsContainer = [self safeValueForKey:@"_menuItemsContainer"]; + + if (menuItemsContainer) { + + [metadata enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger index, BOOL *stop) { + + UIView *itemView = menuItemsContainer.arrangedSubviews[index]; + [self _configureCheckmarkWithKey:obj[@"path"] inItemView:itemView]; + }]; + } + + [self updateItemSelection]; + } +} + +- (BOOL)canDismissPresentedContent +{ + // prevent background tap collapsing the module when controls are expanded + if ([(TranquilModuleBackgroundViewController *)_module.backgroundViewController controlsAreShowing]) { + + return NO; + } + + return YES; +} + +-(BOOL)_canShowWhileLocked +{ + return YES; +} + +#pragma mark - TranquilContentViewController + +- (void)updateItemSelection +{ + // use layer opacity rather than view alpha/hidden to avoid itemView from overriding changes + // makeObjectsPerformSelector:withObject: does not always work as expected, so use a loop instead + for (CALayer *checkmark in _checkmarksByID.allValues) { [checkmark setOpacity:0]; } + [_checkmarksByID[[_module.preferences stringForKey:@"kActiveSound"]] setOpacity:1]; +} + +- (void)_configureCheckmarkWithKey:(NSString *)key inItemView:(UIView *)view +{ + if (!view) return; + + UIImage *checkmarkImage = [UIImage tranquil_moduleImageNamed:@"Checkmark"]; + UIImageView *checkmark = [[UIImageView alloc] initWithImage:checkmarkImage]; + [checkmark setTranslatesAutoresizingMaskIntoConstraints:NO]; + [checkmark setContentMode:UIViewContentModeScaleAspectFill]; + [checkmark.layer setOpacity:0]; + _checkmarksByID[key] = checkmark.layer; + + [view addSubview:checkmark]; + + [NSLayoutConstraint activateConstraints:@[ + [checkmark.trailingAnchor constraintEqualToAnchor:view.trailingAnchor constant:-8], + [checkmark.centerYAnchor constraintEqualToAnchor:view.centerYAnchor], + // actual size is closer to 17x17, but the itemView forces some strange upscaling + [checkmark.heightAnchor constraintEqualToConstant:13], + [checkmark.widthAnchor constraintEqualToConstant:13] + ]]; +} + +@end diff --git a/Classes/TranquilModuleSlider.h b/Classes/TranquilModuleSlider.h new file mode 100644 index 0000000..0be2198 --- /dev/null +++ b/Classes/TranquilModuleSlider.h @@ -0,0 +1,33 @@ +// +// TranquilModuleSlider.h +// Tranquil +// +// Created by Dana Buehre on 3/20/22. +// +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, TMSSliderDirection) +{ + TMSSliderDirectionLeftToRight = 0, + TMSSliderDirectionRightToLeft = 1, + TMSSliderDirectionBottomToTop = 2, + TMSSliderDirectionTopToBottom = 3 +}; + +@interface TranquilModuleSlider : UIControl + +@property (nonatomic) float value; +@property (nonatomic) NSInteger minValue; +@property (nonatomic) NSInteger maxValue; +@property (nonatomic) BOOL continuous; +@property (nonatomic) TMSSliderDirection direction; + +- (void)setValue:(float)value animated:(BOOL)animated; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Classes/TranquilModuleSlider.m b/Classes/TranquilModuleSlider.m new file mode 100644 index 0000000..c8ca204 --- /dev/null +++ b/Classes/TranquilModuleSlider.m @@ -0,0 +1,184 @@ +// +// TranquilModuleSlider.m +// Tranquil +// +// Created by Dana Buehre on 3/20/22. +// +// + +#import "TranquilModuleSlider.h" +#import "Material.h" +#import "Prefix.h" +#import "Haptic.h" + +@implementation TranquilModuleSlider { + + MTMaterialView *_trackView; + MTMaterialView *_progressView; + BOOL _feedbackOccurred; +} + +- (instancetype)init +{ + return [self initWithFrame:CGRectZero]; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + + [self _baseInit]; + } + + return self; +} + +- (void)_baseInit +{ + _trackView = ControlCenterForegroundMaterial(); + _progressView = ControlCenterVibrantLightMaterial(); + [_trackView.layer setMasksToBounds:YES]; + [_trackView addSubview:_progressView]; + + [self addSubview:_trackView]; + [self sendSubviewToBack:_trackView]; + + _direction = RTLLayout(self) ? TMSSliderDirectionRightToLeft : TMSSliderDirectionLeftToRight; + _value = 0.5f; + _minValue = 0; + _maxValue = 1; + _continuous = YES; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event +{ + if (touches.count == 1) { + + [self sendActionsForControlEvents:UIControlEventTouchDown]; + } +} + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event +{ + if (touches.count == 1) { + + UITouch *touch = touches.anyObject; + CGSize size = self.bounds.size; + CGPoint currentLocation = [touch locationInView:self]; + CGPoint previousLocation = [touch previousLocationInView:self]; + CGFloat normalizedDelta = 0; + + switch (_direction) { + case TMSSliderDirectionLeftToRight: + normalizedDelta = (currentLocation.x - previousLocation.x) / size.width; + break; + case TMSSliderDirectionRightToLeft: + normalizedDelta = (previousLocation.x - currentLocation.x) / size.width; + break; + case TMSSliderDirectionBottomToTop: + normalizedDelta = (previousLocation.y - currentLocation.y) / size.height; + break; + case TMSSliderDirectionTopToBottom: + normalizedDelta = (currentLocation.y - previousLocation.y) / size.height; + break; + } + + [self _setValue:_value + (float) normalizedDelta sendEvents:_continuous]; + } +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event +{ + BOOL inside = CGRectContainsPoint(self.bounds, [touches.anyObject locationInView:self]); + [self sendActionsForControlEvents:inside ? UIControlEventTouchUpInside : UIControlEventTouchUpOutside]; +} + +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event +{ + [self sendActionsForControlEvents:UIControlEventTouchCancel]; +} + +- (void)_setValue:(float)value sendEvents:(BOOL)sendEvents +{ + float newValue = CLAMP(value, _minValue, _maxValue); + BOOL valueChanged = _value != newValue; + _value = newValue; + + [self setNeedsLayout]; + + if (valueChanged) { + + if (sendEvents) { + + [self sendActionsForControlEvents:UIControlEventValueChanged]; + } + + if (_value >= _maxValue || _value <= _minValue) { + + if (!_feedbackOccurred) { + + _feedbackOccurred = YES; + PlayImpact(UIImpactFeedbackStyleLight); + } + + } else { + + _feedbackOccurred = NO; + } + } +} + +- (void)setValue:(float)value +{ + _value = CLAMP(value, _minValue, _maxValue); + [self setNeedsLayout]; +} + +- (void)setValue:(float)value animated:(BOOL)animated +{ + _value = CLAMP(value, _minValue, _maxValue); + + if (animated) { + + UIViewAnimationOptions options = UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionBeginFromCurrentState; + [UIView animateWithDuration:0.2 delay:0 options:options animations:^{ + [self setNeedsLayout]; + } completion:nil]; + + } else { + + [self setNeedsLayout]; + } +} + + +- (void)layoutSubviews +{ + [super layoutSubviews]; + + CGSize size = self.bounds.size; + _trackView.frame = self.bounds; + + switch (_direction) { + case TMSSliderDirectionLeftToRight: { + _progressView.frame = CGRectMake(0, 0, size.width * _value, size.height); + [_trackView.layer setCornerRadius:size.height / 2]; + } break; + case TMSSliderDirectionRightToLeft: { + CGFloat width = size.width * _value; + _progressView.frame = CGRectMake(size.width - width, 0, width, size.height); + [_trackView.layer setCornerRadius:size.height / 2]; + } break; + case TMSSliderDirectionBottomToTop: { + CGFloat height = size.height * _value; + _progressView.frame = CGRectMake(0, size.height - height, size.width, height); + [_trackView.layer setCornerRadius:size.width / 2]; + } break; + case TMSSliderDirectionTopToBottom: { + _progressView.frame = CGRectMake(0, 0, size.width, size.height * _value); + [_trackView.layer setCornerRadius:size.width / 2]; + } break; + } +} + +@end diff --git a/Classes/TranquilModuleStepper.h b/Classes/TranquilModuleStepper.h new file mode 100644 index 0000000..f1d97ca --- /dev/null +++ b/Classes/TranquilModuleStepper.h @@ -0,0 +1,34 @@ +// +// TranquilModuleStepper.h +// Tranquil +// +// Created by Dana Buehre on 3/14/22. +// +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, TMStepperLayoutDirection) +{ + TMStepperLayoutDirectionVertical = 0, + TMStepperLayoutDirectionHorizontal = 1 +}; + +@interface TranquilModuleStepper : UIControl + +@property (nonatomic) NSInteger value; +@property (nonatomic) NSInteger stepValue; +@property (nonatomic) NSInteger minValue; +@property (nonatomic) NSInteger maxValue; +@property (nonatomic) BOOL continuous; +@property (nonatomic) TMStepperLayoutDirection direction; + +- (void)setLabelTextColor:(UIColor *)color; +- (void)setIncrementButtonBackgroundColor:(UIColor *)color; +- (void)setDecrementButtonBackgroundColor:(UIColor *)color; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Classes/TranquilModuleStepper.m b/Classes/TranquilModuleStepper.m new file mode 100644 index 0000000..f58a6b1 --- /dev/null +++ b/Classes/TranquilModuleStepper.m @@ -0,0 +1,254 @@ +// +// TranquilModuleStepper.m +// Tranquil +// +// Created by Dana Buehre on 3/14/22. +// +// + +#import +#import "TranquilModuleStepper.h" +#import "UIImage+TranquilModule.h" +#import "Prefix.h" +#import "Haptic.h" + +@implementation TranquilModuleStepper { + + UIButton *_incrementButton; + UIButton *_decrementButton; + UILabel *_valueLabel; + NSTimer *_longPressTimer; +} + +- (instancetype)init +{ + return [self initWithFrame:CGRectZero]; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + + [self _baseInit]; + } + + return self; +} + +- (void)_baseInit +{ + _minValue = 0; + _maxValue = 1; + _stepValue = 1; + _direction = TMStepperLayoutDirectionHorizontal; + + _incrementButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_incrementButton setImage:[UIImage tranquil_moduleImageNamed:@"Increment"] forState:UIControlStateNormal]; + [_incrementButton addGestureRecognizer:[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(_handleLongPress:)]]; + [_incrementButton addTarget:self action:@selector(_handleIncrement) forControlEvents:UIControlEventTouchUpInside]; + [_incrementButton.imageView setContentMode:UIViewContentModeScaleAspectFit]; + [_incrementButton setTranslatesAutoresizingMaskIntoConstraints:NO]; + + _decrementButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_decrementButton setImage:[UIImage tranquil_moduleImageNamed:@"Decrement"] forState:UIControlStateNormal]; + [_decrementButton addGestureRecognizer:[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(_handleLongPress:)]]; + [_decrementButton addTarget:self action:@selector(_handleDecrement) forControlEvents:UIControlEventTouchUpInside]; + [_decrementButton.imageView setContentMode:UIViewContentModeScaleAspectFit]; + [_decrementButton setTranslatesAutoresizingMaskIntoConstraints:NO]; + + _valueLabel = [UILabel new]; + [_valueLabel setNumberOfLines:0]; + [_valueLabel setTextAlignment:NSTextAlignmentCenter]; + [_valueLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; + + [self addSubview:_valueLabel]; + [self addSubview:_decrementButton]; + [self addSubview:_incrementButton]; + + [self setClipsToBounds:YES]; + + [self _updateLabel]; +} + +- (void)_handleLongPress:(UILongPressGestureRecognizer *)sender +{ + switch (sender.state) { + case UIGestureRecognizerStateBegan: + { + if (_longPressTimer) return; + + void (^handler)(NSTimer *) = sender.view == _incrementButton + ? ^(NSTimer *t) { [self _handleIncrement:self->_continuous]; } + : ^(NSTimer *t) { [self _handleDecrement:self->_continuous]; }; + _longPressTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 repeats:YES block:handler]; + } break; + case UIGestureRecognizerStateEnded: + case UIGestureRecognizerStateCancelled: + case UIGestureRecognizerStateFailed: + { + if (!_longPressTimer) return; + if (!_continuous) { + + [self sendActionsForControlEvents:UIControlEventValueChanged]; + } + + [_longPressTimer invalidate]; + _longPressTimer = nil; + } break; + default: break; + } +} + +- (void)_handleIncrement +{ + [self _handleIncrement:YES]; +} + +- (void)_handleIncrement:(BOOL)sendEvents +{ + NSInteger newValue = CLAMP(_value + _stepValue, _minValue, _maxValue); + + if (_value != newValue) { + + _value = newValue; + + if (_value == _maxValue) { + + PlayImpact(UIImpactFeedbackStyleMedium); + + } else if (_value % 3600 == 0) { + + PlayImpact(UIImpactFeedbackStyleLight); + } + + if (sendEvents) { + + [self sendActionsForControlEvents:UIControlEventValueChanged]; + } + } + + [self _updateLabel]; +} + +- (void)_handleDecrement +{ + [self _handleDecrement:YES]; +} + +- (void)_handleDecrement:(BOOL)sendEvents +{ + NSInteger newValue = CLAMP(_value - _stepValue, _minValue, _maxValue); + + if (_value != newValue) { + + _value = newValue; + + if (_value == _minValue) { + + PlayImpact(UIImpactFeedbackStyleMedium); + + } else if (_value % 3600 == 0) { + + PlayImpact(UIImpactFeedbackStyleLight); + } + + if (sendEvents) { + + [self sendActionsForControlEvents:UIControlEventValueChanged]; + } + } + + [self _updateLabel]; +} + +- (void)_updateLabel +{ + NSInteger interval = (NSInteger) _value; + long minutes = (interval / 60) % 60; + long hours = (interval / 3600); + + switch (_direction) { + case TMStepperLayoutDirectionVertical: + [_valueLabel setText:[NSString stringWithFormat:@"%0.2ldh\n%0.2ldm", hours, minutes]]; + break; + case TMStepperLayoutDirectionHorizontal: + [_valueLabel setText:[NSString stringWithFormat:@"%0.2ld:%0.2ld", hours, minutes]]; + break; + } +} + +- (void)setValue:(NSInteger)value +{ + _value = CLAMP(value, _minValue, _maxValue); + [self _updateLabel]; +} + +- (void)setMinValue:(NSInteger)minValue +{ + _minValue = minValue; + + if (_value < minValue) { + + _value = minValue; + [self _updateLabel]; + } +} + +- (void)setMaxValue:(NSInteger)maxValue +{ + _maxValue = maxValue; + + if (_value > maxValue) { + + _value = maxValue; + [self _updateLabel]; + } +} + +- (void)setDirection:(TMStepperLayoutDirection)direction +{ + _direction = direction; + [self _updateLabel]; + [self setNeedsLayout]; +} + +- (void)setLabelTextColor:(UIColor *)color +{ + [_valueLabel setTextColor:color]; +} + +- (void)setIncrementButtonBackgroundColor:(UIColor *)color +{ + [_incrementButton setBackgroundColor:color]; +} + +- (void)setDecrementButtonBackgroundColor:(UIColor *)color +{ + [_decrementButton setBackgroundColor:color]; +} + +- (void)layoutSubviews +{ + [super layoutSubviews]; + + CGSize size = self.bounds.size; + + _valueLabel.frame = self.bounds; + + switch (_direction) { + case TMStepperLayoutDirectionVertical: { + _incrementButton.frame = CGRectMake(0, 0, size.width, size.width); + _decrementButton.frame = CGRectMake(0, size.height - size.width, size.width, size.width); + [_incrementButton.layer setCornerRadius:size.width / 2]; + [_decrementButton.layer setCornerRadius:size.width / 2]; + } break; + case TMStepperLayoutDirectionHorizontal: { + _decrementButton.frame = CGRectMake(0, 0, size.height, size.height); + _incrementButton.frame = CGRectMake(size.width - size.height, 0, size.height, size.height); + [_incrementButton.layer setCornerRadius:size.height / 2]; + [_decrementButton.layer setCornerRadius:size.height / 2]; + } break; + } +} + +@end diff --git a/Classes/TranquilPreferencesController.h b/Classes/TranquilPreferencesController.h new file mode 100644 index 0000000..d66d5e5 --- /dev/null +++ b/Classes/TranquilPreferencesController.h @@ -0,0 +1,16 @@ +// +// TranquilPreferencesController.h +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#import +#import + +@interface TranquilPreferencesController : PSListController + +- (NSUserDefaults *)preferences; + +@end \ No newline at end of file diff --git a/Classes/TranquilPreferencesController.m b/Classes/TranquilPreferencesController.m new file mode 100644 index 0000000..e7361f2 --- /dev/null +++ b/Classes/TranquilPreferencesController.m @@ -0,0 +1,352 @@ +// +// TranquilPreferencesController.m +// Tranquil +// +// Created by Dana Buehre on 3/9/22. +// +// + +#include "TranquilPreferencesController.h" +#import "Prefix.h" + +#import +#import + +#import +#import + +TranquilPreferencesController *loadedController; + +@interface TranquilPreferencesController () + +- (NSArray *)audioMetadata; +- (NSArray *)activeSoundTitles; +- (NSArray *)activeSoundValues; + +@end + +@implementation TranquilPreferencesController { + + __strong NSUserDefaults *_preferences; + __weak PSTableCell *_volumeDisplayCell; + __weak PSSpecifier *_volumeControlSpecifier; + __weak PSTableCell *_volumeWithMediaDisplayCell; + __weak PSSpecifier *_volumeWithMediaControlSpecifier; + AVAudioPlayer *_musicPlayer; + AVAudioPlayer *_soundPlayer; +} + +- (NSMutableArray *)specifiers +{ + if(!_specifiers) { + + _specifiers = [self loadSpecifiersFromPlistName:@"Preferences" target:self].mutableCopy; + } + + return _specifiers; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + loadedController = self; + _preferences = [[NSUserDefaults alloc] initWithSuiteName:@"com.creaturecoding.tranquil"]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + PSTableCell *cell = (PSTableCell *)[super tableView:tableView cellForRowAtIndexPath:indexPath]; + + if ([cell.specifier.identifier isEqualToString:@"volumeDisplaySpecifier"]) { + + _volumeDisplayCell = cell; + cell.textLabel.textColor = [UIColor systemGrayColor]; + cell.separatorInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, CGFLOAT_MAX); + + } else if ([cell.specifier.identifier isEqualToString:@"volumeSpecifier"]) { + + _volumeControlSpecifier = cell.specifier; + UISlider *slider = (UISlider *)[(PSControlTableCell *)cell control]; + [slider addTarget:self action:@selector(refreshVolumeDisplay) forControlEvents:UIControlEventValueChanged]; + [slider setContinuous:YES]; + + } else if ([cell.specifier.identifier isEqualToString:@"volumeWithMediaDisplaySpecifier"]) { + + _volumeWithMediaDisplayCell = cell; + cell.textLabel.textColor = [UIColor systemGrayColor]; + cell.separatorInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, CGFLOAT_MAX); + + } else if ([cell.specifier.identifier isEqualToString:@"volumeWithMediaSpecifier"]) { + + _volumeWithMediaControlSpecifier = cell.specifier; + UISlider *slider = (UISlider *)[(PSControlTableCell *)cell control]; + [slider addTarget:self action:@selector(refreshVolumeWithMediaDisplay) forControlEvents:UIControlEventValueChanged]; + [slider setContinuous:YES]; + } + + return cell; +} + +- (NSUserDefaults *)preferences +{ + return _preferences; +} + +- (NSURL *)userImportedSoundsDirectoryURL +{ + return [NSURL fileURLWithPath:@"/var/mobile/Library/Application Support/Tranquil/Audio"]; +} + +- (NSArray *)audioMetadata +{ + return AudioMetadata([NSBundle bundleForClass:self.class].bundlePath); +} + +- (NSArray *)downloadableMetadata +{ + return DownloadableAudioMetadata(); +} + +- (NSArray *)activeSoundTitles +{ + NSArray *metadata = [self audioMetadata]; + NSArray *downloadableMetadata = [self downloadableMetadata]; + NSMutableArray *titles = [NSMutableArray new]; + + for (NSDictionary *entry in metadata) + { + [titles addObject:Localize(entry[@"name"])]; + } + + for (NSDictionary *entry in downloadableMetadata) + { + NSString *name = Localize(entry[@"name"]); + if ([titles containsObject:name]) continue; + [titles addObject:name]; + } + + return titles; +} + +- (NSArray *)activeSoundValues +{ + NSArray *metadata = [self audioMetadata]; + NSArray *downloadableMetadata = [self downloadableMetadata]; + NSMutableArray *values = [NSMutableArray new]; + + for (NSDictionary *entry in metadata) + { + [values addObject:entry[@"path"]]; + } + + for (NSDictionary *entry in downloadableMetadata) + { + if ([values containsObject:entry[@"path"]]) continue; + [values addObject:entry[@"path"]]; + } + + return values; +} + +- (NSString *)getActiveVolume +{ + PSSpecifier *controlSpecifier = _volumeControlSpecifier ? : [self specifierForID:@"volumeSpecifier"]; + float value = [[self readPreferenceValue:controlSpecifier] floatValue]; + return [NSString stringWithFormat:@"%d", (int)(value * 100)]; +} + +- (void)refreshVolumeDisplay +{ + _volumeDisplayCell.detailTextLabel.text = [self getActiveVolume]; +} + +- (NSString *)getActiveVolumeWithMedia +{ + PSSpecifier *controlSpecifier = _volumeWithMediaControlSpecifier ? : [self specifierForID:@"volumeWithMediaSpecifier"]; + float value = [[self readPreferenceValue:controlSpecifier] floatValue]; + return [NSString stringWithFormat:@"%d", (int)(value * 100)]; +} + +- (void)refreshVolumeWithMediaDisplay +{ + _volumeWithMediaDisplayCell.detailTextLabel.text = [self getActiveVolumeWithMedia]; + + if (_soundPlayer && _soundPlayer.isPlaying) { + + PSSpecifier *controlSpecifier = _volumeWithMediaControlSpecifier ? : [self specifierForID:@"volumeWithMediaSpecifier"]; + _soundPlayer.volume = [[self readPreferenceValue:controlSpecifier] floatValue]; + } +} + +- (void)playSampleWithMedia +{ + [_preferences setBool:YES forKey:@"kPauseForSample"]; + CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.creaturecoding.tranquil/preferences-changed"), NULL, NULL, TRUE); + + PSSpecifier *stopSampleSpecifier = [PSSpecifier preferenceSpecifierNamed:Localize(@"STOP_SAMPLE_BUTTON_LABEL") target:self set:NULL get:NULL detail:Nil cell:PSButtonCell edit:Nil]; + stopSampleSpecifier->action = @selector(stopSampleWithMedia); + stopSampleSpecifier.identifier = @"stopSampleSpecifier"; + + [self replaceContiguousSpecifiers:@[[self specifierForID:@"playSampleSpecifier"]] withSpecifiers:@[stopSampleSpecifier]]; + + PSSpecifier *controlSpecifier = _volumeWithMediaControlSpecifier ? : [self specifierForID:@"volumeWithMediaSpecifier"]; + float volume = [[self readPreferenceValue:controlSpecifier] floatValue]; + + NSString *activeSoundPath = [self readPreferenceValue:[self specifierForID:@"activeSoundSpecifier"]] + ? : DefaultValueForKey(@"kActiveSound"); + NSURL *soundURL = [NSURL fileURLWithPath:activeSoundPath]; + NSURL *musicURL = [NSURL fileURLWithPath:@"/Library/Ringtones/Night Owl.m4r"]; + + _soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil]; + _musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil]; + + _soundPlayer.numberOfLoops = -1; + _soundPlayer.volume = volume; + _musicPlayer.delegate = self; + + [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; + [[AVAudioSession sharedInstance] setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; + [_soundPlayer play]; + [_musicPlayer play]; +} + +- (void)stopSampleWithMedia +{ + PSSpecifier *playSampleSpecifier = [PSSpecifier preferenceSpecifierNamed:Localize(@"PLAY_SAMPLE_BUTTON_LABEL") target:self set:NULL get:NULL detail:Nil cell:PSButtonCell edit:Nil]; + playSampleSpecifier->action = @selector(playSampleWithMedia); + playSampleSpecifier.identifier = @"playSampleSpecifier"; + + [self replaceContiguousSpecifiers:@[[self specifierForID:@"stopSampleSpecifier"]] withSpecifiers:@[playSampleSpecifier]]; + + [_soundPlayer stop]; + [_musicPlayer stop]; + _soundPlayer = nil; + _musicPlayer = nil; + + [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:nil]; + + [_preferences setBool:NO forKey:@"kPauseForSample"]; + CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR("com.creaturecoding.tranquil/preferences-changed"), NULL, NULL, TRUE); +} + +- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag +{ + [self stopSampleWithMedia]; +} + +- (void)openImportDirectory +{ + NSString *filzaURLString = [NSString stringWithFormat:@"filza://view%@", [self userImportedSoundsDirectoryURL].resourceSpecifier]; + [UIApplication.sharedApplication openURL:[NSURL URLWithString:filzaURLString] options:@{} completionHandler:nil]; +} + +- (void)openTranslations +{ + [self openURLInBrowser:@"https://github.com/CreatureSurvive/Project-Localizations"]; +} + +- (void)openSourceCode +{ + [self openURLInBrowser:@"https://github.com/CreatureSurvive/Tranquil"]; +} + +- (void)openDepiction +{ + [self openURLInBrowser:@"https://creaturecoding.com/?page=depiction&id=tranquil"]; +} + +- (void)openURLInBrowser:(NSString *)url { + SFSafariViewController *safari = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:url]]; + safari.delegate = self; + [self presentViewController:safari animated:YES completion:nil]; +} + +- (void)presentDocumentPicker +{ + UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.audio"] inMode:UIDocumentPickerModeImport]; + documentPicker.delegate = self; + [self presentViewController:documentPicker animated:YES completion:nil]; +} + +- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url +{ + if (!url || ![NSFileManager.defaultManager fileExistsAtPath:url.path]) { + + NSString *accessMessage = Localize(@"IMPORTING_FILE_ACCESSIBILITY_ERROR_MESSAGE"); + UIAlertController *accessAlert = [UIAlertController alertControllerWithTitle:Localize(@"IMPORTING_FILE_ERROR_TITLE") message:accessMessage preferredStyle:UIAlertControllerStyleAlert]; + [accessAlert addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleCancel handler:nil]]; + [self presentViewController:accessAlert animated:YES completion:nil]; + return; + } + + __block NSString *fileName = [url.lastPathComponent stringByDeletingPathExtension]; + + NSString *renameMessage = Localize(@"RENAME_FILE_MESSAGE"); + UIAlertController *renameController = [UIAlertController alertControllerWithTitle:Localize(@"RENAME_FILE_TITLE") message:renameMessage preferredStyle:UIAlertControllerStyleAlert]; + [renameController addTextFieldWithConfigurationHandler:^(UITextField *textField) { + textField.text = fileName; + textField.placeholder = fileName; + }]; + [renameController addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { + NSString *newFileName = [renameController.textFields[0] text]; + + // invalid name + if (newFileName.length == 0 || [newFileName hasPrefix:@"."]) { + + NSString *message = [NSString stringWithFormat:Localize(@"RENAME_FILE_ERROR_MESSAGE"), fileName, newFileName]; + UIAlertController *invalidAlert = [UIAlertController alertControllerWithTitle:Localize(@"RENAME_FILE_TITLE") message:message preferredStyle:UIAlertControllerStyleAlert]; + [invalidAlert addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { + [renameController.textFields[0] setText:fileName]; + [renameController.textFields[0] setPlaceholder:fileName]; + [self presentViewController:renameController animated:YES completion:nil]; + }]]; + + [self presentViewController:invalidAlert animated:YES completion:nil]; + + // valid name + } else { + + newFileName = [newFileName stringByAppendingPathExtension:url.pathExtension]; + + NSError *error; + NSURL *destination = [NSURL fileURLWithPath:newFileName relativeToURL:[self userImportedSoundsDirectoryURL]]; +// [NSFileManager.defaultManager copyItemAtURL:url toURL:destination error:&error]; + [NSFileManager.defaultManager moveItemAtURL:url toURL:destination error:&error]; + + // error copying file + if (error) { + + [self presentViewController:GenericErrorAlert(error, self) animated:YES completion:nil]; + + // success + } else { + + NSString *message = [NSString stringWithFormat:Localize(@"IMPORTED_FILE_MESSAGE"), newFileName]; + UIAlertController *successAlert = [UIAlertController alertControllerWithTitle:Localize(@"IMPORTED_FILE_TITLE") message:message preferredStyle:UIAlertControllerStyleAlert]; + [successAlert addAction:[UIAlertAction actionWithTitle:Localize(@"OKAY_LABEL") style:UIAlertActionStyleCancel handler:nil]]; + + [self presentViewController:successAlert animated:YES completion:nil]; + [self reloadSpecifiers]; + } + } + }]]; + [renameController addAction:[UIAlertAction actionWithTitle:Localize(@"CANCEL_LABEL") style:UIAlertActionStyleCancel handler:nil]]; + [self presentViewController:renameController animated:YES completion:nil]; +} + +@end + +void preferencesChangedExternally(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) +{ + if (loadedController) { + + [loadedController reloadSpecifiers]; + } +} + +__attribute__((constructor)) +static void init(void) +{ + CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, preferencesChangedExternally, CFSTR("com.creaturecoding.tranquil/preferences-changed-externally"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately); +} \ No newline at end of file diff --git a/Classes/UIImage+TranquilModule.h b/Classes/UIImage+TranquilModule.h new file mode 100644 index 0000000..30151de --- /dev/null +++ b/Classes/UIImage+TranquilModule.h @@ -0,0 +1,17 @@ +// +// UIImage+TranquilModule.h +// Tranquil +// +// Created by Dana Buehre on 3/14/22. +// +// + +#import +#import + +@interface UIImage (TranquilModule) + ++ (UIImage *)tranquil_moduleImageNamed:(NSString *)imageName; ++ (UIImage *)tranquil_imageWithColor:(UIColor *)color size:(CGSize)size; + +@end \ No newline at end of file diff --git a/Classes/UIImage+TranquilModule.m b/Classes/UIImage+TranquilModule.m new file mode 100644 index 0000000..9833086 --- /dev/null +++ b/Classes/UIImage+TranquilModule.m @@ -0,0 +1,41 @@ +// +// UIImage+TranquilModule.m +// Tranquil +// +// Created by Dana Buehre on 3/14/22. +// +// + +#import "UIImage+TranquilModule.h" + + +@implementation UIImage (TranquilModule) + ++ (UIImage *)tranquil_moduleImageNamed:(NSString *)imageName +{ + static NSBundle *moduleBundle; + + if (!moduleBundle) { + + moduleBundle = [NSBundle bundleWithPath:@"/Library/ControlCenter/Bundles/Tranquil.bundle"]; + } + + return [UIImage imageNamed:imageName inBundle:moduleBundle compatibleWithTraitCollection:nil]; +} + ++ (UIImage *)tranquil_imageWithColor:(UIColor *)color size:(CGSize)size +{ + CGRect rect = CGRectMake(0, 0, size.width, size.height); + + UIGraphicsBeginImageContextWithOptions(size, NO, 0); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetFillColorWithColor(context, [color CGColor]); + CGContextFillRect(context, rect); + + UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return img; +} + +@end \ No newline at end of file diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCSModuleRepositoryObserver.h b/Frameworks/ControlCenterUI.framework/Headers/CCSModuleRepositoryObserver.h new file mode 100644 index 0000000..5cb3d4f --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCSModuleRepositoryObserver.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCSModuleRepositoryObserver +@required +- (void)loadableModulesChangedForModuleRepository:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCSModuleSettingsProviderObserver.h b/Frameworks/ControlCenterUI.framework/Headers/CCSModuleSettingsProviderObserver.h new file mode 100644 index 0000000..773e12d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCSModuleSettingsProviderObserver.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCSModuleSettingsProviderObserver +@required +- (void)orderedEnabledModuleIdentifiersChangedForSettingsProvider:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimation.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimation.h new file mode 100644 index 0000000..c203f19 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimation.h @@ -0,0 +1,35 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@protocol CCUIAnimationParameters; +@interface CCUIAnimation : NSObject { + + id _parameters; + CGFloat _delay; + CGFloat _speed; + /*^block*/ id _animations; + +} + +@property (nonatomic,copy,readonly) id parameters; //@synthesize parameters=_parameters - In the implementation block +@property (nonatomic,readonly) CGFloat delay; //@synthesize delay=_delay - In the implementation block +@property (nonatomic,readonly) CGFloat speed; //@synthesize speed=_speed - In the implementation block +@property (nonatomic,copy,readonly) id animations; //@synthesize animations=_animations - In the implementation block ++ (id)animationWithParameters:(id)arg1 animations:(/*^block*/ id)arg2; ++ (id)animationWithParameters:(id)arg1 delay:(CGFloat)arg2 animations:(/*^block*/ id)arg3; ++ (id)animationWithParameters:(id)arg1 delay:(CGFloat)arg2 speed:(CGFloat)arg3 animations:(/*^block*/ id)arg4; +- (id)copyWithZone:(NSZone*)arg1; +- (CGFloat)speed; +- (id)parameters; +- (CGFloat)delay; +- (id)animations; +- (instancetype)_initWithParameters:(id)arg1 delay:(CGFloat)arg2 speed:(CGFloat)arg3 animations:(/*^block*/ id)arg4; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationBatch.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationBatch.h new file mode 100644 index 0000000..afaf2d3 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationBatch.h @@ -0,0 +1,21 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@class NSMutableDictionary; + +@interface CCUIAnimationBatch : NSObject { + + NSMutableDictionary* _animationsByParameters; + +} +- (instancetype)init; +- (void)addAnimation:(id)arg1; +- (void)iterateAnimationsWithBlock:(/*^block*/ id)arg1; +- (void)iterateAnimationsOfType:(Class)arg1 withBlock:(/*^block*/ id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationCustomTimingFunctionParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationCustomTimingFunctionParameters.h new file mode 100644 index 0000000..fe0d41d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationCustomTimingFunctionParameters.h @@ -0,0 +1,35 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIAnimationTimingFunctionDescription.h" + +@class NSString; + +@interface CCUIAnimationCustomTimingFunctionParameters : NSObject { + + CGPoint _controlPoint1; + CGPoint _controlPoint2; + +} + +@property (nonatomic,readonly) CGPoint controlPoint1; //@synthesize controlPoint1=_controlPoint1 - In the implementation block +@property (nonatomic,readonly) CGPoint controlPoint2; //@synthesize controlPoint2=_controlPoint2 - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; ++ (id)functionWithControlPoint1:(CGPoint)arg1 controlPoint2:(CGPoint)arg2; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (NSString *)description; +- (id)copyWithZone:(NSZone*)arg1; +- (CGPoint)controlPoint1; +- (CGPoint)controlPoint2; +- (instancetype)_initWithControlPoint1:(CGPoint)arg1 controlPoint2:(CGPoint)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationParameters.h new file mode 100644 index 0000000..81bc0fe --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationParameters.h @@ -0,0 +1,11 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIAnimationParameters +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationRunner.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationRunner.h new file mode 100644 index 0000000..5ab96f6 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationRunner.h @@ -0,0 +1,23 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol OS_dispatch_group; +@class NSObject; + +@interface CCUIAnimationRunner : NSObject { + + NSObject* _previousAnimationGroup; + +} ++ (id)runner; ++ (void)_runCAAnimationsInBatch:(id)arg1 animationGroup:(id)arg2 completionHandler:(/*^block*/ id)arg3; ++ (void)_runC2AnimationsInBatch:(id)arg1 animationGroup:(id)arg2 completionHandler:(/*^block*/ id)arg3; +- (void)runAnimationBatch:(id)arg1 withCompletionBlock:(/*^block*/ id)arg2; +- (void)additivelyRunAnimationBatch:(id)arg1 withCompletionBlock:(/*^block*/ id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationTimingFunctionDescription.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationTimingFunctionDescription.h new file mode 100644 index 0000000..0029bc7 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIAnimationTimingFunctionDescription.h @@ -0,0 +1,11 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIAnimationTimingFunctionDescription +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIC2AnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIC2AnimationParameters.h new file mode 100644 index 0000000..2027a0b --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIC2AnimationParameters.h @@ -0,0 +1,40 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIAnimationParameters.h" + + +@class NSString; + +@interface CCUIC2AnimationParameters : NSObject { + + BOOL _interactive; + CGFloat _tension; + CGFloat _friction; + +} + +@property (getter=isInteractive,nonatomic,readonly) BOOL interactive; //@synthesize interactive=_interactive - In the implementation block +@property (nonatomic,readonly) CGFloat tension; //@synthesize tension=_tension - In the implementation block +@property (nonatomic,readonly) CGFloat friction; //@synthesize friction=_friction - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (instancetype)init; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (NSString *)description; +- (BOOL)isInteractive; +- (id)copyWithZone:(NSZone*)arg1; +- (CGFloat)friction; +- (id)mutableCopyWithZone:(NSZone*)arg1; +- (CGFloat)tension; +- (instancetype)_initWithAnimationParameters:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUICAAnimationFactory.h b/Frameworks/ControlCenterUI.framework/Headers/CCUICAAnimationFactory.h new file mode 100644 index 0000000..4dacadf --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUICAAnimationFactory.h @@ -0,0 +1,16 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "_UIBasicAnimationFactory.h" + +@protocol CCUICAAnimationFactory <_UIBasicAnimationFactory> +@property (nonatomic,readonly) CGFloat animationDuration; +@required +- (CGFloat)animationDuration; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationFactory.h b/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationFactory.h new file mode 100644 index 0000000..518dab1 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationFactory.h @@ -0,0 +1,30 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCUICAAnimationFactory.h" + +@class CCUICABasicAnimationParameters, NSString; + +@interface CCUICABasicAnimationFactory : NSObject { + + CCUICABasicAnimationParameters* _parameters; + CGFloat _speed; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat animationDuration; +- (id)_basicAnimationForView:(id)arg1 withKeyPath:(id)arg2; +- (BOOL)_shouldAnimateAdditivelyForView:(id)arg1 withKeyPath:(id)arg2; +- (CGFloat)animationDuration; +- (id)_animation; +- (instancetype)initWithParameters:(id)arg1 speed:(CGFloat)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationParameters.h new file mode 100644 index 0000000..9149e39 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUICABasicAnimationParameters.h @@ -0,0 +1,38 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIAnimationParameters.h" + + +@protocol CCUIAnimationTimingFunctionDescription; +@class NSString; + +@interface CCUICABasicAnimationParameters : NSObject { + + CGFloat _duration; + id _timingFunction; + +} + +@property (nonatomic,readonly) CGFloat duration; //@synthesize duration=_duration - In the implementation block +@property (nonatomic,copy,readonly) id timingFunction; //@synthesize timingFunction=_timingFunction - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (instancetype)init; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (NSString *)description; +- (CGFloat)duration; +- (id)copyWithZone:(NSZone*)arg1; +- (id)timingFunction; +- (id)mutableCopyWithZone:(NSZone*)arg1; +- (instancetype)_initWithAnimationParameters:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationFactory.h b/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationFactory.h new file mode 100644 index 0000000..97b0f84 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationFactory.h @@ -0,0 +1,30 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCUICAAnimationFactory.h" + +@class CCUICASpringAnimationParameters, NSString; + +@interface CCUICASpringAnimationFactory : NSObject { + + CCUICASpringAnimationParameters* _parameters; + CGFloat _speed; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat animationDuration; +- (id)_basicAnimationForView:(id)arg1 withKeyPath:(id)arg2; +- (BOOL)_shouldAnimateAdditivelyForView:(id)arg1 withKeyPath:(id)arg2; +- (CGFloat)animationDuration; +- (id)_animation; +- (instancetype)initWithParameters:(id)arg1 speed:(CGFloat)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationParameters.h new file mode 100644 index 0000000..dc58d4c --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUICASpringAnimationParameters.h @@ -0,0 +1,44 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIAnimationParameters.h" + + +@protocol CCUIAnimationTimingFunctionDescription; +@class NSString; + +@interface CCUICASpringAnimationParameters : NSObject { + + CGFloat _mass; + CGFloat _stiffness; + CGFloat _damping; + id _timingFunction; + +} + +@property (nonatomic,readonly) CGFloat mass; //@synthesize mass=_mass - In the implementation block +@property (nonatomic,readonly) CGFloat stiffness; //@synthesize stiffness=_stiffness - In the implementation block +@property (nonatomic,readonly) CGFloat damping; //@synthesize damping=_damping - In the implementation block +@property (nonatomic,copy,readonly) id timingFunction; //@synthesize timingFunction=_timingFunction - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (instancetype)init; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (NSString *)description; +- (id)copyWithZone:(NSZone*)arg1; +- (id)timingFunction; +- (CGFloat)damping; +- (CGFloat)mass; +- (id)mutableCopyWithZone:(NSZone*)arg1; +- (CGFloat)stiffness; +- (instancetype)_initWithAnimationParameters:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleBackgroundView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleBackgroundView.h new file mode 100644 index 0000000..0b5ac73 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleBackgroundView.h @@ -0,0 +1,15 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIContentModuleBackgroundView : UIView +- (instancetype)initWithFrame:(CGRect)arg1; +- (void)setUserInteractionEnabled:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerTransition.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerTransition.h new file mode 100644 index 0000000..0382b5f --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerTransition.h @@ -0,0 +1,33 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "_UIPreviewInteractionViewControllerTransition.h" + +@class CCUIContentModuleContainerViewController, NSString; + +@interface CCUIContentModuleContainerTransition : NSObject <_UIPreviewInteractionViewControllerTransition> { + + BOOL _appearanceTransition; + CCUIContentModuleContainerViewController* _viewController; + +} + +@property (nonatomic,weak) CCUIContentModuleContainerViewController * viewController; //@synthesize viewController=_viewController - In the implementation block +@property (assign,getter=isAppearanceTransition,nonatomic) BOOL appearanceTransition; //@synthesize appearanceTransition=_appearanceTransition - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (void)setViewController:(CCUIContentModuleContainerViewController *)arg1; +- (CCUIContentModuleContainerViewController *)viewController; +- (void)setAppearanceTransition:(BOOL)arg1; +- (void)prepareTransitionFromView:(id)arg1 toView:(id)arg2 containerView:(id)arg3; +- (void)performTransitionFromView:(id)arg1 toView:(id)arg2 containerView:(id)arg3; +- (void)transitionDidEnd:(BOOL)arg1; +- (BOOL)isAppearanceTransition; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerView.h new file mode 100644 index 0000000..cbcb726 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerView.h @@ -0,0 +1,36 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class NSArray, NSString, UIView; + +@interface CCUIContentModuleContainerView : UIView { + + NSArray* _views; + BOOL _ignoreFrameUpdates; + NSString* _moduleIdentifier; + UIView* _c2AnimationContainerView; + UIView* _caAnimationContainerView; + +} + +@property (nonatomic,copy,readonly) NSString * moduleIdentifier; //@synthesize moduleIdentifier=_moduleIdentifier - In the implementation block +@property (nonatomic,readonly) UIView * c2AnimationContainerView; //@synthesize c2AnimationContainerView=_c2AnimationContainerView - In the implementation block +@property (nonatomic,readonly) UIView * caAnimationContainerView; //@synthesize caAnimationContainerView=_caAnimationContainerView - In the implementation block +@property (nonatomic,readonly) UIView * containerView; +@property (assign,nonatomic) BOOL ignoreFrameUpdates; //@synthesize ignoreFrameUpdates=_ignoreFrameUpdates - In the implementation block +- (void)layoutSubviews; +- (UIView *)containerView; +- (NSString *)moduleIdentifier; +- (void)setIgnoreFrameUpdates:(BOOL)arg1; +- (instancetype)initWithModuleIdentifier:(id)arg1 options:(NSUInteger)arg2; +- (BOOL)ignoreFrameUpdates; +- (UIView *)c2AnimationContainerView; +- (UIView *)caAnimationContainerView; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewController.h new file mode 100644 index 0000000..54bb267 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewController.h @@ -0,0 +1,128 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "UIPreviewInteractionDelegatePrivate.h" +#import "CCUISafeAppearancePropagationProvider.h" + +@protocol CCUIContentModuleContainerViewControllerDelegate, CCUIContentModule, CCUIContentModuleContentViewController; +@class NSString, NSArray, UIViewController, UIView, CCUIContentModuleBackgroundView, CCUIContentModuleContentContainerView, UITapGestureRecognizer, UIPreviewInteraction; + +@interface CCUIContentModuleContainerViewController : UIViewController { + + BOOL _expanded; + BOOL _contentModuleProvidesOwnPlatter; + NSString* _moduleIdentifier; + id _delegate; + NSArray* _topLevelBlockingGestureRecognizers; + id _contentModule; + UIViewController* _contentViewController; + UIViewController* _backgroundViewController; + UIView* _highlightWrapperView; + CCUIContentModuleBackgroundView* _backgroundView; + CCUIContentModuleContentContainerView* _contentContainerView; + UIView* _contentView; + UIView* _maskView; + UITapGestureRecognizer* _tapRecognizer; + UIPreviewInteraction* _previewInteraction; + UIEdgeInsets _expandedContentEdgeInsets; + +} + +@property (nonatomic,copy) NSString * moduleIdentifier; //@synthesize moduleIdentifier=_moduleIdentifier - In the implementation block +@property (nonatomic,retain) id contentModule; //@synthesize contentModule=_contentModule - In the implementation block +@property (nonatomic,retain) UIViewController* contentViewController; //@synthesize contentViewController=_contentViewController - In the implementation block +@property (nonatomic,retain) UIViewController * backgroundViewController; //@synthesize backgroundViewController=_backgroundViewController - In the implementation block +@property (assign,nonatomic) BOOL contentModuleProvidesOwnPlatter; //@synthesize contentModuleProvidesOwnPlatter=_contentModuleProvidesOwnPlatter - In the implementation block +@property (nonatomic,retain) UIView * highlightWrapperView; //@synthesize highlightWrapperView=_highlightWrapperView - In the implementation block +@property (nonatomic,retain) CCUIContentModuleBackgroundView * backgroundView; //@synthesize backgroundView=_backgroundView - In the implementation block +@property (nonatomic,retain) CCUIContentModuleContentContainerView * contentContainerView; //@synthesize contentContainerView=_contentContainerView - In the implementation block +@property (nonatomic,retain) UIView * contentView; //@synthesize contentView=_contentView - In the implementation block +@property (nonatomic,retain) UIView * maskView; //@synthesize maskView=_maskView - In the implementation block +@property (nonatomic,retain) UITapGestureRecognizer * tapRecognizer; //@synthesize tapRecognizer=_tapRecognizer - In the implementation block +@property (nonatomic,retain) UIPreviewInteraction * previewInteraction; //@synthesize previewInteraction=_previewInteraction - In the implementation block +@property (assign,getter=isExpanded,nonatomic) BOOL expanded; //@synthesize expanded=_expanded - In the implementation block +@property (assign,nonatomic) UIEdgeInsets expandedContentEdgeInsets; //@synthesize expandedContentEdgeInsets=_expandedContentEdgeInsets - In the implementation block +@property (nonatomic,readonly) CCUIContentModuleContentContainerView * moduleContentView; +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (nonatomic,readonly) NSArray * topLevelBlockingGestureRecognizers; //@synthesize topLevelBlockingGestureRecognizers=_topLevelBlockingGestureRecognizers - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) NSArray * childViewControllersForAppearancePropagation; +- (instancetype)init; +- (void)setContentView:(UIView *)arg1; +- (UIView *)contentView; +- (id)delegate; +- (instancetype)initWithCoder:(id)arg1; +- (void)setDelegate:(id)arg1; +- (void)loadView; +- (void)setContentViewController:(UIViewController*)arg1; +- (instancetype)initWithNibName:(id)arg1 bundle:(id)arg2; +- (void)setMaskView:(UIView *)arg1; +- (UIView *)maskView; +- (void)viewWillLayoutSubviews; +- (void)setBackgroundView:(CCUIContentModuleBackgroundView *)arg1; +- (CCUIContentModuleBackgroundView *)backgroundView; +- (UIViewController*)contentViewController; +- (BOOL)shouldAutomaticallyForwardAppearanceMethods; +- (BOOL)isExpanded; +- (void)previewInteraction:(id)arg1 didUpdatePreviewTransition:(CGFloat)arg2 ended:(BOOL)arg3; +- (void)previewInteractionDidCancel:(id)arg1; +- (BOOL)previewInteractionShouldBegin:(id)arg1; +- (id)_previewInteractionHighlighterForPreviewTransition:(id)arg1; +- (id)_previewInteraction:(id)arg1 viewControllerPresentationForPresentingViewController:(id)arg2; +- (BOOL)_previewInteractionShouldFinishTransitionToPreview:(id)arg1; +- (BOOL)_previewInteractionShouldAutomaticallyTransitionToPreviewAfterDelay:(id)arg1; +- (void)setExpanded:(BOOL)arg1; +- (UIPreviewInteraction *)previewInteraction; +- (void)setPreviewInteraction:(UIPreviewInteraction *)arg1; +- (NSString *)moduleIdentifier; +- (void)expandModule; +- (void)dismissExpandedModuleAnimated:(BOOL)arg1; +- (void)willResignActive; +- (void)willBecomeActive; +- (void)_handleTapGestureRecognizer:(id)arg1; +- (void)setContentContainerView:(CCUIContentModuleContentContainerView *)arg1; +- (UITapGestureRecognizer *)tapRecognizer; +- (void)setTapRecognizer:(UITapGestureRecognizer *)arg1; +- (CCUIContentModuleContentContainerView *)contentContainerView; +- (void)dismissPresentedContentAnimated:(BOOL)arg1; +- (NSArray *)topLevelBlockingGestureRecognizers; +- (BOOL)_shouldApplyBackgroundEffects; +- (instancetype)initWithModuleIdentifier:(id)arg1 contentModule:(id)arg2; +- (void)setExpandedContentEdgeInsets:(UIEdgeInsets)arg1; +- (void)_closeExpandedModule; +- (void)_dismissModulePresentedContentAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (void)_configureForContentModuleGroupRenderingIfNecessary; +- (void)_findTopLevelGestureRecognizersForView:(id)arg1 installOnView:(id)arg2; +- (void)_addTopLevelGestureRecognizersFromViewAndSubviews:(id)arg1 toGestureRecognizers:(id)arg2 blockingGestureRecognizers:(id)arg3; +- (CGRect)_backgroundFrameForExpandedState; +- (CGRect)_contentFrameForExpandedState; +- (BOOL)_isForceTouchAvailable; +- (CGRect)_contentBoundsForExpandedState; +- (CGRect)_presentationFrameForExpandedState; +- (CGRect)_contentFrameForRestState; +- (void)_configureMaskViewIfNecessary; +- (CCUIContentModuleContentContainerView *)moduleContentView; +- (void)_setDidExpandModulePreference; +- (CGRect)_backgroundFrameForRestState; +- (CGRect)_contentBoundsForTransitionProgress:(CGFloat)arg1; +- (void)setModuleIdentifier:(NSString *)arg1; +- (UIEdgeInsets)expandedContentEdgeInsets; +- (id)contentModule; +- (void)setContentModule:(id)arg1; +- (void)setBackgroundViewController:(UIViewController *)arg1; +- (BOOL)contentModuleProvidesOwnPlatter; +- (void)setContentModuleProvidesOwnPlatter:(BOOL)arg1; +- (UIView *)highlightWrapperView; +- (void)setHighlightWrapperView:(UIView *)arg1; +- (UIViewController *)backgroundViewController; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewControllerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewControllerDelegate.h new file mode 100644 index 0000000..1718ad7 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContainerViewControllerDelegate.h @@ -0,0 +1,23 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIContentModuleContainerViewControllerDelegate +@required +- (CGRect*)compactModeFrameForContentModuleContainerViewController:(id)arg1; +- (BOOL)contentModuleContainerViewController:(id)arg1 canBeginInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didBeginInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didFinishInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 willOpenExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didOpenExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 willCloseExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didCloseExpandedModule:(id)arg2; +- (BOOL)shouldApplyBackgroundEffectsForContentModuleContainerViewController:(id)arg1; +- (id)backgroundViewForContentModuleContainerViewController:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContentContainerView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContentContainerView.h new file mode 100644 index 0000000..3726408 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContentContainerView.h @@ -0,0 +1,44 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class MTMaterialView, NSString; + +@interface CCUIContentModuleContentContainerView : UIView { + + BOOL _expanded; + BOOL _moduleProvidesOwnPlatter; + BOOL _clipsContentInCompactMode; + MTMaterialView* _moduleMaterialView; + NSString* _materialViewGroupName; + +} + +@property (assign,nonatomic) BOOL moduleProvidesOwnPlatter; //@synthesize moduleProvidesOwnPlatter=_moduleProvidesOwnPlatter - In the implementation block +@property (nonatomic,readonly) MTMaterialView * moduleMaterialView; //@synthesize moduleMaterialView=_moduleMaterialView - In the implementation block +@property (nonatomic,copy) NSString * materialViewGroupName; //@synthesize materialViewGroupName=_materialViewGroupName - In the implementation block +@property (assign,nonatomic) BOOL clipsContentInCompactMode; //@synthesize clipsContentInCompactMode=_clipsContentInCompactMode - In the implementation block +- (instancetype)init; +- (instancetype)initWithFrame:(CGRect)arg1; +- (void)addSubview:(id)arg1; +- (void)layoutSubviews; +- (void)_setContinuousCornerRadius:(CGFloat)arg1; +- (void)_transitionToExpandedMode:(BOOL)arg1 force:(BOOL)arg2; +- (void)_configureModuleMaterialViewIfNecessary; +- (BOOL)_isContentClippingRequiredForSubview:(id)arg1; +- (void)transitionToExpandedMode:(BOOL)arg1; +- (void)setModuleProvidesOwnPlatter:(BOOL)arg1; +- (MTMaterialView *)moduleMaterialView; +- (void)setMaterialViewGroupName:(NSString *)arg1; +- (BOOL)moduleProvidesOwnPlatter; +- (NSString *)materialViewGroupName; +- (BOOL)clipsContentInCompactMode; +- (void)setClipsContentInCompactMode:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContextDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContextDelegate.h new file mode 100644 index 0000000..21c1c1a --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIContentModuleContextDelegate.h @@ -0,0 +1,16 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIContentModuleContextDelegate +@required +- (void)contentModuleContext:(id)arg1 enqueueStatusUpdate:(id)arg2; +- (void)requestExpandModuleForContentModuleContext:(id)arg1; +- (void)dismissExpandedViewForContentModuleContext:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterDefaults.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterDefaults.h new file mode 100644 index 0000000..59776dc --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterDefaults.h @@ -0,0 +1,28 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@interface CCUIControlCenterDefaults : BSAbstractDefaultDomain + +@property (nonatomic,readonly) BOOL shouldAlwaysBeEnabled; +@property (nonatomic,readonly) BOOL shouldExcludeControlCenterFromStatusBarOverrides; +@property (assign,nonatomic) BOOL hasForceTouchedToExpandModule; +@property (assign,nonatomic) BOOL hasLongPressedToExpandModule; ++ (id)standardDefaults; +- (void)setShouldAlwaysBeEnabled:(BOOL)arg1; +- (BOOL)shouldAlwaysBeEnabled; +- (void)setHasForceTouchedToExpandModule:(BOOL)arg1; +- (BOOL)hasForceTouchedToExpandModule; +- (void)setShouldExcludeControlCenterFromStatusBarOverrides:(BOOL)arg1; +- (BOOL)shouldExcludeControlCenterFromStatusBarOverrides; +- (void)setHasLongPressedToExpandModule:(BOOL)arg1; +- (BOOL)hasLongPressedToExpandModule; +- (instancetype)init; +- (void)_bindAndRegisterDefaults; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProvider.h new file mode 100644 index 0000000..c936f1d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProvider.h @@ -0,0 +1,29 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +#import +@class NSArray, NSDictionary; + +@interface CCUIControlCenterPositionProvider : NSObject { + + NSArray* _packingRules; + NSDictionary* _rectByIdentifier; + CCUILayoutSize _layoutSize; + +} + +@property (nonatomic,readonly) CCUILayoutSize layoutSize; //@synthesize layoutSize=_layoutSize - In the implementation block +@property (nonatomic,readonly) CCUILayoutSize maximumLayoutSize; +- (CCUILayoutSize)layoutSize; +- (id)_generateRectByIdentifierWithOrderedIdentifiers:(id)arg1 orderedSizes:(id)arg2 packingOrder:(NSUInteger)arg3 startPosition:(CCUILayoutPoint)arg4 maximumSize:(CCUILayoutSize)arg5 outputLayoutSize:(out CCUILayoutSize*)arg6; +- (instancetype)initWithPackingRules:(id)arg1; +- (CCUILayoutSize)maximumLayoutSize; +- (void)regenerateRectsWithOrderedIdentifiers:(id)arg1 orderedSizes:(id)arg2; +- (CCUILayoutRect)layoutRectForIdentifier:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProviderPackingRule.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProviderPackingRule.h new file mode 100644 index 0000000..2f3a720 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIControlCenterPositionProviderPackingRule.h @@ -0,0 +1,28 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@interface CCUIControlCenterPositionProviderPackingRule : NSObject { + + NSUInteger _packFrom; + NSUInteger _packingOrder; + CCUILayoutSize _sizeLimit; + +} + +@property (nonatomic,readonly) NSUInteger packFrom; //@synthesize packFrom=_packFrom - In the implementation block +@property (nonatomic,readonly) NSUInteger packingOrder; //@synthesize packingOrder=_packingOrder - In the implementation block +@property (nonatomic,readonly) CCUILayoutSize sizeLimit; //@synthesize sizeLimit=_sizeLimit - In the implementation block +- (id)copyWithZone:(NSZone*)arg1; +- (instancetype)initWithPackFrom:(NSUInteger)arg1 packingOrder:(NSUInteger)arg2 sizeLimit:(CCUILayoutSize)arg3; +- (NSUInteger)packFrom; +- (NSUInteger)packingOrder; +- (CCUILayoutSize)sizeLimit; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIDismissalGestureRecognizer.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIDismissalGestureRecognizer.h new file mode 100644 index 0000000..4f7f728 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIDismissalGestureRecognizer.h @@ -0,0 +1,28 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class NSSet; + +@interface CCUIDismissalGestureRecognizer : UIPanGestureRecognizer { + + BOOL _triggered; + NSSet* _currentTouches; + +} +- (instancetype)initWithTarget:(id)arg1 action:(SEL)arg2; +- (void)touchesBegan:(id)arg1 withEvent:(id)arg2; +- (void)touchesMoved:(id)arg1 withEvent:(id)arg2; +- (void)touchesEnded:(id)arg1 withEvent:(id)arg2; +- (void)reset; +- (BOOL)canBePreventedByGestureRecognizer:(id)arg1; +- (BOOL)canPreventGestureRecognizer:(id)arg1; +- (void)_tryToCancelTouches; +- (void)_cancelOtherGestureRecognizersForTouches:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIExpandedModuleBackgroundView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIExpandedModuleBackgroundView.h new file mode 100644 index 0000000..70a3c7a --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIExpandedModuleBackgroundView.h @@ -0,0 +1,36 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class MTMaterialView, UIView; + +@interface CCUIExpandedModuleBackgroundView : UIView { + + id _client; + CGFloat _weighting; + MTMaterialView* _materialView; + UIView* _obscuringBackgroundView; + +} + +@property (nonatomic,weak) id client; //@synthesize client=_client - In the implementation block +@property (nonatomic,retain) MTMaterialView * materialView; //@synthesize materialView=_materialView - In the implementation block +@property (nonatomic,retain) UIView * obscuringBackgroundView; //@synthesize obscuringBackgroundView=_obscuringBackgroundView - In the implementation block +@property (assign,nonatomic) CGFloat weighting; //@synthesize weighting=_weighting - In the implementation block +- (instancetype)initWithFrame:(CGRect)arg1; +- (CGFloat)weighting; +- (void)setWeighting:(CGFloat)arg1; +- (id)client; +- (void)setClient:(id)arg1; +- (void)setObscuringBackgroundView:(UIView *)arg1; +- (MTMaterialView *)materialView; +- (void)setMaterialView:(MTMaterialView *)arg1; +- (UIView *)obscuringBackgroundView; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIFlickGestureRecognizer.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIFlickGestureRecognizer.h new file mode 100644 index 0000000..f7a01b2 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIFlickGestureRecognizer.h @@ -0,0 +1,44 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class UITouch, NSTimer; + +@interface CCUIFlickGestureRecognizer : UIGestureRecognizer { + + UITouch* _touch; + NSTimer* _timeoutTimer; + CGFloat _initialTouchTimestamp; + CGPoint _initialTouchLocation; + BOOL _latched; + CGFloat _maximumFlickTime; + CGFloat _minimumFlickVelocity; + NSUInteger _allowedFlickDirections; + +} + +@property (assign,nonatomic) CGFloat maximumFlickTime; //@synthesize maximumFlickTime=_maximumFlickTime - In the implementation block +@property (assign,nonatomic) CGFloat minimumFlickVelocity; //@synthesize minimumFlickVelocity=_minimumFlickVelocity - In the implementation block +@property (assign,nonatomic) NSUInteger allowedFlickDirections; //@synthesize allowedFlickDirections=_allowedFlickDirections - In the implementation block +- (instancetype)initWithTarget:(id)arg1 action:(SEL)arg2; +- (void)touchesBegan:(id)arg1 withEvent:(id)arg2; +- (void)touchesMoved:(id)arg1 withEvent:(id)arg2; +- (void)touchesEnded:(id)arg1 withEvent:(id)arg2; +- (void)reset; +- (void)setAllowedFlickDirections:(NSUInteger)arg1; +- (NSUInteger)allowedFlickDirections; +- (void)setMaximumFlickTime:(CGFloat)arg1; +- (void)setMinimumFlickVelocity:(CGFloat)arg1; +- (CGFloat)minimumFlickVelocity; +- (void)_beginFlickWithTouch:(id)arg1; +- (BOOL)_validateFlickWithTouch:(id)arg1; +- (CGFloat)maximumFlickTime; +- (void)_evaluateFlickAtTimeout; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIHeaderPocketView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIHeaderPocketView.h new file mode 100644 index 0000000..52f5275 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIHeaderPocketView.h @@ -0,0 +1,63 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@protocol CCUIStatusBarDelegate; +@class MTMaterialView, UIView, SBUIChevronView, CCUIStatusBar; + +@interface CCUIHeaderPocketView : UIView { + + MTMaterialView* _headerBackgroundView; + UIView* _headerLineView; + SBUIChevronView* _headerChevronView; + CCUIStatusBar* _statusBar; + id _statusBarDelegate; + NSUInteger _mode; + CGFloat _backgroundAlpha; + CGFloat _contentAlpha; + CGFloat _contentAlphaMultiplier; + UIEdgeInsets _edgeInsets; + CGAffineTransform _contentTransform; + +} + +@property (nonatomic,readonly) CGRect contentBounds; +@property (nonatomic,readonly) CCUIStatusBar * statusBar; //@synthesize statusBar=_statusBar - In the implementation block +@property (nonatomic,weak) id statusBarDelegate; //@synthesize statusBarDelegate=_statusBarDelegate - In the implementation block +@property (assign,nonatomic) NSUInteger mode; //@synthesize mode=_mode - In the implementation block +@property (assign,nonatomic) UIEdgeInsets edgeInsets; //@synthesize edgeInsets=_edgeInsets - In the implementation block +@property (assign,nonatomic) CGFloat backgroundAlpha; //@synthesize backgroundAlpha=_backgroundAlpha - In the implementation block +@property (assign,nonatomic) CGFloat contentAlpha; //@synthesize contentAlpha=_contentAlpha - In the implementation block +@property (assign,nonatomic) CGFloat contentAlphaMultiplier; //@synthesize contentAlphaMultiplier=_contentAlphaMultiplier - In the implementation block +@property (assign,nonatomic) CGAffineTransform contentTransform; //@synthesize contentTransform=_contentTransform - In the implementation block +@property (assign,nonatomic) NSUInteger chevronState; +- (instancetype)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (CCUIStatusBar *)statusBar; +- (UIEdgeInsets)edgeInsets; +- (NSUInteger)mode; +- (void)setEdgeInsets:(UIEdgeInsets)arg1; +- (void)setMode:(NSUInteger)arg1; +- (void)setBackgroundAlpha:(CGFloat)arg1; +- (void)setContentAlpha:(CGFloat)arg1; +- (CGFloat)backgroundAlpha; +- (CGRect)contentBounds; +- (CGFloat)contentAlpha; +- (void)setContentTransform:(CGAffineTransform)arg1; +- (void)setChevronState:(NSUInteger)arg1; +- (void)setContentAlphaMultiplier:(CGFloat)arg1; +- (CGAffineTransform)contentTransform; +- (id)statusBarDelegate; +- (void)_updateContentTransform; +- (void)setStatusBarDelegate:(id)arg1; +- (NSUInteger)chevronState; +- (CGFloat)contentAlphaMultiplier; +- (void)_updateAlpha; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIHostStatusBarStyleProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIHostStatusBarStyleProvider.h new file mode 100644 index 0000000..6e0ae0f --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIHostStatusBarStyleProvider.h @@ -0,0 +1,17 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, January 24, 2018 at 12:17:23 AM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/CoreServices/SpringBoard.app/SpringBoard + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class CCUIStatusBarStyleSnapshot; + + +@protocol CCUIHostStatusBarStyleProvider +@property (nonatomic,copy,readonly) CCUIStatusBarStyleSnapshot * hostStatusBarStyle; +@required +- (CCUIStatusBarStyleSnapshot *)hostStatusBarStyle; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutOptions.h b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutOptions.h new file mode 100644 index 0000000..a2db087 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutOptions.h @@ -0,0 +1,31 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + + +@interface CCUILayoutOptions : NSObject { + + CGFloat _itemEdgeSize; + CGFloat _itemSpacing; + +} + +@property (nonatomic,readonly) CGFloat itemEdgeSize; //@synthesize itemEdgeSize=_itemEdgeSize - In the implementation block +@property (nonatomic,readonly) CGFloat itemSpacing; //@synthesize itemSpacing=_itemSpacing - In the implementation block +- (instancetype)init; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (id)description; +- (id)copyWithZone:(NSZone*)arg1; +- (CGFloat)itemSpacing; +- (id)mutableCopyWithZone:(NSZone*)arg1; +- (instancetype)_initWithLayoutOptions:(id)arg1; +- (CGFloat)itemEdgeSize; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutView.h new file mode 100644 index 0000000..333df40 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutView.h @@ -0,0 +1,40 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@protocol CCUILayoutViewLayoutSource; +@class CCUILayoutOptions; + +@interface CCUILayoutView : CCUIScrollView { + + CCUILayoutOptions* _layoutOptions; + id _layoutSource; + UIEdgeInsets _edgeInsets; + +} + +@property (assign,nonatomic) UIEdgeInsets edgeInsets; //@synthesize edgeInsets=_edgeInsets - In the implementation block +@property (nonatomic,weak) id layoutSource; //@synthesize layoutSource=_layoutSource - In the implementation block +- (void)setNeedsLayout; +- (void)layoutSubviews; +- (CGSize)sizeThatFits:(CGSize)arg1; +- (CGSize)intrinsicContentSize; +- (UIEdgeInsets)edgeInsets; +- (void)didAddSubview:(id)arg1; +- (void)willRemoveSubview:(id)arg1; +- (void)setEdgeInsets:(UIEdgeInsets)arg1; +- (void)setLayoutSource:(id)arg1; +- (instancetype)initWithFrame:(CGRect)arg1 layoutOptions:(id)arg2; +- (CGRect)frameForLayoutRect:(CCUILayoutRect)arg1; +- (CGRect)frameForSubview:(id)arg1; +- (void)iterateLayoutSubviewsWithBlock:(/*^block*/ id)arg1; +- (id)layoutSource; +- (id)subviewsToLayout; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutViewLayoutSource.h b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutViewLayoutSource.h new file mode 100644 index 0000000..f03a28c --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUILayoutViewLayoutSource.h @@ -0,0 +1,15 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUILayoutViewLayoutSource +@required +- (CCUILayoutSize*)layoutSizeForLayoutView:(id)arg1; +- (CCUILayoutRect*)layoutView:(id)arg1 layoutRectForSubview:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardView.h new file mode 100644 index 0000000..38563b6 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardView.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIModularControlCenterCardView : UIView +- (id)hitTest:(CGPoint)arg1 withEvent:(id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewController.h new file mode 100644 index 0000000..47d91e0 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewController.h @@ -0,0 +1,32 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "CCUIModularControlCenterCardViewControllerDelegate.h" + +@interface CCUIModularControlCenterCardViewController : CCUIModularControlCenterViewController + +@property (nonatomic,readonly) UIEdgeInsets edgeInsets; +@property (nonatomic,weak) id delegate; +- (void)loadView; +- (UIEdgeInsets)edgeInsets; +- (NSInteger)_interfaceOrientation; +- (void)viewWillLayoutSubviews; +- (void)viewWillAppear:(BOOL)arg1; +- (void)viewDidAppear:(BOOL)arg1; +- (void)viewWillDisappear:(BOOL)arg1; +- (void)viewDidDisappear:(BOOL)arg1; +- (void)willResignActive; +- (void)willBecomeActive; +- (id)obscuringBackgroundViewForModuleCollectionViewController:(id)arg1; +- (id)relevantSnapHeightsForOrientation:(NSInteger)arg1; +- (instancetype)initWithSystemAgent:(id)arg1; +- (CGRect)_statusLabelViewFrame; +- (NSUInteger)_statusTextAlignment; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewControllerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewControllerDelegate.h new file mode 100644 index 0000000..e86579b --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterCardViewControllerDelegate.h @@ -0,0 +1,18 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, January 24, 2018 at 12:17:22 AM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/CoreServices/SpringBoard.app/SpringBoard + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIModularControlCenterCardViewControllerDelegate +@optional +- (id)obscuringBackgroundViewForControlCenterViewController:(id)arg1; + +@required +- (NSInteger)interfaceOrientationForControlCenterViewController:(id)arg1; +- (CGFloat)statusTextHeightForControlCenterViewController:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewController.h new file mode 100644 index 0000000..301121a --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewController.h @@ -0,0 +1,150 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "CCUIScrollViewDelegate.h" +#import "CCUIStatusLabelViewControllerDelegate.h" +#import "CCUIOverlayViewProvider.h" +#import "CCUIOverlayMetricsProvider.h" +#import "CCUIStatusBarDelegate.h" + +#import "CCUIModularControlCenterOverlayViewControllerDelegate.h" +#import "CCUIOverlayPresentationProvider.h" +#import "CCUIHostStatusBarStyleProvider.h" + +@class MTMaterialView, UIScrollView, UIView, CCUIModuleCollectionView, CCUIStatusLabelViewController, CCUIHeaderPocketView, UIStatusBar, CCUIStatusBarStyleSnapshot, CCUIAnimationRunner, CCUIScrollView, UIPanGestureRecognizer, UITapGestureRecognizer, CCUIFlickGestureRecognizer, NSHashTable, NSUUID, CCUIOverlayTransitionState, NSString; + +@interface CCUIModularControlCenterOverlayViewController : CCUIModularControlCenterViewController { + + id _presentationProvider; + CCUIAnimationRunner* _primaryAnimationRunner; + CCUIAnimationRunner* _secondaryAnimationRunner; + MTMaterialView* _backgroundView; + CCUIHeaderPocketView* _headerPocketView; + CCUIScrollView* _scrollView; + UIView* _containerView; + UIStatusBar* _compactLeadingStatusBar; + BOOL _presentationPanGestureActive; + UIPanGestureRecognizer* _headerPocketViewDismissalPanGesture; + UITapGestureRecognizer* _headerPocketViewDismissalTapGesture; + CCUIFlickGestureRecognizer* _collectionViewDismissalFlickGesture; + UIPanGestureRecognizer* _collectionViewDismissalPanGesture; + UITapGestureRecognizer* _collectionViewDismissalTapGesture; + UIPanGestureRecognizer* _collectionViewScrollPanGesture; + NSHashTable* _blockingGestureRecognizers; + BOOL _interactiveTransition; + NSUUID* _currentTransitionUUID; + CCUIOverlayTransitionState* _previousTransitionState; + CCUIStatusBarStyleSnapshot* _hostStatusBarStyleSnapshot; + BOOL _reachabilityActive; + NSUInteger _presentationState; + id _hostStatusBarStyleProvider; + +} + +@property (assign,nonatomic) NSUInteger presentationState; //@synthesize presentationState=_presentationState - In the implementation block +@property (nonatomic,weak) id delegate; +@property (nonatomic,weak) id hostStatusBarStyleProvider; //@synthesize hostStatusBarStyleProvider=_hostStatusBarStyleProvider - In the implementation block +@property (assign,getter=isReachabilityActive,nonatomic) BOOL reachabilityActive; //@synthesize reachabilityActive=_reachabilityActive - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) MTMaterialView * overlayBackgroundView; +@property (nonatomic,readonly) UIScrollView * overlayScrollView; +@property (nonatomic,readonly) UIView * overlayContainerView; +@property (nonatomic,readonly) CCUIModuleCollectionView * overlayModuleCollectionView; +@property (nonatomic,readonly) CCUIStatusLabelViewController * overlayStatusLabelViewController; +@property (nonatomic,readonly) CCUIHeaderPocketView * overlayHeaderView; +@property (nonatomic,readonly) UIStatusBar * overlayLeadingStatusBar; +@property (nonatomic,readonly) CGSize overlayContentSize; +@property (nonatomic,readonly) CGRect overlayContainerFrame; +@property (nonatomic,readonly) UIEdgeInsets overlayAdditionalEdgeInsets; +@property (nonatomic,readonly) CGFloat reachabilityOffset; +@property (nonatomic,readonly) NSInteger overlayInterfaceOrientation; +@property (nonatomic,copy,readonly) CCUIStatusBarStyleSnapshot * overlayStatusBarStyle; ++ (id)_presentationProviderForDevice; +- (void)scrollViewDidScroll:(id)arg1; +- (BOOL)gestureRecognizerShouldBegin:(id)arg1; +- (BOOL)gestureRecognizer:(id)arg1 shouldBeRequiredToFailByGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2; +- (NSUInteger)preferredScreenEdgesDeferringSystemGestures; +- (NSUInteger)supportedInterfaceOrientations; +- (NSUInteger)__supportedInterfaceOrientations; +- (void)viewWillLayoutSubviews; +- (void)viewWillTransitionToSize:(CGSize)arg1 withTransitionCoordinator:(id)arg2; +- (void)viewDidLoad; +- (CGFloat)reachabilityOffset; +- (void)setReachabilityActive:(BOOL)arg1; +- (UIScrollView *)overlayScrollView; +- (void)presentAnimated:(BOOL)arg1 withCompletionHandler:(/*^block*/ id)arg2; +- (void)setPresentationState:(NSUInteger)arg1; +- (UIView *)overlayContainerView; +- (void)moduleCollectionViewController:(id)arg1 willOpenExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willCloseExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didAddModuleContainerViewController:(id)arg2; +- (void)moduleInstancesChangedForModuleInstanceManager:(id)arg1; +- (NSInteger)overlayInterfaceOrientation; +- (BOOL)isReachabilityActive; +- (CGRect)overlayContainerFrame; +- (MTMaterialView *)overlayBackgroundView; +- (CGSize)overlayContentSize; +- (CCUIHeaderPocketView *)overlayHeaderView; +- (UIStatusBar *)overlayLeadingStatusBar; +- (CCUIStatusLabelViewController *)overlayStatusLabelViewController; +- (CCUIModuleCollectionView *)overlayModuleCollectionView; +- (CCUIStatusBarStyleSnapshot *)overlayStatusBarStyle; +- (void)setOverlayStatusBarHidden:(BOOL)arg1; +- (UIEdgeInsets)overlayAdditionalEdgeInsets; +- (instancetype)initWithSystemAgent:(id)arg1; +- (id)_statusLabelViewContainerView; +- (id)_moduleCollectionViewContainerView; +- (void)_reparentAndBecomeActive; +- (instancetype)_initWithSystemAgent:(id)arg1 presentationProvider:(id)arg2; +- (id)_beginPresentationAnimated:(BOOL)arg1 interactive:(BOOL)arg2; +- (void)_endPresentationWithUUID:(id)arg1 success:(BOOL)arg2; +- (void)_updatePresentationForTransitionState:(id)arg1 withCompletionHander:(/*^block*/ id)arg2; +- (id)hostStatusBarStyleProvider; +- (void)_cancelDismissalPanGestures; +- (id)_beginDismissalAnimated:(BOOL)arg1 interactive:(BOOL)arg2; +- (void)_endDismissalWithUUID:(id)arg1 animated:(BOOL)arg2 success:(BOOL)arg3; +- (void)_updateHotPocketAnimated:(BOOL)arg1; +- (void)_updateHotPocket:(BOOL)arg1 animated:(BOOL)arg2; +- (void)_setupPanGestureFailureRequirements; +- (void)_handleDismissalPanGestureRecognizer:(id)arg1; +- (void)_handleDismissalTapGestureRecognizer:(id)arg1; +- (void)_handleDismissalFlickGestureRecognizer:(id)arg1; +- (BOOL)_dismissalFlickGestureRecognizerShouldBegin:(id)arg1; +- (BOOL)_dismissalTapGestureRecognizerShouldBegin:(id)arg1; +- (BOOL)_dismissalPanGestureRecognizerShouldBegin:(id)arg1; +- (BOOL)_dismissalFlickGestureRecognizer:(id)arg1 shouldBeRequiredToFailByGestureRecognizer:(id)arg2; +- (BOOL)_dismissalFlickGestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2; +- (BOOL)_scrollPanGestureRecognizerShouldBegin:(id)arg1; +- (void)updatePresentationWithLocation:(CGPoint)arg1 translation:(CGPoint)arg2 velocity:(CGPoint)arg3; +- (void)_updatePresentationForTransitionType:(NSUInteger)arg1 translation:(CGPoint)arg2 interactive:(BOOL)arg3; +- (BOOL)_scrollViewIsScrollable; +- (BOOL)_scrollPanGestureRecognizerCanBeginForGestureVelocity:(CGPoint)arg1; +- (BOOL)_scrollViewCanAcceptDownwardsPan; +- (BOOL)_gestureRecognizerIsActive:(id)arg1; +- (void)_dismissalPanGestureRecognizerBegan:(id)arg1; +- (void)_dismissalPanGestureRecognizerChanged:(id)arg1; +- (void)_dismissalPanGestureRecognizerEnded:(id)arg1; +- (void)_dismissalPanGestureRecognizerCancelled:(id)arg1; +- (void)_dismissalPanGestureRecognizerFailed:(id)arg1; +- (BOOL)scrollView:(id)arg1 gestureRecognizerShouldBegin:(id)arg2; +- (void)statusLabelViewControllerWillBeginStatusUpdates:(id)arg1; +- (void)statusLabelViewControllerDidFinishStatusUpdates:(id)arg1; +- (id)compactStyleRequestForStatusBar:(id)arg1; +- (void)beginPresentationWithLocation:(CGPoint)arg1 translation:(CGPoint)arg2 velocity:(CGPoint)arg3; +- (void)endPresentationWithLocation:(CGPoint)arg1 translation:(CGPoint)arg2 velocity:(CGPoint)arg3; +- (void)cancelPresentationWithLocation:(CGPoint)arg1 translation:(CGPoint)arg2 velocity:(CGPoint)arg3; +- (void)setHostStatusBarStyleProvider:(id)arg1; +- (NSUInteger)presentationState; +- (void)dismissAnimated:(BOOL)arg1 withCompletionHandler:(/*^block*/ id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewControllerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewControllerDelegate.h new file mode 100644 index 0000000..65e87ea --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterOverlayViewControllerDelegate.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, January 24, 2018 at 12:17:23 AM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/CoreServices/SpringBoard.app/SpringBoard + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIModularControlCenterOverlayViewControllerDelegate +@optional +- (void)controlCenterViewController:(id)arg1 didChangePresentationState:(unsigned long long)arg2; +- (void)controlCenterViewController:(id)arg1 significantPresentationProgressChange:(double)arg2; + +@required +- (void)controlCenterViewController:(id)arg1 wantsHostStatusBarHidden:(BOOL)arg2; +- (CGFloat)reachabilityOffsetForControlCenterViewController:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterViewController.h new file mode 100644 index 0000000..9d77058 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModularControlCenterViewController.h @@ -0,0 +1,84 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "CCUIModuleCollectionViewControllerDelegate.h" +#import "CCUIContentModuleContextDelegate.h" +#import "CCUIModuleInstanceManagerObserver.h" + +@protocol CCUIModularControlCenterViewControllerDelegate; +@class CCUIModuleInstanceManager, CCUIStatusLabelViewController, CCUIModuleCollectionViewController, NSString; + +@interface CCUIModularControlCenterViewController : UIViewController { + + CCUIModuleInstanceManager* _moduleManager; + BOOL _active; + BOOL _hostedInTestApp; + id _delegate; + CCUIModuleInstanceManager* _moduleInstanceManager; + CCUIStatusLabelViewController* _statusLabelViewController; + +} + +@property (nonatomic,readonly) CCUIModuleInstanceManager * moduleInstanceManager; //@synthesize moduleInstanceManager=_moduleInstanceManager - In the implementation block +@property (nonatomic,readonly) CCUIStatusLabelViewController * statusLabelViewController; //@synthesize statusLabelViewController=_statusLabelViewController - In the implementation block +@property (nonatomic,readonly) CCUIModuleCollectionViewController * moduleCollectionViewController; +@property (assign,getter=isHostedInTestApp,nonatomic) BOOL hostedInTestApp; //@synthesize hostedInTestApp=_hostedInTestApp - In the implementation block +@property (nonatomic,readonly) NSUInteger moduleRowCount; +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; ++ (id)_sharedCollectionViewController; +- (id)delegate; +- (void)setDelegate:(id)arg1; +- (NSInteger)_interfaceOrientation; +- (void)viewWillTransitionToSize:(CGSize)arg1 withTransitionCoordinator:(id)arg2; +- (CGSize)preferredContentSize; +- (void)viewDidLoad; +- (BOOL)shouldAutomaticallyForwardAppearanceMethods; +- (void)_resignActive; +- (BOOL)canDismissPresentedContent; +- (void)dismissPresentedContentAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (NSInteger)interfaceOrientationForModuleCollectionViewController:(id)arg1; +- (void)moduleCollectionViewController:(id)arg1 didBeginInteractionWithModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didFinishInteractionWithModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willOpenExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didOpenExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willCloseExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didCloseExpandedModule:(id)arg2; +- (id)obscuringBackgroundViewForModuleCollectionViewController:(id)arg1; +- (void)moduleCollectionViewController:(id)arg1 didAddModuleContainerViewController:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willRemoveModuleContainerViewController:(id)arg2; +- (void)moduleInstancesChangedForModuleInstanceManager:(id)arg1; +- (void)expandModuleWithIdentifier:(id)arg1; +- (void)dismissExpandedModuleAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (void)contentModuleContext:(id)arg1 enqueueStatusUpdate:(id)arg2; +- (void)requestExpandModuleForContentModuleContext:(id)arg1; +- (void)dismissExpandedViewForContentModuleContext:(id)arg1; +- (instancetype)initWithSystemAgent:(id)arg1; +- (CCUIModuleCollectionViewController *)moduleCollectionViewController; +- (void)dismissPresentedContentWithCompletionHandler:(/*^block*/ id)arg1; +- (void)_reparentCollectionViewController; +- (void)_reparent; +- (id)_safeStatusLabelViewContainerView; +- (CCUIStatusLabelViewController *)statusLabelViewController; +- (id)_statusLabelViewContainerView; +- (id)_moduleCollectionViewContainerView; +- (id)_safeModuleCollectionViewContainerView; +- (NSUInteger)moduleRowCount; +- (void)closeCurrentModuleWithCompletionHandler:(/*^block*/ id)arg1; +- (void)dismissPresentedContent; +- (void)_reparentAndBecomeActive; +- (id)interactionHighlightContainerViewForModuleCollectionViewController:(id)arg1; +- (CCUIModuleInstanceManager *)moduleInstanceManager; +- (BOOL)isHostedInTestApp; +- (void)setHostedInTestApp:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionView.h new file mode 100644 index 0000000..3b099a3 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionView.h @@ -0,0 +1,15 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIModuleCollectionView : CCUILayoutView +- (id)hitTest:(CGPoint)arg1 withEvent:(id)arg2; +- (instancetype)initWithFrame:(CGRect)arg1 layoutOptions:(id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewController.h new file mode 100644 index 0000000..0dfe0f2 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewController.h @@ -0,0 +1,96 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "CCUIModuleInstanceManagerObserver.h" +#import "CCUIModuleSettingsManagerObserver.h" +#import "CCUILayoutViewLayoutSource.h" +#import "CCUIContentModuleContainerViewControllerDelegate.h" +#import "CCUISafeAppearancePropagationProvider.h" + +@protocol OS_dispatch_group, CCUIModuleCollectionViewControllerDelegate; +@class NSArray, CCUIModuleInstanceManager, CCUIModuleSettingsManager, CCUIControlCenterPositionProvider, CCUILayoutOptions, NSDictionary, NSHashTable, NSObject, CCUIExpandedModuleBackgroundView, CCUIModuleCollectionView, NSString; + +@interface CCUIModuleCollectionViewController : UIViewController { + + CCUIModuleInstanceManager* _moduleManager; + CCUIModuleSettingsManager* _settingsManager; + CCUIControlCenterPositionProvider* _portraitPositionProvider; + CCUIControlCenterPositionProvider* _landscapePositionProvider; + CCUILayoutOptions* _layoutOptions; + NSDictionary* _moduleViewControllerByIdentifier; + NSDictionary* _moduleContainerViewByIdentifier; + NSHashTable* _currentModules; + NSHashTable* _expandedModules; + NSObject* _moduleCloseDispatchGroup; + CCUIExpandedModuleBackgroundView* _sharedExpandedModuleBackgroundView; + id _delegate; + +} + +@property (nonatomic,readonly) NSUInteger expandedModuleCount; +@property (nonatomic,retain) CCUIModuleCollectionView * moduleCollectionView; +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) NSArray * childViewControllersForAppearancePropagation; +- (id)delegate; +- (void)setDelegate:(id)arg1; +- (void)loadView; +- (NSInteger)_interfaceOrientation; +- (CGSize)sizeForChildContentContainer:(id)arg1 withParentContainerSize:(CGSize)arg2; +- (CGSize)preferredContentSize; +- (void)viewDidLoad; +- (BOOL)shouldAutomaticallyForwardAppearanceMethods; +- (void)viewDidAppear:(BOOL)arg1; +- (void)viewWillDisappear:(BOOL)arg1; +- (void)viewDidDisappear:(BOOL)arg1; +- (void)willResignActive; +- (void)willBecomeActive; +- (void)dismissPresentedContentAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (id)_currentLayoutOptions; +- (void)_updateEnabledModuleIdentifiers; +- (void)setModuleCollectionView:(CCUIModuleCollectionView *)arg1; +- (void)_refreshPositionProviders; +- (void)_populateModuleViewControllers; +- (CCUIModuleCollectionView *)moduleCollectionView; +- (id)_activePositionProvider; +- (id)_positionProviderForInterfaceOrientation:(NSInteger)arg1; +- (void)_updateModuleControllers; +- (BOOL)_shouldApplyBackgroundEffects; +- (id)_moduleInstances; +- (id)_setupAndAddModuleViewControllerToHierarchy:(id)arg1; +- (void)_removeAndTearDownModuleViewControllerFromHierarchy:(id)arg1; +- (id)_sizesForModuleIdentifiers:(id)arg1 moduleInstanceByIdentifier:(id)arg2 interfaceOrientation:(NSInteger)arg3; +- (void)moduleInstancesChangedForModuleInstanceManager:(id)arg1; +- (void)orderedEnabledModuleIdentifiersChangedForSettingsManager:(id)arg1; +- (CCUILayoutSize)layoutSizeForLayoutView:(id)arg1; +- (CCUILayoutRect)layoutView:(id)arg1 layoutRectForSubview:(id)arg2; +- (CGRect)compactModeFrameForContentModuleContainerViewController:(id)arg1; +- (BOOL)contentModuleContainerViewController:(id)arg1 canBeginInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didBeginInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didFinishInteractionWithModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 willOpenExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didOpenExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 willCloseExpandedModule:(id)arg2; +- (void)contentModuleContainerViewController:(id)arg1 didCloseExpandedModule:(id)arg2; +- (BOOL)shouldApplyBackgroundEffectsForContentModuleContainerViewController:(id)arg1; +- (id)backgroundViewForContentModuleContainerViewController:(id)arg1; +- (NSArray *)childViewControllersForAppearancePropagation; +- (instancetype)initWithModuleInstanceManager:(id)arg1; +- (NSUInteger)expandedModuleCount; +- (void)expandModuleWithIdentifier:(id)arg1; +- (void)dismissExpandedModuleAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (BOOL)isModuleExpandedForIdentifier:(id)arg1; +- (BOOL)isAtMaxHeight; +- (id)relevantSnapHeightsForOrientation:(NSInteger)arg1; +- (id)queryAllTopLevelBlockingGestureRecognizers; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewControllerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewControllerDelegate.h new file mode 100644 index 0000000..22d2681 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleCollectionViewControllerDelegate.h @@ -0,0 +1,23 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIModuleCollectionViewControllerDelegate +@required +- (NSInteger)interfaceOrientationForModuleCollectionViewController:(id)arg1; +- (void)moduleCollectionViewController:(id)arg1 didBeginInteractionWithModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didFinishInteractionWithModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willOpenExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didOpenExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willCloseExpandedModule:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 didCloseExpandedModule:(id)arg2; +- (id)obscuringBackgroundViewForModuleCollectionViewController:(id)arg1; +- (void)moduleCollectionViewController:(id)arg1 didAddModuleContainerViewController:(id)arg2; +- (void)moduleCollectionViewController:(id)arg1 willRemoveModuleContainerViewController:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstance.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstance.h new file mode 100644 index 0000000..fe11109 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstance.h @@ -0,0 +1,31 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@protocol CCUIContentModule; +@class CCSModuleMetadata; + +@interface CCUIModuleInstance : NSObject { + + CCSModuleMetadata* _metadata; + id _module; + CCUILayoutSize _prototypeModuleSize; + +} + +@property (nonatomic,readonly) CCSModuleMetadata * metadata; //@synthesize metadata=_metadata - In the implementation block +@property (nonatomic,readonly) id module; //@synthesize module=_module - In the implementation block +@property (nonatomic,readonly) CCUILayoutSize prototypeModuleSize; //@synthesize prototypeModuleSize=_prototypeModuleSize - In the implementation block +- (id)module; +- (id)copyWithZone:(NSZone*)arg1; +- (CCSModuleMetadata *)metadata; +- (CCUILayoutSize)prototypeModuleSize; +- (instancetype)initWithMetadata:(id)arg1 module:(id)arg2 prototypeModuleSize:(CCUILayoutSize)arg3; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManager.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManager.h new file mode 100644 index 0000000..4a89eea --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManager.h @@ -0,0 +1,51 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCSModuleRepositoryObserver.h" +#import "CCUIContentModuleContextDelegate.h" + +@protocol CCUIControlCenterSystemAgent, CCUIContentModuleContextDelegate; +@class CCSModuleRepository, NSMutableDictionary, NSHashTable, NSSet, NSArray, NSString; + +@interface CCUIModuleInstanceManager : NSObject { + + id _systemAgent; + CCSModuleRepository* _repository; + NSMutableDictionary* _moduleInstanceByIdentifier; + NSHashTable* _observers; + id _contextDelegate; + NSSet* _enabledModuleIdentifiers; + +} + +@property (nonatomic,weak) id contextDelegate; //@synthesize contextDelegate=_contextDelegate - In the implementation block +@property (nonatomic,copy) NSSet * enabledModuleIdentifiers; //@synthesize enabledModuleIdentifiers=_enabledModuleIdentifiers - In the implementation block +@property (nonatomic,readonly) NSArray * moduleInstances; +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; ++ (instancetype)sharedInstance; ++ (void)initialize; ++ (void)setupSharedInstanceWithSystemAgent:(id)arg1; +- (void)addObserver:(id)arg1; +- (void)removeObserver:(id)arg1; +- (void)setEnabledModuleIdentifiers:(NSSet *)arg1; +- (NSArray *)moduleInstances; +- (instancetype)_initWithSystemAgent:(id)arg1 repository:(id)arg2; +- (void)_updateModuleInstances; +- (NSSet *)enabledModuleIdentifiers; +- (id)_instantiateModuleWithMetadata:(id)arg1; +- (void)_runBlockOnObservers:(/*^block*/ id)arg1; +- (id)contextDelegate; +- (void)contentModuleContext:(id)arg1 enqueueStatusUpdate:(id)arg2; +- (void)requestExpandModuleForContentModuleContext:(id)arg1; +- (void)dismissExpandedViewForContentModuleContext:(id)arg1; +- (void)loadableModulesChangedForModuleRepository:(id)arg1; +- (void)setContextDelegate:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManagerObserver.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManagerObserver.h new file mode 100644 index 0000000..68c5742 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleInstanceManagerObserver.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIModuleInstanceManagerObserver +@required +- (void)moduleInstancesChangedForModuleInstanceManager:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettings.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettings.h new file mode 100644 index 0000000..8659958 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettings.h @@ -0,0 +1,24 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@interface CCUIModuleSettings : NSObject { + + CCUILayoutSize _portraitLayoutSize; + CCUILayoutSize _landscapeLayoutSize; + +} +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (id)description; +- (id)copyWithZone:(NSZone*)arg1; +- (CCUILayoutSize)layoutSizeForInterfaceOrientation:(NSInteger)arg1; +- (instancetype)initWithPortraitLayoutSize:(CCUILayoutSize)arg1 landscapeLayoutSize:(CCUILayoutSize)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManager.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManager.h new file mode 100644 index 0000000..7290ca1 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManager.h @@ -0,0 +1,35 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCSModuleSettingsProviderObserver.h" + +@class CCSModuleSettingsProvider, NSDictionary, NSHashTable, NSString; + +@interface CCUIModuleSettingsManager : NSObject { + + CCSModuleSettingsProvider* _settingsProvider; + NSDictionary* _settingsByIdentifier; + NSHashTable* _observers; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (instancetype)init; +- (void)addObserver:(id)arg1; +- (void)removeObserver:(id)arg1; +- (id)orderedEnabledModuleIdentifiers; +- (id)sortModuleIdentifiers:(id)arg1 forInterfaceOrientation:(NSInteger)arg2; +- (id)moduleSettingsForModuleIdentifier:(id)arg1 prototypeSize:(CCUILayoutSize)arg2; +- (void)_loadSettings; +- (void)_runBlockOnListeners:(/*^block*/ id)arg1; +- (void)orderedEnabledModuleIdentifiersChangedForSettingsProvider:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManagerObserver.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManagerObserver.h new file mode 100644 index 0000000..18114df --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIModuleSettingsManagerObserver.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIModuleSettingsManagerObserver +@required +- (void)orderedEnabledModuleIdentifiersChangedForSettingsManager:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableC2AnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableC2AnimationParameters.h new file mode 100644 index 0000000..6953f3b --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableC2AnimationParameters.h @@ -0,0 +1,21 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIMutableC2AnimationParameters : CCUIC2AnimationParameters + +@property (assign,getter=isInteractive,nonatomic) BOOL interactive; +@property (assign,nonatomic) CGFloat tension; +@property (assign,nonatomic) CGFloat friction; +- (id)copyWithZone:(NSZone*)arg1; +- (void)setFriction:(CGFloat)arg1; +- (void)setInteractive:(BOOL)arg1; +- (void)setTension:(CGFloat)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCABasicAnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCABasicAnimationParameters.h new file mode 100644 index 0000000..12bf181 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCABasicAnimationParameters.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIMutableCABasicAnimationParameters : CCUICABasicAnimationParameters + +@property (assign,nonatomic) CGFloat duration; +@property (nonatomic,copy) id timingFunction; +- (void)setDuration:(CGFloat)arg1; +- (id)copyWithZone:(NSZone*)arg1; +- (void)setTimingFunction:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCASpringAnimationParameters.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCASpringAnimationParameters.h new file mode 100644 index 0000000..edb42f5 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableCASpringAnimationParameters.h @@ -0,0 +1,23 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIMutableCASpringAnimationParameters : CCUICASpringAnimationParameters + +@property (assign,nonatomic) CGFloat mass; +@property (assign,nonatomic) CGFloat stiffness; +@property (assign,nonatomic) CGFloat damping; +@property (nonatomic,copy) id timingFunction; +- (void)setStiffness:(CGFloat)arg1; +- (void)setDamping:(CGFloat)arg1; +- (void)setMass:(CGFloat)arg1; +- (id)copyWithZone:(NSZone*)arg1; +- (void)setTimingFunction:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableLayoutOptions.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableLayoutOptions.h new file mode 100644 index 0000000..f6b63bb --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIMutableLayoutOptions.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIMutableLayoutOptions : CCUILayoutOptions + +@property (assign,nonatomic) CGFloat itemEdgeSize; +@property (assign,nonatomic) CGFloat itemSpacing; +- (id)copyWithZone:(NSZone*)arg1; +- (void)setItemSpacing:(CGFloat)arg1; +- (void)setItemEdgeSize:(CGFloat)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayFlickGestureBehavior.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayFlickGestureBehavior.h new file mode 100644 index 0000000..49351a5 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayFlickGestureBehavior.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIOverlayFlickGestureBehavior +@property (nonatomic,readonly) CGFloat dismissalFlickMaximumTime; +@property (nonatomic,readonly) CGFloat dismissalFlickMinimumVelocity; +@property (nonatomic,readonly) NSUInteger dismissalFlickAllowedDirections; +@required +- (CGFloat)dismissalFlickMaximumTime; +- (CGFloat)dismissalFlickMinimumVelocity; +- (NSUInteger)dismissalFlickAllowedDirections; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayMetricsProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayMetricsProvider.h new file mode 100644 index 0000000..f05ec36 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayMetricsProvider.h @@ -0,0 +1,29 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class CCUIStatusBarStyleSnapshot; + + +@protocol CCUIOverlayMetricsProvider +@property (nonatomic,readonly) CGSize overlayContentSize; +@property (nonatomic,readonly) CGRect overlayContainerFrame; +@property (nonatomic,readonly) UIEdgeInsets overlayAdditionalEdgeInsets; +@property (getter=isReachabilityActive,nonatomic,readonly) BOOL reachabilityActive; +@property (nonatomic,readonly) CGFloat reachabilityOffset; +@property (nonatomic,readonly) NSInteger overlayInterfaceOrientation; +@property (nonatomic,copy,readonly) CCUIStatusBarStyleSnapshot * overlayStatusBarStyle; +@required +- (CGFloat)reachabilityOffset; +- (NSInteger)overlayInterfaceOrientation; +- (BOOL)isReachabilityActive; +- (CGRect)overlayContainerFrame; +- (CGSize)overlayContentSize; +- (CCUIStatusBarStyleSnapshot *)overlayStatusBarStyle; +- (UIEdgeInsets)overlayAdditionalEdgeInsets; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayPresentationProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayPresentationProvider.h new file mode 100644 index 0000000..0b5e565 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayPresentationProvider.h @@ -0,0 +1,40 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@protocol CCUIOverlayViewProvider, CCUIOverlayMetricsProvider, CCUIOverlayFlickGestureBehavior; + +@protocol CCUIOverlayPresentationProvider +@property (getter=isPanDismissalAvailable,nonatomic,readonly) BOOL panDismissalAvailable; +@property (nonatomic,readonly) NSUInteger backgroundMaterialOptions; +@property (nonatomic,readonly) BOOL allowHotPocketDuringTransition; +@property (nonatomic,weak) id viewProvider; +@property (nonatomic,weak) id metricsProvider; +@property (nonatomic,readonly) NSUInteger headerMode; +@property (nonatomic,copy,readonly) id flickGestureBehavior; +@optional +- (id)secondaryAnimationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (id)prepareForPresentation; +- (id)cleanupForDismissal; +- (NSUInteger)headerMode; +- (id)flickGestureBehavior; + +@required +- (void)layoutViews; +- (id)metricsProvider; +- (id)viewProvider; +- (id)transitionStateForType:(NSUInteger)arg1 interactive:(BOOL)arg2 translation:(CGPoint)arg3; +- (NSUInteger)finalTransitionTypeForState:(id)arg1 gestureTranslation:(CGPoint)arg2 gestureVelocity:(CGPoint)arg3; +- (id)animationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (BOOL)tapAllowsDismissalForLocation:(CGPoint)arg1; +- (BOOL)isPanDismissalAvailable; +- (NSUInteger)backgroundMaterialOptions; +- (BOOL)allowHotPocketDuringTransition; +- (void)setViewProvider:(id)arg1; +- (void)setMetricsProvider:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayScaleFadePresentationProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayScaleFadePresentationProvider.h new file mode 100644 index 0000000..b126d72 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayScaleFadePresentationProvider.h @@ -0,0 +1,51 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIOverlayPresentationProvider.h" + +@protocol CCUIOverlayViewProvider, CCUIOverlayMetricsProvider; +@class NSString; + +@interface CCUIOverlayScaleFadePresentationProvider : NSObject { + + id _viewProvider; + id _metricsProvider; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (getter=isPanDismissalAvailable,nonatomic,readonly) BOOL panDismissalAvailable; +@property (nonatomic,readonly) NSUInteger backgroundMaterialOptions; +@property (nonatomic,readonly) BOOL allowHotPocketDuringTransition; +@property (nonatomic,weak) id viewProvider; //@synthesize viewProvider=_viewProvider - In the implementation block +@property (nonatomic,weak) id metricsProvider; //@synthesize metricsProvider=_metricsProvider - In the implementation block +@property (nonatomic,readonly) NSUInteger headerMode; +@property (nonatomic,copy,readonly) id flickGestureBehavior; ++ (id)_baseC2AnimationParametersForTransitionState:(id)arg1; +- (void)layoutViews; +- (id)metricsProvider; +- (CGRect)_presentedViewFrame; +- (id)viewProvider; +- (void)_addBackgroundViewWeightingAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (id)transitionStateForType:(NSUInteger)arg1 interactive:(BOOL)arg2 translation:(CGPoint)arg3; +- (NSUInteger)finalTransitionTypeForState:(id)arg1 gestureTranslation:(CGPoint)arg2 gestureVelocity:(CGPoint)arg3; +- (id)animationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (BOOL)tapAllowsDismissalForLocation:(CGPoint)arg1; +- (BOOL)isPanDismissalAvailable; +- (NSUInteger)backgroundMaterialOptions; +- (BOOL)allowHotPocketDuringTransition; +- (void)setViewProvider:(id)arg1; +- (void)setMetricsProvider:(id)arg1; +- (CGRect)_statusLabelViewFrame; +- (void)_addContainerTransformAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addContainerAlphaAnimationToBatch:(id)arg1 transitionState:(id)arg2; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlaySlideUpPresentationProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlaySlideUpPresentationProvider.h new file mode 100644 index 0000000..f501990 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlaySlideUpPresentationProvider.h @@ -0,0 +1,71 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIOverlayFlickGestureBehavior.h" +#import "CCUIOverlayPresentationProvider.h" + +@protocol CCUIOverlayViewProvider, CCUIOverlayMetricsProvider; +@class NSString; + +@interface CCUIOverlaySlideUpPresentationProvider : NSObject { + + id _viewProvider; + id _metricsProvider; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat dismissalFlickMaximumTime; +@property (nonatomic,readonly) CGFloat dismissalFlickMinimumVelocity; +@property (nonatomic,readonly) NSUInteger dismissalFlickAllowedDirections; +@property (getter=isPanDismissalAvailable,nonatomic,readonly) BOOL panDismissalAvailable; +@property (nonatomic,readonly) NSUInteger backgroundMaterialOptions; +@property (nonatomic,readonly) BOOL allowHotPocketDuringTransition; +@property (nonatomic,weak) id viewProvider; //@synthesize viewProvider=_viewProvider - In the implementation block +@property (nonatomic,weak) id metricsProvider; //@synthesize metricsProvider=_metricsProvider - In the implementation block +@property (nonatomic,readonly) NSUInteger headerMode; +@property (nonatomic,copy,readonly) id flickGestureBehavior; ++ (id)_baseC2AnimationParametersForTransitionState:(id)arg1; ++ (id)_moduleC2AnimationParametersForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; +- (void)layoutViews; +- (id)metricsProvider; +- (CGRect)_presentedViewFrame; +- (id)viewProvider; +- (CGRect)_moduleCollectionViewFrame; +- (UIEdgeInsets)_moduleCollectionViewFrameEdgeInsets; +- (CGRect)headerViewFrame; +- (void)_addHeaderContentTransformAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addScrollViewContentOffsetAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addBackgroundViewWeightingAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addModuleTransformAnimationsToBatch:(id)arg1 transitionState:(id)arg2; +- (CGAffineTransform)_headerViewTransformForTransitionState:(id)arg1; +- (CGAffineTransform)_transformForTransitionState:(id)arg1 rubberBandingHeight:(CGFloat)arg2; +- (CGAffineTransform)_moduleViewTransformForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; +- (CGFloat)dismissalFlickMaximumTime; +- (CGFloat)dismissalFlickMinimumVelocity; +- (NSUInteger)dismissalFlickAllowedDirections; +- (id)transitionStateForType:(NSUInteger)arg1 interactive:(BOOL)arg2 translation:(CGPoint)arg3; +- (NSUInteger)finalTransitionTypeForState:(id)arg1 gestureTranslation:(CGPoint)arg2 gestureVelocity:(CGPoint)arg3; +- (id)animationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (BOOL)tapAllowsDismissalForLocation:(CGPoint)arg1; +- (BOOL)isPanDismissalAvailable; +- (NSUInteger)backgroundMaterialOptions; +- (BOOL)allowHotPocketDuringTransition; +- (void)setViewProvider:(id)arg1; +- (void)setMetricsProvider:(id)arg1; +- (NSUInteger)headerMode; +- (id)flickGestureBehavior; +- (CGFloat)_pullUpTranslation; +- (void)_addHeaderContentAlphaAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addChevronStateAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (CGAffineTransform)_moduleViewScaleTransformForTransitionState:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayStatusBarPresentationProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayStatusBarPresentationProvider.h new file mode 100644 index 0000000..5106a7a --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayStatusBarPresentationProvider.h @@ -0,0 +1,86 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIOverlayFlickGestureBehavior.h" +#import "CCUIOverlayPresentationProvider.h" + +@protocol CCUIOverlayViewProvider, CCUIOverlayMetricsProvider; +@class NSString; + +@interface CCUIOverlayStatusBarPresentationProvider : NSObject { + + id _viewProvider; + id _metricsProvider; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat dismissalFlickMaximumTime; +@property (nonatomic,readonly) CGFloat dismissalFlickMinimumVelocity; +@property (nonatomic,readonly) NSUInteger dismissalFlickAllowedDirections; +@property (getter=isPanDismissalAvailable,nonatomic,readonly) BOOL panDismissalAvailable; +@property (nonatomic,readonly) NSUInteger backgroundMaterialOptions; +@property (nonatomic,readonly) BOOL allowHotPocketDuringTransition; +@property (nonatomic,weak) id viewProvider; //@synthesize viewProvider=_viewProvider - In the implementation block +@property (nonatomic,weak) id metricsProvider; //@synthesize metricsProvider=_metricsProvider - In the implementation block +@property (nonatomic,readonly) NSUInteger headerMode; +@property (nonatomic,copy,readonly) id flickGestureBehavior; ++ (id)_hiddenStatusBarFadeAnimationParameters; ++ (id)_baseC2AnimationParametersForTransitionState:(id)arg1; ++ (id)_leadingStatusBarCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_trailingStatusBarCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_compactTrailingStatusBarAlphaCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_expandedLeadingStatusBarAlphaCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_expandedTrailingStatusBarAlphaCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_moduleC2AnimationParametersForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; ++ (id)_moduleScaleCAAnimationParametersForTransitionState:(id)arg1; ++ (id)_moduleAlphaCAAnimationParametersForTransitionState:(id)arg1; +- (void)layoutViews; +- (id)metricsProvider; +- (CGRect)_presentedViewFrame; +- (id)viewProvider; +- (CGRect)_moduleCollectionViewFrame; +- (UIEdgeInsets)_moduleCollectionViewFrameEdgeInsets; +- (CGRect)headerViewFrame; +- (void)_addLeadingStatusBarAlphaAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addHeaderContentTransformAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addStatusBarStateAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addStatusBarAlphaAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addScrollViewContentOffsetAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addBackgroundViewWeightingAnimationToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addModuleTransformAnimationsToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addModuleScaleAnimationsToBatch:(id)arg1 transitionState:(id)arg2; +- (void)_addModuleAlphaAnimationsToBatch:(id)arg1 transitionState:(id)arg2; +- (CGFloat)_leadingStatusBarAlphaForTransitionState:(id)arg1; +- (CGAffineTransform)_headerViewTransformForTransitionState:(id)arg1; +- (CGAffineTransform)_transformForTransitionState:(id)arg1 rubberBandingHeight:(CGFloat)arg2; +- (CGAffineTransform)_moduleViewTransformForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; +- (CGFloat)_delayForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; +- (CGAffineTransform)_moduleViewScaleTransformForTransitionState:(id)arg1 layoutRect:(CCUILayoutRect)arg2; +- (CGFloat)dismissalFlickMaximumTime; +- (CGFloat)dismissalFlickMinimumVelocity; +- (NSUInteger)dismissalFlickAllowedDirections; +- (id)transitionStateForType:(NSUInteger)arg1 interactive:(BOOL)arg2 translation:(CGPoint)arg3; +- (NSUInteger)finalTransitionTypeForState:(id)arg1 gestureTranslation:(CGPoint)arg2 gestureVelocity:(CGPoint)arg3; +- (id)animationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (BOOL)tapAllowsDismissalForLocation:(CGPoint)arg1; +- (BOOL)isPanDismissalAvailable; +- (NSUInteger)backgroundMaterialOptions; +- (BOOL)allowHotPocketDuringTransition; +- (void)setViewProvider:(id)arg1; +- (void)setMetricsProvider:(id)arg1; +- (id)secondaryAnimationBatchForTransitionState:(id)arg1 previousTransitionState:(id)arg2; +- (id)prepareForPresentation; +- (id)cleanupForDismissal; +- (NSUInteger)headerMode; +- (id)flickGestureBehavior; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayTransitionState.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayTransitionState.h new file mode 100644 index 0000000..f32182d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayTransitionState.h @@ -0,0 +1,46 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@interface CCUIOverlayTransitionState : NSObject { + + BOOL _interactive; + NSUInteger _type; + CGFloat _progress; + CGFloat _presentationProgress; + CGFloat _clampedPresentationProgress; + CGFloat _nonZeroPresentationProgress; + CGFloat _snappedPresentationProgress; + +} + +@property (nonatomic,readonly) NSUInteger type; //@synthesize type=_type - In the implementation block +@property (nonatomic,readonly) CGFloat progress; //@synthesize progress=_progress - In the implementation block +@property (getter=isInteractive,nonatomic,readonly) BOOL interactive; //@synthesize interactive=_interactive - In the implementation block +@property (nonatomic,readonly) CGFloat presentationProgress; //@synthesize presentationProgress=_presentationProgress - In the implementation block +@property (nonatomic,readonly) CGFloat clampedPresentationProgress; //@synthesize clampedPresentationProgress=_clampedPresentationProgress - In the implementation block +@property (nonatomic,readonly) CGFloat nonZeroPresentationProgress; //@synthesize nonZeroPresentationProgress=_nonZeroPresentationProgress - In the implementation block +@property (nonatomic,readonly) CGFloat snappedPresentationProgress; //@synthesize snappedPresentationProgress=_snappedPresentationProgress - In the implementation block ++ (BOOL)isSignificantTransitionFrom:(id)arg1 to:(id)arg2; ++ (BOOL)isSignificantStatusBarTransitionFrom:(id)arg1 to:(id)arg2; ++ (id)stateWithType:(NSUInteger)arg1 interactive:(BOOL)arg2 progress:(CGFloat)arg3; ++ (id)fullyPresentedState; ++ (id)fullyDismissedState; +- (BOOL)isInteractive; +- (NSUInteger)type; +- (id)copyWithZone:(NSZone*)arg1; +- (CGFloat)progress; +- (CGFloat)snappedStatusBarPresentationProgress; +- (CGFloat)clampedPresentationProgress; +- (CGFloat)snappedPresentationProgress; +- (CGFloat)nonZeroPresentationProgress; +- (CGFloat)presentationProgress; +- (instancetype)_initWithType:(NSUInteger)arg1 interactive:(BOOL)arg2 progress:(CGFloat)arg3; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayViewProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayViewProvider.h new file mode 100644 index 0000000..b0f9bab --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIOverlayViewProvider.h @@ -0,0 +1,30 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class MTMaterialView, UIScrollView, UIView, CCUIModuleCollectionView, CCUIStatusLabelViewController, CCUIHeaderPocketView, UIStatusBar; + + +@protocol CCUIOverlayViewProvider +@property (nonatomic,readonly) MTMaterialView * overlayBackgroundView; +@property (nonatomic,readonly) UIScrollView * overlayScrollView; +@property (nonatomic,readonly) UIView * overlayContainerView; +@property (nonatomic,readonly) CCUIModuleCollectionView * overlayModuleCollectionView; +@property (nonatomic,readonly) CCUIStatusLabelViewController * overlayStatusLabelViewController; +@property (nonatomic,readonly) CCUIHeaderPocketView * overlayHeaderView; +@property (nonatomic,readonly) UIStatusBar * overlayLeadingStatusBar; +@required +- (UIScrollView *)overlayScrollView; +- (UIView *)overlayContainerView; +- (MTMaterialView *)overlayBackgroundView; +- (CCUIHeaderPocketView *)overlayHeaderView; +- (UIStatusBar *)overlayLeadingStatusBar; +- (CCUIStatusLabelViewController *)overlayStatusLabelViewController; +- (CCUIModuleCollectionView *)overlayModuleCollectionView; +- (void)setOverlayStatusBarHidden:(BOOL)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUISafeAppearancePropagationProvider.h b/Frameworks/ControlCenterUI.framework/Headers/CCUISafeAppearancePropagationProvider.h new file mode 100644 index 0000000..0ae62a6 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUISafeAppearancePropagationProvider.h @@ -0,0 +1,17 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class NSArray; + + +@protocol CCUISafeAppearancePropagationProvider +@property (nonatomic,readonly) NSArray * childViewControllersForAppearancePropagation; +@optional +- (NSArray *)childViewControllersForAppearancePropagation; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollView.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollView.h new file mode 100644 index 0000000..0744622 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollView.h @@ -0,0 +1,17 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +#import "CCUIScrollViewDelegate.h" + +@interface CCUIScrollView : UIScrollView + +@property (nonatomic,weak) id delegate; +- (BOOL)gestureRecognizerShouldBegin:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollViewDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollViewDelegate.h new file mode 100644 index 0000000..b70ba48 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIScrollViewDelegate.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIScrollViewDelegate +@optional +- (BOOL)scrollView:(id)arg1 gestureRecognizerShouldBegin:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBar.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBar.h new file mode 100644 index 0000000..4ccb8b5 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBar.h @@ -0,0 +1,61 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@protocol CCUIStatusBarDelegate; +@class UIStatusBar, UIStatusBarStyleRequest; + +@interface CCUIStatusBar : UIView { + + UIStatusBar* _compactTrailingStatusBar; + UIStatusBar* _extendedLeadingStatusBar; + UIStatusBar* _extendedTrailingStatusBar; + id _delegate; + NSUInteger _leadingState; + NSUInteger _trailingState; + UIEdgeInsets _compactEdgeInsets; + UIEdgeInsets _expandedEdgeInsets; + +} + +@property (nonatomic,copy,readonly) UIStatusBarStyleRequest * compactStyleRequest; +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (assign,nonatomic) NSUInteger leadingState; //@synthesize leadingState=_leadingState - In the implementation block +@property (assign,nonatomic) NSUInteger trailingState; //@synthesize trailingState=_trailingState - In the implementation block +@property (assign,nonatomic) UIEdgeInsets compactEdgeInsets; //@synthesize compactEdgeInsets=_compactEdgeInsets - In the implementation block +@property (assign,nonatomic) UIEdgeInsets expandedEdgeInsets; //@synthesize expandedEdgeInsets=_expandedEdgeInsets - In the implementation block +@property (assign,nonatomic) CGFloat leadingAlpha; +@property (assign,nonatomic) CGFloat compactTrailingAlpha; +@property (assign,nonatomic) CGFloat expandedTrailingAlpha; +- (instancetype)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (id)delegate; +- (void)setDelegate:(id)arg1; +- (id)hitTest:(CGPoint)arg1 withEvent:(id)arg2; +- (CGSize)sizeThatFits:(CGSize)arg1; +- (CGSize)intrinsicContentSize; +- (void)setCompactEdgeInsets:(UIEdgeInsets)arg1; +- (void)setExpandedEdgeInsets:(UIEdgeInsets)arg1; +- (void)setLeadingState:(NSUInteger)arg1; +- (void)setTrailingState:(NSUInteger)arg1; +- (void)setCompactTrailingAlpha:(CGFloat)arg1; +- (void)setLeadingAlpha:(CGFloat)arg1; +- (void)setExpandedTrailingAlpha:(CGFloat)arg1; +- (void)controlCenterApplyPrimaryContentShadow; +- (UIStatusBarStyleRequest *)compactStyleRequest; +- (void)_updateCompactTrailingStatusBarStyleRequest; +- (NSUInteger)leadingState; +- (NSUInteger)trailingState; +- (CGFloat)leadingAlpha; +- (CGFloat)compactTrailingAlpha; +- (CGFloat)expandedTrailingAlpha; +- (UIEdgeInsets)compactEdgeInsets; +- (UIEdgeInsets)expandedEdgeInsets; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarDelegate.h new file mode 100644 index 0000000..7c6038c --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarDelegate.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIStatusBarDelegate +@required +- (id)compactStyleRequestForStatusBar:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarStyleSnapshot.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarStyleSnapshot.h new file mode 100644 index 0000000..f75909e --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusBarStyleSnapshot.h @@ -0,0 +1,27 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + + +@class UIStatusBarStyleRequest; + +@interface CCUIStatusBarStyleSnapshot : NSObject { + + BOOL _hidden; + UIStatusBarStyleRequest* _activeStyleRequest; + +} + +@property (getter=isHidden,nonatomic,readonly) BOOL hidden; //@synthesize hidden=_hidden - In the implementation block +@property (nonatomic,copy,readonly) UIStatusBarStyleRequest * activeStyleRequest; //@synthesize activeStyleRequest=_activeStyleRequest - In the implementation block +- (BOOL)isHidden; +- (id)copyWithZone:(NSZone*)arg1; +- (instancetype)initWithHidden:(BOOL)arg1 activeStyleRequest:(id)arg2; +- (UIStatusBarStyleRequest *)activeStyleRequest; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabel.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabel.h new file mode 100644 index 0000000..e304d82 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabel.h @@ -0,0 +1,29 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIStatusLabel : UILabel { + + NSUInteger _verticalAlignment; + UIEdgeInsets _edgeInsets; + +} + +@property (assign,nonatomic) UIEdgeInsets edgeInsets; //@synthesize edgeInsets=_edgeInsets - In the implementation block +@property (assign,nonatomic) NSUInteger verticalAlignment; //@synthesize verticalAlignment=_verticalAlignment - In the implementation block +- (instancetype)init; +- (UIEdgeInsets)edgeInsets; +- (void)willMoveToSuperview:(id)arg1; +- (void)drawTextInRect:(CGRect)arg1; +- (void)setEdgeInsets:(UIEdgeInsets)arg1; +- (NSUInteger)verticalAlignment; +- (void)setVerticalAlignment:(NSUInteger)arg1; +- (void)_contentSizeCategoryDidChange; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewController.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewController.h new file mode 100644 index 0000000..a941e2d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewController.h @@ -0,0 +1,51 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@protocol CCUIStatusLabelViewControllerDelegate; +@class CCUIStatusUpdateQueue, NSArray, NSTimer; + +@interface CCUIStatusLabelViewController : UIViewController { + + CCUIStatusUpdateQueue* _updateQueue; + NSArray* _statusLabels; + NSUInteger _currentStatusLabelIndex; + NSUInteger _presentationState; + NSTimer* _presentationTimer; + id _delegate; + +} + +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (assign,nonatomic) UIEdgeInsets edgeInsets; +@property (assign,nonatomic) NSUInteger verticalAlignment; +- (id)delegate; +- (void)setDelegate:(id)arg1; +- (instancetype)initWithNibName:(id)arg1 bundle:(id)arg2; +- (UIEdgeInsets)edgeInsets; +- (void)viewWillLayoutSubviews; +- (void)viewDidLoad; +- (void)viewWillDisappear:(BOOL)arg1; +- (void)viewDidDisappear:(BOOL)arg1; +- (void)setEdgeInsets:(UIEdgeInsets)arg1; +- (NSUInteger)verticalAlignment; +- (void)setVerticalAlignment:(NSUInteger)arg1; +- (void)enqueueStatusUpdate:(id)arg1 forIdentifier:(id)arg2; +- (void)_advancePresentationState; +- (void)_resetPresentationStateAnimated:(BOOL)arg1; +- (void)_fadeOutStatusLabel:(id)arg1; +- (void)_notifyDelegateDidFinishStatusUpdates; +- (NSUInteger)_advancePresentationStateFromReady; +- (NSUInteger)_advancePresentationStateFromFadeIn; +- (NSUInteger)_advancePresentationStateFromPresenting; +- (NSUInteger)_advancePresentationStateFromFadeOut; +- (void)_notifyDelegateWillBeginStatusUpdates; +- (void)_fadeInStatusLabel:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewControllerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewControllerDelegate.h new file mode 100644 index 0000000..2c9f17d --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusLabelViewControllerDelegate.h @@ -0,0 +1,15 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIStatusLabelViewControllerDelegate +@optional +- (void)statusLabelViewControllerWillBeginStatusUpdates:(id)arg1; +- (void)statusLabelViewControllerDidFinishStatusUpdates:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusUpdateQueue.h b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusUpdateQueue.h new file mode 100644 index 0000000..44fa6e7 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/CCUIStatusUpdateQueue.h @@ -0,0 +1,22 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@class NSMutableArray, NSMutableDictionary; + +@interface CCUIStatusUpdateQueue : NSObject { + + NSMutableArray* _queuedIdentifiers; + NSMutableDictionary* _latestUpdateByIdentifier; + +} +- (instancetype)init; +- (void)removeAllStatusUpdates; +- (void)enqueueStatusUpdate:(id)arg1 forIdentifier:(id)arg2; +- (id)dequeueNextStatusUpdate; +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI-Structs.h b/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI-Structs.h new file mode 100644 index 0000000..38cf575 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI-Structs.h @@ -0,0 +1,24 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +typedef struct _NSZone* NSZoneRef; + +typedef struct CCUILayoutPoint { + NSUInteger x; + NSUInteger y; +} CCUILayoutPoint; + +typedef struct CCUILayoutSize { + NSUInteger width; + NSUInteger height; +} CCUILayoutSize; + +typedef struct CCUILayoutRect { + CCUILayoutPoint origin; + CCUILayoutSize size; +} CCUILayoutRect; diff --git a/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI.h b/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI.h new file mode 100644 index 0000000..fa8bde0 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/ControlCenterUI.h @@ -0,0 +1,47 @@ +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/Frameworks/ControlCenterUI.framework/Headers/UIGestureRecognizerDelegate.h b/Frameworks/ControlCenterUI.framework/Headers/UIGestureRecognizerDelegate.h new file mode 100644 index 0000000..9df6058 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/UIGestureRecognizerDelegate.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol UIGestureRecognizerDelegate +@optional +- (BOOL)gestureRecognizerShouldBegin:(id)arg1; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldRequireFailureOfGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldBeRequiredToFailByGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceivePress:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/UIPreviewInteractionDelegatePrivate.h b/Frameworks/ControlCenterUI.framework/Headers/UIPreviewInteractionDelegatePrivate.h new file mode 100644 index 0000000..9f9ddcc --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/UIPreviewInteractionDelegatePrivate.h @@ -0,0 +1,21 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol UIPreviewInteractionDelegatePrivate +@optional +- (id)_previewInteractionHighlighterForPreviewTransition:(id)arg1; +- (id)_previewInteraction:(id)arg1 viewControllerPresentationForPresentingViewController:(id)arg2; +- (BOOL)_previewInteractionShouldFinishTransitionToPreview:(id)arg1; +- (BOOL)_previewInteractionShouldAutomaticallyTransitionToPreviewAfterDelay:(id)arg1; +- (id)_previewInteractionViewForHighlight:(id)arg1; +- (id)_previewInteractionViewControllerForPreview:(id)arg1; +- (id)_previewInteraction:(id)arg1 appearanceTransitionForViewController:(id)arg2; +- (id)_previewInteraction:(id)arg1 disappearanceTransitionForViewController:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/_UIBasicAnimationFactory.h b/Frameworks/ControlCenterUI.framework/Headers/_UIBasicAnimationFactory.h new file mode 100644 index 0000000..f9f7c08 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/_UIBasicAnimationFactory.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:22:03 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/Frameworks/UIKit.framework/UIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol _UIBasicAnimationFactory +@optional +- (id)_timingFunctionForAnimation; +- (id)_timingFunctionForAnimationInView:(id)arg1 withKeyPath:(id)arg2; +- (BOOL)_shouldAnimateAdditivelyForView:(id)arg1 withKeyPath:(id)arg2; + +@required +- (id)_basicAnimationForView:(id)arg1 withKeyPath:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUI.framework/Headers/_UIPreviewInteractionViewControllerTransition.h b/Frameworks/ControlCenterUI.framework/Headers/_UIPreviewInteractionViewControllerTransition.h new file mode 100644 index 0000000..e20e721 --- /dev/null +++ b/Frameworks/ControlCenterUI.framework/Headers/_UIPreviewInteractionViewControllerTransition.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Thursday, January 25, 2018 at 11:29:33 PM Eastern European Standard Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol _UIPreviewInteractionViewControllerTransition +@optional +- (void)prepareTransitionFromView:(id)arg1 toView:(id)arg2 containerView:(id)arg3; +- (void)performWithCustomAnimator:(/*^block*/ id)arg1 completion:(/*^block*/ id)arg2; + +@required +- (void)performTransitionFromView:(id)arg1 toView:(id)arg2 containerView:(id)arg3; +- (void)transitionDidEnd:(BOOL)arg1; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherModule.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherModule.h new file mode 100644 index 0000000..0e3a6ab --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherModule.h @@ -0,0 +1,52 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCUIContentModule.h" +#import "CCUIContentModuleContentViewController.h" + +@class NSBundle, NSString, CCUIContentModuleContext, NSURL, UIImage, UIViewController; + +@interface CCUIAppLauncherModule : NSObject { + + NSBundle* _bundle; + BOOL _supportsApplicationShortcuts; + NSString* _applicationIdentifier; + NSString* _displayName; + CCUIContentModuleContext* _contentModuleContext; + NSURL* _launchURL; + +} + +@property (nonatomic,copy) NSString * applicationIdentifier; //@synthesize applicationIdentifier=_applicationIdentifier - In the implementation block +@property (nonatomic,copy) NSURL * launchURL; //@synthesize launchURL=_launchURL - In the implementation block +@property (nonatomic,copy) NSString * displayName; //@synthesize displayName=_displayName - In the implementation block +@property (assign,nonatomic) BOOL supportsApplicationShortcuts; //@synthesize supportsApplicationShortcuts=_supportsApplicationShortcuts - In the implementation block +@property (nonatomic,copy,readonly) UIImage * iconGlyph; +@property (nonatomic,retain) CCUIContentModuleContext * contentModuleContext; //@synthesize contentModuleContext=_contentModuleContext - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) UIViewController* contentViewController; +@property (nonatomic,readonly) UIViewController * backgroundViewController; +- (void)setDisplayName:(NSString *)arg1; +- (id)init; +- (UIViewController*)contentViewController; +- (void)setApplicationIdentifier:(NSString *)arg1; +- (NSString *)applicationIdentifier; +- (NSString *)displayName; +- (UIImage *)iconGlyph; +- (id)launchURLForTouchType:(NSInteger)arg1; +- (void)handleTapWithTouchType:(NSInteger)arg1; +- (BOOL)supportsApplicationShortcuts; +- (void)setSupportsApplicationShortcuts:(BOOL)arg1; +- (CCUIContentModuleContext *)contentModuleContext; +- (void)setContentModuleContext:(CCUIContentModuleContext *)arg1; +- (NSURL *)launchURL; +- (void)setLaunchURL:(NSURL *)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherViewController.h new file mode 100644 index 0000000..d09a2aa --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIAppLauncherViewController.h @@ -0,0 +1,30 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class SBFApplication, SCUIAssetProvider, CCUIAppLauncherModule; + +@interface CCUIAppLauncherViewController : CCUIMenuModuleViewController { + + SBFApplication* _application; + SCUIAssetProvider* _assetProvider; + CCUIAppLauncherModule* _module; + +} + +@property (nonatomic,weak) CCUIAppLauncherModule * module; //@synthesize module=_module - In the implementation block +- (CCUIAppLauncherModule *)module; +- (void)viewDidLoad; +- (BOOL)shouldBeginTransitionToExpandedContentModule; +- (void)buttonTapped:(id)arg1 forEvent:(id)arg2; +- (void)_updateApplicationShortcutsActions; +- (void)_addActionForShortcutItem:(id)arg1; +- (void)_activateApplicationForShortcutItem:(id)arg1; +- (void)setModule:(CCUIAppLauncherModule *)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleView.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleView.h new file mode 100644 index 0000000..9d150e7 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleView.h @@ -0,0 +1,66 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import + +@class UIView, UIImageView, CCUICAPackageView, UIImage, UIColor, CCUICAPackageDescription, NSString; + +@interface CCUIButtonModuleView : UIControl { + + UIView* _highlightedBackgroundView; + UIImageView* _glyphImageView; + CCUICAPackageView* _glyphPackageView; + UIImage* _glyphImage; + UIColor* _glyphColor; + UIImage* _selectedGlyphImage; + UIColor* _selectedGlyphColor; + CCUICAPackageDescription* _glyphPackageDescription; + NSString* _glyphState; + NSDirectionalEdgeInsets _contentEdgeInsets; + +} + +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,retain) UIColor * glyphColor; //@synthesize glyphColor=_glyphColor - In the implementation block +@property (nonatomic,retain) UIImage * selectedGlyphImage; //@synthesize selectedGlyphImage=_selectedGlyphImage - In the implementation block +@property (nonatomic,retain) UIColor * selectedGlyphColor; //@synthesize selectedGlyphColor=_selectedGlyphColor - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,copy) NSString * glyphState; //@synthesize glyphState=_glyphState - In the implementation block +@property (assign,nonatomic) NSDirectionalEdgeInsets contentEdgeInsets; //@synthesize contentEdgeInsets=_contentEdgeInsets - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (id)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (void)setContentEdgeInsets:(NSDirectionalEdgeInsets)arg1; +- (void)setHighlighted:(BOOL)arg1; +- (void)setEnabled:(BOOL)arg1; +- (void)_handlePressGesture:(id)arg1; +- (void)setSelected:(BOOL)arg1; +- (NSDirectionalEdgeInsets)contentEdgeInsets; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (void)setSelectedGlyphImage:(UIImage *)arg1; +- (UIImage *)selectedGlyphImage; +- (void)_updateForStateChange; +- (void)setGlyphColor:(UIColor *)arg1; +- (UIColor *)glyphColor; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (void)setSelectedGlyphColor:(UIColor *)arg1; +- (UIColor *)selectedGlyphColor; +- (void)_setGlyphImage:(id)arg1; +- (void)_setGlyphPackageDescription:(id)arg1; +- (void)_setGlyphState:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleViewController.h new file mode 100644 index 0000000..7ae0434 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIButtonModuleViewController.h @@ -0,0 +1,57 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIContentModuleContentViewController.h" + +@class CCUIButtonModuleView, UIImage, UIColor, CCUICAPackageDescription, NSString; + +@interface CCUIButtonModuleViewController : UIViewController { + + CCUIButtonModuleView* _buttonModuleView; + BOOL _expanded; + +} + +@property (nonatomic,retain) UIImage * glyphImage; +@property (nonatomic,retain) UIColor * glyphColor; +@property (nonatomic,retain) UIImage * selectedGlyphImage; +@property (nonatomic,retain) UIColor * selectedGlyphColor; +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; +@property (nonatomic,copy) NSString * glyphState; +@property (assign,getter=isSelected,nonatomic) BOOL selected; +@property (getter=isExpanded,nonatomic,readonly) BOOL expanded; //@synthesize expanded=_expanded - In the implementation block +@property (nonatomic,readonly) CCUIButtonModuleView * buttonView; +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat preferredExpandedContentHeight; +@property (nonatomic,readonly) CGFloat preferredExpandedContentWidth; +@property (nonatomic,readonly) BOOL providesOwnPlatter; +- (BOOL)isSelected; +- (void)setSelected:(BOOL)arg1; +- (void)viewDidLoad; +- (BOOL)isExpanded; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (void)setSelectedGlyphImage:(UIImage *)arg1; +- (UIImage *)selectedGlyphImage; +- (void)setGlyphColor:(UIColor *)arg1; +- (UIColor *)glyphColor; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (void)setSelectedGlyphColor:(UIColor *)arg1; +- (UIColor *)selectedGlyphColor; +- (void)buttonTapped:(id)arg1 forEvent:(id)arg2; +- (CGFloat)preferredExpandedContentHeight; +- (void)willTransitionToExpandedContentMode:(BOOL)arg1; +- (CCUIButtonModuleView *)buttonView; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageDescription.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageDescription.h new file mode 100644 index 0000000..dd16370 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageDescription.h @@ -0,0 +1,26 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@class NSURL; + +@interface CCUICAPackageDescription : NSObject { + + BOOL _flipsForRightToLeftLayoutDirection; + NSURL* _packageURL; + +} + +@property (nonatomic,copy,readonly) NSURL * packageURL; //@synthesize packageURL=_packageURL - In the implementation block +@property (assign,nonatomic) BOOL flipsForRightToLeftLayoutDirection; //@synthesize flipsForRightToLeftLayoutDirection=_flipsForRightToLeftLayoutDirection - In the implementation block ++ (id)descriptionForPackageNamed:(id)arg1 inBundle:(id)arg2; +- (BOOL)flipsForRightToLeftLayoutDirection; +- (id)initWithPackageName:(id)arg1 inBundle:(id)arg2; +- (void)setFlipsForRightToLeftLayoutDirection:(BOOL)arg1; +- (NSURL *)packageURL; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageView.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageView.h new file mode 100644 index 0000000..db61415 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUICAPackageView.h @@ -0,0 +1,33 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class CAStateController, CALayer, CAPackage, CCUICAPackageDescription; + +@interface CCUICAPackageView : UIView { + + CAStateController* _stateController; + CALayer* _packageLayer; + CAPackage* _package; + CCUICAPackageDescription* _packageDescription; + +} + +@property (nonatomic,retain) CAPackage * package; //@synthesize package=_package - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * packageDescription; //@synthesize packageDescription=_packageDescription - In the implementation block +- (void)setPackage:(CAPackage *)arg1; +- (id)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (void)setStateName:(id)arg1; +- (void)setPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)_setPackage:(id)arg1; +- (CCUICAPackageDescription *)packageDescription; +- (CAPackage *)package; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentClipping.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentClipping.h new file mode 100644 index 0000000..0a5d290 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentClipping.h @@ -0,0 +1,15 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIContentClipping +@property (getter=isContentClippingRequired,nonatomic,readonly) BOOL contentClippingRequired; +@required +- (BOOL)isContentClippingRequired; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModule.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModule.h new file mode 100644 index 0000000..e3ba72d --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModule.h @@ -0,0 +1,23 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class UIViewController; + +#import "CCUIContentModuleContentViewController.h" + +@protocol CCUIContentModule +@property (nonatomic,readonly) UIViewController* contentViewController; +@property (nonatomic,readonly) UIViewController * backgroundViewController; +@optional +- (void)setContentModuleContext:(id)arg1; +- (UIViewController *)backgroundViewController; + +@required +- (UIViewController*)contentViewController; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContentViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContentViewController.h new file mode 100644 index 0000000..ac4382c --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContentViewController.h @@ -0,0 +1,32 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCUIContentModuleContentViewController.h" + +@protocol CCUIContentModuleContentViewController +@property (nonatomic,readonly) CGFloat preferredExpandedContentHeight; +@property (nonatomic,readonly) CGFloat preferredExpandedContentWidth; +@property (nonatomic,readonly) BOOL providesOwnPlatter; +@optional +- (BOOL)shouldBeginTransitionToExpandedContentModule; +- (void)willResignActive; +- (void)willBecomeActive; +- (void)willTransitionToExpandedContentMode:(BOOL)arg1; +- (BOOL)shouldFinishTransitionToExpandedContentModule; +- (void)didTransitionToExpandedContentMode:(BOOL)arg1; +- (BOOL)canDismissPresentedContent; +- (void)dismissPresentedContentAnimated:(BOOL)arg1 completion:(/*^block*/ id)arg2; +- (CGFloat)preferredExpandedContentWidth; +- (BOOL)providesOwnPlatter; +- (void)controlCenterWillPresent; +- (void)controlCenterDidDismiss; + +@required +- (CGFloat)preferredExpandedContentHeight; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContext.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContext.h new file mode 100644 index 0000000..95d5ac0 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleContext.h @@ -0,0 +1,36 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIContentModuleContextDelegate; +@class NSString; + +@interface CCUIContentModuleContext : NSObject { + + NSString* _moduleIdentifier; + id _delegate; + +} + +@property (nonatomic,copy,readonly) NSString * moduleIdentifier; //@synthesize moduleIdentifier=_moduleIdentifier - In the implementation block +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block ++ (void)initialize; ++ (id)_sharedOpenApplicationOptions; ++ (id)_sharedOpenAppService; +- (id)delegate; +- (void)setDelegate:(id)arg1; +- (void)openURL:(id)arg1 completionHandler:(/*^block*/ id)arg2; +- (NSString *)moduleIdentifier; +- (void)openApplication:(id)arg1 withOptions:(id)arg2 completionHandler:(/*^block*/ id)arg3; +- (void)requestAuthenticationWithCompletionHandler:(/*^block*/ id)arg1; +- (void)openApplication:(id)arg1 completionHandler:(/*^block*/ id)arg2; +- (void)enqueueStatusUpdate:(id)arg1; +- (void)requestExpandModule; +- (void)dismissModule; +- (id)initWithModuleIdentifier:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleExpandedStateListener.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleExpandedStateListener.h new file mode 100644 index 0000000..d3083ca --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleExpandedStateListener.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol CCUIContentModuleExpandedStateListener +@required +- (void)contentModuleWillTransitionToExpandedContentMode:(BOOL)arg1; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleTopLevelGestureProvider.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleTopLevelGestureProvider.h new file mode 100644 index 0000000..921fa36 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIContentModuleTopLevelGestureProvider.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class NSArray; + + +@protocol CCUIContentModuleTopLevelGestureProvider +@property (nonatomic,readonly) NSArray * topLevelGestureRecognizers; +@property (nonatomic,readonly) NSArray * topLevelBlockingGestureRecognizers; +@optional +- (NSArray *)topLevelBlockingGestureRecognizers; +- (NSArray *)topLevelGestureRecognizers; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterButton.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterButton.h new file mode 100644 index 0000000..347ec99 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterButton.h @@ -0,0 +1,115 @@ +/* +* This header is generated by classdump-dyld 1.0 +* on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time +* Operating System: Version 11.1.2 (Build 15B202) +* Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit +* classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. +*/ + +#import +#import "SBFButton.h" +#import "_UISettingsKeyObserver.h" + +@protocol CCUIControlCenterButtonDelegate; +@class UIColor, UIImageView, UILabel, UIView, UIImage, UIFont, NSString; + +@interface CCUIControlCenterButton : SBFButton <_UISettingsKeyObserver> { + + NSUInteger _buttonType; + UIColor* _selectedColor; + UIImageView* _glyphImageView; + UILabel* _label; + UIImageView* _alteredStateGlyphImageView; + UILabel* _alteredStateLabel; + UIView* _backgroundFlatColorView; + BOOL _animatesStateChanges; + BOOL _showingMenu; + id _delegate; + NSUInteger _roundCorners; + UIImage* _glyphImage; + UIImage* _selectedGlyphImage; + CGFloat _naturalHeight; + +} + +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,retain) UIImage * selectedGlyphImage; //@synthesize selectedGlyphImage=_selectedGlyphImage - In the implementation block +@property (assign,nonatomic) CGFloat naturalHeight; //@synthesize naturalHeight=_naturalHeight - In the implementation block +@property (nonatomic,weak) id delegate; //@synthesize delegate=_delegate - In the implementation block +@property (assign,nonatomic) BOOL animatesStateChanges; //@synthesize animatesStateChanges=_animatesStateChanges - In the implementation block +@property (getter=isInternal,nonatomic,readonly) BOOL internal; +@property (assign,nonatomic) NSUInteger roundCorners; //@synthesize roundCorners=_roundCorners - In the implementation block +@property (assign,getter=isShowingMenu,nonatomic) BOOL showingMenu; //@synthesize showingMenu=_showingMenu - In the implementation block +@property (nonatomic,retain) UIFont * font; +@property (assign,nonatomic) NSInteger numberOfLines; +@property (nonatomic,retain) NSString * text; +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; ++(id)_buttonWithSelectedColor:(id)arg1 text:(id)arg2 type:(NSUInteger)arg3 ; ++(id)smallCircularButtonWithSelectedColor:(id)arg1 ; ++(id)circularButtonWithSelectedColor:(id)arg1 ; ++(id)roundRectButton; ++(id)roundRectButtonWithText:(id)arg1 ; ++(id)roundRectButtonWithText:(id)arg1 selectedGlyphColor:(id)arg2 ; ++(id)capsuleButtonWithText:(id)arg1 ; +-(id)initWithFrame:(CGRect)arg1 ; +-(void)setFrame:(CGRect)arg1 ; +-(void)setNumberOfLines:(NSInteger)arg1 ; +-(CGFloat)cornerRadius; +-(void)layoutSubviews; +-(id)delegate; +-(void)setDelegate:(id)arg1 ; +-(void)dealloc; +-(void)setBounds:(CGRect)arg1 ; +-(CGSize)sizeThatFits:(CGSize)arg1 ; +-(CGSize)intrinsicContentSize; +-(NSString *)text; +-(void)setText:(NSString *)arg1 ; +-(void)setFont:(UIFont *)arg1 ; +-(void)setBackgroundImage:(id)arg1 forState:(NSUInteger)arg2 ; +-(void)setEnabled:(BOOL)arg1 ; +-(void)_setButtonType:(NSUInteger)arg1 ; +-(BOOL)_shouldAnimatePropertyWithKey:(id)arg1 ; +-(void)didMoveToSuperview; +-(UIFont *)font; +-(NSInteger)numberOfLines; +-(void)settings:(id)arg1 changedValueForKey:(id)arg2 ; +-(void)setImage:(id)arg1 forState:(NSUInteger)arg2 ; +-(void)_updateEffects; +-(UIImage *)glyphImage; +-(void)setGlyphImage:(UIImage *)arg1 ; +-(void)setSelectedGlyphImage:(UIImage *)arg1 ; +-(UIImage *)selectedGlyphImage; +-(BOOL)_drawingAsSelected; +-(CGFloat)naturalHeight; +-(void)_updateForStateChange; +-(NSInteger)_currentState; +-(void)setShowingMenu:(BOOL)arg1 ; +-(BOOL)isShowingMenu; +-(id)initWithFrame:(CGRect)arg1 selectedColor:(id)arg2 text:(id)arg3 type:(NSUInteger)arg4 ; +-(BOOL)_isCircleButton; +-(BOOL)_isRectButton; +-(BOOL)_isCapsuleButton; +-(BOOL)_isTextButton; +-(void)_updateBackgroundForStateChange; +-(void)_pressAction; +-(void)_updateForReduceTransparencyChange; +-(void)_updateForDarkerSystemColorsChange:(id)arg1 ; +-(void)_calculateRectForGlyph:(CGRect*)arg1 rectForLabel:(CGRect*)arg2 ignoringBounds:(BOOL)arg3 ; +-(id)_glyphImageForState:(NSInteger)arg1 ; +-(void)_updateNaturalHeight; +-(void)_updateGlyphAndTextForStateChange; +-(void)setNaturalHeight:(CGFloat)arg1 ; +-(id)_effectiveSelectedColor; +-(NSUInteger)roundCorners; +-(BOOL)animatesStateChanges; +-(id)_controlStateStringFromState:(NSInteger)arg1 ; +-(BOOL)_isRectTextButton; +-(void)setRoundCorners:(NSUInteger)arg1 ; +-(void)setAnimatesStateChanges:(BOOL)arg1 ; +-(id)ccuiPunchOutMaskForView:(id)arg1 ; +-(void)setGlyphImage:(id)arg1 selectedGlyphImage:(id)arg2 name:(id)arg3 ; +-(BOOL)isInternal; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterLabel.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterLabel.h new file mode 100644 index 0000000..2abfb8b --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterLabel.h @@ -0,0 +1,26 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIControlCenterLabel : UILabel { + + NSUInteger _style; + +} + +@property (assign,nonatomic) NSUInteger style; //@synthesize style=_style - In the implementation block +- (id)initWithFrame:(CGRect)arg1; +- (NSUInteger)style; +- (void)setHighlighted:(BOOL)arg1; +- (void)setEnabled:(BOOL)arg1; +- (void)setStyle:(NSUInteger)arg1; +- (BOOL)_shouldAnimatePropertyWithKey:(id)arg1; +- (void)_updateEffects; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterMaterialView.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterMaterialView.h new file mode 100644 index 0000000..1428e5c --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterMaterialView.h @@ -0,0 +1,22 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@interface CCUIControlCenterMaterialView : UIView ++ (id)_tertiaryMaterialView; ++ (id)_lightFillMaterialView; ++ (id)_darkMaterialView; ++ (id)controlCenterLightFill; ++ (id)moduleBackgroundMaterialView; ++ (id)primaryMaterialView; ++ (id)secondaryMaterialView; ++ (id)baseMaterialBlurView; ++ (id)controlCenterDarkMaterial; ++ (id)controlCenterTertiaryMaterial; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterSlider.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterSlider.h new file mode 100644 index 0000000..c00fc51 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterSlider.h @@ -0,0 +1,50 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class UIImageView; + +@interface CCUIControlCenterSlider : UISlider { + + UIImageView* _minValueHighlightedImageView; + UIImageView* _maxValueHighlightedImageView; + BOOL _adjusting; + +} + +@property (assign,getter=isAdjusting,nonatomic) BOOL adjusting; //@synthesize adjusting=_adjusting - In the implementation block ++ (id)_trackImage; ++ (id)_knobImage; ++ (UIEdgeInsets)_edgeInsetsForSliderKnob; ++ (id)_resizableTrackImage; +- (id)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (BOOL)pointInside:(CGPoint)arg1 withEvent:(id)arg2; +- (void)cancelTrackingWithEvent:(id)arg1; +- (BOOL)beginTrackingWithTouch:(id)arg1 withEvent:(id)arg2; +- (void)endTrackingWithTouch:(id)arg1 withEvent:(id)arg2; +- (CGRect)trackRectForBounds:(CGRect)arg1; +- (CGRect)thumbRectForBounds:(CGRect)arg1 trackRect:(CGRect)arg2 value:(float)arg3; +- (CGRect)minimumValueImageRectForBounds:(CGRect)arg1; +- (CGRect)maximumValueImageRectForBounds:(CGRect)arg1; +- (UIEdgeInsets)_thumbHitEdgeInsets; +- (void)setMinimumValueImage:(id)arg1; +- (void)setMaximumValueImage:(id)arg1; +- (void)_updateEffects; +- (void)_setTrackImage:(id)arg1; +- (void)setAdjusting:(BOOL)arg1; +- (void)setMinimumValueImage:(id)arg1 cacheKey:(id)arg2; +- (void)setMaximumValueImage:(id)arg1 cacheKey:(id)arg2; +- (CGFloat)leftValueImageOriginForBounds:(CGRect)arg1 andSize:(CGSize)arg2; +- (CGFloat)rightValueImageOriginForBounds:(CGRect)arg1 andSize:(CGSize)arg2; +- (void)_configureHighlightedValueImagesLikeRegularValueImages; +- (BOOL)ccuiSupportsDelayedTouchesByContainingScrollViewForGesture:(id)arg1; +- (BOOL)isAdjusting; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterVisualEffect.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterVisualEffect.h new file mode 100644 index 0000000..d0e0ef3 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIControlCenterVisualEffect.h @@ -0,0 +1,34 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@interface CCUIControlCenterVisualEffect : UIVisualEffect { + + NSInteger _style; + +} ++ (id)effectWithStyle:(NSInteger)arg1; ++ (id)effectWithControlState:(NSUInteger)arg1 inContext:(NSInteger)arg2; ++ (id)_glyphOrTextOnPlatterOrBackgroundEffect; ++ (id)_primaryHighlightedTextOnPlatterEffect; ++ (id)_grayEffect; ++ (id)_primaryRegularTextOnPlatterEffect; ++ (id)_secondaryHighlightedTextOnPlatterEffect; ++ (id)_secondaryRegularTextOnPlatterEffect; ++ (id)_blackEffect; ++ (id)_whiteEffect; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (NSInteger)_style; +- (id)copyWithZone:(NSZone*)arg1; +- (id)initWithPrivateStyle:(NSInteger)arg1; +- (id)contentsMultiplyColor; +- (id)effectConfig; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIGroupRendering.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIGroupRendering.h new file mode 100644 index 0000000..1cd97d6 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIGroupRendering.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class CALayer; + + +@protocol CCUIGroupRendering +@property (getter=isGroupRenderingRequired,nonatomic,readonly) BOOL groupRenderingRequired; +@property (nonatomic,readonly) CALayer * punchOutRootLayer; +@required +- (BOOL)isGroupRenderingRequired; +- (CALayer *)punchOutRootLayer; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButton.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButton.h new file mode 100644 index 0000000..c7ef28f --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButton.h @@ -0,0 +1,73 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class NSString, UIImage, CCUICAPackageDescription, CCUIRoundButton, UIColor, UILabel; + +@interface CCUILabeledRoundButton : UIView { + + BOOL _labelsVisible; + NSString* _title; + NSString* _subtitle; + UIImage* _glyphImage; + CCUICAPackageDescription* _glyphPackageDescription; + NSString* _glyphState; + CCUIRoundButton* _buttonView; + UIColor* _highlightColor; + UILabel* _titleLabel; + UILabel* _subtitleLabel; + +} + +@property (nonatomic,retain) UIColor * highlightColor; //@synthesize highlightColor=_highlightColor - In the implementation block +@property (nonatomic,retain) CCUIRoundButton * buttonView; //@synthesize buttonView=_buttonView - In the implementation block +@property (nonatomic,retain) UILabel * titleLabel; //@synthesize titleLabel=_titleLabel - In the implementation block +@property (nonatomic,retain) UILabel * subtitleLabel; //@synthesize subtitleLabel=_subtitleLabel - In the implementation block +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,copy) NSString * glyphState; //@synthesize glyphState=_glyphState - In the implementation block +@property (nonatomic,copy) NSString * title; //@synthesize title=_title - In the implementation block +@property (nonatomic,copy) NSString * subtitle; //@synthesize subtitle=_subtitle - In the implementation block +@property (assign,nonatomic) BOOL labelsVisible; //@synthesize labelsVisible=_labelsVisible - In the implementation block +- (void)layoutSubviews; +- (void)dealloc; +- (void)setTitle:(NSString *)arg1; +- (CGSize)sizeThatFits:(CGSize)arg1; +- (CGSize)intrinsicContentSize; +- (NSString *)title; +- (UILabel *)titleLabel; +- (void)setSubtitle:(NSString *)arg1; +- (NSString *)subtitle; +- (UIColor *)highlightColor; +- (void)setHighlightColor:(UIColor *)arg1; +- (void)setTitleLabel:(UILabel *)arg1; +- (void)_layoutLabels; +- (void)buttonTapped:(id)arg1; +- (void)setButtonView:(CCUIRoundButton *)arg1; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (void)_contentSizeCategoryDidChange; +- (UILabel *)subtitleLabel; +- (void)setSubtitleLabel:(UILabel *)arg1; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (void)setLabelsVisible:(BOOL)arg1; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (BOOL)labelsVisible; +- (id)initWithHighlightColor:(id)arg1 useLightStyle:(BOOL)arg2; +- (void)_setupLabelsBounds; +- (BOOL)_shouldUseLargeTextLayout; +- (CCUIRoundButton *)buttonView; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButtonViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButtonViewController.h new file mode 100644 index 0000000..f5eee2a --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUILabeledRoundButtonViewController.h @@ -0,0 +1,74 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class NSString, CCUICAPackageDescription, UIImage, UIColor, CCUILabeledRoundButton, UIControl; + +@interface CCUILabeledRoundButtonViewController : UIViewController { + + BOOL _labelsVisible; + BOOL _toggleStateOnTap; + BOOL _enabled; + BOOL _inoperative; + BOOL _useLightStyle; + NSString* _subtitle; + CCUICAPackageDescription* _glyphPackageDescription; + NSString* _glyphState; + UIImage* _glyphImage; + UIColor* _highlightColor; + CCUILabeledRoundButton* _buttonContainer; + UIControl* _button; + +} + +@property (nonatomic,retain) UIColor * highlightColor; //@synthesize highlightColor=_highlightColor - In the implementation block +@property (assign,nonatomic) BOOL useLightStyle; //@synthesize useLightStyle=_useLightStyle - In the implementation block +@property (nonatomic,retain) CCUILabeledRoundButton * buttonContainer; //@synthesize buttonContainer=_buttonContainer - In the implementation block +@property (nonatomic,retain) UIControl * button; //@synthesize button=_button - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,copy) NSString * glyphState; //@synthesize glyphState=_glyphState - In the implementation block +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,copy) NSString * title; +@property (nonatomic,copy) NSString * subtitle; //@synthesize subtitle=_subtitle - In the implementation block +@property (assign,nonatomic) BOOL labelsVisible; //@synthesize labelsVisible=_labelsVisible - In the implementation block +@property (assign,nonatomic) BOOL toggleStateOnTap; //@synthesize toggleStateOnTap=_toggleStateOnTap - In the implementation block +@property (assign,getter=isEnabled,nonatomic) BOOL enabled; //@synthesize enabled=_enabled - In the implementation block +@property (assign,getter=isInoperative,nonatomic) BOOL inoperative; //@synthesize inoperative=_inoperative - In the implementation block +- (UIControl *)button; +- (void)setTitle:(NSString *)arg1; +- (void)loadView; +- (BOOL)isEnabled; +- (void)setEnabled:(BOOL)arg1; +- (void)setSubtitle:(NSString *)arg1; +- (NSString *)subtitle; +- (UIColor *)highlightColor; +- (void)setHighlightColor:(UIColor *)arg1; +- (void)setButton:(UIControl *)arg1; +- (void)buttonTapped:(id)arg1; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (CCUILabeledRoundButton *)buttonContainer; +- (void)setButtonContainer:(CCUILabeledRoundButton *)arg1; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (void)setLabelsVisible:(BOOL)arg1; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2; +- (void)setInoperative:(BOOL)arg1; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (BOOL)labelsVisible; +- (BOOL)toggleStateOnTap; +- (void)setToggleStateOnTap:(BOOL)arg1; +- (BOOL)isInoperative; +- (BOOL)useLightStyle; +- (void)setUseLightStyle:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleAnimationController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleAnimationController.h new file mode 100644 index 0000000..7e37549 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleAnimationController.h @@ -0,0 +1,24 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class NSString; + +@interface CCUIMenuModuleAnimationController : NSObject { + + BOOL _presenting; + +} + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (CGFloat)transitionDuration:(id)arg1; +- (void)animateTransition:(id)arg1; +- (id)initForPresenting:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleItemView.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleItemView.h new file mode 100644 index 0000000..8339560 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleItemView.h @@ -0,0 +1,55 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class UILabel, UIImage, UIView, UIImageView; + +@interface CCUIMenuModuleItemView : UIControl { + + UILabel* _titleLabel; + UILabel* _subtitleLabel; + UIImage* _glyphImage; + UIView* _separatorView; + UIImageView* _glyphImageView; + UIView* _highlightedBackgroundView; + BOOL _separatorVisible; + BOOL _useTallLayout; + /*^block*/ id _handler; + CGFloat _preferredMaxLayoutWidth; + +} + +@property (nonatomic,copy,readonly) id handler; //@synthesize handler=_handler - In the implementation block +@property (assign,nonatomic) BOOL separatorVisible; //@synthesize separatorVisible=_separatorVisible - In the implementation block +@property (assign,nonatomic) CGFloat preferredMaxLayoutWidth; //@synthesize preferredMaxLayoutWidth=_preferredMaxLayoutWidth - In the implementation block +@property (assign,nonatomic) BOOL useTallLayout; //@synthesize useTallLayout=_useTallLayout - In the implementation block +- (void)layoutSubviews; +- (CGSize)sizeThatFits:(CGSize)arg1; +- (CGSize)intrinsicContentSize; +- (void)setHighlighted:(BOOL)arg1; +- (void)setEnabled:(BOOL)arg1; +- (void)_setContinuousCornerRadius:(CGFloat)arg1; +- (void)setSelected:(BOOL)arg1; +- (void)setPreferredMaxLayoutWidth:(CGFloat)arg1; +- (CGFloat)preferredMaxLayoutWidth; +- (id)handler; +- (void)_updateForStateChange; +- (id)initWithTitle:(id)arg1 subtitle:(id)arg2 glyphImage:(id)arg3 handler:(/*^block*/ id)arg4; +- (void)setUseTallLayout:(BOOL)arg1; +- (BOOL)useTallLayout; +- (CGFloat)_titleBaselineToTop; +- (CGFloat)_titleBaselineToBottom; +- (BOOL)_shouldCenterText; +- (CGFloat)_glyphMargin; +- (BOOL)separatorVisible; +- (id)initWithTitle:(id)arg1 glyphImage:(id)arg2 handler:(/*^block*/ id)arg3; +- (void)setSeparatorVisible:(BOOL)arg1; +- (UIEdgeInsets)_labelInsets; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModulePresentationController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModulePresentationController.h new file mode 100644 index 0000000..038984c --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModulePresentationController.h @@ -0,0 +1,26 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class NSString; + +@interface CCUIMenuModulePresentationController : UIPresentationController + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2; +- (BOOL)shouldPresentInFullscreen; +- (BOOL)_shouldRespectDefinesPresentationContext; +- (void)dismissalTransitionDidEnd:(BOOL)arg1; +- (void)presentationTransitionWillBegin; +- (id)_menuModuleViewController; +- (void)_handleBackgroundTap:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleTransitioningDelegate.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleTransitioningDelegate.h new file mode 100644 index 0000000..a8de205 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleTransitioningDelegate.h @@ -0,0 +1,20 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +@class NSString; + +@interface CCUIMenuModuleTransitioningDelegate : NSObject + +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (id)presentationControllerForPresentedViewController:(id)arg1 presentingViewController:(id)arg2 sourceViewController:(id)arg3; +- (id)animationControllerForPresentedController:(id)arg1 presentingController:(id)arg2 sourceController:(id)arg3; +- (id)animationControllerForDismissedController:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleViewController.h new file mode 100644 index 0000000..55e6aa4 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIMenuModuleViewController.h @@ -0,0 +1,98 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import "CCUIContentModuleContentViewController.h" + +@class UILabel, UIView, MTMaterialView, UIStackView, NSMutableArray, UIScrollView, UILongPressGestureRecognizer, UISelectionFeedbackGenerator, CCUIMenuModuleItemView, CCUIContentModuleContext, NSString; + +@interface CCUIMenuModuleViewController : CCUIButtonModuleViewController { + + UILabel* _titleLabel; + UIView* _headerSeparatorView; + MTMaterialView* _platterMaterialView; + UIStackView* _menuItemsContainer; + NSMutableArray* _menuItemsViews; + UIScrollView* _contentScrollView; + UIView* _darkeningBackgroundView; + UILongPressGestureRecognizer* _pressGestureRecognizer; + UISelectionFeedbackGenerator* _feedbackGenerator; + BOOL _ignoreMenuItemAtTouchLocationAfterExpanded; + CCUIMenuModuleItemView* _menuItemToIgnore; + BOOL _shouldProvideOwnPlatter; + BOOL _useTallLayout; + UIView* _contentView; + CCUIContentModuleContext* _contentModuleContext; + +} + +@property (nonatomic,copy) NSString * title; +@property (nonatomic,readonly) NSUInteger actionsCount; +@property (nonatomic,readonly) CGFloat headerHeight; +@property (nonatomic,readonly) UIView * contentView; //@synthesize contentView=_contentView - In the implementation block +@property (assign,nonatomic) BOOL shouldProvideOwnPlatter; //@synthesize shouldProvideOwnPlatter=_shouldProvideOwnPlatter - In the implementation block +@property (assign,nonatomic) BOOL useTallLayout; //@synthesize useTallLayout=_useTallLayout - In the implementation block +@property (nonatomic,weak) CCUIContentModuleContext * contentModuleContext; //@synthesize contentModuleContext=_contentModuleContext - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat preferredExpandedContentHeight; +@property (nonatomic,readonly) CGFloat preferredExpandedContentWidth; +@property (nonatomic,readonly) BOOL providesOwnPlatter; +@property (assign,nonatomic) BOOL useTrailingCheckmarkLayout; +- (NSUInteger)actionsCount; +- (UIView *)contentView; +- (void)dealloc; +- (void)setTitle:(NSString *)arg1; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (id)initWithNibName:(id)arg1 bundle:(id)arg2; +- (void)viewWillLayoutSubviews; +- (void)_handlePressGesture:(id)arg1; +- (void)viewWillTransitionToSize:(CGSize)arg1 withTransitionCoordinator:(id)arg2; +- (void)viewDidLoad; +- (void)removeAllActions; +- (CGFloat)_separatorHeight; +- (CGFloat)headerHeight; +- (id)_titleFont; +- (void)_contentSizeCategoryDidChange; +- (BOOL)shouldBeginTransitionToExpandedContentModule; +- (void)addActionWithTitle:(id)arg1 subtitle:(id)arg2 glyph:(id)arg3 handler:(/*^block*/ id)arg4; +- (CGFloat)headerHeightForWidth:(CGFloat)arg1; +- (void)_fadeViewsForExpandedState:(BOOL)arg1; +- (void)_setupContentViewBounds; +- (void)_setupMenuItems; +- (void)_layoutViewSubviews; +- (void)_layoutGlyphViewForSize:(CGSize)arg1; +- (void)_layoutTitleLabelForSize:(CGSize)arg1; +- (void)_layoutSeparatorForSize:(CGSize)arg1; +- (CGFloat)preferredExpandedContentHeightWithWidth:(CGFloat)arg1; +- (CGFloat)_maximumHeight; +- (CGFloat)_desiredExpandedHeight; +- (CGFloat)_menuItemsHeightForWidth:(CGFloat)arg1; +- (CGFloat)_contentScaleForSize:(CGSize)arg1; +- (CGAffineTransform)_contentTransformForScale:(CGFloat)arg1; +- (void)setUseTallLayout:(BOOL)arg1; +- (void)_handleActionTapped:(id)arg1; +- (BOOL)shouldProvideOwnPlatter; +- (void)setShouldProvideOwnPlatter:(BOOL)arg1; +- (BOOL)useTallLayout; +- (CGFloat)preferredExpandedContentHeight; +- (void)addActionWithTitle:(id)arg1 glyph:(id)arg2 handler:(/*^block*/ id)arg3; +- (void)willTransitionToExpandedContentMode:(BOOL)arg1; +- (CGFloat)preferredExpandedContentWidth; +- (CCUIContentModuleContext *)contentModuleContext; +- (void)setContentModuleContext:(CCUIContentModuleContext *)arg1; +- (void)_layoutMenuItemsForSize:(CGSize)arg1; +- (void)_setupTitleLabel; +- (void)contentModuleWillTransitionToExpandedContentMode:(BOOL)arg1; +- (void)_updateScrollViewContentSize; +- (void)setFooterButtonTitle:(id)arg1 handler:(/*^block*/id)arg2 ; +- (void)removeFooterButton; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIModuleSliderView.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIModuleSliderView.h new file mode 100644 index 0000000..f86d994 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIModuleSliderView.h @@ -0,0 +1,127 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import +#import +#import "CCUIContentModuleTopLevelGestureProvider.h" +#import "CCUIContentModuleExpandedStateListener.h" +#import "CCUIContentClipping.h" +#import "CCUIGroupRendering.h" + +@class NSArray, CALayer, UIImageView, CCUICAPackageView, NSTimer, UILongPressGestureRecognizer, UISelectionFeedbackGenerator, _UIEdgeFeedbackGenerator, UIImage, CCUICAPackageDescription, NSString; + +@interface CCUIModuleSliderView : UIControl { + + UIImageView* _glyphImageView; + CCUICAPackageView* _glyphPackageView; + CCUICAPackageView* _compensatingGlyphPackageView; + NSArray* _stepBackgroundViews; + NSArray* _separatorViews; + CGFloat _startingHeight; + CGPoint _startingLocation; + float _startingValue; + NSTimer* _updatesCommitTimer; + float _previousValue; + UILongPressGestureRecognizer* _valueChangeGestureRecognizer; + UISelectionFeedbackGenerator* _selectionFeedbackGenerator; + _UIEdgeFeedbackGenerator* _edgeFeedbackGenerator; + BOOL _glyphVisible; + BOOL _throttleUpdates; + BOOL _firstStepIsDisabled; + BOOL _firstStepIsOff; + BOOL _interactiveWhenUnexpanded; + float _value; + UIImage* _glyphImage; + CCUICAPackageDescription* _glyphPackageDescription; + NSString* _glyphState; + NSUInteger _numberOfSteps; + NSUInteger _step; + +} + +@property (assign,getter=isInteractiveWhenUnexpanded,nonatomic) BOOL interactiveWhenUnexpanded; //@synthesize interactiveWhenUnexpanded=_interactiveWhenUnexpanded - In the implementation block +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,retain) NSString * glyphState; //@synthesize glyphState=_glyphState - In the implementation block +@property (assign,getter=isGlyphVisible,nonatomic) BOOL glyphVisible; //@synthesize glyphVisible=_glyphVisible - In the implementation block +@property (assign,nonatomic) BOOL throttleUpdates; //@synthesize throttleUpdates=_throttleUpdates - In the implementation block +@property (assign,nonatomic) float value; //@synthesize value=_value - In the implementation block +@property (assign,nonatomic) NSUInteger numberOfSteps; //@synthesize numberOfSteps=_numberOfSteps - In the implementation block +@property (assign,nonatomic) BOOL firstStepIsDisabled; //@synthesize firstStepIsDisabled=_firstStepIsDisabled - In the implementation block +@property (assign,nonatomic) BOOL firstStepIsOff; //@synthesize firstStepIsOff=_firstStepIsOff - In the implementation block +@property (assign,nonatomic) NSUInteger step; //@synthesize step=_step - In the implementation block +@property (getter=isStepped,nonatomic,readonly) BOOL stepped; +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) NSArray * topLevelGestureRecognizers; +@property (nonatomic,readonly) NSArray * topLevelBlockingGestureRecognizers; +@property (getter=isContentClippingRequired,nonatomic,readonly) BOOL contentClippingRequired; +@property (getter=isGroupRenderingRequired,nonatomic,readonly) BOOL groupRenderingRequired; +@property (nonatomic,readonly) CALayer * punchOutRootLayer; +- (NSUInteger)step; +- (void)setStep:(NSUInteger)arg1; +- (id)initWithFrame:(CGRect)arg1; +- (void)layoutSubviews; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (void)setValue:(float)arg1; +- (float)value; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (void)_createStepViewsForNumberOfSteps:(NSUInteger)arg1; +- (void)_handleValueChangeGestureRecognizer:(id)arg1; +- (BOOL)isStepped; +- (NSUInteger)_stepFromValue:(float)arg1; +- (float)_valueFromStep:(NSUInteger)arg1; +- (void)_createSeparatorViewsForNumberOfSteps:(NSUInteger)arg1; +- (id)_newGlyphPackageView; +- (void)_configureGlyphPackageView:(id)arg1; +- (void)_configureCompensatingGlyphPackageView:(id)arg1; +- (void)_layoutValueViews; +- (BOOL)isInteractiveWhenUnexpanded; +- (void)_layoutValueViewsForStepChange:(BOOL)arg1; +- (void)_layoutContinuousValueView; +- (CGFloat)_fullStepHeight; +- (BOOL)firstStepIsOff; +- (CGFloat)_heightForStep:(NSUInteger)arg1; +- (void)_layoutContinuousValueViewForValue:(float)arg1; +- (CGFloat)_sliderHeightForValue:(float)arg1; +- (id)_continuousValueView; +- (id)_createBackgroundViewForStep:(NSUInteger)arg1; +- (id)_createSeparatorView; +- (CGFloat)_sliderHeight; +- (BOOL)firstStepIsDisabled; +- (float)_valueForTouchLocation:(CGPoint)arg1 withAbsoluteReference:(BOOL)arg2; +- (void)_updateStepFromValue:(float)arg1 playHaptic:(BOOL)arg2; +- (void)_layoutValueViewsForStepChange; +- (void)_beginTrackingWithGestureRecognizer:(id)arg1; +- (void)_continueTrackingWithGestureRecognizer:(id)arg1; +- (void)_endTrackingWithGestureRecognizer:(id)arg1; +- (void)_updateValueForTouchLocation:(CGPoint)arg1 withAbsoluteReference:(BOOL)arg2 forContinuedGesture:(BOOL)arg3; +- (void)setFirstStepIsDisabled:(BOOL)arg1; +- (void)setFirstStepIsOff:(BOOL)arg1; +- (BOOL)isGlyphVisible; +- (void)setGlyphVisible:(BOOL)arg1; +- (BOOL)throttleUpdates; +- (void)setThrottleUpdates:(BOOL)arg1; +- (void)setInteractiveWhenUnexpanded:(BOOL)arg1; +- (void)setNumberOfSteps:(NSUInteger)arg1; +- (NSUInteger)numberOfSteps; +- (NSArray *)topLevelBlockingGestureRecognizers; +- (BOOL)isContentClippingRequired; +- (BOOL)isGroupRenderingRequired; +- (CALayer *)punchOutRootLayer; +- (NSArray *)topLevelGestureRecognizers; +- (void)contentModuleWillTransitionToExpandedContentMode:(BOOL)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIPunchOutMask.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIPunchOutMask.h new file mode 100644 index 0000000..cb002c2 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIPunchOutMask.h @@ -0,0 +1,33 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +#import +@interface CCUIPunchOutMask : NSObject { + + NSInteger _style; + CGFloat _cornerRadius; + NSUInteger _roundedCorners; + CGRect _frame; + +} + +@property (nonatomic,readonly) CGRect frame; //@synthesize frame=_frame - In the implementation block +@property (nonatomic,readonly) NSInteger style; //@synthesize style=_style - In the implementation block +@property (nonatomic,readonly) CGFloat cornerRadius; //@synthesize cornerRadius=_cornerRadius - In the implementation block +@property (nonatomic,readonly) NSUInteger roundedCorners; //@synthesize roundedCorners=_roundedCorners - In the implementation block +- (CGRect)frame; +- (CGFloat)cornerRadius; +- (BOOL)isEqual:(id)arg1; +- (NSUInteger)hash; +- (id)description; +- (NSInteger)style; +- (NSUInteger)roundedCorners; +- (id)textualRepresentation; +- (id)initWithFrame:(CGRect)arg1 style:(NSInteger)arg2 radius:(CGFloat)arg3 roundedCorners:(NSUInteger)arg4; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIRoundButton.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIRoundButton.h new file mode 100644 index 0000000..59a4535 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIRoundButton.h @@ -0,0 +1,76 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import + +@class CCUICAPackageDescription, UIImage, NSString, UIColor, UIView, UIImageView, CCUICAPackageView; + +@interface CCUIRoundButton : UIControl { + + CCUICAPackageDescription* _glyphPackageDescription; + UIImage* _glyphImage; + NSString* _glyphState; + UIColor* _highlightColor; + UIView* _normalStateBackgroundView; + UIView* _selectedStateBackgroundView; + UIImageView* _glyphImageView; + UIImageView* _selectedGlyphView; + CCUICAPackageView* _glyphPackageView; + +} + +@property (nonatomic,retain) UIColor * highlightColor; //@synthesize highlightColor=_highlightColor - In the implementation block +@property (nonatomic,retain) UIView * normalStateBackgroundView; //@synthesize normalStateBackgroundView=_normalStateBackgroundView - In the implementation block +@property (nonatomic,retain) UIView * selectedStateBackgroundView; //@synthesize selectedStateBackgroundView=_selectedStateBackgroundView - In the implementation block +@property (nonatomic,retain) UIImageView * glyphImageView; //@synthesize glyphImageView=_glyphImageView - In the implementation block +@property (nonatomic,retain) UIImageView * selectedGlyphView; //@synthesize selectedGlyphView=_selectedGlyphView - In the implementation block +@property (nonatomic,retain) CCUICAPackageView * glyphPackageView; //@synthesize glyphPackageView=_glyphPackageView - In the implementation block +@property (nonatomic,retain) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,retain) UIImage * glyphImage; //@synthesize glyphImage=_glyphImage - In the implementation block +@property (nonatomic,copy) NSString * glyphState; //@synthesize glyphState=_glyphState - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +- (void)layoutSubviews; +- (void)dealloc; +- (CGSize)sizeThatFits:(CGSize)arg1; +- (BOOL)gestureRecognizerShouldBegin:(id)arg1; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (CGSize)intrinsicContentSize; +- (CGFloat)_cornerRadius; +- (void)_setCornerRadius:(CGFloat)arg1; +- (void)_handlePressGesture:(id)arg1; +- (void)observeValueForKeyPath:(id)arg1 ofObject:(id)arg2 change:(id)arg3 context:(void*)arg4; +- (UIColor *)highlightColor; +- (void)setHighlightColor:(UIColor *)arg1; +- (UIImage *)glyphImage; +- (void)setGlyphImage:(UIImage *)arg1; +- (void)_updateForStateChange; +- (void)setGlyphImageView:(UIImageView *)arg1; +- (UIImageView *)glyphImageView; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2 useLightStyle:(BOOL)arg3; +- (void)setGlyphPackageDescription:(CCUICAPackageDescription *)arg1; +- (void)setGlyphState:(NSString *)arg1; +- (id)initWithGlyphImage:(id)arg1 highlightColor:(id)arg2; +- (id)initWithGlyphPackageDescription:(id)arg1 highlightColor:(id)arg2; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (void)_primaryActionPerformed:(id)arg1; +- (id)initWithHighlightColor:(id)arg1 useLightStyle:(BOOL)arg2; +- (UIView *)normalStateBackgroundView; +- (void)setNormalStateBackgroundView:(UIView *)arg1; +- (UIView *)selectedStateBackgroundView; +- (void)setSelectedStateBackgroundView:(UIView *)arg1; +- (UIImageView *)selectedGlyphView; +- (void)setSelectedGlyphView:(UIImageView *)arg1; +- (CCUICAPackageView *)glyphPackageView; +- (void)setGlyphPackageView:(CCUICAPackageView *)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUISliderModuleBackgroundViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUISliderModuleBackgroundViewController.h new file mode 100644 index 0000000..33df2f4 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUISliderModuleBackgroundViewController.h @@ -0,0 +1,24 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import + +@class UIImageView, CCUICAPackageView; + +@interface CCUISliderModuleBackgroundViewController : UIViewController { + + UIImageView* _headerImageView; + CCUICAPackageView* _packageView; + +} +- (void)viewWillLayoutSubviews; +- (void)viewDidLoad; +- (void)setGlyphImage:(id)arg1; +- (void)setGlyphPackageDescription:(id)arg1; +- (void)setGlyphState:(id)arg1; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIStatusUpdate.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIStatusUpdate.h new file mode 100644 index 0000000..bd5bc21 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIStatusUpdate.h @@ -0,0 +1,25 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@class NSString; + +@interface CCUIStatusUpdate : NSObject { + + NSString* _message; + NSUInteger _type; + +} + +@property (nonatomic,copy,readonly) NSString * message; //@synthesize message=_message - In the implementation block +@property (nonatomic,readonly) NSUInteger type; //@synthesize type=_type - In the implementation block ++ (id)statusUpdateWithMessage:(id)arg1 type:(NSUInteger)arg2; +- (NSUInteger)type; +- (NSString *)message; +- (id)_initWithMessage:(id)arg1 type:(NSUInteger)arg2; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleModule.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleModule.h new file mode 100644 index 0000000..7a269ff --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleModule.h @@ -0,0 +1,48 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import "CCUIContentModule.h" +#import "CCUIContentModuleContentViewController.h" + +@class UIViewController, CCUIToggleViewController, CCUIContentModuleContext, CCUICAPackageDescription, UIImage, UIColor, NSString; + +@interface CCUIToggleModule : NSObject { + + CCUIToggleViewController* _viewController; + CCUIContentModuleContext* _contentModuleContext; + CCUICAPackageDescription* _glyphPackageDescription; + +} + +@property (nonatomic,retain) CCUIContentModuleContext * contentModuleContext; //@synthesize contentModuleContext=_contentModuleContext - In the implementation block +@property (assign,getter=isSelected,nonatomic) BOOL selected; +@property (nonatomic,copy,readonly) UIImage * iconGlyph; +@property (nonatomic,copy,readonly) UIImage * selectedIconGlyph; +@property (nonatomic,copy,readonly) UIColor * selectedColor; +@property (nonatomic,copy,readonly) CCUICAPackageDescription * glyphPackageDescription; //@synthesize glyphPackageDescription=_glyphPackageDescription - In the implementation block +@property (nonatomic,copy,readonly) NSString * glyphState; +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) UIViewController* contentViewController; +@property (nonatomic,readonly) UIViewController * backgroundViewController; +- (BOOL)isSelected; +- (void)setSelected:(BOOL)arg1; +- (UIViewController*)contentViewController; +- (CCUICAPackageDescription *)glyphPackageDescription; +- (NSString *)glyphState; +- (void)reconfigureView; +- (UIImage *)iconGlyph; +- (UIImage *)selectedIconGlyph; +- (id)glyphPackage; +- (CCUIContentModuleContext *)contentModuleContext; +- (void)setContentModuleContext:(CCUIContentModuleContext *)arg1; +- (void)refreshState; +- (UIColor *)selectedColor; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleViewController.h b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleViewController.h new file mode 100644 index 0000000..c015883 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/CCUIToggleViewController.h @@ -0,0 +1,43 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + +#import +#import "CCUIContentModuleContentViewController.h" + +@class UIImageView, UIImage, UIColor, CCUICAPackageDescription, NSString, CCUIToggleModule; + +@interface CCUIToggleViewController : CCUIButtonModuleViewController { + + UIImageView* _glyphImageView; + UIImage* _glyphImage; + UIImage* _selectedGlyphImage; + UIColor* _selectedColor; + CCUICAPackageDescription* _glyphPackageDescription; + NSString* _glyphState; + CCUIToggleModule* _module; + +} + +@property (nonatomic,weak) CCUIToggleModule * module; //@synthesize module=_module - In the implementation block +@property (readonly) NSUInteger hash; +@property (readonly) Class superclass; +@property (copy,readonly) NSString * description; +@property (copy,readonly) NSString * debugDescription; +@property (nonatomic,readonly) CGFloat preferredExpandedContentHeight; +@property (nonatomic,readonly) CGFloat preferredExpandedContentWidth; +@property (nonatomic,readonly) BOOL providesOwnPlatter; +- (CCUIToggleModule *)module; +- (void)viewDidLoad; +- (void)viewWillAppear:(BOOL)arg1; +- (void)buttonTapped:(id)arg1 forEvent:(id)arg2; +- (void)reconfigureView; +- (void)setModule:(CCUIToggleModule *)arg1; +- (CGFloat)preferredExpandedContentHeight; +- (BOOL)shouldFinishTransitionToExpandedContentModule; +- (void)refreshState; +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit-Structs.h b/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit-Structs.h new file mode 100644 index 0000000..4ea9c58 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit-Structs.h @@ -0,0 +1,7 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit.h b/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit.h new file mode 100644 index 0000000..dbfd610 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/ControlCenterUIKit.h @@ -0,0 +1,26 @@ +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/SBFButton.h b/Frameworks/ControlCenterUIKit.framework/Headers/SBFButton.h new file mode 100644 index 0000000..5d16ce9 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/SBFButton.h @@ -0,0 +1,11 @@ +@interface SBFButton : UIButton + +- (bool)_drawingAsSelected; +- (void)_touchUpInside; +- (void)_updateForStateChange; +- (void)_updateSelected:(bool)arg1 highlighted:(bool)arg2; +- (id)initWithFrame:(CGRect)arg1; +- (void)setHighlighted:(bool)arg1; +- (void)setSelected:(bool)arg1; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/UIGestureRecognizerDelegate.h b/Frameworks/ControlCenterUIKit.framework/Headers/UIGestureRecognizerDelegate.h new file mode 100644 index 0000000..0872a8a --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/UIGestureRecognizerDelegate.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol UIGestureRecognizerDelegate +@optional +- (BOOL)gestureRecognizerShouldBegin:(id)arg1; +- (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldRequireFailureOfGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldBeRequiredToFailByGestureRecognizer:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2; +- (BOOL)gestureRecognizer:(id)arg1 shouldReceivePress:(id)arg2; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerAnimatedTransitioning.h b/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerAnimatedTransitioning.h new file mode 100644 index 0000000..1b15f65 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerAnimatedTransitioning.h @@ -0,0 +1,19 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol UIViewControllerAnimatedTransitioning +@optional +- (id)interruptibleAnimatorForTransition:(id)arg1; +- (void)animationEnded:(BOOL)arg1; + +@required +- (CGFloat)transitionDuration:(id)arg1; +- (void)animateTransition:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerTransitioningDelegate.h b/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerTransitioningDelegate.h new file mode 100644 index 0000000..355d1d6 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/UIViewControllerTransitioningDelegate.h @@ -0,0 +1,18 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol UIViewControllerTransitioningDelegate +@optional +- (id)presentationControllerForPresentedViewController:(id)arg1 presentingViewController:(id)arg2 sourceViewController:(id)arg3; +- (id)animationControllerForPresentedController:(id)arg1 presentingController:(id)arg2 sourceController:(id)arg3; +- (id)interactionControllerForPresentation:(id)arg1; +- (id)animationControllerForDismissedController:(id)arg1; +- (id)interactionControllerForDismissal:(id)arg1; + +@end diff --git a/Frameworks/ControlCenterUIKit.framework/Headers/_UISettingsKeyObserver.h b/Frameworks/ControlCenterUIKit.framework/Headers/_UISettingsKeyObserver.h new file mode 100644 index 0000000..6e2d7d2 --- /dev/null +++ b/Frameworks/ControlCenterUIKit.framework/Headers/_UISettingsKeyObserver.h @@ -0,0 +1,14 @@ +/* + * This header is generated by classdump-dyld 1.0 + * on Wednesday, May 16, 2018 at 2:00:09 PM Central European Summer Time + * Operating System: Version 11.1.2 (Build 15B202) + * Image Source: /System/Library/PrivateFrameworks/ControlCenterUIKit.framework/ControlCenterUIKit + * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. + */ + + +@protocol _UISettingsKeyObserver +@required +- (void)settings:(id)arg1 changedValueForKey:(id)arg2; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSBundleController.h b/Frameworks/Preferences.framework/Headers/PSBundleController.h new file mode 100644 index 0000000..66e9aee --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSBundleController.h @@ -0,0 +1,13 @@ +@class PSListController, PSSpecifier; + +@interface PSBundleController : NSObject + +- (instancetype)initWithParentListController:(PSListController *)listController; +- (instancetype)initWithParentListController:(PSListController *)listController properties:(NSDictionary *)properties; + +- (NSArray *)specifiersWithSpecifier:(PSSpecifier *)specifier; + +- (void)load; +- (void)unload; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSControlTableCell.h b/Frameworks/Preferences.framework/Headers/PSControlTableCell.h new file mode 100644 index 0000000..1c73b2c --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSControlTableCell.h @@ -0,0 +1,10 @@ +#import "PSTableCell.h" + +@interface PSControlTableCell : PSTableCell + +- (void)controlChanged:(UIControl *)control; + +@property (nonatomic, retain) UIControl *control; +@property (nonatomic, retain) id value; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSDetailController.h b/Frameworks/Preferences.framework/Headers/PSDetailController.h new file mode 100644 index 0000000..e4b7402 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSDetailController.h @@ -0,0 +1,20 @@ +#import "PSViewController.h" + +@class UIKeyboard, PSEditingPane, UIView; + +@interface PSDetailController : PSViewController { + PSEditingPane* _pane; + UIKeyboard* _keyboard; + BOOL _keyboardVisible; +} + +@property(retain) PSEditingPane *pane; +@property(readonly, assign) BOOL keyboardVisible; + +- (void)_updateNavBarButtons; +- (void)_addKeyboardView; +- (void)setKeyboardVisible:(BOOL)visible animated:(BOOL)animated; +- (void)saveChanges; +- (void)doneButtonClicked:(id)clicked; +- (void)cancelButtonClicked:(id)clicked; +@end diff --git a/Frameworks/Preferences.framework/Headers/PSDiscreteSlider.h b/Frameworks/Preferences.framework/Headers/PSDiscreteSlider.h new file mode 100644 index 0000000..0a6c669 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSDiscreteSlider.h @@ -0,0 +1,5 @@ +@interface PSDiscreteSlider : UISlider + +@property (nonatomic, retain) UIColor *trackMarkersColor; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSEditableListController.h b/Frameworks/Preferences.framework/Headers/PSEditableListController.h new file mode 100644 index 0000000..ebd6dce --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSEditableListController.h @@ -0,0 +1,35 @@ +/* +* This header is generated by classdump-dyld 1.0 +* on Sunday, July 31, 2016 at 10:10:26 PM Australian Western Standard Time +* Operating System: Version 9.3.3 (Build 13G34) +* Image Source: /System/Library/PrivateFrameworks/Preferences.framework/Preferences +* classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. +*/ + +#import + +@interface PSEditableListController : PSListController { + + BOOL _editable; + BOOL _editingDisabled; + +} +- (id)init; +- (id)tableView:(id)arg1 willSelectRowAtIndexPath:(id)arg2 ; +- (UITableViewCellEditingStyle)tableView:(id)arg1 editingStyleForRowAtIndexPath:(id)arg2 ; +- (void)tableView:(id)arg1 commitEditingStyle:(long long)arg2 forRowAtIndexPath:(id)arg3 ; +- (void)suspend; +- (void)viewWillAppear:(BOOL)arg1 ; +- (void)setEditable:(BOOL)arg1 ; +- (BOOL)editable; +- (void)showController:(id)arg1 animate:(BOOL)arg2 ; +- (void)didLock; +- (void)editDoneTapped; +- (id)_editButtonBarItem; +- (void)_setEditable:(BOOL)arg1 animated:(BOOL)arg2 ; +- (BOOL)performDeletionActionForSpecifier:(id)arg1 ; +- (void)setEditingButtonHidden:(BOOL)arg1 animated:(BOOL)arg2 ; +- (void)setEditButtonEnabled:(BOOL)arg1 ; +- (void)_updateNavigationBar; +@end + diff --git a/Frameworks/Preferences.framework/Headers/PSEditableTableCell.h b/Frameworks/Preferences.framework/Headers/PSEditableTableCell.h new file mode 100644 index 0000000..856d3f9 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSEditableTableCell.h @@ -0,0 +1,24 @@ +#import "PSTableCell.h" + +@class PSSpecifier; +@interface PSEditableTableCell : PSTableCell { + id _userInfo; + SEL _targetSetter; + id _realTarget; +} + +- (void)controlChanged:(id)changed; +- (void)setValueChangedOnReturn; +- (void)setValueChangedTarget:(id)target action:(SEL)action userInfo:(id)info; + +- (void)setValue:(id)arg1; +- (void)setValueChangedTarget:(id)arg1 action:(SEL)arg2 specifier:(PSSpecifier *)arg3; +- (UITextField *)textField; +- (void)textFieldDidBeginEditing:(id)arg1; +- (void)textFieldDidEndEditing:(id)arg1; +- (bool)textFieldShouldClear:(id)arg1; +- (bool)textFieldShouldReturn:(id)arg1; +- (id)value; + + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSHeaderFooterView.h b/Frameworks/Preferences.framework/Headers/PSHeaderFooterView.h new file mode 100644 index 0000000..605d7b2 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSHeaderFooterView.h @@ -0,0 +1,12 @@ +@class PSSpecifier, UITableView; + +@protocol PSHeaderFooterView + +@required +- (UIView *)initWithSpecifier:(PSSpecifier *)specifier; + +@optional +- (CGFloat)preferredHeightForWidth:(CGFloat)width inTableView:(UITableView *)tableView; +- (CGFloat)preferredHeightForWidth:(CGFloat)width; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSListController.h b/Frameworks/Preferences.framework/Headers/PSListController.h new file mode 100644 index 0000000..e044d87 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSListController.h @@ -0,0 +1,158 @@ +/** + * @Author: Dana Buehre + * @Date: 17-09-2016 2:51:39 + * @Email: dbuehre@me.com + * @Project: motuumLS + * @Filename: PSListController.h + * @Last modified by: creaturesurvive + * @Last modified time: 08-07-2017 6:23:13 + * @Copyright: Copyright © 2014-2017 CreatureSurvive + */ + + +#import "PSViewController.h" + +@class PSRootController, PSSpecifier, PSTableCell; + +@interface PSListController : PSViewController { + NSMutableArray *_specifiers; + NSIndexPath* _savedSelectedIndexPath; + NSMutableArray* _bundleControllers; +} + ++ (BOOL)displaysButtonBar; + +- (NSArray *)loadSpecifiersFromPlistName:(NSString *)name target:(PSListController *)target; +- (NSArray *)loadSpecifiersFromPlistName:(NSString *)name target:(PSListController *)target bundle:(NSBundle *)bundle; + +- (Class)tableViewClass; +- (UITableViewStyle)tableViewStyle; + +@property (nonatomic, retain) UITableView *view; +@property (nonatomic, retain) UITableView *table; // 3.0 - 6.0 +@property (nonatomic, retain) UITableView *tableView; + +- (PSSpecifier *)specifierAtIndex:(NSInteger)index; +- (PSSpecifier *)specifierAtIndexPath:(NSIndexPath *)indexPath; +- (PSSpecifier *)specifierForID:(NSString *)identifier; +- (NSArray *)specifiersForIDs:(NSArray *)identifiers; +- (NSArray *)specifiersInGroup:(NSInteger)group; + +@property (nonatomic, retain) NSMutableArray *specifiers; +@property (nonatomic, retain) PSSpecifier *specifier; +@property (nonatomic, retain) NSString *specifierID; +@property (nonatomic, retain) NSString *specifierIDPendingPush; +@property (nonatomic, retain) id specifierDataSource; + +- (NSInteger)numberOfGroups; +- (NSInteger)rowsForGroup:(NSInteger)group; + +- (BOOL)getGroup:(NSInteger *)group row:(NSInteger *)row ofSpecifier:(PSSpecifier *)specifier; +- (BOOL)getGroup:(NSInteger *)group row:(NSInteger *)row ofSpecifierAtIndex:(NSInteger)specifier; +- (BOOL)getGroup:(NSInteger *)group row:(NSInteger *)row ofSpecifierID:(NSString *)specifierID; + +- (NSInteger)indexForIndexPath:(NSIndexPath *)indexPath; +- (NSInteger)indexForRow:(NSInteger)row inGroup:(NSInteger)group; + +- (NSInteger)indexOfGroup:(NSInteger)group; +- (NSInteger)indexOfSpecifier:(PSSpecifier *)specifier; +- (NSInteger)indexOfSpecifierID:(NSString *)specifierID; + +- (NSIndexPath *)indexPathForIndex:(NSInteger)index; +- (NSIndexPath *)indexPathForSpecifier:(PSSpecifier *)specifier; + +- (void)addSpecifier:(PSSpecifier *)specifier; +- (void)addSpecifier:(PSSpecifier *)specifier animated:(BOOL)animated; +- (void)addSpecifiersFromArray:(NSArray *)specifiers; +- (void)addSpecifiersFromArray:(NSArray *)specifiers animated:(BOOL)animated; + +- (void)insertSpecifier:(PSSpecifier *)specifier afterSpecifier:(PSSpecifier *)afterSpecifier; +- (void)insertSpecifier:(PSSpecifier *)specifier afterSpecifier:(PSSpecifier *)afterSpecifier animated:(BOOL)animated; +- (void)insertSpecifier:(PSSpecifier *)specifier afterSpecifierID:(NSString *)specifierID; +- (void)insertSpecifier:(PSSpecifier *)specifier afterSpecifierID:(NSString *)specifierID animated:(BOOL)animated; +- (void)insertSpecifier:(PSSpecifier *)specifier atEndOfGroup:(NSInteger)groupIndex; +- (void)insertSpecifier:(PSSpecifier *)specifier atEndOfGroup:(NSInteger)groupIndex animated:(BOOL)animated; +- (void)insertSpecifier:(PSSpecifier *)specifier atIndex:(NSInteger)index; +- (void)insertSpecifier:(PSSpecifier *)specifier atIndex:(NSInteger)index animated:(BOOL)animated; + +- (void)insertContiguousSpecifiers:(NSArray *)specifiers afterSpecifier:(PSSpecifier *)specifier; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers afterSpecifier:(PSSpecifier *)specifier animated:(BOOL)animated; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers afterSpecifierID:(NSString *)specifierID; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers afterSpecifierID:(NSString *)specifierID animated:(BOOL)animated; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers atEndOfGroup:(NSInteger)groupIndex; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers atEndOfGroup:(NSInteger)groupIndex animated:(BOOL)animated; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers atIndex:(NSInteger)index; +- (void)insertContiguousSpecifiers:(NSArray *)specifiers atIndex:(NSInteger)index animated:(BOOL)animated; + +- (void)reload; +- (void)reloadSpecifier:(PSSpecifier *)specifier; +- (void)reloadSpecifier:(PSSpecifier *)specifier animated:(BOOL)animated; +- (void)reloadSpecifierAtIndex:(NSInteger)index; +- (void)reloadSpecifierAtIndex:(NSInteger)index animated:(BOOL)animated; +- (void)reloadSpecifierID:(NSString *)specifierID; +- (void)reloadSpecifierID:(NSString *)specifierID animated:(BOOL)animated; +- (void)reloadSpecifiers; + +- (void)removeContiguousSpecifiers:(NSArray *)specifiers; +- (void)removeContiguousSpecifiers:(NSArray *)specifiers animated:(BOOL)animated; +- (void)removeLastSpecifier; +- (void)removeLastSpecifierAnimated:(BOOL)animated; +- (void)removeSpecifier:(PSSpecifier *)specifier; +- (void)removeSpecifier:(PSSpecifier *)specifier animated:(BOOL)animated; +- (void)removeSpecifierAtIndex:(NSInteger)index; +- (void)removeSpecifierAtIndex:(NSInteger)index animated:(BOOL)animated; +- (void)removeSpecifierID:(NSString *)specifierID; +- (void)removeSpecifierID:(NSString *)specifierID animated:(BOOL)animated; + +- (void)replaceContiguousSpecifiers:(NSArray *)specifiers withSpecifiers:(NSArray *)newSpecifiers; +- (void)replaceContiguousSpecifiers:(NSArray *)specifiers withSpecifiers:(NSArray *)newSpecifiers animated:(BOOL)animated; + +- (void)updateSpecifiers:(NSArray *)specifiers withSpecifiers:(NSArray *)newSpecifiers; +- (void)updateSpecifiersInRange:(NSRange)range withSpecifiers:(NSArray *)newSpecifiers; + +- (NSRange)rangeOfSpecifiersInGroupID:(NSString *)groupID; + +@property (nonatomic, retain) NSBundle *bundle; + +- (void)reloadIconForSpecifierForBundle:(NSBundle *)bundle; + +@property (nonatomic) BOOL forceSynchronousIconLoadForCreatedCells; + +@property (nonatomic, retain) UIColor *altTextColor; +@property (nonatomic, retain) UIColor *backgroundColor; +@property (nonatomic, retain) UIColor *buttonTextColor; +@property (nonatomic, retain) UIColor *cellAccessoryColor; +@property (nonatomic, retain) UIColor *cellAccessoryHighlightColor; +@property (nonatomic, retain) UIColor *cellHighlightColor; +@property (nonatomic, retain) UIColor *editableInsertionPointColor; +@property (nonatomic, retain) UIColor *editablePlaceholderTextColor; +@property (nonatomic, retain) UIColor *editableSelectionBarColor; +@property (nonatomic, retain) UIColor *editableSelectionHighlightColor; +@property (nonatomic, retain) UIColor *editableTextColor; +@property (nonatomic, retain) UIColor *footerHyperlinkColor; +@property (nonatomic, retain) UIColor *foregroundColor; +@property (nonatomic, retain) UIColor *segmentedSliderTrackColor; +@property (nonatomic, retain) UIColor *separatorColor; +@property (nonatomic, retain) UIColor *textColor; + +@property (nonatomic) BOOL usesDarkTheme; +@property (nonatomic) BOOL edgeToEdgeCells; +@property (nonatomic) BOOL resusesCells; +@property (nonatomic, readonly) NSInteger observerType; // TODO: what is this? + +@property (nonatomic, retain) NSDictionary *pendingURLResourceDictionary; + +- (void)beginUpdates; +- (void)endUpdates; + +- (PSTableCell *)cachedCellForSpecifier:(PSSpecifier *)specifier; +- (PSTableCell *)cachedCellForSpecifierID:(NSString *)specifierID; +- (PSSpecifier *)getGroupSpecifierForSpecifierID:(NSString *)identifier; +- (PSSpecifier *)getGroupSpecifierForSpecifier:(PSSpecifier *)specifier; + +//TODO find out param types +- (void)_keyboardDidShow:(id)sender; +- (void)_keyboardWillHide:(id)sender; +- (void)_keyboardDidHide:(id)sender; +- (void)_returnKeyPressed:(id)sender; +@end diff --git a/Frameworks/Preferences.framework/Headers/PSListItemsController.h b/Frameworks/Preferences.framework/Headers/PSListItemsController.h new file mode 100644 index 0000000..19b6d75 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSListItemsController.h @@ -0,0 +1,31 @@ +#import "PSListController.h" + +@class PSSpecifier; + +@interface PSListItemsController : PSListController { + + long long _rowToSelect; + BOOL _deferItemSelection; + BOOL _restrictionList; + PSSpecifier* _lastSelectedSpecifier; + id _retainedTarget; + +} +- (void)tableView:(id)arg1 didSelectRowAtIndexPath:(id)arg2; +- (id)tableView:(id)arg1 cellForRowAtIndexPath:(id)arg2; +- (void)suspend; +- (void)viewWillAppear:(BOOL)arg1; +- (void)viewWillDisappear:(BOOL)arg1; +- (void)prepareSpecifiersMetadata; +- (void)didLock; +- (void)scrollToSelectedCell; +- (void)setValueForSpecifier:(id)arg1 defaultValue:(id)arg2; +- (void)setRowToSelect; +- (void)listItemSelected:(id)arg1; +- (void)_addStaticText:(id)arg1; +- (id)itemsFromParent; +- (NSMutableArray *)itemsFromDataSource; +- (BOOL)isRestrictionList; +- (void)setIsRestrictionList:(BOOL)arg1; +- (id)specifiers; +@end diff --git a/Frameworks/Preferences.framework/Headers/PSRootController.h b/Frameworks/Preferences.framework/Headers/PSRootController.h new file mode 100644 index 0000000..aca5c0a --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSRootController.h @@ -0,0 +1,11 @@ +@class PSListController; + +@interface PSRootController : UINavigationController + +- (instancetype)initWithTitle:(NSString *)title identifier:(NSString *)identifier; + +- (void)handleURL:(id)url ; +- (void)pushController:(PSListController *)controller; // < 3.2 +- (void)suspend; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSSliderTableCell.h b/Frameworks/Preferences.framework/Headers/PSSliderTableCell.h new file mode 100644 index 0000000..eb9e27f --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSSliderTableCell.h @@ -0,0 +1,5 @@ +#import "PSControlTableCell.h" + +@interface PSSliderTableCell : PSControlTableCell + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSSpecifier.h b/Frameworks/Preferences.framework/Headers/PSSpecifier.h new file mode 100644 index 0000000..eebaded --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSSpecifier.h @@ -0,0 +1,150 @@ +#import "PSTableCell.h" +#include + +__BEGIN_DECLS + +extern NSString *const PSAccessoryKey; // @"accessory" +extern NSString *const PSActionKey; // @"action" +extern NSString *const PSAdjustFontSizeToFitWidthKey; // @"adjustFontSizeToFitWidth" +extern NSString *const PSAlignmentKey; // @"alignment" +extern NSString *const PSAppGroupBundleIDKey; // @"appGroupBundleID" +extern NSString *const PSAutoCapsKey; // @"autoCaps" +extern NSString *const PSAutoCorrectionKey; // @"autoCorrection" +extern NSString *const PSBestGuesserKey; // @"bestGuess" +extern NSString *const PSBundleCustomIconPathKey; // @"icon2" +extern NSString *const PSBundleHasBundleIconKey; // @"hasBundleIcon" +extern NSString *const PSBundleHasIconKey; // @"hasIcon" +extern NSString *const PSBundleIconPathKey; // @"icon" +extern NSString *const PSBundleIsControllerKey; // @"isController" +extern NSString *const PSBundleOverridePrincipalClassKey; // @"overridePrincipalClass" +extern NSString *const PSBundlePathKey; // @"bundle" +extern NSString *const PSBundleTintedIconPathKey; // @"tintedIcon" +extern NSString *const PSButtonActionKey; // @"buttonAction" +extern NSString *const PSCancelKey; // @"cancel" +extern NSString *const PSCellClassKey; // @"cellClass" +extern NSString *const PSConfirmationActionKey; // @"confirmationAction" +extern NSString *const PSConfirmationCancelActionKey; // @"cancel" +extern NSString *const PSConfirmationCancelKey; // @"cancelTitle" +extern NSString *const PSConfirmationDestructiveKey; // @"isDestructive" +extern NSString *const PSConfirmationKey; // @"confirmation" +extern NSString *const PSConfirmationOKKey; // @"okTitle" +extern NSString *const PSConfirmationPromptKey; // @"prompt" +extern NSString *const PSConfirmationTitleKey; // @"title" +extern NSString *const PSContainerBundleIDKey; // @"containerBundleID" +extern NSString *const PSControlIsLoadingKey; // @"control-loading" +extern NSString *const PSControlKey; // @"control" +extern NSString *const PSControllerLoadActionKey; // @"loadAction" +extern NSString *const PSControlMaximumKey; // @"max" +extern NSString *const PSControlMinimumKey; // @"min" +extern NSString *const PSCopyableCellKey; // @"isCopyable" +extern NSString *const PSDataSourceClassKey; // @"dataSourceClass" +extern NSString *const PSDecimalKeyboardKey; // @"isDecimalPad" +extern NSString *const PSDefaultsKey; // @"defaults" +extern NSString *const PSDefaultValueKey; // @"default" +extern NSString *const PSDeferItemSelectionKey; // @"deferItemSelection" +extern NSString *const PSDeletionActionKey; // @"deletionAction" +extern NSString *const PSDetailControllerClassKey; // @"detail" +extern NSString *const PSEditableTableCellTextFieldShouldPopOnReturn; // @"textFieldShouldPopOnReturn" +extern NSString *const PSEditPaneClassKey; // @"pane" +extern NSString *const PSEmailAddressingKeyboardKey; // @"isEmailAddressing" +extern NSString *const PSEmailAddressKeyboardKey; // @"isEmail" +extern NSString *const PSEnabledKey; // @"enabled" +extern NSString *const PSFooterAlignmentGroupKey; // @"footerAlignment" +extern NSString *const PSFooterCellClassGroupKey; // @"footerCellClass" +extern NSString *const PSFooterTextGroupKey; // @"footerText" +extern NSString *const PSFooterViewKey; // @"footerView" +extern NSString *const PSGetterKey; // @"get" +extern NSString *const PSHeaderCellClassGroupKey; // @"headerCellClass" +extern NSString *const PSHeaderDetailTextGroupKey; // @"headerDetailText" +extern NSString *const PSHeaderViewKey; // @"headerView" +extern NSString *const PSHidesDisclosureIndicatorKey; // @"hidesDisclosureIndicator" +extern NSString *const PSIconImageKey; // @"iconImage" +extern NSString *const PSIconImageShouldFlipForRightToLeftKey; // @"iconImageShouldFlipForRightToLeft" +extern NSString *const PSIDKey; // @"id" +extern NSString *const PSIPKeyboardKey; // @"isIP" +extern NSString *const PSIsPerGizmoKey; // @"isPerGizmo" +extern NSString *const PSIsRadioGroupKey; // @"isRadioGroup" +extern NSString *const PSIsTopLevelKey; // @"isTopLevel" +extern NSString *const PSKeyboardTypeKey; // @"keyboard" +extern NSString *const PSKeyNameKey; // @"key" +extern NSString *const PSLazilyLoadedBundleKey; // @"lazy-bundle" +extern NSString *const PSLazyIconAppID; // @"appIDForLazyIcon" +extern NSString *const PSLazyIconDontUnload; // @"dontUnloadLazyIcon" +extern NSString *const PSLazyIconLoading; // @"useLazyIcons" +extern NSString *const PSLazyIconLoadingCustomQueue; // @"customIconQueue" +extern NSString *const PSMarginWidthKey; // @"marginWidth" +extern NSString *const PSNegateValueKey; // @"negate" +extern NSString *const PSNotifyNanoKey; // @"notifyNano" +extern NSString *const PSNumberKeyboardKey; // @"isNumeric" +extern NSString *const PSPlaceholderKey; // @"placeholder" +extern NSString *const PSPrioritizeValueTextDisplayKey; // @"prioritizeValueTextDisplay" +extern NSString *const PSRadioGroupCheckedSpecifierKey; // @"radioGroupCheckedSpecifier" +extern NSString *const PSRequiredCapabilitiesKey; // @"requiredCapabilities" +extern NSString *const PSRequiredCapabilitiesOrKey; // @"requiredCapabilitiesOr" +extern NSString *const PSSearchNanoApplicationsBundlePath; // @"nanoAppsBundlePath" +extern NSString *const PSSearchNanoInternalSettingsBundlePath; // @"nanoInternalBundlePath" +extern NSString *const PSSearchNanoSettingsBundlePath; // @"nanoBundlePath" +extern NSString *const PSSetterKey; // @"set" +extern NSString *const PSSetupCustomClassKey; // @"customControllerClass" +extern NSString *const PSShortTitlesDataSourceKey; // @"shortTitlesDataSource" +extern NSString *const PSShortTitlesKey; // @"shortTitles" +extern NSString *const PSSliderIsContinuous; // @"isContinuous" +extern NSString *const PSSliderIsSegmented; // @"isSegmented" +extern NSString *const PSSliderLeftImageKey; // @"leftImage" +extern NSString *const PSSliderLeftImagePromiseKey; // @"leftImagePromise" +extern NSString *const PSSliderRightImageKey; // @"rightImage" +extern NSString *const PSSliderRightImagePromiseKey; // @"rightImagePromise" +extern NSString *const PSSliderSegmentCount; // @"segmentCount" +extern NSString *const PSSliderShowValueKey; // @"showValue" +extern NSString *const PSSpecifierAuthenticationTokenKey; // @"authenticationToken" +extern NSString *const PSSpecifierPasscodeKey; // @"passcode" +extern NSString *const PSStaticTextMessageKey; // @"staticTextMessage" +extern NSString *const PSTableCellClassKey; // @"cell" +extern NSString *const PSTableCellHeightKey; // @"height" +extern NSString *const PSTableCellKey; // @"cellObject" +extern NSString *const PSTableCellUseEtchedAppearanceKey; // @"useEtched" +extern NSString *const PSTextFieldNoAutoCorrectKey; // @"noAutoCorrect" +extern NSString *const PSTextViewBottomMarginKey; // @"textViewBottomMargin" +extern NSString *const PSTitleKey; // @"label" +extern NSString *const PSTitlesDataSourceKey; // @"titlesDataSource" +extern NSString *const PSURLKeyboardKey; // @"isURL" +extern NSString *const PSValidTitlesKey; // @"validTitles" +extern NSString *const PSValidValuesKey; // @"validValues" +extern NSString *const PSValueChangedNotificationKey; // @"PostNotification" +extern NSString *const PSValueKey; // @"value" +extern NSString *const PSValuesDataSourceKey; // @"valuesDataSource" + +__END_DECLS + +@interface PSSpecifier : NSObject { +@public + SEL action; +} + ++ (instancetype)preferenceSpecifierNamed:(NSString *)identifier target:(id)target set:(SEL)set get:(SEL)get detail:(Class)detail cell:(PSCellType)cellType edit:(Class)edit; ++ (instancetype)emptyGroupSpecifier; ++ (instancetype)groupSpecifierWithName:(NSString *)name; + +@property (nonatomic, retain) id target; +@property (nonatomic, retain) NSString *name; +@property (nonatomic, retain) NSString *identifier; +@property (nonatomic, assign) long long cellType; + +@property (nonatomic, retain) NSMutableDictionary *properties; + +- (id)propertyForKey:(NSString *)key; +- (void)setProperty:(id)property forKey:(NSString *)key; +- (void)removePropertyForKey:(NSString *)key; +- (BOOL)isEqualToSpecifier:(PSSpecifier *)specifier; + +@property (nonatomic, retain) NSDictionary *shortTitleDictionary; +@property (nonatomic, retain) NSDictionary *titleDictionary; +@property (nonatomic, retain) NSArray *values; + +@property (nonatomic) SEL controllerLoadAction; +- (Class)detailControllerClass; + +- (void)setValues:(NSArray *)values titles:(NSArray *)titles; +- (void)setValues:(NSArray *)values titles:(NSArray *)titles shortTitles:(NSArray *)shortTitles; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSSplitViewController.h b/Frameworks/Preferences.framework/Headers/PSSplitViewController.h new file mode 100644 index 0000000..5927727 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSSplitViewController.h @@ -0,0 +1,24 @@ +#import + +@protocol PSSplitViewControllerNavigationDelegate +- (void)splitViewControllerDidPopToRootController:(id)splitViewController; +@end + +@class PSRootController; + +@interface PSSplitViewController : UISplitViewController + +@property (nonatomic,retain) PSRootController * containerNavigationController; +@property (nonatomic, weak) id navigationDelegate; +- (void)setViewControllers:(id)arg1 ; +- (id)childViewControllerForStatusBarStyle; +- (id)navigationDelegate; +- (PSRootController *)containerNavigationController; +- (void)popRecursivelyToRootController; +- (id)categoryController; +- (void)showInitialViewController:(id)arg1 ; +- (void)setNavigationDelegate:(id)arg1 ; +- (void)setContainerNavigationController:(PSRootController *)arg1 ; +- (void)setupControllerForToolbar:(id)arg1 ; +- (NSUInteger)supportedInterfaceOrientations; +@end diff --git a/Frameworks/Preferences.framework/Headers/PSSwitchTableCell.h b/Frameworks/Preferences.framework/Headers/PSSwitchTableCell.h new file mode 100644 index 0000000..708d40f --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSSwitchTableCell.h @@ -0,0 +1,24 @@ +#import "PSControlTableCell.h" + +@class UIActivityIndicatorView; + +@interface PSSwitchTableCell : PSControlTableCell { + UIActivityIndicatorView *_activityIndicator; +} + +@property BOOL loading; + +- (BOOL)loading; +- (void)setLoading:(BOOL)loading; +- (id)controlValue; +- (id)newControl; +- (void)setCellEnabled:(BOOL)enabled; +- (void)refreshCellContentsWithSpecifier:(id)specifier; +- (id)initWithStyle:(int)style reuseIdentifier:(id)identifier specifier:(id)specifier; +- (void)reloadWithSpecifier:(id)specifier animated:(BOOL)animated; +- (BOOL)canReload; +- (void)prepareForReuse; +- (void)layoutSubviews; +- (void)setValue:(id)value; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSSystemPolicyForApp.h b/Frameworks/Preferences.framework/Headers/PSSystemPolicyForApp.h new file mode 100644 index 0000000..616a1da --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSSystemPolicyForApp.h @@ -0,0 +1,17 @@ +typedef NS_OPTIONS(NSUInteger, PSSystemPolicyOptions) { + PSSystemPolicyOptionsNotifications = 1 << 0, + PSSystemPolicyOptionsContacts = 1 << 2, + PSSystemPolicyOptionsCalendars = 1 << 3, + PSSystemPolicyOptionsReminders = 1 << 4, + PSSystemPolicyOptionsPhotos = 1 << 5 +}; + +@interface PSSystemPolicyForApp : NSObject + +- (instancetype)initWithBundleIdentifier:(NSString *)bundleIdentifier; + +- (NSArray *)specifiersForPolicyOptions:(PSSystemPolicyOptions)options force:(BOOL)force; + +- (PSSpecifier *)notificationSpecifier; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSTableCell.h b/Frameworks/Preferences.framework/Headers/PSTableCell.h new file mode 100644 index 0000000..73a9b31 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSTableCell.h @@ -0,0 +1,53 @@ +@class PSSpecifier; + +typedef enum : NSUInteger { + PSGroupCell, + PSLinkCell, + PSLinkListCell, + PSListItemCell, + PSTitleValueCell, + PSSliderCell, + PSSwitchCell, + PSStaticTextCell, + PSEditTextCell, + PSSegmentCell, + PSGiantIconCell, + PSGiantCell, + PSSecureEditTextCell, + PSButtonCell, + PSEditTextViewCell, + PSSpinnerCell +} PSCellType; + +@interface PSTableCell : UITableViewCell + ++ (PSCellType)cellTypeFromString:(NSString *)cellType; + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier specifier:(PSSpecifier *)specifier; + +- (void)refreshCellContentsWithSpecifier:(PSSpecifier *)specifier; + +- (void)setSeparatorStyle:(UITableViewCellSeparatorStyle)style; + +@property (nonatomic, retain) PSSpecifier *specifier; +@property (nonatomic) PSCellType type; +@property (nonatomic, retain) id target; +@property (nonatomic) SEL action; + +@property (nonatomic, retain) id cellTarget; +@property (nonatomic) SEL cellAction; + +@property (nonatomic) BOOL cellEnabled; + +@property (nonatomic, retain) UIImage *icon; + +- (UIImage *)getLazyIcon; + +@property (nonatomic, retain, readonly) UIImage *blankIcon; +@property (nonatomic, retain, readonly) NSString *lazyIconAppID; + +@property (nonatomic, retain, readonly) UILabel *titleLabel; + +- (void)setValue:(id)arg1; + +@end diff --git a/Frameworks/Preferences.framework/Headers/PSViewController.h b/Frameworks/Preferences.framework/Headers/PSViewController.h new file mode 100644 index 0000000..56aea08 --- /dev/null +++ b/Frameworks/Preferences.framework/Headers/PSViewController.h @@ -0,0 +1,41 @@ +@class PSSpecifier; + +@interface PSViewController : UIViewController + +- (instancetype)initForContentSize:(CGSize)contentSize; + +- (void)pushController:(PSViewController *)controller; +- (void)pushController:(PSViewController *)controller animate:(BOOL)animated; + +- (void)showController:(PSViewController *)controller; +- (void)showController:(PSViewController *)controller animate:(BOOL)animated; + +- (id)readPreferenceValue:(PSSpecifier *)specifier; +- (void)setPreferenceValue:(id)value specifier:(PSSpecifier *)specifier; + +@property (nonatomic, retain) PSSpecifier *specifier; +@property (nonatomic, retain) PSViewController *parentController; +@property (nonatomic, retain) PSViewController *rootController; + +- (void)suspend; + +- (void)willBecomeActive; +- (void)willResignActive; +- (void)willUnlock; + +- (void)didLock; +- (void)didUnlock; +- (void)didWake; + +- (void)formSheetViewDidDisappear; +- (void)formSheetViewWillDisappear; + +- (void)popupViewDidDisappear; +- (void)popupViewWillDisappear; + +- (void)handleURL:(NSURL *)url; +- (void)statusBarWillAnimateByHeight:(float)arg1; + +- (BOOL)canBeShownFromSuspendedState; + +@end diff --git a/Frameworks/Preferences.framework/Preferences.tbd b/Frameworks/Preferences.framework/Preferences.tbd new file mode 100755 index 0000000..6f0c3b1 --- /dev/null +++ b/Frameworks/Preferences.framework/Preferences.tbd @@ -0,0 +1,647 @@ +--- +archs: [ armv7, armv7s, arm64, arm64e ] +platform: ios +install-name: /System/Library/PrivateFrameworks/Preferences.framework/Preferences +current-version: 1 +compatibility-version: 1 +exports: + - archs: [ armv7, armv7s, arm64, arm64e ] + symbols: [ _ACMContextAddCredential, _ACMContextAddCredentialWithScope, _ACMContextContainsCredentialType, + _ACMContextContainsCredentialTypeEx, _ACMContextContainsPassphraseCredentialWithPurpose, + _ACMContextCreate, _ACMContextCreateWithExternalForm, _ACMContextCredentialGetProperty, + _ACMContextDelete, _ACMContextGetExternalForm, _ACMContextGetTrackingNumber, + _ACMContextRemoveCredentialsByType, _ACMContextRemoveCredentialsByTypeAndScope, + _ACMContextRemoveCredentialsByValue, _ACMContextRemoveCredentialsByValueAndScope, + _ACMContextRemovePassphraseCredentialsByPurposeAndScope, + _ACMContextReplacePassphraseCredentialsWithScope, _ACMContextVerifyAclConstraint, + _ACMContextVerifyAclConstraintForOperation, _ACMContextVerifyPolicy, _ACMContextVerifyPolicyEx, + _ACMContextVerifyPolicyWithPreflight, _ACMCredentialCreate, _ACMCredentialDelete, + _ACMCredentialGetProperty, _ACMCredentialGetPropertyData, _ACMCredentialGetType, + _ACMCredentialSetProperty, _ACMGetAclAuthMethod, _ACMGetEnvironmentVariable, + _ACMGlobalContextAddCredential, _ACMGlobalContextCredentialGetProperty, + _ACMGlobalContextRemoveCredentialsByType, _ACMGlobalContextVerifyPolicy, _ACMKernelControl, + _ACMParseAclAndCopyConstraintCharacteristics, _ACMPing, _ACMRequirementGetPriority, + _ACMRequirementGetProperties, _ACMRequirementGetProperty, _ACMRequirementGetPropertyData, + _ACMRequirementGetState, _ACMRequirementGetSubrequirements, _ACMRequirementGetType, + _ACMSetEnvironmentVariable, _CompareCredentials, _CopyCredential, + _CreateDetailControllerInstanceWithClass, _CreateRangeTimeLabel, _CreateRangeTitleLabel, + _DeallocCredential, _DeallocCredentialList, _DeallocRequirement, _DeserializeAddCredential, + _DeserializeCredential, _DeserializeCredentialList, _DeserializeGetContextProperty, + _DeserializeProcessAcl, _DeserializeRemoveCredential, _DeserializeReplacePassphraseCredential, + _DeserializeRequirement, _DeserializeVerifyAclConstraint, _DeserializeVerifyPolicy, _DeviceName, + _FilePathKey, _GetSerializedAddCredentialSize, _GetSerializedCredentialSize, + _GetSerializedGetContextPropertySize, _GetSerializedProcessAclSize, _GetSerializedRemoveCredentialSize, + _GetSerializedReplacePassphraseCredentialSize, _GetSerializedRequirementSize, + _GetSerializedVerifyAclConstraintSize, _GetSerializedVerifyPolicySize, _IsRegulatoryImageFromLockdown, + _LibCall_ACMContexAddCredentialWithScope, _LibCall_ACMContexRemoveCredentialsByTypeAndScope, + _LibCall_ACMContextCreate, _LibCall_ACMContextCreateWithExternalForm, + _LibCall_ACMContextCredentialGetProperty, _LibCall_ACMContextDelete, + _LibCall_ACMContextVerifyPolicyAndCopyRequirementEx, _LibCall_ACMCredentialCreate, + _LibCall_ACMCredentialDelete, _LibCall_ACMCredentialGetPropertyData, _LibCall_ACMCredentialGetType, + _LibCall_ACMCredentialSetProperty, _LibCall_ACMGetAclAuthMethod_Block, + _LibCall_ACMGetEnvironmentVariable_Block, _LibCall_ACMGlobalContextCredentialGetProperty_Block, + _LibCall_ACMKernDoubleClickNotify, _LibCall_ACMKernelControl, _LibCall_ACMKernelControl_Block, + _LibCall_ACMPing, _LibCall_ACMRequirementDelete, _LibCall_ACMRequirementGetPriority, + _LibCall_ACMRequirementGetPropertyData, _LibCall_ACMRequirementGetState, + _LibCall_ACMRequirementGetType, _LibCall_ACMSetEnvironmentVariable, _LibCall_BuildCommand, + _LibSer_ContextCredentialGetProperty_Deserialize, _LibSer_ContextCredentialGetProperty_GetSize, + _LibSer_ContextCredentialGetProperty_Serialize, _LibSer_DeleteContext_Deserialize, + _LibSer_DeleteContext_GetSize, _LibSer_DeleteContext_Serialize, _LibSer_GetAclAuthMethod_Deserialize, + _LibSer_GetAclAuthMethod_GetSize, _LibSer_GetAclAuthMethod_Serialize, + _LibSer_RemoveCredentialByType_Deserialize, _LibSer_RemoveCredentialByType_GetSize, + _LibSer_RemoveCredentialByType_Serialize, _LocalizableGTStringKeyForKey, _LocalizeWeeAppName, + _LocalizedPolarisExplanation, _NameKey, _ObjectAndOffsetForURLPair, _PKAccessibilityIconKey, + _PKAirplaneModeIconKey, _PKAppStoreIconKey, _PKBatteryUsageIconKey, _PKBatteryUsageRTLIconKey, + _PKBiometricsDidUpdate, _PKBluetoothIconKey, _PKBluetoothSharingIconKey, _PKCalendarIconKey, + _PKCameraIconKey, _PKCarPlayIconKey, _PKCarrierIconKey, _PKCarrierSettingsIconKey, + _PKCellularDataIconKey, _PKClassKitIconKey, _PKClassroomIconKey, _PKCompassIconKey, _PKContactsIconKey, + _PKContactsRTLIconKey, _PKControlCenterIconKey, _PKDNDIconKey, _PKDeveloperSettingsIconKey, + _PKDisplayIconKey, _PKEthernetIconKey, _PKFaceIDIconKey, _PKFaceTimeIconKey, _PKFilesIconKey, + _PKGameCenterIconKey, _PKGeneralIconKey, _PKHealthIconKey, _PKHomeDataIconKey, + _PKIconCacheImageNameKey, _PKInternalSettingsIconKey, _PKIsUSBRestrictedModeDisabledByMobileAsset, + _PKKeychainSyncIconKey, _PKLanguageIconKey, _PKLocationIconKey, _PKLogForCategory, _PKMailIconKey, + _PKMapsIconKey, _PKMeasureIconKey, _PKMediaLibraryIconKey, _PKMessagesIconKey, _PKMicrophoneIconKey, + _PKMotionIconKey, _PKMusicIconKey, _PKNewsIconKey, _PKNotesIconKey, _PKNotificationCenterIconKey, + _PKPasscodeIconKey, _PKPencilIconKey, _PKPersonalHotspotIconKey, _PKPhoneIconKey, _PKPhotosIconKey, + _PKPrivacyIconKey, _PKRemindersIconKey, _PKRemindersRTLIconKey, _PKSOSIconKey, _PKSafariIconKey, + _PKScreenTimeIconKey, _PKSensorKitIconKey, _PKShortcutsIconKey, _PKSiriIconKey, _PKSoundsIconKey, + _PKSpeechRecognitionIconKey, _PKTVAppIconKey, _PKTouchIDIconKey, _PKVPNIconKey, _PKVideoIconKey, + _PKVideoSubscriberIconKey, _PKVoiceMemosIconKey, _PKWalletIconKey, _PKWallpaperIconKey, _PKWiFiIconKey, + _PKiBooksIconKey, _PKiCloudBackupIconKey, _PKiCloudIconKey, _PKiTunesIconKey, + _PRDActionChangeStoragePlan, _PRDActionDeviceOffers, _PRDActionFreshmintStorageUpgrade, + _PRDActionTapPhotosRow, _PSAbbreviatedFormattedTimeString, _PSAbbreviatedFormattedTimeStringWithDays, + _PSAboutDeviceSupervision, _PSAboutLocationAndPrivacyText, _PSAccessoryKey, + _PSAccountSettingsDataclassesKey, _PSAccountsClientDataclassFilterKey, _PSActionKey, + _PSAdjustFontSizeToFitWidthKey, _PSAirDropImage, _PSAlignmentKey, + _PSAnimationOptionsFromAnimationCurve, _PSAppGroupBundleIDKey, _PSAppGroupDomainKey, + _PSAppIconImageNamed, _PSAppSettingsBundleIDKey, _PSAppSettingsBundleKey, _PSAppTintColor, + _PSApplicationDisplayIdentifiersCapability, _PSApplicationSpecifierForAssistantSection, + _PSApplicationSpecifierForAssistantSectionForBundleId, _PSApplicationSpecifierForBBSection, + _PSApplyBuddyThemeToNavigationBar, _PSAudioAccessoryLicenseFilePath, _PSAudioAccessoryWarrantyFilePath, + _PSAuthorizationTokenForPasscode, _PSAutoCapsKey, _PSAutoCorrectionKey, _PSAutoWhiteBalanceCapability, + _PSBackupClass, _PSBadgeNumberKey, _PSBestGuesserKey, _PSBlankIconImage, _PSBundleCustomIconPathKey, + _PSBundleHasBundleIconKey, _PSBundleHasIconKey, _PSBundleIconPathKey, _PSBundleIdentifierDocumentsApp, + _PSBundleIdentifierMaps, _PSBundleIdentifierNews, _PSBundleIdentifierPlaygroundsBeta, + _PSBundleIdentifierPodcasts, _PSBundleIdentifierSchoolwork, _PSBundleIdentifierStocks, + _PSBundleIdentifierTV, _PSBundleIdentifieriBooks, _PSBundleIdentifieriTunesU, _PSBundleIsControllerKey, + _PSBundleOverridePrincipalClassKey, _PSBundlePathForPreferenceBundle, _PSBundlePathKey, + _PSBundleSearchControllerClassKey, _PSBundleSearchIconPathKey, _PSBundleSupportsSearchKey, + _PSBundleTintedIconPathKey, _PSButtonActionKey, _PSCancelKey, _PSCapacityBarBackgroundColorKey, + _PSCapacityBarDataKey, _PSCapacityBarForceLoadingKey, _PSCapacityBarHideLegendKey, + _PSCapacityBarLegendTextColorKey, _PSCapacityBarLoadingKey, _PSCapacityBarOtherDataColorKey, + _PSCapacityBarOtherDataLegendTextKey, _PSCapacityBarSeparatorColorKey, + _PSCapacityBarShowOtherDataLegendKey, _PSCapacityBarSizeFormatKey, + _PSCapacityBarSizeLblUsesStandardFontKey, _PSCapacityBarSizeTextColorKey, _PSCapacityBarSizesAreMemKey, + _PSCapacityBarTitleTextColorKey, _PSCellClassKey, _PSCellularPlanKey, _PSCellularPlanReferenceKey, + _PSCityForSpecifier, _PSCityForTimeZone, _PSCloudFamilyRestrictionsControllerForDSID, + _PSColorCodedSerialNumber, _PSConfigString, _PSConfirmationActionKey, _PSConfirmationAltKey, + _PSConfirmationAlternateActionKey, _PSConfirmationAlternateDestructiveKey, + _PSConfirmationCancelActionKey, _PSConfirmationCancelKey, _PSConfirmationDestructiveKey, + _PSConfirmationKey, _PSConfirmationOKKey, _PSConfirmationPromptKey, _PSConfirmationTitleKey, + _PSContainerBundleIDKey, _PSControlIsLoadingKey, _PSControlKey, _PSControlMaximumKey, + _PSControlMinimumKey, _PSControllerItemsKey, _PSControllerLoadActionKey, _PSControllerTitleKey, + _PSCopyableCellKey, _PSCoreSpolightIndexInExtensionKey, _PSCoreSpolightSkipInternalManifestsKey, + _PSCoreUIArtworkDeviceSubtype, _PSCreateSecTrustFromCertificateChain, _PSCurrentCallTypes, + _PSDataSourceClassKey, _PSDecimalKeyboardKey, _PSDefaultValueKey, _PSDefaultsKey, + _PSDeferItemSelectionKey, _PSDeletionActionKey, _PSDetailControllerClassKey, + _PSDeveloperSettingsCapability, _PSDeviceClass, _PSDeviceSubTypeString, _PSDeviceUDID, + _PSDiagnosticsAreEnabled, _PSDisplayNameForBBSection, _PSDisplaySortedByTitleKey, + _PSDisplayZoomCapability, _PSDocumentBundleIdentifierKey, _PSEditPaneClassKey, + _PSEditableTableCellTextFieldShouldPopOnReturn, _PSEditingCellHorizontalInset, + _PSEmailAddressKeyboardKey, _PSEmailAddressingKeyboardKey, _PSEnabledKey, + _PSEthernetChangedNotification, _PSFaceIDPrivacyText, _PSFindViewOfClass, _PSFooterAlignmentGroupKey, + _PSFooterCellClassGroupKey, _PSFooterHyperlinkViewActionKey, _PSFooterHyperlinkViewLinkRangeKey, + _PSFooterHyperlinkViewTargetKey, _PSFooterHyperlinkViewTitleKey, _PSFooterHyperlinkViewURLKey, + _PSFooterTextGroupKey, _PSFooterViewKey, _PSFormattedTimeString, _PSFormattedTimeStringWithDays, + _PSGestureRecognizers, _PSGetCapabilityBoolAnswer, _PSGetterKey, _PSHasStockholmPass, + _PSHeaderCellClassGroupKey, _PSHeaderDetailTextGroupKey, _PSHeaderViewKey, + _PSHidesDisclosureIndicatorKey, _PSHighLegibilityAlternateFont, _PSIDKey, _PSIPKeyboardKey, + _PSIconImageKey, _PSIconImageShouldFlipForRightToLeftCalendarKey, + _PSIconImageShouldFlipForRightToLeftKey, _PSIconImageShouldLoadAlternateImageForRightToLeftKey, + _PSInEDUModeCapability, _PSInStoreDemoModeCapability, _PSIndiaBISNumber, _PSIsAppIdSiriKitTCCEnabled, + _PSIsAudioAccessory, _PSIsBundleIDHiddenDueToRestrictions, _PSIsBundleIDInstalled, _PSIsD22ScreenSize, + _PSIsD33OrN84ScreenSize, _PSIsDebug, _PSIsGreenTeaCapable, _PSIsHostingPersonalHotspot, _PSIsInEDUMode, + _PSIsInternalInstall, _PSIsJ99, _PSIsKeychainSecureBackupEnabled, _PSIsLocationRestricted, + _PSIsLoggingEnabled, _PSIsN56, _PSIsNanoMirroringDomain, _PSIsPearlAvailable, _PSIsPearlInterlocked, + _PSIsPerGizmoKey, _PSIsRadioGroupKey, _PSIsRunningInAssistant, _PSIsSkippedInEDUModeKey, + _PSIsSpecifierHiddenDueToRestrictions, _PSIsTelephonyDead, _PSIsThirdPartyDetailKey, _PSIsTopLevelKey, + _PSIsUsingPasscode, _PSIsiPad, _PSIsiPhone, _PSKeyNameKey, _PSKeyboardTypeKey, + _PSKeychainSyncErrorDomain, _PSKeychainSyncGetCircleMembershipStatus, _PSKeychainSyncGetStatus, + _PSKeychainSyncIsUsingICDP, _PSKillProcessNamed, _PSLazilyLoadedBundleKey, _PSLazyIconAppID, + _PSLazyIconDontUnload, _PSLazyIconLoading, _PSLazyIconLoadingCustomQueue, _PSLazyIconURL, + _PSLegacyCityFromCity, _PSLicenseFilePath, _PSLicensePath, _PSLocaleLanguageDirection, + _PSLocaleUses24HourClock, _PSLocalizableMesaStringForKey, _PSLocalizablePearlStringForKey, + _PSLocalizableStockholmStringForKey, _PSLocalizedStringFromTableInBundleForLanguage, _PSLog, + _PSManifestEntriesKey, _PSManifestSectionKey, _PSManifestStringTableKey, _PSMarginWidthKey, + _PSMigrateSoundsDefaults_10_0, _PSMultipickerStringsName, _PSNETRBChangedNotification, + _PSNavigationControllerWillShow, _PSNavigationControllerWillShowAppearing, + _PSNavigationControllerWillShowDisappearing, _PSNavigationControllerWillShowOperationType, + _PSNegateValueKey, _PSNightShiftCapability, _PSNotifyNanoKey, _PSNumberKeyboardKey, + _PSPIDForProcessNamed, _PSPaneTitleKey, _PSPassbookImage, _PSPlaceholderKey, _PSPlantCode, + _PSPlistNameKey, _PSPointImageOfColor, _PSPreferencesFrameworkBundle, _PSPreferencesLaunchURL, + _PSPreferencesUIFrameworkBundle, _PSPreferredLanguageIsEnglish, _PSPrioritizeValueTextDisplayKey, + _PSPurpleBuddyIdentifier, _PSRadioGroupCheckedSpecifierKey, _PSRaiseToWakeCapability, + _PSRegulatoryImage, _PSRequiredCapabilitiesKey, _PSRequiredCapabilitiesOrKey, + _PSRerootPreferencesNavigationNotification, _PSResetCachedSiriKitTCCEnabledAppIds, + _PSRootControllerDidSuspendNotification, _PSRoundRectToPixel, _PSRoundToPixel, _PSScreenClassString, + _PSSearchInlineTogglesEnabled, _PSSearchNanoApplicationsBundlePath, + _PSSearchNanoInternalSettingsBundlePath, _PSSearchNanoSettingsBundlePath, _PSSecureBackupAccountInfo, + _PSSelectedTintedImageFromMask, _PSSetBatteryMonitoringEnabled, _PSSetCustomWatchCapabilityCheck, + _PSSetLoggingEnabled, _PSSetterKey, _PSSetupAssistantNeedsToRun, _PSSetupCustomClassKey, + _PSSetupFinishedAllStepsKey, _PSShortFormattedTimeString, _PSShortTitlesDataSourceKey, + _PSShortTitlesKey, _PSShouldShowIndiaBIS, _PSShowEnableKeychainSync, _PSShowKeychainSyncRecovery, + _PSShowStorageCapability, _PSShowVideoDownloadsCapability, _PSSimIsRequired, _PSSiriImage, + _PSSiriImageNamed, _PSSiriKitTCCEnabledAppIds, _PSSliderIsContinuous, _PSSliderIsSegmented, + _PSSliderLeftImageKey, _PSSliderLeftImagePromiseKey, _PSSliderLocksToSegment, _PSSliderRightImageKey, + _PSSliderRightImagePromiseKey, _PSSliderSegmentCount, _PSSliderShowValueKey, _PSSliderSnapsToSegment, + _PSSpeciferForThirdPartyBundle, _PSSpecifierActionKey, _PSSpecifierAttributesKey, + _PSSpecifierAuthenticationTokenKey, _PSSpecifierForThirdPartyBundle, _PSSpecifierIsSearchableKey, + _PSSpecifierIsSectionKey, _PSSpecifierPasscodeKey, _PSSpecifierSearchBundleKey, + _PSSpecifierSearchContentDescriptionKey, _PSSpecifierSearchDetailPath, _PSSpecifierSearchKeywordsKey, + _PSSpecifierSearchPlistKey, _PSSpecifierSearchSectionID, _PSSpecifierSearchSectionIDKey, + _PSSpecifierSearchTitleKey, _PSSpecifierSearchURL, _PSSpecifierSearchURLKey, + _PSSpecifierSupportsSearchToggleKey, _PSSpecifiersKey, _PSStaticHeaderTextKey, _PSStaticTextMessageKey, + _PSStockholmLocallyStoredValuePassNames, _PSStorageAndBackupClass, _PSStorageClass, _PSStringForDays, + _PSStringForHours, _PSStringForMins, _PSStringForMinutes, _PSStringsBundleIDKey, + _PSStringsBundlePathKey, _PSStringsKey, _PSStringsTableKey, _PSSubscriptionContextKey, + _PSSupportedOrientations, _PSSupportsAccountSettingsDataclassesKey, _PSSupportsMesa, _PSTTYCapability, + _PSTableCellAlwaysShowSeparator, _PSTableCellClassKey, _PSTableCellHeightKey, _PSTableCellKey, + _PSTableCellSubtitleColorKey, _PSTableCellSubtitleTextKey, _PSTableCellUseEtchedAppearanceKey, + _PSTableSectionFooterBottomPad, _PSTableSectionFooterTopPad, _PSTableViewSideInset, + _PSTableViewSideInsetPad, _PSTextFieldNoAutoCorrectKey, _PSTextViewBottomMarginKey, _PSTextViewInsets, + _PSTimeStringIsShortened, _PSTimeZoneArrayForSpecifier, _PSTimeZoneArrayForTimeZone, _PSTintedIcon, + _PSTintedImageFromMask, _PSTitleKey, _PSTitlesDataSourceKey, _PSToolbarLabelsTextColor, + _PSTopLevelCellKey, _PSUISupportsDocumentBrowser, _PSURLKeyboardKey, _PSUsageBundleAppKey, + _PSUsageBundleCategoryKey, _PSUsageBundleDeletingKey, _PSUseHighLegibilityAlternateKey, + _PSUsedByHSA2Account, _PSUsedByManagedAccount, _PSUsesAlternateSelectionStyleKey, _PSValidTitlesKey, + _PSValidValuesKey, _PSValueChangedNotificationKey, _PSValueKey, _PSValuesDataSourceKey, + _PSWarrantyFilePath, _PSWarrantyPath, _PSWeekOfManufacture, _PSWifiChangedNotification, _PSWifiNameKey, + _PSWifiPowerStateKey, _PSWifiTetheringStateKey, _PSYearOfManufacture, _PathKey, + _PreferencesTableViewCellLeftPad, _PreferencesTableViewCellRightPad, _PreferencesTableViewFooterColor, + _PreferencesTableViewFooterFont, _PreferencesTableViewHeaderColor, _PreferencesTableViewHeaderFont, + _ProcessedSpecifierBundle, _ProductType, _SUIKCategoryFromSearchableItem, _SUIKCategoryHeaderKind, + _ScreenScale, _SearchEntriesFromSpecifiers, _SearchEntryFromSpecifier, _SearchSpecifiersFromPlist, + _SerializeAddCredential, _SerializeCredential, _SerializeCredentialList, _SerializeGetContextProperty, + _SerializeProcessAcl, _SerializeRemoveCredential, _SerializeReplacePassphraseCredential, + _SerializeRequirement, _SerializeVerifyAclConstraint, _SerializeVerifyPolicy, _SetDeviceName, + _ShouldShowBuiltInApps, _ShouldShowRoHSCompliance, _ShouldShowWeibo, _ShouldShowYearOfManufacture, + _ShowInNotificationsState, _SpecifiersFromPlist, _SystemHasCapabilities, + _TopToBottomLeftToRightViewCompare, _UsageSizeKey, _UserInterfaceIdiom, _WifiStateChanged, + __PSFindViewRecursively, __PSIsValueRestrictedByMCFeature, __PSLoggingFacility, + ___init_sirikit_enabled_lock, __clearKeychainSyncCache, __consuming_xpc_release, __screenScale, + _gAllocatedBytes, _gLastAllocatedBytes, _kDevicePINControllerDelegate, _kDevicePINMode, + _kHeaderHorizontalMargin, _kKeychainSyncCountryInfoKey, _kKeychainSyncPhoneNumberKey, + _kKeychainSyncSecurityCodeAdvancedOptionsResult, _kKeychainSyncSecurityCodeKey, + _kKeychainSyncSecurityCodePeerApprovalResult, _kKeychainSyncSecurityCodeResetKeychainResult, + _kKeychainSyncSecurityCodeSetUpLaterResult, _kKeychainSyncSecurityCodeTypeKey, + _kKeychainSyncSpinnerKey, _kNumberOfPasscodeFieldsProperty, _kPSLargeTextUsesExtendedRangeKey, + _kTCCBluetoothSharingID, _kTCCCalendarsID, _kTCCCameraID, _kTCCContactsID, _kTCCFaceID, + _kTCCLiverpoolID, _kTCCMediaLibraryID, _kTCCMicrophoneID, _kTCCMotionID, _kTCCPhotosID, + _kTCCRemindersID, _kTCCSpeechRecognitionID, _kTCCWillowID, _kWantsIcon, _resetLocale, + _s_sirikit_enabled_lock ] + objc-classes: [ _AlphanumericPINTableViewCell, _AlphanumericPINTextField, _DevicePINController, _DevicePINKeypad, + _DevicePINKeypadContainerView, _DevicePINPane, _DevicePINSetupController, _DiagnosticDataController, + _FailureBarView, _FontSizeSliderCell, _KeychainSyncAdvancedSecurityCodeController, + _KeychainSyncAppleSupportController, _KeychainSyncCountryInfo, _KeychainSyncDevicePINController, + _KeychainSyncPhoneNumberController, _KeychainSyncPhoneSettingsFragment, + _KeychainSyncSMSVerificationController, _KeychainSyncSecurityCodeCell, _KeychainSyncSetupController, + _LargeTextExplanationView, _LargerSizesHelpTextView, _PINOptionsButton, _PINView, _PKBiometrics, + _PKIconImageCache, _PSAboutHTMLSheetViewController, _PSAboutTextSheetViewController, + _PSAccessibilitySettingsDetail, _PSAccountSecurityController, _PSAccountsClientListCell, + _PSAccountsClientListController, _PSAirplaneModeSettingsDetail, _PSAppListController, + _PSAppleIDSplashViewController, _PSAssistiveTouchSettingsDetail, _PSAutoLockSettingsDetail, + _PSBadgedTableCell, _PSBarButtonSpinnerView, _PSBiometricIdentity, _PSBluetoothSettingsDetail, + _PSBrightnessController, _PSBrightnessSettingsDetail, _PSBulletedPINView, _PSBundleController, + _PSCapabilityManager, _PSCapacityBarCategory, _PSCapacityBarCell, _PSCapacityBarData, + _PSCapacityBarLegendView, _PSCapacityBarView, _PSCastleSettingsDetail, _PSCellularDataSettingsDetail, + _PSClearBackgroundCell, _PSCloudStorageOffersManager, _PSCloudStorageQuotaManager, + _PSCommandAndControlSettingsDetail, _PSCompassSettingsDetail, _PSConfirmationSpecifier, + _PSControlCenterSettingsDetail, _PSControlTableCell, _PSCoreSpotlightIndexer, _PSDUETSettingsDetail, + _PSDateTimePickerCell, _PSDeleteButtonCell, _PSDetailController, _PSDocumentsPolicyController, + _PSEditableListController, _PSEditableTableCell, _PSEditingPane, _PSExpandableAppListGroup, + _PSExpandableListGroup, _PSFaceTimeSettingsDetail, _PSFooterHyperlinkView, _PSGameCenterSettingsDetail, + _PSGuidedAccessSettingsDetail, _PSIconMarginTableCell, _PSInternationalController, + _PSInternationalLanguageController, _PSInternationalLanguageSetupController, + _PSInvertColorsSettingsDetail, _PSKeyboardNavigationSearchBar, _PSKeyboardNavigationSearchController, + _PSKeyboardSettingsDetail, _PSKeychainSyncHeaderView, _PSKeychainSyncManager, + _PSKeychainSyncPhoneNumber, _PSKeychainSyncSecurityCodeController, _PSKeychainSyncTextEntryController, + _PSKeychainSyncViewController, _PSLanguage, _PSLanguageSelector, _PSLargeTextController, + _PSLargeTextSliderListController, _PSLazyImagePromise, _PSLegalMessagePane, _PSLegendColorView, + _PSListController, _PSListItemsController, _PSLocaleController, _PSLocaleSelector, + _PSLocationServicesSettingsDetail, _PSLowPowerModeSettingsDetail, _PSMCCSettingsDetail, + _PSMapsSettingsDetail, _PSMessagesSettingsDetail, _PSMigratorUtilities, _PSMusicSettingsDetail, + _PSNavBarSpinnerManager, _PSNonMovableTapGestureRecognizer, _PSNotesSettingsDetail, + _PSNotificationSettingsController, _PSNotificationSettingsDetail, _PSOAuthAccountRedirectURLController, + _PSPasscodeField, _PSPasscodeSettingsDetail, _PSPhoneNumberSpecifier, _PSPhoneNumberTableCell, + _PSPhoneSettingsDetail, _PSPhotosAndCameraSettingsDetail, _PSPhotosPolicyController, + _PSPowerlogListController, _PSPrivacySettingsDetail, _PSQuotaInfo, _PSRegion, + _PSRemindersSettingsDetail, _PSRestrictionsController, _PSRestrictionsPINController, + _PSRestrictionsPasscodeController, _PSReversedSubtitleDisclosureTableCell, _PSRootController, + _PSSafariSettingsDetail, _PSSearchController, _PSSearchEntry, _PSSearchIndexOperation, _PSSearchModel, + _PSSearchOperation, _PSSearchResults, _PSSearchResultsCell, _PSSearchResultsController, + _PSSearchableItem, _PSSearchableItemManifest, _PSSegmentTableCell, _PSSegmentableSlider, + _PSSettingsFunctions, _PSSetupController, _PSSharableDetailController, _PSSimulatedCrash, + _PSSiriSettingsDetail, _PSSliderTableCell, _PSSoftwareUpdateAnimatedIcon, + _PSSoftwareUpdateLicenseViewController, _PSSoftwareUpdateReleaseNotesDetail, + _PSSoftwareUpdateTableView, _PSSoftwareUpdateTermsManager, _PSSoftwareUpdateTitleCell, + _PSSoundsSettingsDetail, _PSSpecifier, _PSSpecifierAction, _PSSpecifierController, + _PSSpecifierDataSource, _PSSpecifierGroupIndex, _PSSpecifierUpdateContext, _PSSpecifierUpdateOperation, + _PSSpecifierUpdates, _PSSpinnerRecord, _PSSpinnerTableCell, _PSSplitViewController, + _PSSpotlightSearchResultsController, _PSStackPushAnimationController, _PSStorageAppHeaderCell, + _PSStoreSettingsDetail, _PSSubtitleDisclosureTableCell, _PSSubtitleSwitchTableCell, _PSSwitchTableCell, + _PSSystemConfiguration, _PSSystemConfigurationDynamicStoreEthernetWatcher, + _PSSystemConfigurationDynamicStoreNETRBWatcher, _PSSystemConfigurationDynamicStoreWifiWatcher, + _PSSystemPolicyForApp, _PSSystemPolicyManager, _PSTableCell, _PSTableCellHighlightContext, + _PSTextEditingCell, _PSTextEditingPane, _PSTextFieldPINView, _PSTextFieldSpecifier, + _PSTextSizeSettingsDetail, _PSTextView, _PSTextViewPane, _PSTextViewTableCell, _PSThirdPartyApp, + _PSThirdPartyAppController, _PSThirdPartyAppViewController, _PSThirdPartySettingsDetail, + _PSTimeRangeCell, _PSTimeZoneController, _PSTimeZoneTableCell, _PSTorchSettingsDetail, + _PSUISearchController, _PSURLControllerHandler, _PSURLManager, _PSUsageBundleApp, + _PSUsageBundleCategory, _PSUsageBundleCell, _PSUsageBundleDetailController, _PSUsageBundleManager, + _PSUsageSizeHeader, _PSVideoSubscriberPrivacyCell, _PSVideosSettingsDetail, _PSViewController, + _PSVoiceOverSettingsDetail, _PSWeakReference, _PSWebContainerView, _PSWiFiSettingsDetail, + _PasscodeFieldCell, _PrefsUILinkLabel, _ProblemReportingAboutController, _ProblemReportingController, + _SUIKSearchResultCollectionViewListCell, _SUIKSearchResultCollectionViewSectionHeader, + _SUIKSearchResultsCollectionViewController, _SUIKSearchResultsCollectionViewLayout, + __PSDeferredUpdates, __PSSpinnerHandlingNavigationController, __PSSpinnerViewController, + __SUIKSearchResultsUpdateOperation ] + objc-ivars: [ _AlphanumericPINTableViewCell._pinTextField, _DevicePINController._allowOptionsButton, + _DevicePINController._cancelButton, _DevicePINController._doneButton, + _DevicePINController._doneButtonTitle, _DevicePINController._error1, _DevicePINController._error2, + _DevicePINController._hasBeenDismissed, _DevicePINController._hidesCancelButton, + _DevicePINController._hidesNavigationButtons, _DevicePINController._lastEntry, + _DevicePINController._mode, _DevicePINController._nextButton, _DevicePINController._numericPIN, + _DevicePINController._oldPassword, _DevicePINController._pinDelegate, _DevicePINController._pinLength, + _DevicePINController._requiresKeyboard, _DevicePINController._sepLockInfo, + _DevicePINController._sepOnceToken, _DevicePINController._shouldDismissWhenDone, + _DevicePINController._simplePIN, _DevicePINController._substate, _DevicePINController._success, + _DevicePINController._useSEPLockInfo, _DevicePINKeypadContainerView._backdropView, + _DevicePINKeypadContainerView._iPadKeypadHeight, _DevicePINKeypadContainerView._keypad, + _DevicePINPane._PINLength, _DevicePINPane._autocapitalizationType, _DevicePINPane._autocorrectionType, + _DevicePINPane._isBlocked, _DevicePINPane._keyboardAppearance, _DevicePINPane._keyboardType, + _DevicePINPane._keypad, _DevicePINPane._keypadActive, _DevicePINPane._keypadContainerView, + _DevicePINPane._numericKeyboard, _DevicePINPane._passcodeOptionsHandler, _DevicePINPane._pinView, + _DevicePINPane._playSound, _DevicePINPane._simplePIN, _DevicePINPane._transitionView, + _DevicePINPane._transitioning, _DevicePINSetupController._allowOptionsButton, + _DevicePINSetupController._success, _FailureBarView._titleLabel, + _KeychainSyncAdvancedSecurityCodeController._cellFont, + _KeychainSyncAdvancedSecurityCodeController._cellTextWidth, + _KeychainSyncAdvancedSecurityCodeController._showsDisableRecoveryOption, + _KeychainSyncCountryInfo._countryCode, _KeychainSyncCountryInfo._countryName, + _KeychainSyncCountryInfo._dialingPrefix, _KeychainSyncCountryInfo._localizedCountryName, + _KeychainSyncDevicePINController._devicePINController, + _KeychainSyncDevicePINController._disabledKeyboard, + _KeychainSyncDevicePINController._enterPasscodeReason, + _KeychainSyncDevicePINController._enterPasscodeTitle, + _KeychainSyncDevicePINController._showingBlockedMessage, + _KeychainSyncPhoneNumberController._footerLabel, + _KeychainSyncPhoneNumberController._phoneSettingsFragment, + _KeychainSyncPhoneSettingsFragment._countryInfo, _KeychainSyncPhoneSettingsFragment._countrySpecifier, + _KeychainSyncPhoneSettingsFragment._delegate, _KeychainSyncPhoneSettingsFragment._listController, + _KeychainSyncPhoneSettingsFragment._phoneNumber, + _KeychainSyncPhoneSettingsFragment._phoneNumberSpecifier, + _KeychainSyncPhoneSettingsFragment._specifiers, _KeychainSyncPhoneSettingsFragment._title, + _KeychainSyncSMSVerificationController._countryCode, + _KeychainSyncSMSVerificationController._dialingPrefix, + _KeychainSyncSMSVerificationController._footerButton, + _KeychainSyncSMSVerificationController._keychainSyncManager, + _KeychainSyncSMSVerificationController._phoneNumber, _KeychainSyncSecurityCodeCell._bulletTextLabel, + _KeychainSyncSecurityCodeCell._firstPasscodeEntry, _KeychainSyncSecurityCodeCell._mode, + _KeychainSyncSecurityCodeCell._securityCodeType, _KeychainSyncSetupController._manager, + _LargeTextExplanationView._bodyExampleLabel, _LargeTextExplanationView._bodyExampleTextView, + _LargerSizesHelpTextView._helpLabel, _PINView._delegate, _PINView._error, _PINView._errorTitleLabel, + _PINView._failureView, _PINView._optionsButton, _PINView._passcodeOptionsHandler, + _PINView._pinPolicyLabel, _PINView._titleLabel, _PKBiometrics._pearlDevice, + _PKBiometrics._touchIDDevice, _PKIconImageCache._cacheAccessQueue, _PKIconImageCache._iconCache, + _PSAccountSecurityController._SMSTarget, _PSAccountSecurityController._SMSTargetCountryInfo, + _PSAccountSecurityController._devicePINController, + _PSAccountSecurityController._devicePasscodeChangeSetupController, + _PSAccountSecurityController._manager, _PSAccountSecurityController._passcodeSpecifiers, + _PSAccountSecurityController._phoneSettingsFragment, _PSAccountSecurityController._recoverySwitch, + _PSAccountSecurityController._secureBackupEnabled, _PSAccountSecurityController._securityCode, + _PSAccountSecurityController._securityCodeType, _PSAccountsClientListController._acObserver, + _PSAccountsClientListController._accountSpecifier, _PSAccountsClientListController._noAccountsSetUp, + _PSAccountsClientListController._showExtraVC, _PSAccountsClientListController.accountUpdateThrottle, + _PSAppListController._systemPolicy, _PSAppleIDSplashViewController._authController, + _PSAppleIDSplashViewController._cancelButtonBarItem, + _PSAppleIDSplashViewController._createNewAccountButtonSpecifier, + _PSAppleIDSplashViewController._createNewAccountGroupSpecifier, + _PSAppleIDSplashViewController._idleJiggleTimer, _PSAppleIDSplashViewController._isPasswordDirty, + _PSAppleIDSplashViewController._isPresentedModally, _PSAppleIDSplashViewController._nextButtonBarItem, + _PSAppleIDSplashViewController._password, _PSAppleIDSplashViewController._passwordHandler, + _PSAppleIDSplashViewController._passwordSpecifier, _PSAppleIDSplashViewController._powerAssertion, + _PSAppleIDSplashViewController._remoteUICompletion, _PSAppleIDSplashViewController._remoteUIController, + _PSAppleIDSplashViewController._shouldHideBackButton, + _PSAppleIDSplashViewController._shouldShowCreateAppleIDButton, + _PSAppleIDSplashViewController._signInButtonSpecifier, _PSAppleIDSplashViewController._spinner, + _PSAppleIDSplashViewController._spinnerBarItem, + _PSAppleIDSplashViewController._textFieldTextDidChangeObserver, + _PSAppleIDSplashViewController._userSpecifier, _PSAppleIDSplashViewController._username, + _PSBadgedTableCell._badgeImageView, _PSBadgedTableCell._badgeInt, _PSBadgedTableCell._badgeNumberLabel, + _PSBarButtonSpinnerView._spinner, _PSBrightnessController._brightnessChangedExternally, + _PSBrightnessController._isTracking, _PSBulletedPINView._passcodeField, _PSBundleController._parent, + _PSCapabilityManager._overrideForAllBoolValues, _PSCapabilityManager._overrides, + _PSCapacityBarCategory._bytes, _PSCapacityBarCategory._color, _PSCapacityBarCategory._identifier, + _PSCapacityBarCategory._title, _PSCapacityBarCell._barHeightConstraint, _PSCapacityBarCell._barView, + _PSCapacityBarCell._bigFont, _PSCapacityBarCell._commonConstraints, _PSCapacityBarCell._forceLoading, + _PSCapacityBarCell._hideLegend, _PSCapacityBarCell._largeConstraints, + _PSCapacityBarCell._legendConstraints, _PSCapacityBarCell._legendFont, + _PSCapacityBarCell._legendTextColor, _PSCapacityBarCell._legendView, _PSCapacityBarCell._legends, + _PSCapacityBarCell._loadingLabel, _PSCapacityBarCell._normalConstraints, + _PSCapacityBarCell._otherLegend, _PSCapacityBarCell._showOtherLegend, _PSCapacityBarCell._sizeFormat, + _PSCapacityBarCell._sizeLabel, _PSCapacityBarCell._sizesAreMem, _PSCapacityBarCell._tableWidth, + _PSCapacityBarCell._titleLabel, _PSCapacityBarData._adjustedCategories, _PSCapacityBarData._bytesUsed, + _PSCapacityBarData._capacity, _PSCapacityBarData._categories, _PSCapacityBarData._categoryLimit, + _PSCapacityBarData._hideTinyCategories, _PSCapacityBarData._orderedCategories, + _PSCapacityBarData._sortStyle, _PSCapacityBarLegendView._legendColor, + _PSCapacityBarLegendView._legendLabel, _PSCapacityBarView._barBackgroundColor, + _PSCapacityBarView._barData, _PSCapacityBarView._barOtherDataColor, + _PSCapacityBarView._barSeparatorColor, _PSCloudStorageOffersManager._commerceDelegate, + _PSCloudStorageOffersManager._delegate, _PSCloudStorageOffersManager._requiredStorageThreshold, + _PSCloudStorageOffersManager._shouldOfferDeviceOffers, + _PSCloudStorageOffersManager._shouldOfferFamilySharePlansOnly, + _PSCloudStorageOffersManager._skipCompletionAlert, _PSCloudStorageOffersManager._skipRetryWithoutToken, + _PSCloudStorageOffersManager._supportsModernAlerts, _PSConfirmationSpecifier._alternateButton, + _PSConfirmationSpecifier._cancelButton, _PSConfirmationSpecifier._okButton, + _PSConfirmationSpecifier._prompt, _PSConfirmationSpecifier._title, _PSControlTableCell._control, + _PSCoreSpotlightIndexer._hasItemsQuery, _PSCoreSpotlightIndexer._indexFromControllerLog, + _PSCoreSpotlightIndexer._prefsSearchableIndex, _PSCoreSpotlightIndexer._searchQuery, + _PSCoreSpotlightIndexer._skipManifests, _PSCoreSpotlightIndexer._spotlightIndexQueue, + _PSDateTimePickerCell._datePicker, _PSDeleteButtonCell._buttonColor, _PSDetailController._pane, + _PSDocumentsPolicyController._bundleIdentifier, _PSDocumentsPolicyController._groupSpecifier, + _PSDocumentsPolicyController._isFirstSourceResults, _PSDocumentsPolicyController._searchingContext, + _PSDocumentsPolicyController._selectedDocumentSource, _PSEditableListController._editable, + _PSEditableListController._editingDisabled, _PSEditableTableCell._controllerDelegate, + _PSEditableTableCell._delaySpecifierRelease, _PSEditableTableCell._delegate, + _PSEditableTableCell._forceFirstResponder, _PSEditableTableCell._realTarget, + _PSEditableTableCell._returnKeyTapped, _PSEditableTableCell._targetSetter, + _PSEditableTableCell._textColor, _PSEditableTableCell._valueChanged, _PSEditingPane._delegate, + _PSEditingPane._requiresKeyboard, _PSEditingPane._specifier, _PSEditingPane._viewController, + _PSExpandableListGroup._collaspeAfterCount, _PSExpandableListGroup._groupSpecifierID, + _PSExpandableListGroup._listController, _PSExpandableListGroup._showAll, + _PSExpandableListGroup._showAllSpecifier, _PSExpandableListGroup._specifiers, + _PSExpandableListGroup._spinnerSpecifier, _PSFooterHyperlinkView._URL, _PSFooterHyperlinkView._action, + _PSFooterHyperlinkView._linkRange, _PSFooterHyperlinkView._target, _PSFooterHyperlinkView._text, + _PSFooterHyperlinkView._textView, _PSFooterHyperlinkView._textViewLeadingConstraint, + _PSFooterHyperlinkView._textViewTrailingConstraint, + _PSInternationalLanguageController._checkedLanguage, _PSInternationalLanguageController._contentView, + _PSInternationalLanguageController._deviceLanguages, + _PSInternationalLanguageController._filteredDeviceLanguages, + _PSInternationalLanguageController._languageSelector, + _PSInternationalLanguageController._localeSelector, + _PSInternationalLanguageController._savedSearchTerm, _PSInternationalLanguageController._searchBar, + _PSInternationalLanguageController._searchIsActive, _PSInternationalLanguageController._tableView, + _PSInternationalLanguageSetupController._languageSelector, + _PSKeyboardNavigationSearchController.searchBar, + _PSKeyboardNavigationSearchController.searchResultsController, _PSKeychainSyncHeaderView._detailLabel, + _PSKeychainSyncHeaderView._titleLabel, _PSKeychainSyncHeaderView._usesCompactLayout, + _PSKeychainSyncManager._advancedSecurityCodeChoiceController, + _PSKeychainSyncManager._appleIDPasswordOrEquivalentToken, _PSKeychainSyncManager._appleIDRawPassword, + _PSKeychainSyncManager._appleIDUsername, _PSKeychainSyncManager._buddyNavigationController, + _PSKeychainSyncManager._changeSecurityCodeCompletion, _PSKeychainSyncManager._circleJoinCompletion, + _PSKeychainSyncManager._circleNotificationToken, _PSKeychainSyncManager._circleWasReset, + _PSKeychainSyncManager._completion, _PSKeychainSyncManager._complexSecurityCodeController, + _PSKeychainSyncManager._credentialExpirationTimer, _PSKeychainSyncManager._devicePinController, + _PSKeychainSyncManager._flow, _PSKeychainSyncManager._hostViewController, + _PSKeychainSyncManager._joinAfterRecoveryTimeoutTimer, _PSKeychainSyncManager._joiningCircle, + _PSKeychainSyncManager._joiningCircleAfterRecovery, _PSKeychainSyncManager._passwordPromptCompletion, + _PSKeychainSyncManager._phoneNumberController, _PSKeychainSyncManager._resetCompletion, + _PSKeychainSyncManager._resetPromptControllerHost, _PSKeychainSyncManager._securityCodeRecoveryAttempt, + _PSKeychainSyncManager._securityCodeRecoveryController, + _PSKeychainSyncManager._settingsSetupController, _PSKeychainSyncManager._simpleSecurityCodeController, + _PSKeychainSyncManager._smsValidationController, _PSKeychainSyncManager._spinnerCount, + _PSKeychainSyncManager._spinningView, _PSKeychainSyncManager._stagedSecurityCode, + _PSKeychainSyncManager._stagedSecurityCodeType, _PSKeychainSyncPhoneNumber._countryInfo, + _PSKeychainSyncPhoneNumber._digits, _PSKeychainSyncSecurityCodeController._firstPasscodeEntry, + _PSKeychainSyncSecurityCodeController._footerButton, + _PSKeychainSyncSecurityCodeController._footerLabel, + _PSKeychainSyncSecurityCodeController._generatedCode, + _PSKeychainSyncSecurityCodeController._keyboardHeight, _PSKeychainSyncSecurityCodeController._mode, + _PSKeychainSyncSecurityCodeController._securityCodeType, + _PSKeychainSyncSecurityCodeController._showsAdvancedSettings, + _PSKeychainSyncTextEntryController._convertsNumeralsToASCII, + _PSKeychainSyncTextEntryController._hidesNextButton, + _PSKeychainSyncTextEntryController._numberOfPasscodeFields, + _PSKeychainSyncTextEntryController._secureTextEntry, _PSKeychainSyncTextEntryController._textEntryCell, + _PSKeychainSyncTextEntryController._textEntrySpecifier, + _PSKeychainSyncTextEntryController._textEntryType, _PSKeychainSyncTextEntryController._textEntryView, + _PSKeychainSyncTextEntryController._textFieldHasRoundBorder, + _PSKeychainSyncTextEntryController._textValue, _PSKeychainSyncViewController._delegate, + _PSKeychainSyncViewController._groupSpecifier, _PSKeychainSyncViewController._headerView, + _PSLanguage._languageCode, _PSLanguage._languageName, _PSLanguage._localizedLanguageName, + _PSLargeTextController._extendedRangeSliderListController, + _PSLargeTextController._showsExtendedRangeSwitch, _PSLargeTextController._sliderListController, + _PSLargeTextController._usesExtendedRange, _PSLargeTextSliderListController._contentSizeCategories, + _PSLargeTextSliderListController._selectedCategoryIndex, + _PSLargeTextSliderListController._showsExtendedRangeSwitch, + _PSLargeTextSliderListController._showsLargerSizesHelpText, + _PSLargeTextSliderListController._sliderGroupSpecifier, + _PSLargeTextSliderListController._usesExtendedRange, + _PSLargeTextSliderListController._viewIsDisappearing, _PSLazyImagePromise._image, + _PSLazyImagePromise._imageBundle, _PSLazyImagePromise._imageLoaded, _PSLazyImagePromise._imageName, + _PSLazyImagePromise._imagePath, _PSLazyImagePromise._loadBlock, _PSLegalMessagePane._webView, + _PSLegendColorView._color, _PSListController._altTextColor, _PSListController._backgroundColor, + _PSListController._bundleControllers, _PSListController._bundlesLoaded, + _PSListController._buttonTextColor, _PSListController._cachesCells, + _PSListController._cellAccessoryColor, _PSListController._cellAccessoryHighlightColor, + _PSListController._cellHighlightColor, _PSListController._cells, _PSListController._containerView, + _PSListController._contentOffsetWithKeyboard, _PSListController._contentSizeDidChange, + _PSListController._dataSource, _PSListController._edgeToEdgeCells, + _PSListController._editableInsertionPointColor, _PSListController._editablePlaceholderTextColor, + _PSListController._editableSelectionBarColor, _PSListController._editableSelectionHighlightColor, + _PSListController._editableTextColor, _PSListController._footerHyperlinkColor, + _PSListController._forceSynchronousIconLoadForCreatedCells, _PSListController._foregroundColor, + _PSListController._groups, _PSListController._hasAppeared, _PSListController._highlightItemName, + _PSListController._isVisible, _PSListController._keyboard, _PSListController._keyboardWasVisible, + _PSListController._offsetItemName, _PSListController._padSelectionColor, + _PSListController._pendingURLResourceDictionary, _PSListController._popupIsDismissing, + _PSListController._popupIsModal, _PSListController._prefetchingEnabled, + _PSListController._prequeuedReusablePSTableCells, + _PSListController._requestingSpecifiersFromDataSource, _PSListController._reusesCells, + _PSListController._savedSelectedIndexPath, _PSListController._sectionContentInsetInitialized, + _PSListController._segmentedSliderTrackColor, _PSListController._separatorColor, + _PSListController._showingSetupController, _PSListController._specifierID, + _PSListController._specifierIDPendingPush, _PSListController._specifiers, + _PSListController._specifiersByID, _PSListController._table, _PSListController._textColor, + _PSListController._urlHandler, _PSListController._urlHandlingCompletion, + _PSListController._usesDarkTheme, _PSListController._verticalContentOffset, + _PSListItemsController._deferItemSelection, _PSListItemsController._lastSelectedSpecifier, + _PSListItemsController._restrictionList, _PSListItemsController._retainedTarget, + _PSListItemsController._rowToSelect, _PSLocaleController._contentView, + _PSLocaleController._currentRegion, _PSLocaleController._filteredListContent, + _PSLocaleController._hideKeyboardInSearchMode, _PSLocaleController._localeSelector, + _PSLocaleController._regionsList, _PSLocaleController._searchBar, _PSLocaleController._searchMode, + _PSLocaleController._sections, _PSLocaleController._tableView, _PSNavBarSpinnerManager._savedRecords, + _PSNotificationSettingsController._gateway, _PSNotificationSettingsController._queue, + _PSNotificationSettingsController._sectionInfosByIdentifier, + _PSOAuthAccountRedirectURLController._redirectHandlerMap, _PSPasscodeField._dashViews, + _PSPasscodeField._delegate, _PSPasscodeField._digitViews, _PSPasscodeField._dotFullViews, + _PSPasscodeField._dotOutlineViews, _PSPasscodeField._enabled, _PSPasscodeField._fieldSpacing, + _PSPasscodeField._foregroundColor, _PSPasscodeField._keyboardAppearance, + _PSPasscodeField._numberOfEntryFields, _PSPasscodeField._securePasscodeEntry, + _PSPasscodeField._shouldBecomeFirstResponderOnTap, _PSPasscodeField._stringValue, + _PSPhoneNumberSpecifier._countryCode, _PSQuotaInfo._mediaKindDict, _PSQuotaInfo._totalStorage, + _PSQuotaInfo._usedStorage, _PSRegion._regionCode, _PSRegion._regionName, + _PSRootController._deallocating, _PSRootController._specifier, + _PSRootController._stackAnimationController, _PSRootController._supportedOrientationsOverride, + _PSRootController._tasks, _PSSearchController._delegate, + _PSSearchController._iconForSearchEntryHandler, _PSSearchController._listController, + _PSSearchController._notifyToken, _PSSearchController._resultsController, + _PSSearchController._searchController, _PSSearchController._searchEnabled, _PSSearchEntry._action, + _PSSearchEntry._additionalDetailTextComponents, _PSSearchEntry._bundleName, + _PSSearchEntry._childEntries, _PSSearchEntry._groupName, _PSSearchEntry._groupSpecifier, + _PSSearchEntry._hasDetailController, _PSSearchEntry._hasListController, _PSSearchEntry._identifier, + _PSSearchEntry._isRootURL, _PSSearchEntry._isSection, _PSSearchEntry._keywords, + _PSSearchEntry._manifestBundleName, _PSSearchEntry._name, _PSSearchEntry._parentEntry, + _PSSearchEntry._plistName, _PSSearchEntry._sectionIdentifier, _PSSearchEntry._specifier, + _PSSearchEntry._url, _PSSearchIndexOperation._delegate, _PSSearchIndexOperation._searchEntry, + _PSSearchModel._activeSearchOperation, _PSSearchModel._currentQuery, _PSSearchModel._currentResults, + _PSSearchModel._dataSource, _PSSearchModel._deferredSpecifierUpdates, _PSSearchModel._delegates, + _PSSearchModel._entriesBeingIndexed, _PSSearchModel._entriesPendingSearch, + _PSSearchModel._hasLoadedRootEntries, _PSSearchModel._hasStartedIndexing, + _PSSearchModel._indexOperationQueue, _PSSearchModel._indexing, + _PSSearchModel._indexingEntriesWithLoadedDataSources, _PSSearchModel._queryForCurrentResults, + _PSSearchModel._removedEntriesStillIndexing, _PSSearchModel._removedEntriesStillSearching, + _PSSearchModel._rootEntries, _PSSearchModel._searchOperationQueue, + _PSSearchModel._searchStateAccessQueue, _PSSearchModel._showSectionInDetailText, + _PSSearchModel._specifierDataSources, _PSSearchModel._waitUntilFinished, + _PSSearchOperation._currentResults, _PSSearchOperation._delegate, _PSSearchOperation._newQuery, + _PSSearchOperation._query, _PSSearchOperation._rootEntries, _PSSearchResults._entriesBySection, + _PSSearchResults._entryComparator, _PSSearchResults._explicitlyAddedSectionEntries, + _PSSearchResults._needsSorting, _PSSearchResults._sectionComparator, _PSSearchResults._sectionEntries, + _PSSearchResults._treatSectionEntriesAsRegularEntries, _PSSearchResultsCell._shouldIndentContent, + _PSSearchResultsCell._shouldIndentSeparator, _PSSearchResultsController._delegate, + _PSSearchResultsController._iconViewMap, _PSSearchResultsController._reusableIconViews, + _PSSearchResultsController._searchResults, _PSSearchResultsController._tableView, + _PSSearchableItem._bundleID, _PSSearchableItem._category, _PSSearchableItem._classIdentifier, + _PSSearchableItem._contentDescription, _PSSearchableItem._identifier, _PSSearchableItem._keywords, + _PSSearchableItem._name, _PSSearchableItem._rankingHint, _PSSearchableItem._requiredCapabilities, + _PSSearchableItem._requiredCapabilitiesOr, _PSSearchableItem._url, + _PSSearchableItemManifest._searchableItems, _PSSegmentTableCell._titleDict, + _PSSegmentTableCell._values, _PSSegmentableSlider._feedbackGenerator, + _PSSegmentableSlider._locksToSegment, _PSSegmentableSlider._segmentCount, + _PSSegmentableSlider._segmented, _PSSegmentableSlider._snapsToSegment, + _PSSegmentableSlider._trackMarkersColor, _PSSetupController._parentController, + _PSSetupController._parentRootController, _PSSetupController._rootInfo, + _PSSliderTableCell._disabledView, _PSSoftwareUpdateAnimatedIcon._animating, + _PSSoftwareUpdateAnimatedIcon._innerGearView, _PSSoftwareUpdateAnimatedIcon._outerGearShadowView, + _PSSoftwareUpdateAnimatedIcon._outerGearView, _PSSoftwareUpdateLicenseViewController._licenseTextInfo, + _PSSoftwareUpdateLicenseViewController._licenseTextView, + _PSSoftwareUpdateReleaseNotesDetail._releaseNotes, + _PSSoftwareUpdateTableView._checkingForUpdateSpinner, _PSSoftwareUpdateTableView._checkingStatusLabel, + _PSSoftwareUpdateTableView._currentVersion, _PSSoftwareUpdateTableView._state, + _PSSoftwareUpdateTableView._subtitleLabel, _PSSoftwareUpdateTableView._updatesDeferred, + _PSSoftwareUpdateTermsManager._agreeToCombinedTOSInProgress, + _PSSoftwareUpdateTermsManager._hostController, _PSSoftwareUpdateTermsManager._overrideNextRUIAction, + _PSSoftwareUpdateTermsManager._presentedViewController, _PSSoftwareUpdateTermsManager._serverFlowStyle, + _PSSoftwareUpdateTermsManager._showProgressViewController, + _PSSoftwareUpdateTermsManager._termsCompletion, _PSSoftwareUpdateTermsManager._termsRemoteUI, + _PSSoftwareUpdateTermsManager._update, _PSSoftwareUpdateTitleCell._animatedGearView, + _PSSoftwareUpdateTitleCell._animatingGearView, _PSSoftwareUpdateTitleCell._gearBackgroundImageView, + _PSSoftwareUpdateTitleCell._progressBar, _PSSoftwareUpdateTitleCell._progressStyle, + _PSSoftwareUpdateTitleCell._releaseNotesSummaryView, _PSSoftwareUpdateTitleCell._updateStatusLabel, + _PSSoftwareUpdateTitleCell._updateStatusLabelVerticalConstraint, _PSSpecifier._buttonAction, + _PSSpecifier._confirmationAction, _PSSpecifier._confirmationAlternateAction, + _PSSpecifier._confirmationCancelAction, _PSSpecifier._controllerLoadAction, _PSSpecifier._name, + _PSSpecifier._properties, _PSSpecifier._shortTitleDict, _PSSpecifier._showContentString, + _PSSpecifier._titleDict, _PSSpecifier._userInfo, _PSSpecifier._values, _PSSpecifier._weakUserInfo, + _PSSpecifier.action, _PSSpecifier.autoCapsType, _PSSpecifier.autoCorrectionType, _PSSpecifier.cancel, + _PSSpecifier.cellType, _PSSpecifier.detailControllerClass, _PSSpecifier.editPaneClass, + _PSSpecifier.getter, _PSSpecifier.keyboardType, _PSSpecifier.setter, _PSSpecifier.target, + _PSSpecifier.textFieldType, _PSSpecifierAction._getter, _PSSpecifierAction._setter, + _PSSpecifierController._bundleControllers, _PSSpecifierController._groups, + _PSSpecifierController._specifier, _PSSpecifierController._specifiers, + _PSSpecifierController._viewController, _PSSpecifierDataSource._observerRefs, + _PSSpecifierDataSource._specifiers, _PSSpecifierDataSource._specifiersLoaded, + _PSSpecifierGroupIndex._groupSections, _PSSpecifierGroupIndex._groupSpecifiers, + _PSSpecifierGroupIndex._specifiers, _PSSpecifierGroupIndex._ungroupedPrefixSpecifiers, + _PSSpecifierGroupIndex._wantsDebugCallbacks, _PSSpecifierUpdateContext._animated, + _PSSpecifierUpdateContext._updateModelOnly, _PSSpecifierUpdateContext._userInfo, + _PSSpecifierUpdateOperation._index, _PSSpecifierUpdateOperation._operation, + _PSSpecifierUpdateOperation._removingGroupSpecifierRemovesEntireGroup, + _PSSpecifierUpdateOperation._specifier, _PSSpecifierUpdateOperation._toIndex, + _PSSpecifierUpdates._context, _PSSpecifierUpdates._currentSpecifiers, _PSSpecifierUpdates._groupIndex, + _PSSpecifierUpdates._originalSpecifiers, _PSSpecifierUpdates._updates, + _PSSpecifierUpdates._wantsDebugCallbacks, _PSSpinnerRecord._hidesBackButton, + _PSSpinnerRecord._leftItems, _PSSpinnerRecord._navigationItem, _PSSpinnerRecord._rightItems, + _PSSpinnerTableCell._spinner, _PSSplitViewController._containerNavigationController, + _PSSplitViewController._navigationDelegate, _PSSpotlightSearchResultsController._delegate, + _PSSpotlightSearchResultsController._deviceOrientation, + _PSSpotlightSearchResultsController._iconViewMap, _PSSpotlightSearchResultsController._results, + _PSSpotlightSearchResultsController._reusableIconViews, _PSSpotlightSearchResultsController._tableData, + _PSSpotlightSearchResultsController.originalInset, _PSStackPushAnimationController._animationPreset, + _PSStackPushAnimationController._animationsToRunAlongsideToVC, + _PSStackPushAnimationController._completionBlock, _PSStackPushAnimationController._completionStagger, + _PSStackPushAnimationController._hasStartedAnimation, + _PSStackPushAnimationController._navigationController, _PSStackPushAnimationController._pushDuration, + _PSStackPushAnimationController._snapshots, _PSStackPushAnimationController._springDamping, + _PSStackPushAnimationController._startStagger, _PSStackPushAnimationController._viewControllers, + _PSSubtitleDisclosureTableCell._valueLabel, _PSSwitchTableCell._activityIndicator, + _PSSystemConfiguration._prefs, _PSSystemConfigurationDynamicStoreEthernetWatcher._dynamicStore, + _PSSystemConfigurationDynamicStoreEthernetWatcher._dynamicStoreSource, + _PSSystemConfigurationDynamicStoreNETRBWatcher._netrbReason, + _PSSystemConfigurationDynamicStoreNETRBWatcher._netrbState, + _PSSystemConfigurationDynamicStoreNETRBWatcher._scDynamicStore, + _PSSystemConfigurationDynamicStoreNETRBWatcher._scRunLoopSource, + _PSSystemConfigurationDynamicStoreWifiWatcher._prefs, + _PSSystemConfigurationDynamicStoreWifiWatcher._tetheringLink, + _PSSystemConfigurationDynamicStoreWifiWatcher._wifiInterface, + _PSSystemConfigurationDynamicStoreWifiWatcher._wifiKey, _PSSystemPolicyForApp._bundleIdentifier, + _PSSystemPolicyForApp._forcePolicyOptions, _PSSystemPolicyForApp._photosPrivacyController, + _PSSystemPolicyForApp._policyOptions, _PSTableCell._alignment, _PSTableCell._cellEnabled, + _PSTableCell._checked, _PSTableCell._checkedImageView, _PSTableCell._customHighlightContext, + _PSTableCell._forceHideDisclosureIndicator, _PSTableCell._hiddenTitle, _PSTableCell._isCopyable, + _PSTableCell._lazyIcon, _PSTableCell._lazyIconAppID, _PSTableCell._lazyIconDontUnload, + _PSTableCell._lazyIconForceSynchronous, _PSTableCell._lazyIconURL, _PSTableCell._longTapRecognizer, + _PSTableCell._pAction, _PSTableCell._pTarget, _PSTableCell._reusedCell, _PSTableCell._shouldHideTitle, + _PSTableCell._specifier, _PSTableCell._type, _PSTableCell._urlSession, _PSTableCell._value, + _PSTableCellHighlightContext._animateUnhighlight, _PSTableCellHighlightContext._cell, + _PSTableCellHighlightContext._originalSelectionStyle, _PSTableCellHighlightContext._timer, + _PSTableCellHighlightContext._valid, _PSTextEditingPane._cell, _PSTextEditingPane._table, + _PSTextEditingPane._textField, _PSTextFieldPINView._cell, _PSTextFieldPINView._passcodeField, + _PSTextFieldPINView._table, _PSTextFieldPINView._usesNumericKeyboard, + _PSTextFieldSpecifier._placeholder, _PSTextFieldSpecifier.bestGuess, _PSTextView._cell, + _PSTextViewPane._textView, _PSTextViewTableCell._textView, _PSThirdPartyApp._localizedName, + _PSThirdPartyApp._proxy, _PSThirdPartyAppController._systemPolicy, + _PSThirdPartyAppViewController._parent, _PSThirdPartyAppViewController._root, + _PSThirdPartyAppViewController._specifierController, _PSTimeRangeCell._constraints, + _PSTimeRangeCell._delegate, _PSTimeRangeCell._fromTime, _PSTimeRangeCell._fromTitle, + _PSTimeRangeCell._toTime, _PSTimeRangeCell._toTitle, _PSTimeZoneController._cities, + _PSTimeZoneController._parentController, _PSTimeZoneController._searchController, + _PSTimeZoneController._specifier, _PSTimeZoneTableCell._city, _PSURLControllerHandler._delegate, + _PSURLManager._rootController, _PSURLManager._splitViewController, _PSURLManager._topLevelController, + _PSUsageBundleApp._bundleIdentifier, _PSUsageBundleApp._categories, + _PSUsageBundleApp._deletionRestricted, _PSUsageBundleApp._name, + _PSUsageBundleApp._storageReporterReference, _PSUsageBundleApp._totalSize, + _PSUsageBundleCategory._identifier, _PSUsageBundleCategory._name, + _PSUsageBundleCategory._usageBundleApp, _PSUsageBundleManager._bundleMap, + _PSUsageBundleManager._storageReporters, _PSUsageBundleManager._usageBundleApps, + _PSUsageSizeHeader._labelLeadingConstraint, _PSUsageSizeHeader._labelTrailingConstraint, + _PSUsageSizeHeader._sizeLabel, _PSUsageSizeHeader._titleLabel, _PSViewController._parentController, + _PSViewController._rootController, _PSViewController._specifier, _PSWeakReference._location, + _PSWebContainerView._content, _PSWebContainerView._webView, + _PasscodeFieldCell._convertsNumeralsToASCII, _PasscodeFieldCell._delegate, + _PasscodeFieldCell._denyFirstResponder, _PasscodeFieldCell._passcodeField, _PrefsUILinkLabel._URL, + _PrefsUILinkLabel._action, _PrefsUILinkLabel._target, _PrefsUILinkLabel._touchingURL, + _PrefsUILinkLabel._url, _ProblemReportingController._aboutDiagnosticsLinkLabel, + _ProblemReportingController._appActivitySpecifiers, + _ProblemReportingController._filesystemMetadataSnapshotSpecifier, + _ProblemReportingController._healthDataSpecifiers, + _ProblemReportingController._healthRecordsDataSpecifiers, _ProblemReportingController._healthStore, + _ProblemReportingController._iCloudSpecifiers, + _ProblemReportingController._shouldShareHealthRecordsData, + _ProblemReportingController._spinnerSpecifier, _ProblemReportingController._wheelchairDataSpecifiers, + _SUIKSearchResultCollectionViewListCell._detailTextLabel, + _SUIKSearchResultCollectionViewListCell._searchableItem, + _SUIKSearchResultCollectionViewListCell._simulatedImageViewLayoutGuide, + _SUIKSearchResultCollectionViewListCell._textLabel, + _SUIKSearchResultCollectionViewSectionHeader._categoryImageView, + _SUIKSearchResultsCollectionViewController._delegate, + _SUIKSearchResultsCollectionViewController._diffableDataSource, + _SUIKSearchResultsCollectionViewController._results, + _SUIKSearchResultsCollectionViewController._updateOperation, + __PSDeferredUpdates._invalidatedSpecifiers, __PSDeferredUpdates._searchEntries, + __PSDeferredUpdates._specifierUpdates, __PSSpinnerViewController._spinner, + __SUIKSearchResultsUpdateOperation._categories, __SUIKSearchResultsUpdateOperation._delegate, + __SUIKSearchResultsUpdateOperation._diffableDataSource, __SUIKSearchResultsUpdateOperation._results ] +... diff --git a/Image-Assets/SettingsIcon.png b/Image-Assets/SettingsIcon.png new file mode 100644 index 0000000..ed4456a Binary files /dev/null and b/Image-Assets/SettingsIcon.png differ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2fe1552 --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ +# +# Makefile.sh +# Tranquil +# +# Created by Dana Buehre on 3/8/22. +# + +TARGET := iphone:clang:13.0:11.0 +ARCHS = arm64 arm64e + +DEBUG = 1 +RELEASE = 0 +FINALPACKAGE = 1 +GO_EASY_ON_ME = 0 +LEAN_AND_MEAN = 1 + +DEBUG_EXT = +THEOS_PACKAGE_DIR = Releases +INSTALL_TARGET_PROCESSES = SpringBoard +PACKAGE_VERSION = $(THEOS_PACKAGE_BASE_VERSION)$(DEBUG_EXT) + +# set to 0 to build with regular png files +# set to 1 to build with Assets.car file (requires xcode, on Mac OS) +USE_ASSET_CATALOG = 1 + +include $(THEOS)/makefiles/common.mk + +BUNDLE_NAME = Tranquil +Tranquil_BUNDLE_EXTENSION = bundle +Tranquil_FILES = $(wildcard Classes/*.m) +Tranquil_CFLAGS = -fobjc-arc +Tranquil_PRIVATE_FRAMEWORKS = ControlCenterUIKit Preferences SpringBoardServices +Tranquil_INSTALL_PATH = /Library/ControlCenter/Bundles/ + +include $(THEOS_MAKE_PATH)/bundle.mk + +before-all:: + @echo "> Preparing bundle images" + ifeq ($(USE_ASSET_CATALOG), 1) + @echo "> Generating asset catalog" + $(shell rm -f ./Resources/*.png; cp ./Image-Assets/SettingsIcon-large.png ./Resources/AppIcon-large.png) + $(shell /usr/bin/xcrun actool Assets.xcassets --compile Resources --platform iphoneos --minimum-deployment-target 11.0 &> /dev/null) +# $(shell ./generate_assets.sh -s ./Image-Assets -o ./Resources &> /dev/null) + $(shell rm -f Resources/partial.plist) + else + @echo "> Generating bundle images" + $(shell rm -f Resources/Assets.car ||:) + $(shell rm -f ./Resources/*.png; cp ./Image-Assets/SettingsIcon-large.png ./Resources/AppIcon-large.png) + $(shell ./generate_images.sh -s ./Image-Assets -o ./Resources &> /dev/null) + endif diff --git a/Releases/com.creaturecoding.tranquil_1.0.0_iphoneos-arm.deb b/Releases/com.creaturecoding.tranquil_1.0.0_iphoneos-arm.deb new file mode 100644 index 0000000..aeda5ff Binary files /dev/null and b/Releases/com.creaturecoding.tranquil_1.0.0_iphoneos-arm.deb differ diff --git a/Resources/AppIcon-large.png b/Resources/AppIcon-large.png new file mode 100644 index 0000000..326d772 Binary files /dev/null and b/Resources/AppIcon-large.png differ diff --git a/Resources/Assets.car b/Resources/Assets.car new file mode 100644 index 0000000..d704898 Binary files /dev/null and b/Resources/Assets.car differ diff --git a/Resources/Audio/BALANCED_NOISE.m4a b/Resources/Audio/BALANCED_NOISE.m4a new file mode 100644 index 0000000..043968d Binary files /dev/null and b/Resources/Audio/BALANCED_NOISE.m4a differ diff --git a/Resources/Audio/BROWN_NOISE.m4a b/Resources/Audio/BROWN_NOISE.m4a new file mode 100644 index 0000000..c3feedb Binary files /dev/null and b/Resources/Audio/BROWN_NOISE.m4a differ diff --git a/Resources/Audio/CENTRAL_NOISE.m4a b/Resources/Audio/CENTRAL_NOISE.m4a new file mode 100644 index 0000000..ceba587 Binary files /dev/null and b/Resources/Audio/CENTRAL_NOISE.m4a differ diff --git a/Resources/Audio/GREY_NOISE.m4a b/Resources/Audio/GREY_NOISE.m4a new file mode 100644 index 0000000..fc3e2b4 Binary files /dev/null and b/Resources/Audio/GREY_NOISE.m4a differ diff --git a/Resources/Audio/PINK_NOISE.m4a b/Resources/Audio/PINK_NOISE.m4a new file mode 100644 index 0000000..22b0f7d Binary files /dev/null and b/Resources/Audio/PINK_NOISE.m4a differ diff --git a/Resources/Audio/WHITE_NOISE.m4a b/Resources/Audio/WHITE_NOISE.m4a new file mode 100644 index 0000000..7b29518 Binary files /dev/null and b/Resources/Audio/WHITE_NOISE.m4a differ diff --git a/Resources/Info.plist b/Resources/Info.plist new file mode 100644 index 0000000..72fcaae --- /dev/null +++ b/Resources/Info.plist @@ -0,0 +1,62 @@ + + + + + + CFBundleName + Tranquil + CFBundleExecutable + Tranquil + CFBundleIdentifier + com.creaturecoding.tranquil + CFBundleDevelopmentRegion + English + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + MinimumOSVersion + 7.0 + UIDeviceFamily + + 1 + 2 + + NSPrincipalClass + TranquilModule + CFBundleSupportedPlatforms + + iPhoneOS + + CCSGetModuleSizeAtRuntime + + CCSModuleSize + + Portrait + + Height + 1 + Width + 1 + + Landscape + + Height + 1 + Width + 1 + + + CCSPreferencesRootListController + TranquilPreferencesController + + diff --git a/Resources/Preferences.plist b/Resources/Preferences.plist new file mode 100644 index 0000000..580f15c --- /dev/null +++ b/Resources/Preferences.plist @@ -0,0 +1,260 @@ + + + + + + title + SETTINGS_TITLE + items + + + + cell + PSGroupCell + footerText + BACKGROUND_SOUNDS_GROUP_FOOTER + + + + cell + PSSwitchCell + label + BACKGROUND_SOUNDS_SWITCH_TITLE + key + kBackgroundSoundsActive + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + + + + + cell + PSGroupCell + + + + id + activeSoundSpecifier + cell + PSLinkListCell + detail + TranquilListItemsController + key + kActiveSound + titlesDataSource + activeSoundTitles + valuesDataSource + activeSoundValues + label + ACTIVE_SOUND_LIST_TITLE + staticTextMessage + ACTIVE_SOUND_LIST_FOOTER_MESSAGE + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + BROWN_NOISE.m4a + + + + cell + PSGroupCell + + + + id + volumeDisplaySpecifier + cell + PSTitleValueCell + label + VOLUME_SLIDER_TITLE + get + getActiveVolume + + + + id + volumeSpecifier + cell + PSSliderCell + min + 0 + max + 1 + key + kPlaybackVolume + leftImage + VolumeMinGrey.png + rightImage + VolumeMaxGrey.png + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + 0.6 + + + + cell + PSGroupCell + + + + cell + PSSwitchCell + label + USE_WITH_MEDIA_SWITCH_TITLE + key + kUseWhenMediaIsPlaying + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + + + + + id + volumeWithMediaDisplaySpecifier + cell + PSTitleValueCell + label + VOLUME_WITH_MEDIA_SLIDER_TITLE + get + getActiveVolumeWithMedia + + + + id + volumeWithMediaSpecifier + cell + PSSliderCell + min + 0 + max + 1 + key + kPlaybackVolumeWithMedia + leftImage + VolumeMinGrey.png + rightImage + VolumeMaxGrey.png + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + 0.6 + + + + id + playSampleSpecifier + cell + PSButtonCell + label + PLAY_SAMPLE_BUTTON_LABEL + action + playSampleWithMedia + + + + cell + PSGroupCell + footerText + PAUSE_ON_ROUTE_CHANGE_FOOTER + + + + cell + PSSwitchCell + label + PAUSE_ON_ROUTE_CHANGE_SWITCH_TITLE + key + kPauseOnRouteChange + PostNotification + com.creaturecoding.tranquil/preferences-changed + defaults + com.creaturecoding.tranquil + default + + + + + cell + PSGroupCell + + + + cell + PSButtonCell + label + IMPORT_CUSTOM_SOUND_BUTTON_TITLE + action + presentDocumentPicker + + + + cell + PSButtonCell + label + OPEN_IMPORT_DIRECTORY_TITLE + action + openImportDirectory + + + + cell + PSGroupCell + + + + cell + PSButtonCell + label + TRANSLATION_BUTTON_TITLE + action + openTranslations + + + + cell + PSButtonCell + label + SOURCE_CODE_BUTTON_TITLE + action + openSourceCode + + + + cell + PSButtonCell + label + DEPICTION_BUTTON_TITLE + action + openDepiction + + + + cell + PSGroupCell + footerText + Made with ♥ by CreatureCoding • 2022 + footerAlignment + 1 + + + + + \ No newline at end of file diff --git a/Resources/base.lproj/InfoPlist.strings b/Resources/base.lproj/InfoPlist.strings new file mode 100644 index 0000000..d3b8bd1 --- /dev/null +++ b/Resources/base.lproj/InfoPlist.strings @@ -0,0 +1,13 @@ +/* + InfoPlist.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* tweak name, displayed in control center settings */ +"CFBundleDisplayName" = "Tranquil"; \ No newline at end of file diff --git a/Resources/base.lproj/Localizable.strings b/Resources/base.lproj/Localizable.strings new file mode 100644 index 0000000..81a4547 --- /dev/null +++ b/Resources/base.lproj/Localizable.strings @@ -0,0 +1,73 @@ +/* + Localizable.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* project name */ +"PROJECT_NAME" = "Tranquil"; + +/* open preferences module footer button */ +"PROJECT_SETTINGS_TITLE" = "Tranquil Settings"; + +/* module list button text, shows when downloads are available */ +"DOWNLOADS_AVAILABLE_TITLE" = "Sounds Available For Download"; + +/* preferences sample playback buttons */ +"STOP_SAMPLE_BUTTON_LABEL" = "Stop Sample"; +"PLAY_SAMPLE_BUTTON_LABEL" = "Play Sample"; + +/* sound import rename alert */ +"RENAME_FILE_TITLE" = "Rename File"; +"RENAME_FILE_MESSAGE" = "You can change the name to your liking, or leave it as is. The name you choose here will be the display name of the sound."; +"RENAME_FILE_ERROR_MESSAGE" = "The file \"%@\" cannot be renamed to \"%@\" because the chosen name is invalid"; + +/* sound import success alert */ +"IMPORTED_FILE_TITLE" = "Imported File"; +"IMPORTED_FILE_MESSAGE" = "The file \"%@\" was imported successfully"; + +/* sound import failure alert */ +"IMPORTING_FILE_ERROR_TITLE" = "Error Importing File"; +"IMPORTING_FILE_ACCESSIBILITY_ERROR_MESSAGE" = "There was a problem importing this file, either the file doesnt exist, or it is otherwise inaccessible"; + +/* generic error title */ +"GENERIC_ERROR_TITLE" = "An Error Occurred"; + +/* alert action buttons */ +"OKAY_LABEL" = "Okay"; +"CANCEL_LABEL" = "Cancel"; + +/* active sound menu swipe action titles */ +"SWIPE_ACTION_DELETE_TITLE" = "Delete"; +"SWIPE_ACTION_RENAME_TITLE" = "Rename"; + +/* timer status label */ +"TIMER_STATUS_LABEL" = "Timer %@"; + +/* volume status label */ +"VOLUME_STATUS_LABEL" = "Volume %d%%"; + +/* timer states */ +"STATUS_ON" = "On"; +"STATUS_OFF" = "Off"; + +/* packaged sound titles */ +"BALANCED_NOISE" = "Balanced Noise"; +"BROWN_NOISE" = "Brown Noise"; +"CENTRAL_NOISE" = "Central Noise"; +"GREY_NOISE" = "Grey Noise"; +"PINK_NOISE" = "Pink Noise"; +"WHITE_NOISE" = "White Noise"; + +/* downloadable sounds */ +"INFRA_NOISE" = "Infra Noise"; +"ULTRA_NOISE" = "Ultra Noise"; +"FLOWING_STREAM" = "Flowing Stream"; +"LIGHT_RAIN" = "Light Rain"; +"OCEAN_WAVES" = "Ocean Waves"; +"THUNDER_STORM" = "Thunder Storm"; \ No newline at end of file diff --git a/Resources/base.lproj/Preferences.strings b/Resources/base.lproj/Preferences.strings new file mode 100644 index 0000000..d788285 --- /dev/null +++ b/Resources/base.lproj/Preferences.strings @@ -0,0 +1,43 @@ +/* + Preferences.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* settings navigation title */ +"SETTINGS_TITLE" = "Tranquil"; + +/* settings cells */ +/****************************************************************************/ +"BACKGROUND_SOUNDS_GROUP_FOOTER" = "Plays background sounds to mask unwanted environmental noise. These sounds can minimize distractions and help you to focus, calm, or rest."; +"BACKGROUND_SOUNDS_SWITCH_TITLE" = "Background Sounds"; + +"ACTIVE_SOUND_LIST_TITLE" = "Sound"; +"ACTIVE_SOUND_LIST_FOOTER_MESSAGE" = "\nSwipe left on downloaded, or imported sounds for more options.\n\nDefault bundled or downloaded sounds cannot be renamed, as they use localized names. User imported sounds can be renamed or deleted."; + +"VOLUME_SLIDER_TITLE" = "Volume"; + +"USE_WITH_MEDIA_SWITCH_TITLE" = "Use When Media Is Playing"; + +"VOLUME_WITH_MEDIA_SLIDER_TITLE" = "Volume With Media"; + +"PLAY_SAMPLE_BUTTON_LABEL" = "Play Sample"; + +"PAUSE_ON_ROUTE_CHANGE_FOOTER" = "Pause playback when the audio route is changed. For instance when you disconnect your airpods, playback will be paused."; +"PAUSE_ON_ROUTE_CHANGE_SWITCH_TITLE" = "Pause On Route Change"; + +"IMPORT_CUSTOM_SOUND_BUTTON_TITLE" = "Import Custom Sound"; + +"OPEN_IMPORT_DIRECTORY_TITLE" = "Open Import Directory In Filza"; + +"TRANSLATION_BUTTON_TITLE" = "Help Translate Tranquil"; + +"SOURCE_CODE_BUTTON_TITLE" = "View Project Source Code"; + +"DEPICTION_BUTTON_TITLE" = "View Tranquil Depiction"; +/****************************************************************************/ \ No newline at end of file diff --git a/Resources/en.lproj/InfoPlist.strings b/Resources/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..d3b8bd1 --- /dev/null +++ b/Resources/en.lproj/InfoPlist.strings @@ -0,0 +1,13 @@ +/* + InfoPlist.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* tweak name, displayed in control center settings */ +"CFBundleDisplayName" = "Tranquil"; \ No newline at end of file diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000..81a4547 --- /dev/null +++ b/Resources/en.lproj/Localizable.strings @@ -0,0 +1,73 @@ +/* + Localizable.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* project name */ +"PROJECT_NAME" = "Tranquil"; + +/* open preferences module footer button */ +"PROJECT_SETTINGS_TITLE" = "Tranquil Settings"; + +/* module list button text, shows when downloads are available */ +"DOWNLOADS_AVAILABLE_TITLE" = "Sounds Available For Download"; + +/* preferences sample playback buttons */ +"STOP_SAMPLE_BUTTON_LABEL" = "Stop Sample"; +"PLAY_SAMPLE_BUTTON_LABEL" = "Play Sample"; + +/* sound import rename alert */ +"RENAME_FILE_TITLE" = "Rename File"; +"RENAME_FILE_MESSAGE" = "You can change the name to your liking, or leave it as is. The name you choose here will be the display name of the sound."; +"RENAME_FILE_ERROR_MESSAGE" = "The file \"%@\" cannot be renamed to \"%@\" because the chosen name is invalid"; + +/* sound import success alert */ +"IMPORTED_FILE_TITLE" = "Imported File"; +"IMPORTED_FILE_MESSAGE" = "The file \"%@\" was imported successfully"; + +/* sound import failure alert */ +"IMPORTING_FILE_ERROR_TITLE" = "Error Importing File"; +"IMPORTING_FILE_ACCESSIBILITY_ERROR_MESSAGE" = "There was a problem importing this file, either the file doesnt exist, or it is otherwise inaccessible"; + +/* generic error title */ +"GENERIC_ERROR_TITLE" = "An Error Occurred"; + +/* alert action buttons */ +"OKAY_LABEL" = "Okay"; +"CANCEL_LABEL" = "Cancel"; + +/* active sound menu swipe action titles */ +"SWIPE_ACTION_DELETE_TITLE" = "Delete"; +"SWIPE_ACTION_RENAME_TITLE" = "Rename"; + +/* timer status label */ +"TIMER_STATUS_LABEL" = "Timer %@"; + +/* volume status label */ +"VOLUME_STATUS_LABEL" = "Volume %d%%"; + +/* timer states */ +"STATUS_ON" = "On"; +"STATUS_OFF" = "Off"; + +/* packaged sound titles */ +"BALANCED_NOISE" = "Balanced Noise"; +"BROWN_NOISE" = "Brown Noise"; +"CENTRAL_NOISE" = "Central Noise"; +"GREY_NOISE" = "Grey Noise"; +"PINK_NOISE" = "Pink Noise"; +"WHITE_NOISE" = "White Noise"; + +/* downloadable sounds */ +"INFRA_NOISE" = "Infra Noise"; +"ULTRA_NOISE" = "Ultra Noise"; +"FLOWING_STREAM" = "Flowing Stream"; +"LIGHT_RAIN" = "Light Rain"; +"OCEAN_WAVES" = "Ocean Waves"; +"THUNDER_STORM" = "Thunder Storm"; \ No newline at end of file diff --git a/Resources/en.lproj/Preferences.strings b/Resources/en.lproj/Preferences.strings new file mode 100644 index 0000000..d788285 --- /dev/null +++ b/Resources/en.lproj/Preferences.strings @@ -0,0 +1,43 @@ +/* + Preferences.strings + Tranquil + + Created by Dana Buehre on 3/19/22. + +*/ + +/****************************************************************************/ +/* Localization file */ + +/* settings navigation title */ +"SETTINGS_TITLE" = "Tranquil"; + +/* settings cells */ +/****************************************************************************/ +"BACKGROUND_SOUNDS_GROUP_FOOTER" = "Plays background sounds to mask unwanted environmental noise. These sounds can minimize distractions and help you to focus, calm, or rest."; +"BACKGROUND_SOUNDS_SWITCH_TITLE" = "Background Sounds"; + +"ACTIVE_SOUND_LIST_TITLE" = "Sound"; +"ACTIVE_SOUND_LIST_FOOTER_MESSAGE" = "\nSwipe left on downloaded, or imported sounds for more options.\n\nDefault bundled or downloaded sounds cannot be renamed, as they use localized names. User imported sounds can be renamed or deleted."; + +"VOLUME_SLIDER_TITLE" = "Volume"; + +"USE_WITH_MEDIA_SWITCH_TITLE" = "Use When Media Is Playing"; + +"VOLUME_WITH_MEDIA_SLIDER_TITLE" = "Volume With Media"; + +"PLAY_SAMPLE_BUTTON_LABEL" = "Play Sample"; + +"PAUSE_ON_ROUTE_CHANGE_FOOTER" = "Pause playback when the audio route is changed. For instance when you disconnect your airpods, playback will be paused."; +"PAUSE_ON_ROUTE_CHANGE_SWITCH_TITLE" = "Pause On Route Change"; + +"IMPORT_CUSTOM_SOUND_BUTTON_TITLE" = "Import Custom Sound"; + +"OPEN_IMPORT_DIRECTORY_TITLE" = "Open Import Directory In Filza"; + +"TRANSLATION_BUTTON_TITLE" = "Help Translate Tranquil"; + +"SOURCE_CODE_BUTTON_TITLE" = "View Project Source Code"; + +"DEPICTION_BUTTON_TITLE" = "View Tranquil Depiction"; +/****************************************************************************/ \ No newline at end of file diff --git a/Tranquil.xcodeproj/project.pbxproj b/Tranquil.xcodeproj/project.pbxproj new file mode 100644 index 0000000..129166f --- /dev/null +++ b/Tranquil.xcodeproj/project.pbxproj @@ -0,0 +1,599 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9B2410EAEC12873B7F5F2ADE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B2411FE182F16F08B507932 /* InfoPlist.strings */; }; + 9B24121222A6D4683509D2EC /* CENTRAL_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 9B241677434E896792951B73 /* CENTRAL_NOISE.m4a */; }; + 9B2412E1F5075DF96D681364 /* TranquilModuleStepper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2418489E211BB277EC40A9 /* TranquilModuleStepper.m */; }; + 9B2412FECD1B9EE4A677A3C5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9B2415D2CD3B09790CF02185 /* Assets.xcassets */; }; + 9B2413086002295F5021DEBA /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B241EB7BED61BDD9CC8FB62 /* Localizable.strings */; }; + 9B2414483F94C0D75BABD42F /* UIImage+TranquilModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2419FA6A9040350B18D471 /* UIImage+TranquilModule.m */; }; + 9B24156C8744A9091EE0A050 /* TranquilListItemsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B24152CFF9EB280E153A1D0 /* TranquilListItemsController.m */; }; + 9B2415DDA47913FD29F10768 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B241BAB42F87A769EC46B28 /* Localizable.strings */; }; + 9B2416FD99077DD2C1FD92A3 /* generate_images.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B24156C529A8F1A35393F3B /* generate_images.sh */; }; + 9B2417B6246CABEF9018DEF9 /* Preferences.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B2417C450C8CA55CA1DA96C /* Preferences.strings */; }; + 9B2419788480CD62E525DC1E /* generate_assets.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B241C29499BF1A712E3067B /* generate_assets.sh */; }; + 9B241A6E4548F658AA97F417 /* TranquilModuleSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2416D202776D73AF7C3ABD /* TranquilModuleSlider.m */; }; + 9B241BCA025176CBF66246D7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B241128ECBAC8C5DCEE4459 /* InfoPlist.strings */; }; + 9B241F30B2DCF44215F88D21 /* Preferences.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9B241964DD71753B34BF6007 /* Preferences.strings */; }; + 9B241F8C62D567BD2C00499F /* AppIcon-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B241F6377802F090A4C5825 /* AppIcon-large.png */; }; + B827931F27DEED580079CDB5 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = B827931E27DEED580079CDB5 /* README.md */; }; + B86FC5C32663C9840011E4AF /* Preferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B86FC5BD2663C8750011E4AF /* Preferences.framework */; }; + B86FC5C42663C9840011E4AF /* Preferences.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B86FC5BD2663C8750011E4AF /* Preferences.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B8D2D9F527DECBB2005B269E /* TranquilModuleBackgroundViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D2D9EA27DECBB2005B269E /* TranquilModuleBackgroundViewController.m */; }; + B8D2D9F627DECBB2005B269E /* TranquilModuleContentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D2D9EB27DECBB2005B269E /* TranquilModuleContentViewController.m */; }; + B8D2D9F727DECBB2005B269E /* TranquilPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D2D9EC27DECBB2005B269E /* TranquilPreferencesController.m */; }; + B8D2D9F827DECBB2005B269E /* TranquilMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D2D9EE27DECBB2005B269E /* TranquilMediaPlayer.m */; }; + B8D2D9FA27DECBB2005B269E /* TranquilModule.m in Sources */ = {isa = PBXBuildFile; fileRef = B8D2D9F427DECBB2005B269E /* TranquilModule.m */; }; + B8D2DA1227DECBC8005B269E /* ULTRA_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2D9FF27DECBC7005B269E /* ULTRA_NOISE.m4a */; }; + B8D2DA1327DECBC8005B269E /* BALANCED_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0027DECBC7005B269E /* BALANCED_NOISE.m4a */; }; + B8D2DA1427DECBC8005B269E /* BROWN_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0127DECBC7005B269E /* BROWN_NOISE.m4a */; }; + B8D2DA1527DECBC8005B269E /* GREY_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0227DECBC7005B269E /* GREY_NOISE.m4a */; }; + B8D2DA1627DECBC8005B269E /* WHITE_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0327DECBC7005B269E /* WHITE_NOISE.m4a */; }; + B8D2DA1727DECBC8005B269E /* PINK_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0427DECBC7005B269E /* PINK_NOISE.m4a */; }; + B8D2DA1827DECBC8005B269E /* INFRA_NOISE.m4a in Resources */ = {isa = PBXBuildFile; fileRef = B8D2DA0527DECBC7005B269E /* INFRA_NOISE.m4a */; }; + B8D2DA2327DECC9D005B269E /* ControlCenterUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8D2DA2227DECC9D005B269E /* ControlCenterUIKit.framework */; }; + B8D2DA2427DECC9D005B269E /* ControlCenterUIKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B8D2DA2227DECC9D005B269E /* ControlCenterUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B8D2DA2627DECEC1005B269E /* ControlCenterUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8D2DA2527DECEC1005B269E /* ControlCenterUI.framework */; }; + B8D2DA2727DECEC1005B269E /* ControlCenterUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B8D2DA2527DECEC1005B269E /* ControlCenterUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + B8EEC81627DED1C100F4FF02 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B8EEC80927DED1C100F4FF02 /* Info.plist */; }; + B8EEC82027DED1C100F4FF02 /* Preferences.plist in Resources */ = {isa = PBXBuildFile; fileRef = B8EEC81327DED1C100F4FF02 /* Preferences.plist */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + B86FC5C22663C9820011E4AF /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + B8D2DA2427DECC9D005B269E /* ControlCenterUIKit.framework in Embed Frameworks */, + B8D2DA2727DECEC1005B269E /* ControlCenterUI.framework in Embed Frameworks */, + B86FC5C42663C9840011E4AF /* Preferences.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9B24111CA0576F1FB8E184C8 /* base */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = base; path = Preferences.strings; sourceTree = ""; }; + 9B2411AAFA56A82F19F067C4 /* TranquilListItemsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilListItemsController.h; sourceTree = ""; }; + 9B2411E2A36F0285265CF5FF /* Material.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Material.h; sourceTree = ""; }; + 9B2413E4E51F2E61E96CA31D /* Haptic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Haptic.h; sourceTree = ""; }; + 9B24144133A17532E9FBBE76 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 9B2414DAEDE40FE0BDBA8B90 /* base */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = base; path = InfoPlist.strings; sourceTree = ""; }; + 9B24152CFF9EB280E153A1D0 /* TranquilListItemsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilListItemsController.m; sourceTree = ""; }; + 9B24156C529A8F1A35393F3B /* generate_images.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = generate_images.sh; sourceTree = ""; }; + 9B241579F543D41AD68E649A /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Preferences.strings; sourceTree = ""; }; + 9B2415BA8335FBD99BD1A482 /* Tranquil.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tranquil.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B2415D2CD3B09790CF02185 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 9B241677434E896792951B73 /* CENTRAL_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = CENTRAL_NOISE.m4a; sourceTree = ""; }; + 9B2416BDAE2FB65E82608E43 /* base */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = base; path = Localizable.strings; sourceTree = ""; }; + 9B2416C1BBC5F00B90881A79 /* TranquilModuleSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilModuleSlider.h; sourceTree = ""; }; + 9B2416D202776D73AF7C3ABD /* TranquilModuleSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilModuleSlider.m; sourceTree = ""; }; + 9B24179B9ABB9248A9084811 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + 9B2417C97A4E7906C0029005 /* TranquilModuleStepper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilModuleStepper.h; sourceTree = ""; }; + 9B2418489E211BB277EC40A9 /* TranquilModuleStepper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilModuleStepper.m; sourceTree = ""; }; + 9B2419FA6A9040350B18D471 /* UIImage+TranquilModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+TranquilModule.m"; sourceTree = ""; }; + 9B241A273BDF61EFB0D81D17 /* UIImage+TranquilModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+TranquilModule.h"; sourceTree = ""; }; + 9B241A64DBC2000EC8C2BFD1 /* Prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.h; sourceTree = ""; }; + 9B241C29499BF1A712E3067B /* generate_assets.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = generate_assets.sh; sourceTree = ""; }; + 9B241EA4C8AC1188EBD62A66 /* postinst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = postinst; sourceTree = ""; }; + 9B241F6377802F090A4C5825 /* AppIcon-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon-large.png"; sourceTree = ""; }; + B827931E27DEED580079CDB5 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + B86FC5BD2663C8750011E4AF /* Preferences.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Preferences.framework; path = Frameworks/Preferences.framework; sourceTree = ""; }; + B871CD412651D1A40058F1C2 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + B871CD442651D2180058F1C2 /* control */ = {isa = PBXFileReference; lastKnownFileType = text; path = control; sourceTree = ""; }; + B8D2D9E927DECBB2005B269E /* TranquilModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilModule.h; sourceTree = ""; }; + B8D2D9EA27DECBB2005B269E /* TranquilModuleBackgroundViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilModuleBackgroundViewController.m; sourceTree = ""; }; + B8D2D9EB27DECBB2005B269E /* TranquilModuleContentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilModuleContentViewController.m; sourceTree = ""; }; + B8D2D9EC27DECBB2005B269E /* TranquilPreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilPreferencesController.m; sourceTree = ""; }; + B8D2D9EE27DECBB2005B269E /* TranquilMediaPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilMediaPlayer.m; sourceTree = ""; }; + B8D2D9EF27DECBB2005B269E /* TranquilMediaPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilMediaPlayer.h; sourceTree = ""; }; + B8D2D9F127DECBB2005B269E /* TranquilModuleContentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilModuleContentViewController.h; sourceTree = ""; }; + B8D2D9F227DECBB2005B269E /* TranquilPreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilPreferencesController.h; sourceTree = ""; }; + B8D2D9F327DECBB2005B269E /* TranquilModuleBackgroundViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranquilModuleBackgroundViewController.h; sourceTree = ""; }; + B8D2D9F427DECBB2005B269E /* TranquilModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranquilModule.m; sourceTree = ""; }; + B8D2D9FF27DECBC7005B269E /* ULTRA_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = ULTRA_NOISE.m4a; sourceTree = ""; }; + B8D2DA0027DECBC7005B269E /* BALANCED_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = BALANCED_NOISE.m4a; sourceTree = ""; }; + B8D2DA0127DECBC7005B269E /* BROWN_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = BROWN_NOISE.m4a; sourceTree = ""; }; + B8D2DA0227DECBC7005B269E /* GREY_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = GREY_NOISE.m4a; sourceTree = ""; }; + B8D2DA0327DECBC7005B269E /* WHITE_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = WHITE_NOISE.m4a; sourceTree = ""; }; + B8D2DA0427DECBC7005B269E /* PINK_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = PINK_NOISE.m4a; sourceTree = ""; }; + B8D2DA0527DECBC7005B269E /* INFRA_NOISE.m4a */ = {isa = PBXFileReference; lastKnownFileType = file.m4a; path = INFRA_NOISE.m4a; sourceTree = ""; }; + B8D2DA2227DECC9D005B269E /* ControlCenterUIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ControlCenterUIKit.framework; path = Frameworks/ControlCenterUIKit.framework; sourceTree = ""; }; + B8D2DA2527DECEC1005B269E /* ControlCenterUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ControlCenterUI.framework; path = Frameworks/ControlCenterUI.framework; sourceTree = ""; }; + B8EEC80927DED1C100F4FF02 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B8EEC81327DED1C100F4FF02 /* Preferences.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Preferences.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9B24105D45AA86C7A6AEE83D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B8D2DA2327DECC9D005B269E /* ControlCenterUIKit.framework in Frameworks */, + B8D2DA2627DECEC1005B269E /* ControlCenterUI.framework in Frameworks */, + B86FC5C32663C9840011E4AF /* Preferences.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9B2413F4B2E92AC99D37B468 = { + isa = PBXGroup; + children = ( + B827931E27DEED580079CDB5 /* README.md */, + B8D2D9E827DECB13005B269E /* Resources */, + B8D2D9E727DECA76005B269E /* Classes */, + B871CD422651D2180058F1C2 /* layout */, + B871CD412651D1A40058F1C2 /* Makefile */, + 9B241880696EB372AB810EDA /* Products */, + B86FC5A5265EA21A0011E4AF /* Frameworks */, + 9B2415D2CD3B09790CF02185 /* Assets.xcassets */, + 9B241C29499BF1A712E3067B /* generate_assets.sh */, + 9B24156C529A8F1A35393F3B /* generate_images.sh */, + ); + sourceTree = ""; + }; + 9B241880696EB372AB810EDA /* Products */ = { + isa = PBXGroup; + children = ( + 9B2415BA8335FBD99BD1A482 /* Tranquil.app */, + ); + name = Products; + sourceTree = ""; + }; + 9B241D99BD3C228220CED6EE /* base.lproj */ = { + isa = PBXGroup; + children = ( + 9B241128ECBAC8C5DCEE4459 /* InfoPlist.strings */, + 9B241EB7BED61BDD9CC8FB62 /* Localizable.strings */, + 9B241964DD71753B34BF6007 /* Preferences.strings */, + ); + path = base.lproj; + sourceTree = ""; + }; + 9B241DC3FCDA58CB56B45B96 /* en.lproj */ = { + isa = PBXGroup; + children = ( + 9B241BAB42F87A769EC46B28 /* Localizable.strings */, + 9B2411FE182F16F08B507932 /* InfoPlist.strings */, + 9B2417C450C8CA55CA1DA96C /* Preferences.strings */, + ); + name = en.lproj; + sourceTree = ""; + }; + B86FC5A5265EA21A0011E4AF /* Frameworks */ = { + isa = PBXGroup; + children = ( + B8D2DA2527DECEC1005B269E /* ControlCenterUI.framework */, + B8D2DA2227DECC9D005B269E /* ControlCenterUIKit.framework */, + B86FC5BD2663C8750011E4AF /* Preferences.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + B871CD422651D2180058F1C2 /* layout */ = { + isa = PBXGroup; + children = ( + B871CD432651D2180058F1C2 /* DEBIAN */, + ); + path = layout; + sourceTree = ""; + }; + B871CD432651D2180058F1C2 /* DEBIAN */ = { + isa = PBXGroup; + children = ( + B871CD442651D2180058F1C2 /* control */, + 9B241EA4C8AC1188EBD62A66 /* postinst */, + ); + path = DEBIAN; + sourceTree = ""; + }; + B8D2D9E727DECA76005B269E /* Classes */ = { + isa = PBXGroup; + children = ( + B8D2D9F127DECBB2005B269E /* TranquilModuleContentViewController.h */, + B8D2D9EB27DECBB2005B269E /* TranquilModuleContentViewController.m */, + B8D2D9EF27DECBB2005B269E /* TranquilMediaPlayer.h */, + B8D2D9EE27DECBB2005B269E /* TranquilMediaPlayer.m */, + B8D2D9E927DECBB2005B269E /* TranquilModule.h */, + B8D2D9F427DECBB2005B269E /* TranquilModule.m */, + B8D2D9F327DECBB2005B269E /* TranquilModuleBackgroundViewController.h */, + B8D2D9EA27DECBB2005B269E /* TranquilModuleBackgroundViewController.m */, + B8D2D9F227DECBB2005B269E /* TranquilPreferencesController.h */, + B8D2D9EC27DECBB2005B269E /* TranquilPreferencesController.m */, + 9B241A64DBC2000EC8C2BFD1 /* Prefix.h */, + 9B2417C97A4E7906C0029005 /* TranquilModuleStepper.h */, + 9B2418489E211BB277EC40A9 /* TranquilModuleStepper.m */, + 9B2419FA6A9040350B18D471 /* UIImage+TranquilModule.m */, + 9B241A273BDF61EFB0D81D17 /* UIImage+TranquilModule.h */, + 9B2413E4E51F2E61E96CA31D /* Haptic.h */, + 9B2416C1BBC5F00B90881A79 /* TranquilModuleSlider.h */, + 9B2416D202776D73AF7C3ABD /* TranquilModuleSlider.m */, + 9B2411E2A36F0285265CF5FF /* Material.h */, + 9B2411AAFA56A82F19F067C4 /* TranquilListItemsController.h */, + 9B24152CFF9EB280E153A1D0 /* TranquilListItemsController.m */, + ); + path = Classes; + sourceTree = ""; + }; + B8D2D9E827DECB13005B269E /* Resources */ = { + isa = PBXGroup; + children = ( + B8EEC80927DED1C100F4FF02 /* Info.plist */, + B8EEC81327DED1C100F4FF02 /* Preferences.plist */, + B8D2D9FE27DECBC7005B269E /* Audio */, + 9B241DC3FCDA58CB56B45B96 /* en.lproj */, + 9B241F6377802F090A4C5825 /* AppIcon-large.png */, + 9B241D99BD3C228220CED6EE /* base.lproj */, + ); + path = Resources; + sourceTree = ""; + }; + B8D2D9FE27DECBC7005B269E /* Audio */ = { + isa = PBXGroup; + children = ( + B8D2D9FF27DECBC7005B269E /* ULTRA_NOISE.m4a */, + B8D2DA0027DECBC7005B269E /* BALANCED_NOISE.m4a */, + B8D2DA0127DECBC7005B269E /* BROWN_NOISE.m4a */, + B8D2DA0227DECBC7005B269E /* GREY_NOISE.m4a */, + B8D2DA0327DECBC7005B269E /* WHITE_NOISE.m4a */, + B8D2DA0427DECBC7005B269E /* PINK_NOISE.m4a */, + B8D2DA0527DECBC7005B269E /* INFRA_NOISE.m4a */, + 9B241677434E896792951B73 /* CENTRAL_NOISE.m4a */, + ); + path = Audio; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9B241415F9C679FF819D248E /* Tranquil */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B241051D5AB8FC67BA43FE8 /* Build configuration list for PBXNativeTarget "Tranquil" */; + buildPhases = ( + 9B2413E45D83219C2C31F9FA /* Sources */, + 9B24105D45AA86C7A6AEE83D /* Frameworks */, + 9B241CC5DF52F609D42F21D7 /* Resources */, + B86FC5C22663C9820011E4AF /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Tranquil; + productName = tweaksettings; + productReference = 9B2415BA8335FBD99BD1A482 /* Tranquil.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9B24187A700989AD042EE9B3 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1240; + TargetAttributes = { + 9B241415F9C679FF819D248E = { + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 9B241B61CD9CEBB60B83141D /* Build configuration list for PBXProject "Tranquil" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 9B2413F4B2E92AC99D37B468; + productRefGroup = 9B241880696EB372AB810EDA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9B241415F9C679FF819D248E /* Tranquil */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9B241CC5DF52F609D42F21D7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B8EEC82027DED1C100F4FF02 /* Preferences.plist in Resources */, + B8D2DA1227DECBC8005B269E /* ULTRA_NOISE.m4a in Resources */, + B8D2DA1327DECBC8005B269E /* BALANCED_NOISE.m4a in Resources */, + B8D2DA1427DECBC8005B269E /* BROWN_NOISE.m4a in Resources */, + B827931F27DEED580079CDB5 /* README.md in Resources */, + B8D2DA1627DECBC8005B269E /* WHITE_NOISE.m4a in Resources */, + B8D2DA1527DECBC8005B269E /* GREY_NOISE.m4a in Resources */, + B8D2DA1827DECBC8005B269E /* INFRA_NOISE.m4a in Resources */, + B8EEC81627DED1C100F4FF02 /* Info.plist in Resources */, + B8D2DA1727DECBC8005B269E /* PINK_NOISE.m4a in Resources */, + 9B2412FECD1B9EE4A677A3C5 /* Assets.xcassets in Resources */, + 9B2415DDA47913FD29F10768 /* Localizable.strings in Resources */, + 9B2410EAEC12873B7F5F2ADE /* InfoPlist.strings in Resources */, + 9B2417B6246CABEF9018DEF9 /* Preferences.strings in Resources */, + 9B2419788480CD62E525DC1E /* generate_assets.sh in Resources */, + 9B24121222A6D4683509D2EC /* CENTRAL_NOISE.m4a in Resources */, + 9B2416FD99077DD2C1FD92A3 /* generate_images.sh in Resources */, + 9B241F8C62D567BD2C00499F /* AppIcon-large.png in Resources */, + 9B241BCA025176CBF66246D7 /* InfoPlist.strings in Resources */, + 9B2413086002295F5021DEBA /* Localizable.strings in Resources */, + 9B241F30B2DCF44215F88D21 /* Preferences.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9B2413E45D83219C2C31F9FA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B8D2D9F627DECBB2005B269E /* TranquilModuleContentViewController.m in Sources */, + B8D2D9F827DECBB2005B269E /* TranquilMediaPlayer.m in Sources */, + B8D2D9F527DECBB2005B269E /* TranquilModuleBackgroundViewController.m in Sources */, + B8D2D9FA27DECBB2005B269E /* TranquilModule.m in Sources */, + B8D2D9F727DECBB2005B269E /* TranquilPreferencesController.m in Sources */, + 9B2412E1F5075DF96D681364 /* TranquilModuleStepper.m in Sources */, + 9B2414483F94C0D75BABD42F /* UIImage+TranquilModule.m in Sources */, + 9B241A6E4548F658AA97F417 /* TranquilModuleSlider.m in Sources */, + 9B24156C8744A9091EE0A050 /* TranquilListItemsController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 9B241128ECBAC8C5DCEE4459 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B2414DAEDE40FE0BDBA8B90 /* base */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 9B2411FE182F16F08B507932 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B24144133A17532E9FBBE76 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 9B2417C450C8CA55CA1DA96C /* Preferences.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B241579F543D41AD68E649A /* en */, + ); + name = Preferences.strings; + sourceTree = ""; + }; + 9B241964DD71753B34BF6007 /* Preferences.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B24111CA0576F1FB8E184C8 /* base */, + ); + name = Preferences.strings; + sourceTree = ""; + }; + 9B241BAB42F87A769EC46B28 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B24179B9ABB9248A9084811 /* en */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + 9B241EB7BED61BDD9CC8FB62 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 9B2416BDAE2FB65E82608E43 /* base */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 9B241B08FE30F168A9F5234C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Frameworks", + ); + GCC_PREFIX_HEADER = "$(SRCROOT)/$(PROJECT_NAME)/App-Prefix.pch"; + INFOPLIST_FILE = ""; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0.1; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.creaturecoding.tranquil; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 9B241B095071DBC8266C1C2F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "IDEA=1", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9B241C11C0CCE326672C1854 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Frameworks", + ); + GCC_PREFIX_HEADER = "$(SRCROOT)/$(PROJECT_NAME)/App-Prefix.pch"; + INFOPLIST_FILE = ""; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.creaturecoding.tranquil; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 9B241FDBD76ACB76CEE64569 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "IDEA=1", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9B241051D5AB8FC67BA43FE8 /* Build configuration list for PBXNativeTarget "Tranquil" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B241B08FE30F168A9F5234C /* Debug */, + 9B241C11C0CCE326672C1854 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B241B61CD9CEBB60B83141D /* Build configuration list for PBXProject "Tranquil" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B241B095071DBC8266C1C2F /* Debug */, + 9B241FDBD76ACB76CEE64569 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9B24187A700989AD042EE9B3 /* Project object */; +} diff --git a/Tranquil.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tranquil.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..e957d81 --- /dev/null +++ b/Tranquil.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/generate_assets.sh b/generate_assets.sh new file mode 100755 index 0000000..59bb8af --- /dev/null +++ b/generate_assets.sh @@ -0,0 +1,125 @@ +# +# generate_assets.sh +# Tranquil +# +# Created by Dana Buehre on 3/20/22. +# + +# based on https://gist.github.com/sag333ar/bf55ac27c6ffa5fd2ee72fd4f5b79fe9 +# Generate Assets.xcassets for a directory containing 3x png files +# example usage: ./generate_assets.sh -s Image-Assets -o . -c Resources + +while getopts s:o:c: flag +do + case "${flag}" in + s) sourceDirectory=$(echo ${OPTARG} | sed 's:/*$::');; + o) outputDirectory=$(echo ${OPTARG} | sed 's:/*$::');; + c) compileDirectory=$(echo ${OPTARG} | sed 's:/*$::');; + *) + esac +done + +if [ -z ${sourceDirectory+x} ]; then echo "no source directory set"; exit; fi +if [ -z ${outputDirectory+x} ]; then echo "no output directory set, using sourceDirectory"; outputDirectory="$sourceDirectory"; fi +if [ -z ${compileDirectory+x} ]; then echo "no source directory set, using outputDirectory"; compileDirectory="$outputDirectory"; fi +if [ ! -d "$sourceDirectory" ]; then echo "source directory doesn't exist"; exit; fi + +assetsDirectory="$outputDirectory/Assets.xcassets" + +rm -rf "$assetsDirectory" +mkdir -p "$assetsDirectory" + +assetsContent=$(cat <<-____HERE +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} +____HERE +) + +printf '%s' "$assetsContent" >> "$assetsDirectory/Contents.json" + +for f in "$sourceDirectory"/*.png +do + # Get the name of the file from the path + fileName="${f##*/}"; + + # Get the file name without extension + baseName=$(echo "$fileName" | cut -d'.' -f1) + + # Path to the working copy of the original image + workingCopy="$sourceDirectory/_$fileName" + + # Create a copy of the original file + cp "$f" "$workingCopy" + + # Set proper resolution to working copy + sips -s dpiHeight 72.0 -s dpiWidth 72.0 "$workingCopy" + + # Creating Asset folder + mkdir -p "$assetsDirectory/$baseName.imageset" + + # Create 1x, 2x, 3x, image copies in the asset folder + cp "$workingCopy" "$assetsDirectory/$baseName.imageset/$baseName@3x.png" + cp "$workingCopy" "$assetsDirectory/$baseName.imageset/$baseName@2x.png" + cp "$workingCopy" "$assetsDirectory/$baseName.imageset/$baseName.png" + + # Get Width of original file + xWIDTH=$(sips -g pixelWidth "$workingCopy" | cut -d':' -f 2 | tail -1 | cut -d' ' -f 2) + + # Get Height of original file + xHEIGHT=$(sips -g pixelHeight "$workingCopy" | cut -d':' -f 2 | tail -1 | cut -d' ' -f 2) + + # Variables for 1x + xWIDTH1=$(expr $xWIDTH / 3) + xHEIGHT1=$(expr $xHEIGHT / 3) + + # Variables for 2x + xWIDTH2=`expr $xWIDTH1 \* 2` + xHEIGHT2=`expr $xHEIGHT1 \* 2` + + # Apply size to images + sips -z "$xHEIGHT1" "$xWIDTH1" "$assetsDirectory/$baseName.imageset/$fileName" + sips -z "$xHEIGHT2" "$xWIDTH2" "$assetsDirectory/$baseName.imageset/$baseName@2x.png" + + rm "$workingCopy" + + imagesetContent=$(cat <<-____HERE +{ + "images" : [ + { + "filename" : "${baseName}.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "${baseName}@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "${baseName}@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "compression-type" : "lossless" + } +} +____HERE + ) + + printf '%s' "$imagesetContent" >> "${assetsDirectory}/${baseName}.imageset/Contents.json" + +done + +/usr/bin/xcrun actool "$assetsDirectory" --compile "$compileDirectory" --platform iphoneos --minimum-deployment-target 11.0 &> /dev/null + +exit 1; \ No newline at end of file diff --git a/generate_images.sh b/generate_images.sh new file mode 100755 index 0000000..ef57f09 --- /dev/null +++ b/generate_images.sh @@ -0,0 +1,71 @@ +# +# generate_images.sh +# Tranquil +# +# Created by Dana Buehre on 3/27/22. +# + +# Generate 1x, 2x images for a directory containing 3x png files +# example usage: ./generate_images.sh -s ./Image-Assets -o . -c ./Resources + +while getopts s:o: flag +do + case "${flag}" in + s) sourceDirectory=$(echo ${OPTARG} | sed 's:/*$::');; + o) outputDirectory=$(echo ${OPTARG} | sed 's:/*$::');; + *) + esac +done + +if [ -z ${sourceDirectory+x} ]; then echo "no source directory set"; exit; fi +if [ -z ${outputDirectory+x} ]; then echo "no output directory set, using sourceDirectory"; outputDirectory="$sourceDirectory"; fi +if [ ! -d "$sourceDirectory" ]; then echo "source directory doesn't exist"; exit; fi + +# Create the output directory if it doesn't exist +mkdir -p "$outputDirectory" + +for f in "$sourceDirectory"/*.png +do + # Get the name of the file from the path + fileName="${f##*/}"; + + # Get the file name without extension + baseName=$(echo "$fileName" | cut -d'.' -f1) + + # Path to the working copy of the original image + workingCopy="$sourceDirectory/_$fileName" + + # Create a copy of the original file + cp "$f" "$workingCopy" + + # Set proper resolution to working copy + sips -s dpiHeight 72.0 -s dpiWidth 72.0 "$workingCopy" + + # Create 1x, 2x, 3x, image copies in the output folder + cp "$workingCopy" "$outputDirectory/$baseName@3x.png" + cp "$workingCopy" "$outputDirectory/$baseName@2x.png" + cp "$workingCopy" "$outputDirectory/$baseName.png" + + # Get Width of original file + xWIDTH=$(sips -g pixelWidth "$workingCopy" | cut -d':' -f 2 | tail -1 | cut -d' ' -f 2) + + # Get Height of original file + xHEIGHT=$(sips -g pixelHeight "$workingCopy" | cut -d':' -f 2 | tail -1 | cut -d' ' -f 2) + + # Variables for 1x + xWIDTH1=$(expr $xWIDTH / 3) + xHEIGHT1=$(expr $xHEIGHT / 3) + + # Variables for 2x + xWIDTH2=`expr $xWIDTH1 \* 2` + xHEIGHT2=`expr $xHEIGHT1 \* 2` + + # Apply size to images + sips -z "$xHEIGHT1" "$xWIDTH1" "$outputDirectory/$fileName" + sips -z "$xHEIGHT2" "$xWIDTH2" "$outputDirectory/$baseName@2x.png" + + rm "$workingCopy" + +done + +exit 1; \ No newline at end of file diff --git a/layout/DEBIAN/control b/layout/DEBIAN/control new file mode 100644 index 0000000..36de7df --- /dev/null +++ b/layout/DEBIAN/control @@ -0,0 +1,15 @@ +Package: com.creaturecoding.tranquil +Name: Tranquil +Depends: mobilesubstrate, com.opa334.ccsupport +Version: 1.0.0 +Architecture: iphoneos-arm +Description: Background sounds feature from iOS 15 on iOS 11+ +Maintainer: CreatureSurvive +Author: CreatureSurvive +Section: Control Center (Modules) +Homepage: https://creaturecoding.com/ +Depiction: https://creaturecoding.com/?page=depiction&id=tranquil +SileoDepiction: https://creaturecoding.com/sileo/depiction/?package_id=tranquil +Tag: purpose::extension, compatible_min::ios11 +Icon: file:///Library/ControlCenter/Bundles/Tranquil.bundle/AppIcon-large.png + diff --git a/layout/DEBIAN/postinst b/layout/DEBIAN/postinst new file mode 100755 index 0000000..c76f915 --- /dev/null +++ b/layout/DEBIAN/postinst @@ -0,0 +1,7 @@ +#!/bin/sh + +mkdir -p /var/mobile/Library/Application\ Support/Tranquil/Audio +chmod -R 0755 /var/mobile/Library/Application\ Support/Tranquil +chown -R mobile:mobile /var/mobile/Library/Application\ Support/Tranquil + +exit 0;