@@ -12,6 +12,10 @@
static CGFloat cachedRoundButtonExpandedContainerHeight = 0;
static CGFloat cachedDefaultExpandedModuleWidth = 0;
static CGFloat cachedDefaultMenuItemHeight = 0;
static CGFloat cachedRegularCornerRadius = 0;
static CGFloat cachedExpandedCornerRadius = 0;
static CGFloat cachedExpandedSliderHeight;
static CGFloat cachedExpandedSliderWidth;

MPULayoutInterpolator *spacingInterpolator;
MPULayoutInterpolator *edgeInterpolator;
@@ -24,6 +28,8 @@
MPULayoutInterpolator *sliderExpandedWidthInterpolator;
MPULayoutInterpolator *defaultExpandedWidthInterpolator;
MPULayoutInterpolator *defaultMenuItemHeightInterpolator;
MPULayoutInterpolator *regularCornerRadiusInterpolator;
MPULayoutInterpolator *expandedCornerRadiusInterpolator;
// MPULayoutInterpolator *flipSwitchGlyphSizeInterpolator;
// MPULayoutInterpolator *flipSwitchOriginValueInterpolator;
// MPULayoutInterpolator *roundButtonTitlePaddingInterpolator;
@@ -103,6 +109,8 @@ + (void)setupInterpolators {
[sliderExpandedHeightInterpolator addValue:340 forReferenceMetric:736];
[sliderExpandedHeightInterpolator addValue:340 forReferenceMetric:1024];
[sliderExpandedHeightInterpolator addValue:340 forReferenceMetric:768];

cachedExpandedSliderHeight = [sliderExpandedHeightInterpolator valueForReferenceMetric:[UIScreen mainScreen].bounds.size.height];
}

