Temp iPad layout fix

This commit is contained in:
Ali 2023-07-14 15:20:28 +04:00
parent a0032f4fee
commit 5fc43c6700
2 changed files with 33 additions and 5 deletions

View File

@ -365,6 +365,7 @@ public final class StoryItemSetContainerComponent: Component {
var preparingToDisplayViewList: Bool = false var preparingToDisplayViewList: Bool = false
var displayViewList: Bool = false var displayViewList: Bool = false
var viewLists: [Int32: ViewList] = [:] var viewLists: [Int32: ViewList] = [:]
let viewListsContainer: UIView
var isEditingStory: Bool = false var isEditingStory: Bool = false
@ -440,6 +441,9 @@ public final class StoryItemSetContainerComponent: Component {
self.inputPanelContainer.isUserInteractionEnabled = false self.inputPanelContainer.isUserInteractionEnabled = false
self.inputPanelContainer.layer.cornerRadius = 11.0 self.inputPanelContainer.layer.cornerRadius = 11.0
self.viewListsContainer = SparseContainerView()
self.viewListsContainer.clipsToBounds = true
super.init(frame: frame) super.init(frame: frame)
self.itemsContainerView.addSubview(self.scroller) self.itemsContainerView.addSubview(self.scroller)
@ -457,6 +461,8 @@ public final class StoryItemSetContainerComponent: Component {
self.controlsContainerView.addSubview(self.closeButton) self.controlsContainerView.addSubview(self.closeButton)
self.closeButton.addTarget(self, action: #selector(self.closePressed), for: .touchUpInside) self.closeButton.addTarget(self, action: #selector(self.closePressed), for: .touchUpInside)
self.addSubview(self.viewListsContainer)
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture(_:))) let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture(_:)))
tapRecognizer.delegate = self tapRecognizer.delegate = self
self.itemsContainerView.addGestureRecognizer(tapRecognizer) self.itemsContainerView.addGestureRecognizer(tapRecognizer)
@ -981,7 +987,9 @@ public final class StoryItemSetContainerComponent: Component {
let combinedFraction = offsetFraction + centerFraction let combinedFraction = offsetFraction + centerFraction
let combinedFractionSign: CGFloat = combinedFraction < 0.0 ? -1.0 : 1.0 let combinedFractionSign: CGFloat = combinedFraction < 0.0 ? -1.0 : 1.0
let fractionDistanceToCenter: CGFloat = min(1.0, abs(combinedFraction)) let unboundFractionDistanceToCenter: CGFloat = abs(combinedFraction)
let fractionDistanceToCenter: CGFloat = min(1.0, unboundFractionDistanceToCenter)
let _ = fractionDistanceToCenter
var itemPositionX = centralItemX var itemPositionX = centralItemX
itemPositionX += min(1.0, abs(combinedFraction)) * combinedFractionSign * scaledFullItemScrollDistance itemPositionX += min(1.0, abs(combinedFraction)) * combinedFractionSign * scaledFullItemScrollDistance
@ -1120,7 +1128,15 @@ public final class StoryItemSetContainerComponent: Component {
} }
itemTransition.setTransform(view: visibleItem.contentContainerView, transform: transform) itemTransition.setTransform(view: visibleItem.contentContainerView, transform: transform)
itemTransition.setCornerRadius(layer: visibleItem.contentContainerView.layer, cornerRadius: 12.0 * (1.0 / itemScale)) itemTransition.setCornerRadius(layer: visibleItem.contentContainerView.layer, cornerRadius: 12.0 * (1.0 / itemScale))
itemTransition.setAlpha(view: visibleItem.contentContainerView, alpha: 1.0 * (1.0 - fractionDistanceToCenter) + 0.75 * fractionDistanceToCenter)
let countedFractionDistanceToCenter: CGFloat = max(0.0, min(1.0, unboundFractionDistanceToCenter / 3.0))
var itemAlpha: CGFloat = 1.0 * (1.0 - countedFractionDistanceToCenter) + 0.0 * countedFractionDistanceToCenter
itemAlpha = max(0.0, min(1.0, itemAlpha))
let collapsedAlpha = itemAlpha * itemLayout.contentScaleFraction + 0.0 * (1.0 - itemLayout.contentScaleFraction)
itemAlpha = (1.0 - fractionDistanceToCenter) * itemAlpha + fractionDistanceToCenter * collapsedAlpha
itemTransition.setAlpha(view: visibleItem.contentContainerView, alpha: itemAlpha)
var itemProgressMode = self.itemProgressMode() var itemProgressMode = self.itemProgressMode()
if index != centralIndex { if index != centralIndex {
@ -2137,12 +2153,12 @@ public final class StoryItemSetContainerComponent: Component {
var viewListFrame = CGRect(origin: CGPoint(x: viewListBaseOffsetX, y: availableSize.height - viewListSize.height), size: viewListSize) var viewListFrame = CGRect(origin: CGPoint(x: viewListBaseOffsetX, y: availableSize.height - viewListSize.height), size: viewListSize)
let indexDistance = CGFloat(max(-1, min(1, itemIndex - currentIndex))) let indexDistance = CGFloat(max(-1, min(1, itemIndex - currentIndex)))
viewListFrame.origin.x += indexDistance * availableSize.width viewListFrame.origin.x += indexDistance * (availableSize.width + 20.0)
if let viewListView = viewList.view.view as? StoryItemSetViewListComponent.View { if let viewListView = viewList.view.view as? StoryItemSetViewListComponent.View {
var animateIn = false var animateIn = false
if viewListView.superview == nil { if viewListView.superview == nil {
self.addSubview(viewListView) self.viewListsContainer.addSubview(viewListView)
animateIn = true animateIn = true
} else { } else {
fixedAnimationOffset = viewListFrame.minX - viewListView.frame.minX fixedAnimationOffset = viewListFrame.minX - viewListView.frame.minX
@ -2227,6 +2243,15 @@ public final class StoryItemSetContainerComponent: Component {
let contentFrame = CGRect(origin: CGPoint(x: 0.0, y: component.containerInsets.top - (contentSize.height - contentVisualHeight) * 0.5), size: contentSize) let contentFrame = CGRect(origin: CGPoint(x: 0.0, y: component.containerInsets.top - (contentSize.height - contentVisualHeight) * 0.5), size: contentSize)
transition.setFrame(view: self.viewListsContainer, frame: CGRect(origin: CGPoint(x: contentFrame.minX, y: 0.0), size: CGSize(width: contentSize.width, height: availableSize.height)))
let viewListsRadius: CGFloat
if component.metrics.widthClass == .regular {
viewListsRadius = 10.0
} else {
viewListsRadius = 0.0
}
transition.setCornerRadius(layer: self.viewListsContainer.layer, cornerRadius: viewListsRadius)
transition.setFrame(view: self.inputPanelContainer, frame: contentFrame) transition.setFrame(view: self.inputPanelContainer, frame: contentFrame)
let itemLayout = ItemLayout( let itemLayout = ItemLayout(

View File

@ -586,10 +586,11 @@ final class StoryItemSetViewListComponent: Component {
} }
if itemUpdated || viewsNilUpdated { if itemUpdated || viewsNilUpdated {
self.viewListState = nil
self.viewListDisposable?.dispose() self.viewListDisposable?.dispose()
if let views = component.storyItem.views { if let views = component.storyItem.views {
self.viewListState = nil
let viewList: EngineStoryViewListContext let viewList: EngineStoryViewListContext
if let current = component.sharedListsContext.viewLists[StoryId(peerId: component.peerId, id: component.storyItem.id)] { if let current = component.sharedListsContext.viewLists[StoryId(peerId: component.peerId, id: component.storyItem.id)] {
viewList = current viewList = current
@ -618,6 +619,8 @@ final class StoryItemSetViewListComponent: Component {
}) })
applyState = true applyState = true
let _ = synchronous let _ = synchronous
} else {
self.viewListState = EngineStoryViewListContext.State(totalCount: 0, items: [], loadMoreToken: nil)
} }
} }