Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Framework/Sources/FloatingPanelCore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class FloatingPanelCore: NSObject, UIGestureRecognizerDelegate {
}

private func move(from: FloatingPanelPosition, to: FloatingPanelPosition, animated: Bool, completion: (() -> Void)? = nil) {
assert(layoutAdapter.isValid(to), "Can't move to '\(to)' position because it's not valid in the layout")
assert(layoutAdapter.validPositions.contains(to), "Can't move to '\(to)' position because it's not valid in the layout")
guard let vc = viewcontroller else {
completion?()
return
Expand Down
14 changes: 7 additions & 7 deletions Framework/Sources/FloatingPanelLayout.swift
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,10 @@ class FloatingPanelLayoutAdapter {
return layout.supportedPositions
}

var validPositions: Set<FloatingPanelPosition> {
return supportedPositions.union([.hidden])
}

var topMostState: FloatingPanelPosition {
return supportedPositions.sorted(by: { $0.rawValue < $1.rawValue }).first ?? .hidden
}
Expand Down Expand Up @@ -516,7 +520,7 @@ class FloatingPanelLayoutAdapter {

setBackdropAlpha(of: state)

if isValid(state) == false {
if validPositions.contains(state) == false {
state = layout.initialPosition
}

Expand All @@ -538,10 +542,6 @@ class FloatingPanelLayoutAdapter {
activateInteractiveLayout(of: state)
}

func isValid(_ state: FloatingPanelPosition) -> Bool {
return supportedPositions.union([.hidden]).contains(state)
}

private func layoutSurfaceIfNeeded() {
#if !TEST
guard surfaceView.window != nil else { return }
Expand All @@ -560,8 +560,8 @@ class FloatingPanelLayoutAdapter {
private func checkLayoutConsistance() {
// Verify layout configurations
assert(supportedPositions.count > 0)
assert(supportedPositions.contains(layout.initialPosition),
"Does not include an initial position (\(layout.initialPosition)) in supportedPositions (\(supportedPositions))")
assert(validPositions.contains(layout.initialPosition),
"Does not include an initial position (\(layout.initialPosition)) in (\(validPositions))")

if layout is FloatingPanelIntrinsicLayout {
assert(layout.insetFor(position: .full) == nil, "Return `nil` for full position on FloatingPanelIntrinsicLayout")
Expand Down