if (!sliderExpandedWidthInterpolator) {
@@ -112,6 +120,8 @@ + (void)setupInterpolators {
[sliderExpandedWidthInterpolator addValue:132 forReferenceMetric:414];
[sliderExpandedWidthInterpolator addValue:123 forReferenceMetric:768];
[sliderExpandedWidthInterpolator addValue:123 forReferenceMetric:1024];

cachedExpandedSliderWidth = [sliderExpandedWidthInterpolator valueForReferenceMetric:[UIScreen mainScreen].bounds.size.width];
}

if (!defaultExpandedWidthInterpolator) {
@@ -136,6 +146,28 @@ + (void)setupInterpolators {
cachedDefaultMenuItemHeight = [defaultMenuItemHeightInterpolator valueForReferenceMetric:[UIScreen mainScreen].bounds.size.width];
}

if (!regularCornerRadiusInterpolator) {
regularCornerRadiusInterpolator = [NSClassFromString(@"MPULayoutInterpolator") new];
[regularCornerRadiusInterpolator addValue:17 forReferenceMetric:320];
[regularCornerRadiusInterpolator addValue:19 forReferenceMetric:375];
[regularCornerRadiusInterpolator addValue:21 forReferenceMetric:414];
[regularCornerRadiusInterpolator addValue:19 forReferenceMetric:768];
[regularCornerRadiusInterpolator addValue:19 forReferenceMetric:1024];

cachedRegularCornerRadius = [regularCornerRadiusInterpolator valueForReferenceMetric:[UIScreen mainScreen].bounds.size.width];
}

if (!expandedCornerRadiusInterpolator) {
expandedCornerRadiusInterpolator = [NSClassFromString(@"MPULayoutInterpolator") new];
[expandedCornerRadiusInterpolator addValue:34 forReferenceMetric:320];
[expandedCornerRadiusInterpolator addValue:39 forReferenceMetric:375];
[expandedCornerRadiusInterpolator addValue:41 forReferenceMetric:414];
[expandedCornerRadiusInterpolator addValue:39 forReferenceMetric:768];
[expandedCornerRadiusInterpolator addValue:39 forReferenceMetric:1024];

cachedExpandedCornerRadius = [expandedCornerRadiusInterpolator valueForReferenceMetric:[UIScreen mainScreen].bounds.size.width];
}

// 123 - 340

// if (!flipSwitchGlyphSizeInterpolator) {
@@ -209,11 +241,21 @@ + (CGSize)roundButtonContainerExpandedSize {
}

+ (CGFloat)regularCornerRadius {
return 19.0f;
if (cachedRegularCornerRadius == 0) {
[MZELayoutOptions setupInterpolators];
}
return cachedRegularCornerRadius;

// 17 for small
}

+ (CGFloat)expandedModuleCornerRadius {
return 38.0f;
if (cachedExpandedCornerRadius == 0) {
[MZELayoutOptions setupInterpolators];
}
return cachedExpandedCornerRadius;

//34 for small
}

+ (CGFloat)defaultExpandedContentModuleWidth {
@@ -227,22 +269,22 @@ + (CGFloat)defaultExpandedSliderHeight {
if (!sliderExpandedHeightInterpolator) {
[MZELayoutOptions setupInterpolators];
}
return [sliderExpandedHeightInterpolator valueForReferenceMetric:[[UIScreen mainScreen] _mainSceneBoundsForInterfaceOrientation:[UIDevice currentDevice].orientation].size.height];
return cachedExpandedSliderHeight;
}

+ (CGFloat)defaultExpandedSliderWidth {
if (!sliderExpandedWidthInterpolator) {
if (!defaultExpandedWidthInterpolator) {
[MZELayoutOptions setupInterpolators];
}
return [sliderExpandedWidthInterpolator valueForReferenceMetric:[[UIScreen mainScreen] _mainSceneBoundsForInterfaceOrientation:[UIDevice currentDevice].orientation].size.width];
return cachedExpandedSliderWidth;
}

+ (CGRect)orientationRelativeScreenBounds {
return [[UIScreen mainScreen] _mainSceneBoundsForInterfaceOrientation:[UIDevice currentDevice].orientation];
}

+ (CGFloat)defaultExpandedModuleWidth {
if (!sliderExpandedWidthInterpolator) {
if (!regularCornerRadiusInterpolator) {
[MZELayoutOptions setupInterpolators];
}

@@ -46,6 +46,8 @@ - (void)viewDidLoad {
[_headerPocketView addGestureRecognizer:_headerPocketViewDismissalPanGesture];

_headerPocketViewDismissalTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_handleControlCenterDismissalTapGesture:)];
_headerPocketViewDismissalTapGesture.cancelsTouchesInView = NO;
_headerPocketViewDismissalTapGesture.delaysTouchesEnded = NO;
[_headerPocketViewDismissalTapGesture setDelegate:self];
[_headerPocketView addGestureRecognizer:_headerPocketViewDismissalTapGesture];

@@ -55,14 +57,15 @@ - (void)viewDidLoad {

_collectionViewDismissalTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_handleControlCenterDismissalTapGesture:)];
[_collectionViewDismissalTapGesture setDelegate:self];
_collectionViewDismissalTapGesture.cancelsTouchesInView = NO;
_collectionViewDismissalTapGesture.delaysTouchesEnded = NO;
[_scrollView addGestureRecognizer:_collectionViewDismissalTapGesture];

_collectionViewScrollPanGesture = [_scrollView panGestureRecognizer];
[_collectionViewScrollPanGesture requireGestureRecognizerToFail:_collectionViewDismissalPanGesture];
}

- (void)_handleControlCenterDismissalTapGesture:(UITapGestureRecognizer *)gesture {
return;
if ([self presentationState] == MZEPresentationStatePresented && !_isInteractingWithModule) {
[self dismissAnimated:YES withCompletionHandler:nil];
}
@@ -209,10 +212,10 @@ - (BOOL)_allowDismissalWithPanGesture:(UIPanGestureRecognizer *)gesture {
}

- (BOOL)_allowDismissalWithTapGesture:(UITapGestureRecognizer *)gesture {
if ([self presentationState] != MZEPresentationStateTransitioning && [self presentationState] != MZEPresentationStateDismissed) {
CGRect targetFrame = [self _targetPresentationFrame];
if ([self presentationState] != MZEPresentationStateTransitioning && [self presentationState] != MZEPresentationStateDismissed && !_isInteractingWithModule) {
//CGRect targetFrame = [self _targetPresentationFrame];
CGPoint touchPoint = [gesture locationInView:_scrollView];
return !CGRectContainsPoint(targetFrame, touchPoint);
return !CGRectContainsPoint(self.moduleCollectionViewController.view.frame, touchPoint);
}
return NO;
}
@@ -595,18 +598,18 @@ - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceive
- (void)moduleCollectionViewController:(MZEModuleCollectionViewController *)collectionViewController didFinishInteractionWithModule:(id <MZEContentModule>)module {
_isInteractingWithModule = NO;
// _collectionViewScrollPanGesture.enabled = YES;
// _collectionViewDismissalTapGesture.enabled = YES;
_collectionViewDismissalTapGesture.enabled = YES;
// _collectionViewDismissalPanGesture.enabled = YES;
// _headerPocketViewDismissalTapGesture.enabled = YES;
_headerPocketViewDismissalTapGesture.enabled = YES;
// _headerPocketViewDismissalPanGesture.enabled = YES;
}

- (void)moduleCollectionViewController:(MZEModuleCollectionViewController *)collectionViewController didBeginInteractionWithModule:(id <MZEContentModule>)module {
_isInteractingWithModule = YES;
// _collectionViewScrollPanGesture.enabled = NO;
// _collectionViewDismissalTapGesture.enabled = NO;
_collectionViewDismissalTapGesture.enabled = NO;
// _collectionViewDismissalPanGesture.enabled = NO;
// _headerPocketViewDismissalTapGesture.enabled = NO;
_headerPocketViewDismissalTapGesture.enabled = NO;
// _headerPocketViewDismissalPanGesture.enabled = NO;
}

@@ -401,7 +401,7 @@ - (MZEMaterialView *)_createBackgroundViewForStep:(NSUInteger)step {
materialView = [MZEMaterialView materialViewWithStyle:MZEMaterialStyleNormal];
} else {
materialView = [MZEMaterialView materialViewWithStyle:MZEMaterialStyleLight];
materialView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
//materialView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
}

[materialView setUserInteractionEnabled:NO];
@@ -632,26 +632,26 @@ - (void)handleDisplayLink:(CADisplayLink *)displayLink {



- (BOOL)shouldForwardSelector:(SEL)aSelector {
if (aSelector == @selector(setBounds:)) return NO;
if (aSelector == @selector(_setContinuousCornerRadius:)) return YES;
if (aSelector == @selector(_continuousCornerRadius)) return YES;
return [self.layer respondsToSelector:aSelector];
}
// - (BOOL)shouldForwardSelector:(SEL)aSelector {
// if (aSelector == @selector(setBounds:)) return NO;
// if (aSelector == @selector(_setContinuousCornerRadius:)) return YES;
// if (aSelector == @selector(_continuousCornerRadius)) return YES;
// return [self.layer respondsToSelector:aSelector];
// }

- (id)forwardingTargetForSelector:(SEL)aSelector {
if (aSelector == @selector(_setContinuousCornerRadius:)) return self;
if (aSelector == @selector(_continuousCornerRadius)) return self;
return (![self respondsToSelector:aSelector] && [self shouldForwardSelector:aSelector]) ? self.layer : self;
}
// - (id)forwardingTargetForSelector:(SEL)aSelector {
// if (aSelector == @selector(_setContinuousCornerRadius:)) return self;
// if (aSelector == @selector(_continuousCornerRadius)) return self;
// return (![self respondsToSelector:aSelector] && [self shouldForwardSelector:aSelector]) ? self.layer : self;
// }

- (BOOL)_shouldAnimatePropertyWithKey:(NSString *)key {
if (key) {
//if ([key isEqual:@"_continuousCornerRadius"] || [key isEqual:@"_setContinuousCornerRadius:"]) return YES;
// if ([key isEqual:@"cornerContentsCenter"] || [key isEqual:@"cornerContents"] || [key isEqual:@"cornerRadius"]) return YES;
// if ([key isEqual:@"scale"] || [key isEqual:@"anchor"]) return YES;
}
//if ([key isEqual:@"_continuousCornerRadius"] || [key isEqual:@"_setContinuousCornerRadius:"]) return YES;
return ([self shouldForwardSelector:NSSelectorFromString(key)] || [super _shouldAnimatePropertyWithKey:key]);
}
// - (BOOL)_shouldAnimatePropertyWithKey:(NSString *)key {
// if (key) {
// //if ([key isEqual:@"_continuousCornerRadius"] || [key isEqual:@"_setContinuousCornerRadius:"]) return YES;
// // if ([key isEqual:@"cornerContentsCenter"] || [key isEqual:@"cornerContents"] || [key isEqual:@"cornerRadius"]) return YES;
// // if ([key isEqual:@"scale"] || [key isEqual:@"anchor"]) return YES;
// }
// //if ([key isEqual:@"_continuousCornerRadius"] || [key isEqual:@"_setContinuousCornerRadius:"]) return YES;
// return ([self shouldForwardSelector:NSSelectorFromString(key)] || [super _shouldAnimatePropertyWithKey:key]);
// }
@end
@@ -22,7 +22,7 @@ - (void)viewDidLoad {
_packageView.layer.shadowColor = [UIColor blackColor].CGColor;
_packageView.layer.shadowRadius = 10.0f;

[self.view addSubview:_packageView];
// [self.view addSubview:_packageView];
}

- (void)viewWillLayoutSubviews {
@@ -51,10 +51,15 @@ - (void)viewWillLayoutSubviews {
}

centerPoint = UIPointRoundToViewScale(centerPoint, _headerImageView);
if (_headerImageView.image) {
_headerImageView.frame = CGRectMake(_headerImageView.frame.origin.x,_headerImageView.frame.origin.y,_headerImageView.image.size.width,_headerImageView.image.size.height);
}
_headerImageView.center = centerPoint;
_packageView.center = centerPoint;
_packageView.frame = CGRectMake(_packageView.frame.origin.x,_packageView.frame.origin.y,_package.rootLayer.bounds.size.width,_package.rootLayer.bounds.size.height);

if (_package) {
_packageView.frame = CGRectMake(_packageView.frame.origin.x,_packageView.frame.origin.y,_package.rootLayer.bounds.size.width,_package.rootLayer.bounds.size.height);
}
_packageView.center = centerPoint;
}

- (void)setGlyphState:(NSString *)glyphState {
@@ -65,12 +70,22 @@ - (void)setGlyphState:(NSString *)glyphState {
- (void)setGlyphPackage:(CAPackage *)glyphPackage {
[self loadViewIfNeeded];
_package = glyphPackage;
if (![_packageView superview]) {
[self.view addSubview:_packageView];
}
[_packageView setPackage:glyphPackage];
[self.view setNeedsLayout];
[self.view layoutIfNeeded];
}

- (void)setGlyphImage:(UIImage *)glyphImage {
[self loadViewIfNeeded];
if (![_headerImageView superview]) {
[self.view addSubview:_headerImageView];
}
[_headerImageView setImage:glyphImage];
[self.view setNeedsLayout];
[self.view layoutIfNeeded];

}

@@ -14,7 +14,7 @@
MZEToggleModule *_module;
}

@property(nonatomic, readwrite) MZEToggleModule *module; // @synthesize module=_module;
@property(nonatomic, retain, readwrite) MZEToggleModule *module; // @synthesize module=_module;
@property(readonly, nonatomic) CGFloat preferredExpandedContentHeight;
- (BOOL)shouldBeginTransitionToExpandedContentModule;
- (void)viewDidLoad;
@@ -40,6 +40,7 @@ - (void)buttonTapped:(UIControl *)button forEvent:(id)event {
if ([_module shouldSelfSelect])
[self setSelected:isSelected];
[_module setSelected:isSelected];
[super buttonTapped:button forEvent:event];
}

- (CGFloat)preferredExpandedContentHeight {
@@ -10,16 +10,16 @@ include $(THEOS)/makefiles/common.mk

export ADDITIONAL_CFLAGS = -I./../../headers -I./../../

SUBPROJECTS += ConnectivityModule
# SUBPROJECTS += ConnectivityModule
SUBPROJECTS += DoNotDisturbModule
SUBPROJECTS += LowPowerModule
SUBPROJECTS += ScreenRecordingModule
SUBPROJECTS += OrientationLockModule
SUBPROJECTS += LocationModule
# SUBPROJECTS += LocationModule
SUBPROJECTS += RingerModule
SUBPROJECTS += VPNModule
# SUBPROJECTS += VPNModule
SUBPROJECTS += AudioModule
SUBPROJECTS += DisplayModule
# SUBPROJECTS += DisplayModule
SUBPROJECTS += FlashlightModule
# SUBPROJECTS += MediaModule
include $(THEOS_MAKE_PATH)/aggregate.mk
@@ -65,6 +65,7 @@ - (void)countDownMethodFired:(NSTimer *)timer {
_isRecording = YES;
[_recordToggle _startRecording];
_countingDown = NO;
[_viewController setGlyphState:@"recording"];
[_viewController setSelected:YES];
} else {
_isRecording = NO;
@@ -125,6 +126,10 @@ - (BOOL)isSelected {
return _isRecording;
}

- (BOOL)isEnabled {
return YES;
}

// - (BOOL)isEnabled {
// return _isRecording;
// }
@@ -0,0 +1,8 @@
#import <UIKit/UIView+Private.h>

%hook BSUIAnimationFactory
%new
+ (void)_animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options factory:(id)factory animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion {
[UIView _animateWithDuration:duration delay:delay options:options factory:factory animations:animations completion:completion];
}
%end
@@ -50,6 +50,29 @@ static BOOL hasCalled = NO;
}
return %orig;
}

- (CGRect)_frameForChildViewController:(CCUIControlCenterPageContainerViewController *)viewController {
if (self.mze_viewController) {
return [self.mze_viewController _targetPresentationFrame];
} else return %orig;
}

// - (void)_loadPages {
// if (!self.mze_viewController) {
// self.mze_viewController = [[MZEModularControlCenterOverlayViewController alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)];
// [self.view addSubview:self.mze_viewController.view];
// [self addChildViewController:self.mze_viewController];
// [self.mze_viewController didMoveToParentViewController:self];

// // [self.mze_viewController loadView];
// // [self.mze_viewController viewDidLoad];
// // [self.mze_viewController viewWillLayoutSubviews];
// // self.mze_viewController.view.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
// // [self.view addSubview:self.mze_viewController.view];
// //self.mze_viewController.view.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
// }
// }

-(void)setRevealPercentage:(CGFloat)revealPercentage {

if (!self.mze_viewController) {
11 control
@@ -1,9 +1,10 @@
Package: com.ioscreatix.maize
Name: Maize
Depends: mobilesubstrate, com.a3tweaks.flipswitch
Version: 0.0.1
Package: com.ioscreatix.maizepreview
Name: Maize (Preview)
Depends: firmware (>= 10.0), mobilesubstrate, com.a3tweaks.flipswitch
Version: 1.0.2
Architecture: iphoneos-arm
Description: An awesome MobileSubstrate tweak!
Description: A preview of Maize, the iOS 11 Control Center on iOS 10
Maintainer: Creatix
Author: Creatix
Section: Tweaks
Tag: compatible::ios10
@@ -0,0 +1,5 @@
@interface BSUIAnimationFactory : NSObject
+(id)factoryWithSettings:(id)arg1 ;
+ (void)animateWithFactory:(id)arg1 actions:(id /* block */)arg2;
+ (void)animateWithFactory:(id)arg1 actions:(id /* block */)arg2 completion:(id /* block */)arg3;
@end
@@ -1,6 +1,7 @@


@interface CCUIRecordScreenShortcut : NSObject
// + (BOOL)isSupported:(int)arg1;
+ (id)alloc;
- (void)_startRecording;
- (void)_stopRecording;
@@ -0,0 +1,7 @@
@interface HUSpringAnimationSettings : NSObject
@property (assign,nonatomic) CGFloat mass;
@property (assign,nonatomic) CGFloat stiffness;
@property (assign,nonatomic) CGFloat damping;
@property (assign,nonatomic) CGFloat initialVelocity;
@property (assign,nonatomic) CGFloat completionEpsilon;
@end
@@ -0,0 +1,4 @@

@interface SBAnimationSettings : NSObject
- (id)BSAnimationSettings;
@end
@@ -0,0 +1,7 @@

#import "SBAnimationSettings.h"

@interface SBFolderCloseSettings : NSObject
- (void)setDefaultValues;
- (SBAnimationSettings *)centralAnimationSettings;
@end
@@ -0,0 +1,7 @@

#import "SBAnimationSettings.h"

@interface SBFolderOpenSettings : NSObject
- (void)setDefaultValues;
- (SBAnimationSettings *)centralAnimationSettings;
@end
@@ -12,4 +12,7 @@
- (BOOL)_shouldAnimatePropertyWithKey:(id)key;
- (UIScreen *)_screen;
- (void)setSize:(CGSize)size;


+ (void)_animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options factory:(id)factory animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
@end