Harden signing hygiene and guard chat init crash

This commit is contained in:
ichmagmaus 812
2026-02-28 11:50:17 +01:00
parent 019945f9da
commit a614259289
12 changed files with 33 additions and 16 deletions
+6
View File
@@ -78,3 +78,9 @@ xcode-files
.bsp/**
/.claude/
/buildbox/*
# Local/private signing materials (keep fake-codesigning tracked)
/.profiles/
/codesigning/
/build-system/real-codesigning/
/build-system/local-codesigning/
@@ -861,7 +861,8 @@ extension ChatControllerImpl {
self.reloadCachedData()
if self.context.sharedContext.immediateExperimentalUISettings.crashOnLongQueries {
if self.context.sharedContext.immediateExperimentalUISettings.crashOnLongQueries,
case .internal = self.context.sharedContext.applicationBindings.appBuildType {
let _ = (self.ready.get()
|> filter({ $0 })
|> take(1)
@@ -1509,7 +1510,7 @@ extension ChatControllerImpl {
guard let targetView = itemNode.targetReactionView(value: updatedReaction) else {
return
}
if let reactionItem = reactionItem {
if let reactionItem = reactionItem, let controllerInteraction = strongSelf.controllerInteraction {
let standaloneReactionAnimation = StandaloneReactionAnimation(genericReactionEffect: strongSelf.chatDisplayNode.historyNode.takeGenericReactionEffect())
strongSelf.chatDisplayNode.messageTransitionNode.addMessageStandaloneReactionAnimation(messageId: item.message.id, standaloneReactionAnimation: standaloneReactionAnimation)
@@ -1519,7 +1520,7 @@ extension ChatControllerImpl {
standaloneReactionAnimation.animateReactionSelection(
context: strongSelf.context,
theme: strongSelf.presentationData.theme,
animationCache: strongSelf.controllerInteraction!.presentationContext.animationCache,
animationCache: controllerInteraction.presentationContext.animationCache,
reaction: reactionItem,
avatarPeers: avatarPeers,
playHaptic: true,
@@ -200,7 +200,9 @@ func updateChatPresentationInterfaceStateImpl(
} else {
isBot = false
}
selfController.chatDisplayNode.historyNode.chatHasBots = updatedChatPresentationInterfaceState.hasBots || isBot
if selfController.isNodeLoaded {
selfController.chatDisplayNode.historyNode.chatHasBots = updatedChatPresentationInterfaceState.hasBots || isBot
}
if let (updatedSearchQuerySuggestionState, updatedSearchQuerySuggestionSignal) = searchQuerySuggestionResultStateForChatInterfacePresentationState(updatedChatPresentationInterfaceState, context: selfController.context, currentQuery: selfController.searchQuerySuggestionState?.0) {
selfController.searchQuerySuggestionState?.1.dispose()
@@ -444,11 +446,13 @@ func updateChatPresentationInterfaceStateImpl(
selfController.updateSlowmodeStatus()
switch updatedChatPresentationInterfaceState.inputMode {
case .media:
break
default:
selfController.chatDisplayNode.collapseInput()
if selfController.isNodeLoaded {
switch updatedChatPresentationInterfaceState.inputMode {
case .media:
break
default:
selfController.chatDisplayNode.collapseInput()
}
}
selfController.tempHideAccessoryPanels = selfController.presentationInterfaceState.search != nil
@@ -559,7 +563,9 @@ func updateChatPresentationInterfaceStateImpl(
}
(selfController.navigationController as? NavigationController)?.updateMasterDetailsBlackout(isBlackout ? .master : nil, transition: transition)
}
selfController.updateItemNodesSelectionStates(animated: transition.isAnimated)
if selfController.isNodeLoaded {
selfController.updateItemNodesSelectionStates(animated: transition.isAnimated)
}
}
}
@@ -583,16 +589,20 @@ func updateChatPresentationInterfaceStateImpl(
selfController.presentationInterfaceStatePromise.set(selfController.presentationInterfaceState)
if case .tag = selfController.chatDisplayNode.historyNode.tag {
} else {
if let historyFilter = selfController.presentationInterfaceState.historyFilter, historyFilter.isActive {
selfController.chatDisplayNode.historyNode.updateTag(tag: .customTag(historyFilter.customTag, nil))
if selfController.isNodeLoaded {
if case .tag = selfController.chatDisplayNode.historyNode.tag {
} else {
selfController.chatDisplayNode.historyNode.updateTag(tag: nil)
if let historyFilter = selfController.presentationInterfaceState.historyFilter, historyFilter.isActive {
selfController.chatDisplayNode.historyNode.updateTag(tag: .customTag(historyFilter.customTag, nil))
} else {
selfController.chatDisplayNode.historyNode.updateTag(tag: nil)
}
}
}
selfController.updateDownButtonVisibility()
if selfController.isNodeLoaded {
selfController.updateDownButtonVisibility()
}
if selfController.presentationInterfaceState.hasBirthdayToday {
selfController.displayBirthdayTooltip()