Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios

This commit is contained in:
Mikhail Filimonov 2025-07-21 17:03:03 +02:00
commit 209325ca3d
5 changed files with 35 additions and 9 deletions

View File

@ -871,7 +871,7 @@
if (_intent == TGMediaAssetsControllerSendMediaIntent && _selectionContext.allowGrouping) if (_intent == TGMediaAssetsControllerSendMediaIntent && _selectionContext.allowGrouping)
[[NSUserDefaults standardUserDefaults] setObject:@(!_selectionContext.grouping) forKey:@"TG_mediaGroupingDisabled_v0"]; [[NSUserDefaults standardUserDefaults] setObject:@(!_selectionContext.grouping) forKey:@"TG_mediaGroupingDisabled_v0"];
return [TGMediaAssetsController resultSignalsForSelectionContext:_selectionContext editingContext:_editingContext intent:_intent currentItem:currentItem storeAssets:storeAssets convertToJpeg:false descriptionGenerator:descriptionGenerator saveEditedPhotos:_saveEditedPhotos]; return [TGMediaAssetsController resultSignalsForSelectionContext:_selectionContext editingContext:_editingContext intent:_intent currentItem:currentItem storeAssets:storeAssets convertToJpeg:false descriptionGenerator:descriptionGenerator saveEditedPhotos:_saveEditedPhotos];
} }
@ -889,6 +889,9 @@
if (selectedItems.count == 0 && currentItem != nil) if (selectedItems.count == 0 && currentItem != nil)
[selectedItems addObject:currentItem]; [selectedItems addObject:currentItem];
if (intent == TGMediaAssetsControllerSendMediaIntent)
[[NSUserDefaults standardUserDefaults] setObject:@(editingContext.isHighQualityPhoto) forKey:@"TG_photoHighQuality_v0"];
if (saveEditedPhotos && storeAssets && editingContext != nil) if (saveEditedPhotos && storeAssets && editingContext != nil)
{ {
NSMutableArray *fullSizeSignals = [[NSMutableArray alloc] init]; NSMutableArray *fullSizeSignals = [[NSMutableArray alloc] init];

View File

@ -2159,6 +2159,12 @@ public final class MediaPickerScreenImpl: ViewController, MediaPickerScreen, Att
strongSelf.controllerNode.dismissInput() strongSelf.controllerNode.dismissInput()
} }
}, selectionState: selectionContext, editingState: editingContext ?? TGMediaEditingContext()) }, selectionState: selectionContext, editingState: editingContext ?? TGMediaEditingContext())
let highQualityPhoto = UserDefaults.standard.bool(forKey: "TG_photoHighQuality_v0")
if highQualityPhoto {
self.interaction?.editingState.setHighQualityPhoto(highQualityPhoto)
}
self.interaction?.selectionState?.grouping = true self.interaction?.selectionState?.grouping = true
self.interaction?.editingState.sendPaidMessageStars = sendPaidMessageStars ?? 0 self.interaction?.editingState.sendPaidMessageStars = sendPaidMessageStars ?? 0

View File

@ -11426,15 +11426,17 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
items.append(.separator) items.append(.separator)
} }
items.append(.action(ContextMenuActionItem(text: sorting == .date ? strings.PeerInfo_Gifts_SortByValue : strings.PeerInfo_Gifts_SortByDate, icon: { theme in if case .all = pane.currentCollection {
return generateTintedImage(image: UIImage(bundleImageName: sorting == .date ? "Peer Info/SortValue" : "Peer Info/SortDate"), color: theme.contextMenu.primaryColor) items.append(.action(ContextMenuActionItem(text: sorting == .date ? strings.PeerInfo_Gifts_SortByValue : strings.PeerInfo_Gifts_SortByDate, icon: { theme in
}, action: { [weak giftsContext] _, f in return generateTintedImage(image: UIImage(bundleImageName: sorting == .date ? "Peer Info/SortValue" : "Peer Info/SortDate"), color: theme.contextMenu.primaryColor)
f(.default) }, action: { [weak giftsContext] _, f in
f(.default)
giftsContext?.updateSorting(sorting == .date ? .value : .date)
}))) giftsContext?.updateSorting(sorting == .date ? .value : .date)
})))
items.append(.separator) items.append(.separator)
}
let toggleFilter: (ProfileGiftsContext.Filters) -> Void = { [weak giftsContext] value in let toggleFilter: (ProfileGiftsContext.Filters) -> Void = { [weak giftsContext] value in
var updatedFilter = filter var updatedFilter = filter

View File

@ -133,6 +133,12 @@ final class AddGiftsScreenComponent: Component {
giftsListView = current giftsListView = current
} else { } else {
giftsListView = GiftsListView(context: component.context, peerId: component.peerId, profileGifts: component.profileGifts, giftsCollections: nil, canSelect: true, ignoreCollection: component.collectionId, remainingSelectionCount: component.remainingCount) giftsListView = GiftsListView(context: component.context, peerId: component.peerId, profileGifts: component.profileGifts, giftsCollections: nil, canSelect: true, ignoreCollection: component.collectionId, remainingSelectionCount: component.remainingCount)
giftsListView.onContentUpdated = { [weak self] in
guard let self else {
return
}
self.state?.updated(transition: .immediate)
}
giftsListView.selectionUpdated = { [weak self] in giftsListView.selectionUpdated = { [weak self] in
guard let self else { guard let self else {
return return

View File

@ -151,6 +151,15 @@ public final class PeerInfoGiftsPaneNode: ASDisplayNode, PeerInfoPaneNode, UIScr
super.init() super.init()
self.giftsListView.onContentUpdated = { [weak self] in
guard let self else {
return
}
if let params = self.currentParams {
self.update(size: params.size, topInset: params.topInset, sideInset: params.sideInset, bottomInset: params.bottomInset, deviceMetrics: params.deviceMetrics, visibleHeight: params.visibleHeight, isScrollingLockedAtTop: params.isScrollingLockedAtTop, expandProgress: params.expandProgress, navigationHeight: params.navigationHeight, presentationData: params.presentationData, synchronous: true, transition: .immediate)
}
}
self.addSubnode(self.backgroundNode) self.addSubnode(self.backgroundNode)
self.addSubnode(self.scrollNode) self.addSubnode(self.scrollNode)