57 lines
1.9 KiB
Objective-C
57 lines
1.9 KiB
Objective-C
/*
|
|
* Copyright (c) Meta Platforms, Inc. and 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();
|
|
// We fallback to screen size if a key window is not found.
|
|
CGSize windowSize = mainWindow ? mainWindow.bounds.size : screenSize;
|
|
|
|
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;
|
|
}
|