Digital PCT265 story MVAPCT-213 - Allow for panels to override the supported orientation. Force chatbot panel to be full screen width on non tablet devices.
This commit is contained in:
parent
d69722c431
commit
e13e8ca5ab
@ -33,6 +33,9 @@
|
||||
- (void)showArrow;
|
||||
- (void)hideArrow;
|
||||
|
||||
/// Orientation supported by the panel.
|
||||
- (UIInterfaceOrientationMask)supportedInterfac;
|
||||
|
||||
/// The width to use if the panel is automatically extended when the screen is big enough.
|
||||
- (CGFloat)panelExtendedWidth;
|
||||
|
||||
|
||||
@ -59,6 +59,13 @@ typedef NS_ENUM(NSInteger, MFNumberOfDrawers) {
|
||||
|
||||
@property (nullable, strong, nonatomic) NSSet *cancellables;
|
||||
|
||||
/// When set to true, the panel will always be full width of the split.
|
||||
@property (nonatomic) BOOL leftPanelFullWidth;
|
||||
|
||||
/// When set to true, the panel will always be full width of the split.
|
||||
@property (nonatomic) BOOL rightPanelFullWidth;
|
||||
|
||||
|
||||
// Convenience getter
|
||||
+ (nullable instancetype)mainSplitViewController;
|
||||
|
||||
@ -131,6 +138,8 @@ typedef NS_ENUM(NSInteger, MFNumberOfDrawers) {
|
||||
|
||||
/// Returns true if a panel is showing.
|
||||
- (BOOL)isAPanelShowing;
|
||||
- (BOOL)isLeftPanelShowing;
|
||||
- (BOOL)isRightPanelShowing;
|
||||
|
||||
#pragma mark - Main Subclassables
|
||||
|
||||
|
||||
@ -679,6 +679,11 @@ CGFloat const PanelAnimationDuration = 0.2;
|
||||
[protocolController panelDidAppear:panel];
|
||||
}
|
||||
}
|
||||
if (@available(iOS 16.0, *)) {
|
||||
if ([panel respondsToSelector:@selector(supportedInterfac)]) {
|
||||
[controller setNeedsUpdateOfSupportedInterfaceOrientations];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)panelWillDisappear:(UIViewController <MVMCoreUIPanelProtocol> *)panel animated:(BOOL)animated {
|
||||
@ -709,6 +714,11 @@ CGFloat const PanelAnimationDuration = 0.2;
|
||||
[protocolController panelDidDisappear:panel];
|
||||
}
|
||||
}
|
||||
if (@available(iOS 16.0, *)) {
|
||||
if ([panel respondsToSelector:@selector(supportedInterfac)]) {
|
||||
[controller setNeedsUpdateOfSupportedInterfaceOrientations];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addPanel:(nonnull UIViewController <MVMCoreUIPanelProtocol> *)panel {
|
||||
@ -999,7 +1009,9 @@ CGFloat const PanelAnimationDuration = 0.2;
|
||||
|
||||
CGFloat leftPanelExtendedWidth = [self leftPanelExtendedWidth];
|
||||
CGFloat leftPanelMaxWidth = [self leftPanelMaxWidth];
|
||||
if ([self shouldExtendLeftPanel:numberOfDrawers] && viewWidth > leftPanelExtendedWidth) {
|
||||
if (self.leftPanelFullWidth) {
|
||||
self.leftPanelWidth.constant = viewWidth;
|
||||
} else if ([self shouldExtendLeftPanel:numberOfDrawers] && viewWidth > leftPanelExtendedWidth) {
|
||||
self.leftPanelWidth.constant = leftPanelExtendedWidth;
|
||||
} else if (viewWidth > leftPanelMaxWidth) {
|
||||
self.leftPanelWidth.constant = leftPanelMaxWidth;
|
||||
@ -1009,7 +1021,9 @@ CGFloat const PanelAnimationDuration = 0.2;
|
||||
|
||||
CGFloat rightPanelExtendedWidth = [self rightPanelExtendedWidth];
|
||||
CGFloat rightPanelMaxWidth = [self rightPanelMaxWidth];
|
||||
if ([self shouldExtendRightPanel:numberOfDrawers] && viewWidth > rightPanelExtendedWidth) {
|
||||
if (self.rightPanelFullWidth) {
|
||||
self.rightPanelWidth.constant = viewWidth;
|
||||
} else if ([self shouldExtendRightPanel:numberOfDrawers] && viewWidth > rightPanelExtendedWidth) {
|
||||
self.rightPanelWidth.constant = rightPanelExtendedWidth;
|
||||
} else if (viewWidth > rightPanelMaxWidth) {
|
||||
self.rightPanelWidth.constant = rightPanelMaxWidth;
|
||||
@ -1063,6 +1077,14 @@ CGFloat const PanelAnimationDuration = 0.2;
|
||||
return fabs(self.mainViewLeading.constant) > 1;
|
||||
}
|
||||
|
||||
- (BOOL)isLeftPanelShowing {
|
||||
return !self.leftView.isHidden;
|
||||
}
|
||||
|
||||
- (BOOL)isRightPanelShowing {
|
||||
return !self.rightView.isHidden;
|
||||
}
|
||||
|
||||
#pragma mark - Getters
|
||||
|
||||
// Returns the desired view or falls back. Hot fix until we can get away from using these functions...
|
||||
|
||||
Loading…
Reference in New Issue
Block a user