mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-11-25 17:43:18 +00:00
Various fixes
This commit is contained in:
parent
34dd524d72
commit
891dae914e
@ -350,13 +350,17 @@ open class ItemListControllerNode: ASDisplayNode {
|
|||||||
|
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
var previousContentOffsetValue: CGFloat?
|
var previousContentOffsetValue: CGFloat?
|
||||||
if let previousContentOffset = strongSelf.previousContentOffset, case let .known(value) = previousContentOffset {
|
if let previousContentOffset = strongSelf.previousContentOffset {
|
||||||
|
if case let .known(value) = previousContentOffset {
|
||||||
previousContentOffsetValue = value
|
previousContentOffsetValue = value
|
||||||
|
} else {
|
||||||
|
previousContentOffsetValue = 30.0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch offset {
|
switch offset {
|
||||||
case let .known(value):
|
case let .known(value):
|
||||||
let transition: ContainedViewLayoutTransition
|
let transition: ContainedViewLayoutTransition
|
||||||
if let previousContentOffsetValue = previousContentOffsetValue, value <= 0.0, previousContentOffsetValue > 30.0 {
|
if let previousContentOffsetValue = previousContentOffsetValue, value <= 0.0, previousContentOffsetValue >= 30.0 {
|
||||||
transition = .animated(duration: 0.2, curve: .easeInOut)
|
transition = .animated(duration: 0.2, curve: .easeInOut)
|
||||||
} else {
|
} else {
|
||||||
transition = .immediate
|
transition = .immediate
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
|
import AsyncDisplayKit
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
@ -375,47 +376,41 @@ public enum NotificationsPeerCategory {
|
|||||||
|
|
||||||
private final class NotificationExceptionState : Equatable {
|
private final class NotificationExceptionState : Equatable {
|
||||||
let mode: NotificationExceptionMode
|
let mode: NotificationExceptionMode
|
||||||
let isSearchMode: Bool
|
|
||||||
let revealedPeerId: PeerId?
|
let revealedPeerId: PeerId?
|
||||||
let editing: Bool
|
let editing: Bool
|
||||||
|
|
||||||
init(mode: NotificationExceptionMode, isSearchMode: Bool = false, revealedPeerId: PeerId? = nil, editing: Bool = false) {
|
init(mode: NotificationExceptionMode, revealedPeerId: PeerId? = nil, editing: Bool = false) {
|
||||||
self.mode = mode
|
self.mode = mode
|
||||||
self.isSearchMode = isSearchMode
|
|
||||||
self.revealedPeerId = revealedPeerId
|
self.revealedPeerId = revealedPeerId
|
||||||
self.editing = editing
|
self.editing = editing
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedMode(_ mode: NotificationExceptionMode) -> NotificationExceptionState {
|
func withUpdatedMode(_ mode: NotificationExceptionMode) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: mode, isSearchMode: self.isSearchMode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
return NotificationExceptionState(mode: mode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
||||||
}
|
|
||||||
|
|
||||||
func withUpdatedSearchMode(_ isSearchMode: Bool) -> NotificationExceptionState {
|
|
||||||
return NotificationExceptionState(mode: self.mode, isSearchMode: isSearchMode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedEditing(_ editing: Bool) -> NotificationExceptionState {
|
func withUpdatedEditing(_ editing: Bool) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: self.mode, isSearchMode: self.isSearchMode, revealedPeerId: self.revealedPeerId, editing: editing)
|
return NotificationExceptionState(mode: self.mode, revealedPeerId: self.revealedPeerId, editing: editing)
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedRevealedPeerId(_ revealedPeerId: PeerId?) -> NotificationExceptionState {
|
func withUpdatedRevealedPeerId(_ revealedPeerId: PeerId?) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: self.mode, isSearchMode: self.isSearchMode, revealedPeerId: revealedPeerId, editing: self.editing)
|
return NotificationExceptionState(mode: self.mode, revealedPeerId: revealedPeerId, editing: self.editing)
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedPeerSound(_ peer: Peer, _ sound: PeerMessageSound) -> NotificationExceptionState {
|
func withUpdatedPeerSound(_ peer: Peer, _ sound: PeerMessageSound) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: mode.withUpdatedPeerSound(peer, sound), isSearchMode: isSearchMode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
return NotificationExceptionState(mode: mode.withUpdatedPeerSound(peer, sound), revealedPeerId: self.revealedPeerId, editing: self.editing)
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedPeerMuteInterval(_ peer: Peer, _ muteInterval: Int32?) -> NotificationExceptionState {
|
func withUpdatedPeerMuteInterval(_ peer: Peer, _ muteInterval: Int32?) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: mode.withUpdatedPeerMuteInterval(peer, muteInterval), isSearchMode: isSearchMode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
return NotificationExceptionState(mode: mode.withUpdatedPeerMuteInterval(peer, muteInterval), revealedPeerId: self.revealedPeerId, editing: self.editing)
|
||||||
}
|
}
|
||||||
|
|
||||||
func withUpdatedPeerDisplayPreviews(_ peer: Peer, _ displayPreviews: PeerNotificationDisplayPreviews) -> NotificationExceptionState {
|
func withUpdatedPeerDisplayPreviews(_ peer: Peer, _ displayPreviews: PeerNotificationDisplayPreviews) -> NotificationExceptionState {
|
||||||
return NotificationExceptionState(mode: mode.withUpdatedPeerDisplayPreviews(peer, displayPreviews), isSearchMode: isSearchMode, revealedPeerId: self.revealedPeerId, editing: self.editing)
|
return NotificationExceptionState(mode: mode.withUpdatedPeerDisplayPreviews(peer, displayPreviews), revealedPeerId: self.revealedPeerId, editing: self.editing)
|
||||||
}
|
}
|
||||||
|
|
||||||
static func == (lhs: NotificationExceptionState, rhs: NotificationExceptionState) -> Bool {
|
static func == (lhs: NotificationExceptionState, rhs: NotificationExceptionState) -> Bool {
|
||||||
return lhs.mode == rhs.mode && lhs.isSearchMode == rhs.isSearchMode && lhs.revealedPeerId == rhs.revealedPeerId && lhs.editing == rhs.editing
|
return lhs.mode == rhs.mode && lhs.revealedPeerId == rhs.revealedPeerId && lhs.editing == rhs.editing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -714,7 +709,30 @@ public func notificationsPeerCategoryController(context: AccountContext, categor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.Notifications_Title), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back))
|
let leftNavigationButton: ItemListNavigationButton?
|
||||||
|
let rightNavigationButton: ItemListNavigationButton?
|
||||||
|
if !state.mode.peerIds.isEmpty {
|
||||||
|
if state.editing {
|
||||||
|
leftNavigationButton = ItemListNavigationButton(content: .none, style: .regular, enabled: false, action: {})
|
||||||
|
rightNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Done), style: .bold, enabled: true, action: {
|
||||||
|
updateState { value in
|
||||||
|
return value.withUpdatedEditing(false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
leftNavigationButton = nil
|
||||||
|
rightNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Edit), style: .regular, enabled: true, action: {
|
||||||
|
updateState { value in
|
||||||
|
return value.withUpdatedEditing(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
leftNavigationButton = nil
|
||||||
|
rightNavigationButton = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.Notifications_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: true)
|
||||||
let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: entries, style: .blocks, ensureVisibleItemTag: focusOnItemTag, initialScrollToItem: scrollToItem)
|
let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: entries, style: .blocks, ensureVisibleItemTag: focusOnItemTag, initialScrollToItem: scrollToItem)
|
||||||
|
|
||||||
return (controllerState, (listState, arguments))
|
return (controllerState, (listState, arguments))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user