Skip to content

Commit

Permalink
Add iPhone 14 devices
Browse files Browse the repository at this point in the history
  • Loading branch information
lunij committed Jun 24, 2024
1 parent 2f37633 commit a8a3b66
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 4 deletions.
108 changes: 104 additions & 4 deletions Sources/SnapshotTesting/Common/UITraitCollection+ViewImageConfig.swift
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,109 @@ extension UITraitCollection {
}
}

public static func iPhone14(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
]
switch orientation {
case .landscape:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .regular),
.init(verticalSizeClass: .compact)
]
)
case .portrait:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .compact),
.init(verticalSizeClass: .regular)
]
)
}
}

public static func iPhone14Plus(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
]
switch orientation {
case .landscape:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .regular),
.init(verticalSizeClass: .compact)
]
)
case .portrait:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .compact),
.init(verticalSizeClass: .regular)
]
)
}
}

public static func iPhone14Pro(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
]
switch orientation {
case .landscape:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .regular),
.init(verticalSizeClass: .compact)
]
)
case .portrait:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .compact),
.init(verticalSizeClass: .regular)
]
)
}
}

public static func iPhone14ProMax(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
]
switch orientation {
case .landscape:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .regular),
.init(verticalSizeClass: .compact)
]
)
case .portrait:
return .init(
traitsFrom: base + [
.init(horizontalSizeClass: .compact),
.init(verticalSizeClass: .regular)
]
)
}
}

public static func iPhone15(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .unavailable),
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
Expand All @@ -280,7 +380,7 @@ extension UITraitCollection {

public static func iPhone15Plus(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .unavailable),
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
Expand All @@ -305,7 +405,7 @@ extension UITraitCollection {

public static func iPhone15Pro(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .unavailable),
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
Expand All @@ -330,7 +430,7 @@ extension UITraitCollection {

public static func iPhone15ProMax(_ orientation: ViewImageConfig.Orientation) -> UITraitCollection {
let base: [UITraitCollection] = [
.init(forceTouchCapability: .unavailable),
.init(forceTouchCapability: .available),
.init(layoutDirection: .leftToRight),
.init(preferredContentSizeCategory: .medium),
.init(userInterfaceIdiom: .phone)
Expand Down
68 changes: 68 additions & 0 deletions Sources/SnapshotTesting/Common/ViewImageConfig.swift
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,74 @@ public struct ViewImageConfig: Sendable {
return .init(safeArea: safeArea, size: size, traits: .iPhone13ProMax(orientation))
}

public static let iPhone14 = ViewImageConfig.iPhone14(.portrait)

public static func iPhone14(_ orientation: Orientation) -> ViewImageConfig {
let safeArea: UIEdgeInsets
let size: CGSize
switch orientation {
case .landscape:
safeArea = .init(top: 0, left: 47, bottom: 21, right: 47)
size = .init(width: 844, height: 390)
case .portrait:
safeArea = .init(top: 47, left: 0, bottom: 34, right: 0)
size = .init(width: 390, height: 844)
}

return .init(safeArea: safeArea, size: size, traits: .iPhone14(orientation))
}

public static let iPhone14Plus = ViewImageConfig.iPhone14Plus(.portrait)

public static func iPhone14Plus(_ orientation: Orientation) -> ViewImageConfig {
let safeArea: UIEdgeInsets
let size: CGSize
switch orientation {
case .landscape:
safeArea = .init(top: 0, left: 47, bottom: 21, right: 47)
size = .init(width: 926, height: 428)
case .portrait:
safeArea = .init(top: 47, left: 0, bottom: 34, right: 0)
size = .init(width: 428, height: 926)
}

return .init(safeArea: safeArea, size: size, traits: .iPhone14Plus(orientation))
}

public static let iPhone14Pro = ViewImageConfig.iPhone14Pro(.portrait)

public static func iPhone14Pro(_ orientation: Orientation) -> ViewImageConfig {
let safeArea: UIEdgeInsets
let size: CGSize
switch orientation {
case .landscape:
safeArea = .init(top: 0, left: 59, bottom: 21, right: 59)
size = .init(width: 852, height: 393)
case .portrait:
safeArea = .init(top: 59, left: 0, bottom: 34, right: 0)
size = .init(width: 393, height: 852)
}

return .init(safeArea: safeArea, size: size, traits: .iPhone14Pro(orientation))
}

public static let iPhone14ProMax = ViewImageConfig.iPhone14ProMax(.portrait)

public static func iPhone14ProMax(_ orientation: Orientation) -> ViewImageConfig {
let safeArea: UIEdgeInsets
let size: CGSize
switch orientation {
case .landscape:
safeArea = .init(top: 0, left: 59, bottom: 21, right: 59)
size = .init(width: 932, height: 430)
case .portrait:
safeArea = .init(top: 59, left: 0, bottom: 34, right: 0)
size = .init(width: 430, height: 932)
}

return .init(safeArea: safeArea, size: size, traits: .iPhone14ProMax(orientation))
}

public static let iPhone15 = ViewImageConfig.iPhone15(.portrait)

public static func iPhone15(_ orientation: Orientation) -> ViewImageConfig {
Expand Down

0 comments on commit a8a3b66

Please sign in to comment.