Skip to content

Commit

Permalink
Add support for prefersHomeIndicatorAutoHidden/setNeedsUpdateOfHomeIn…
Browse files Browse the repository at this point in the history
…dicatorAutoHidden

Implements #566
  • Loading branch information
LeoNatan committed Feb 22, 2024
1 parent aaf4869 commit a684ed3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ - (void)_setContentToState:(LNPopupPresentationState)state animated:(BOOL)animat
if(state != _LNPopupPresentationStateTransitioning)
{
[_containerController setNeedsStatusBarAppearanceUpdate];
[_containerController setNeedsUpdateOfHomeIndicatorAutoHidden];
}

[self _repositionPopupContentMovingBottomBar:_containerController._ignoringLayoutDuringTransition == NO animated:animated];
Expand Down Expand Up @@ -820,6 +821,7 @@ - (void)_popupBarPresentationByUserPanGestureHandler_changed:(UIPanGestureRecogn

[UIView animateWithDuration:0.3 delay:0.0 usingSpringWithDamping:500 initialSpringVelocity:0 options:0 animations:^{
[_containerController setNeedsStatusBarAppearanceUpdate];
[_containerController setNeedsUpdateOfHomeIndicatorAutoHidden];
} completion:nil];
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,10 @@ + (void)load
@selector(setNeedsStatusBarAppearanceUpdate),
@selector(_ln_setNeedsStatusBarAppearanceUpdate));

LNSwizzleMethod(self,
@selector(setNeedsUpdateOfHomeIndicatorAutoHidden),
@selector(_ln_setNeedsUpdateOfHomeIndicatorAutoHidden));

LNSwizzleMethod(self,
@selector(childViewControllerForStatusBarStyle),
@selector(_ln_childViewControllerForStatusBarStyle));
Expand All @@ -221,6 +225,10 @@ + (void)load
@selector(childViewControllerForStatusBarHidden),
@selector(_ln_childViewControllerForStatusBarHidden));

LNSwizzleMethod(self,
@selector(childViewControllerForHomeIndicatorAutoHidden),
@selector(_ln_childViewControllerForHomeIndicatorAutoHidden));

LNSwizzleMethod(self,
@selector(viewWillTransitionToSize:withTransitionCoordinator:),
@selector(_ln_viewWillTransitionToSize:withTransitionCoordinator:));
Expand Down Expand Up @@ -406,6 +414,18 @@ - (void)_ln_setNeedsStatusBarAppearanceUpdate
}
}

- (void)_ln_setNeedsUpdateOfHomeIndicatorAutoHidden
{
if(self.popupPresentationContainerViewController)
{
[self.popupPresentationContainerViewController setNeedsUpdateOfHomeIndicatorAutoHidden];
}
else
{
[self _ln_setNeedsUpdateOfHomeIndicatorAutoHidden];
}
}

- (void)_ln_viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
if(self._ln_popupController_nocreate)
Expand Down Expand Up @@ -509,6 +529,12 @@ - (nullable UIViewController *)_ln_common_childViewControllerForStatusBarStyle
return vc ?: [self _ln_childViewControllerForStatusBarStyle];
}

- (nullable UIViewController *)_ln_common_childViewControllerForHomeIndicatorAutoHidden
{
UIViewController* vc = [self _common_childViewControllersForStatusBarLogic];

return vc ?: [self _ln_childViewControllerForHomeIndicatorAutoHidden];
}

- (nullable UIViewController *)_ln_childViewControllerForStatusBarHidden
{
Expand All @@ -520,6 +546,11 @@ - (nullable UIViewController *)_ln_childViewControllerForStatusBarStyle
return [self _ln_common_childViewControllerForStatusBarStyle];
}

- (nullable UIViewController *)_ln_childViewControllerForHomeIndicatorAutoHidden
{
return [self _ln_common_childViewControllerForHomeIndicatorAutoHidden];
}

- (void)_ln_setPopupPresentationState:(LNPopupPresentationState)newState
{
[self willChangeValueForKey:@"popupPresentationState"];
Expand Down Expand Up @@ -972,6 +1003,10 @@ + (void)load
@selector(childViewControllerForStatusBarHidden),
@selector(_ln_childViewControllerForStatusBarHidden));

LNSwizzleMethod(self,
@selector(childViewControllerForHomeIndicatorAutoHidden),
@selector(_ln_childViewControllerForHomeIndicatorAutoHidden));

LNSwizzleMethod(self,
@selector(viewDidLayoutSubviews),
@selector(_ln_popup_viewDidLayoutSubviews_tvc));
Expand Down Expand Up @@ -1367,6 +1402,11 @@ - (nullable UIViewController *)_ln_childViewControllerForStatusBarStyle
return [self _ln_common_childViewControllerForStatusBarStyle];
}

- (nullable UIViewController *)_ln_childViewControllerForHomeIndicatorAutoHidden
{
return [self _ln_common_childViewControllerForHomeIndicatorAutoHidden];
}

@end

#pragma mark - UINavigationController
Expand Down Expand Up @@ -1421,6 +1461,10 @@ + (void)load
@selector(childViewControllerForStatusBarHidden),
@selector(_ln_childViewControllerForStatusBarHidden));

LNSwizzleMethod(self,
@selector(childViewControllerForHomeIndicatorAutoHidden),
@selector(_ln_childViewControllerForHomeIndicatorAutoHidden));

LNSwizzleMethod(self,
@selector(setNavigationBarHidden:animated:),
@selector(_ln_setNavigationBarHidden:animated:));
Expand Down Expand Up @@ -1774,6 +1818,11 @@ - (nullable UIViewController *)_ln_childViewControllerForStatusBarStyle
return [self _ln_common_childViewControllerForStatusBarStyle];
}

- (nullable UIViewController *)_ln_childViewControllerForHomeIndicatorAutoHidden
{
return [self _ln_common_childViewControllerForHomeIndicatorAutoHidden];
}

- (void)_ln_setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated
{
[self _ln_setNavigationBarHidden:hidden animated:animated];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,11 @@ - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation
return UIStatusBarAnimationFade;//Slide;
}

- (BOOL)prefersHomeIndicatorAutoHidden
{
return YES;
}

@end

#endif

0 comments on commit a684ed3

Please sign in to comment.