mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00
#1306 (status bar during fullscreen)
- When the status bar is shown and nav bar hidden, now shows the feed gradient. - Fixed incorrect scrolling when going to a story that shows the bar. - Fixed the status bar background not showing up. - Fixed the traversal buttons sliding down on first appearance.
This commit is contained in:
parent
5f0023ad51
commit
275b3c4a73
3 changed files with 22 additions and 8 deletions
|
@ -3314,7 +3314,7 @@
|
||||||
[gradientView addSubview:titleImageView];
|
[gradientView addSubview:titleImageView];
|
||||||
} else {
|
} else {
|
||||||
gradientView = [NewsBlurAppDelegate
|
gradientView = [NewsBlurAppDelegate
|
||||||
makeGradientView:CGRectMake(0, -1, rect.size.width, 10)
|
makeGradientView:CGRectMake(0, rect.origin.y, rect.size.width, 10)
|
||||||
// hard coding the 1024 as a hack for window.frame.size.width
|
// hard coding the 1024 as a hack for window.frame.size.width
|
||||||
startColor:[feed objectForKey:@"favicon_fade"]
|
startColor:[feed objectForKey:@"favicon_fade"]
|
||||||
endColor:[feed objectForKey:@"favicon_color"]
|
endColor:[feed objectForKey:@"favicon_color"]
|
||||||
|
|
|
@ -602,6 +602,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)drawFeedGradient {
|
- (void)drawFeedGradient {
|
||||||
|
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
|
||||||
|
BOOL shouldHideStatusBar = [preferences boolForKey:@"story_hide_status_bar"];
|
||||||
|
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
|
||||||
|
BOOL shouldOffsetFeedGradient = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && !UIInterfaceOrientationIsLandscape(orientation) && self.navigationController.navigationBarHidden && !shouldHideStatusBar;
|
||||||
|
CGFloat yOffset = shouldOffsetFeedGradient ? appDelegate.storyPageControl.statusBarBackgroundView.bounds.size.height - 1 : -1;
|
||||||
NSString *feedIdStr = [NSString stringWithFormat:@"%@",
|
NSString *feedIdStr = [NSString stringWithFormat:@"%@",
|
||||||
[self.activeStory
|
[self.activeStory
|
||||||
objectForKey:@"story_feed_id"]];
|
objectForKey:@"story_feed_id"]];
|
||||||
|
@ -614,7 +619,7 @@
|
||||||
|
|
||||||
self.feedTitleGradient = [appDelegate
|
self.feedTitleGradient = [appDelegate
|
||||||
makeFeedTitleGradient:feed
|
makeFeedTitleGradient:feed
|
||||||
withRect:CGRectMake(0, -1, CGRectGetWidth(self.view.bounds), 21)]; // 1024 hack for self.webView.frame.size.width
|
withRect:CGRectMake(0, yOffset, CGRectGetWidth(self.view.bounds), 21)]; // 1024 hack for self.webView.frame.size.width
|
||||||
self.feedTitleGradient.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
self.feedTitleGradient.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
||||||
self.feedTitleGradient.tag = FEED_TITLE_GRADIENT_TAG; // Not attached yet. Remove old gradients, first.
|
self.feedTitleGradient.tag = FEED_TITLE_GRADIENT_TAG; // Not attached yet. Remove old gradients, first.
|
||||||
|
|
||||||
|
@ -635,7 +640,7 @@
|
||||||
[self.webView insertSubview:feedTitleGradient aboveSubview:self.webView.scrollView];
|
[self.webView insertSubview:feedTitleGradient aboveSubview:self.webView.scrollView];
|
||||||
|
|
||||||
if (@available(iOS 11.0, *)) {
|
if (@available(iOS 11.0, *)) {
|
||||||
if (self.view.safeAreaInsets.top > 0.0 && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
|
if (self.view.safeAreaInsets.top > 0.0 && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && shouldHideStatusBar) {
|
||||||
feedTitleGradient.alpha = self.navigationController.navigationBarHidden ? 1 : 0;
|
feedTitleGradient.alpha = self.navigationController.navigationBarHidden ? 1 : 0;
|
||||||
|
|
||||||
[UIView animateWithDuration:0.3 animations:^{
|
[UIView animateWithDuration:0.3 animations:^{
|
||||||
|
@ -1404,7 +1409,11 @@
|
||||||
// appDelegate.storyPageControl.traverseView.frame = CGRectMake(tvf.origin.x,
|
// appDelegate.storyPageControl.traverseView.frame = CGRectMake(tvf.origin.x,
|
||||||
// (webpageHeight - topPosition) - tvf.size.height - safeBottomMargin,
|
// (webpageHeight - topPosition) - tvf.size.height - safeBottomMargin,
|
||||||
// tvf.size.width, tvf.size.height);
|
// tvf.size.width, tvf.size.height);
|
||||||
appDelegate.storyPageControl.traverseBottomConstraint.constant = viewportHeight - (webpageHeight - topPosition) + safeBottomMargin;
|
if (webpageHeight > 0) {
|
||||||
|
appDelegate.storyPageControl.traverseBottomConstraint.constant = viewportHeight - (webpageHeight - topPosition) + safeBottomMargin;
|
||||||
|
} else {
|
||||||
|
appDelegate.storyPageControl.traverseBottomConstraint.constant = safeBottomMargin;
|
||||||
|
}
|
||||||
// appDelegate.storyPageControl.traverseBottomConstraint.constant = safeBottomMargin;
|
// appDelegate.storyPageControl.traverseBottomConstraint.constant = safeBottomMargin;
|
||||||
}
|
}
|
||||||
} else if (!singlePage && (atTop && !atBottom)) {
|
} else if (!singlePage && (atTop && !atBottom)) {
|
||||||
|
|
|
@ -228,6 +228,8 @@
|
||||||
[self.view addConstraint:self.notifier.topOffsetConstraint];
|
[self.view addConstraint:self.notifier.topOffsetConstraint];
|
||||||
[self.notifier hideNow];
|
[self.notifier hideNow];
|
||||||
|
|
||||||
|
self.traverseBottomConstraint.constant = 50;
|
||||||
|
|
||||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
|
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
|
||||||
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:
|
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:
|
||||||
originalStoryButton,
|
originalStoryButton,
|
||||||
|
@ -235,8 +237,6 @@
|
||||||
fontSettingsButton, nil];
|
fontSettingsButton, nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
[self updateTheme];
|
|
||||||
|
|
||||||
[self.scrollView addObserver:self forKeyPath:@"contentOffset"
|
[self.scrollView addObserver:self forKeyPath:@"contentOffset"
|
||||||
options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
|
options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
|
||||||
context:nil];
|
context:nil];
|
||||||
|
@ -266,6 +266,8 @@
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
- (void)viewWillAppear:(BOOL)animated {
|
||||||
[super viewWillAppear:animated];
|
[super viewWillAppear:animated];
|
||||||
|
|
||||||
|
[self updateTheme];
|
||||||
|
|
||||||
[self updateAutoscrollButtons];
|
[self updateAutoscrollButtons];
|
||||||
[self updateTraverseBackground];
|
[self updateTraverseBackground];
|
||||||
[self setNextPreviousButtons];
|
[self setNextPreviousButtons];
|
||||||
|
@ -500,7 +502,7 @@
|
||||||
|
|
||||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||||
BOOL swipeEnabled = [[userPreferences stringForKey:@"story_detail_swipe_left_edge"]
|
BOOL swipeEnabled = [[userPreferences stringForKey:@"story_detail_swipe_left_edge"]
|
||||||
isEqualToString:@"pop_to_story_list"];;
|
isEqualToString:@"pop_to_story_list"];
|
||||||
self.navigationController.interactivePopGestureRecognizer.enabled = swipeEnabled;
|
self.navigationController.interactivePopGestureRecognizer.enabled = swipeEnabled;
|
||||||
|
|
||||||
if (hide) {
|
if (hide) {
|
||||||
|
@ -1239,7 +1241,10 @@
|
||||||
}
|
}
|
||||||
self.scrollView.scrollsToTop = NO;
|
self.scrollView.scrollsToTop = NO;
|
||||||
|
|
||||||
NSInteger topPosition = currentPage.webView.scrollView.contentOffset.y;
|
NSUserDefaults *preferences = [NSUserDefaults standardUserDefaults];
|
||||||
|
BOOL shouldHideStatusBar = [preferences boolForKey:@"story_hide_status_bar"];
|
||||||
|
NSInteger statusBarOffset = shouldHideStatusBar ? 0 : self.statusBarHeight;
|
||||||
|
NSInteger topPosition = currentPage.webView.scrollView.contentOffset.y + statusBarOffset;
|
||||||
BOOL canHide = currentPage.canHideNavigationBar && topPosition >= 0;
|
BOOL canHide = currentPage.canHideNavigationBar && topPosition >= 0;
|
||||||
|
|
||||||
if (!canHide && self.isHorizontal && self.navigationController.navigationBarHidden) {
|
if (!canHide && self.isHorizontal && self.navigationController.navigationBarHidden) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue