Fix setting iOS status bar color with new xcode apis

This commit is contained in:
Michael Zanetti 2020-04-03 20:10:22 +02:00
parent cfb9ef6bcd
commit f29ce9bb72
2 changed files with 13 additions and 3 deletions

@ -1 +1 @@
Subproject commit ebb0b68be41f4559a4785db5951b7d8cfa042e6e
Subproject commit d97317e856d55a2f5399f17888f1852fee8b9553

View File

@ -102,8 +102,18 @@ void PlatformHelperIOS::generateNotificationFeedback()
void PlatformHelperIOS::setTopPanelColorInternal(const QColor &color)
{
UIView *statusBar = (UIView *)[[UIApplication sharedApplication] valueForKey:@"statusBar"];
statusBar.backgroundColor = [UIColor colorWithRed:color.redF() green:color.greenF() blue:color.blueF() alpha:color.alphaF()];
if (@available(iOS 13.0, *)) {
UIView *statusBar = [[UIView alloc]initWithFrame:[UIApplication sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor colorWithRed:color.redF() green:color.greenF() blue:color.blueF() alpha:color.alphaF()];
}
[[UIApplication sharedApplication].keyWindow addSubview:statusBar];
} else {
UIView *statusBar = [[UIView alloc]initWithFrame:[UIApplication sharedApplication].keyWindow.frame];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor colorWithRed:color.redF() green:color.greenF() blue:color.blueF() alpha:color.alphaF()];
}
}
if (((color.red() * 299 + color.green() * 587 + color.blue() * 114) / 1000) > 123) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];