mirror of
https://github.com/status-im/react-native.git
synced 2025-02-24 07:08:27 +00:00
Summary: Fixes: #16152 [iOS] [Fixed] - Pass back correct dimensions for application window in Dimensions module Pull Request resolved: https://github.com/facebook/react-native/pull/19932 Reviewed By: cpojer Differential Revision: D14312906 Pulled By: PeteTheHeat fbshipit-source-id: aacb729c89862267465eefc3534c48d9d4b5d746
64 lines
1.9 KiB
Objective-C
64 lines
1.9 KiB
Objective-C
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import "RCTUIUtils.h"
|
|
|
|
#import "RCTUtils.h"
|
|
|
|
RCTDimensions RCTGetDimensions(CGFloat fontScale)
|
|
{
|
|
UIScreen *mainScreen = UIScreen.mainScreen;
|
|
CGSize screenSize = mainScreen.bounds.size;
|
|
|
|
UIView *mainWindow;
|
|
mainWindow = RCTKeyWindow();
|
|
CGSize windowSize = mainWindow.bounds.size;
|
|
|
|
RCTDimensions result;
|
|
typeof (result.screen) dimsScreen = {
|
|
.width = screenSize.width,
|
|
.height = screenSize.height,
|
|
.scale = mainScreen.scale,
|
|
.fontScale = fontScale
|
|
};
|
|
typeof (result.window) dimsWindow = {
|
|
.width = windowSize.width,
|
|
.height = windowSize.height,
|
|
.scale = mainScreen.scale,
|
|
.fontScale = fontScale
|
|
};
|
|
result.screen = dimsScreen;
|
|
result.window = dimsWindow;
|
|
|
|
return result;
|
|
}
|
|
|
|
CGFloat RCTGetMultiplierForContentSizeCategory(UIContentSizeCategory category)
|
|
{
|
|
static NSDictionary<NSString *, NSNumber *> *multipliers = nil;
|
|
static dispatch_once_t token;
|
|
dispatch_once(&token, ^{
|
|
multipliers = @{
|
|
UIContentSizeCategoryExtraSmall: @0.823,
|
|
UIContentSizeCategorySmall: @0.882,
|
|
UIContentSizeCategoryMedium: @0.941,
|
|
UIContentSizeCategoryLarge: @1.0,
|
|
UIContentSizeCategoryExtraLarge: @1.118,
|
|
UIContentSizeCategoryExtraExtraLarge: @1.235,
|
|
UIContentSizeCategoryExtraExtraExtraLarge: @1.353,
|
|
UIContentSizeCategoryAccessibilityMedium: @1.786,
|
|
UIContentSizeCategoryAccessibilityLarge: @2.143,
|
|
UIContentSizeCategoryAccessibilityExtraLarge: @2.643,
|
|
UIContentSizeCategoryAccessibilityExtraExtraLarge: @3.143,
|
|
UIContentSizeCategoryAccessibilityExtraExtraExtraLarge: @3.571
|
|
};
|
|
});
|
|
|
|
double value = multipliers[category].doubleValue;
|
|
return value > 0.0 ? value : 1.0;
|
|
}
|