Merge remote-tracking branch 'refs/remotes/origin/master'

This commit is contained in:
Isaac 2025-11-24 00:25:27 +08:00
commit 6e6b5b571e
6 changed files with 26 additions and 12 deletions

View file

@ -2049,7 +2049,8 @@ private final class PremiumIntroScreenContentComponent: CombinedComponent {
}
subtitle = "\(environment.strings.Gift_Options_Premium_Months(product.months))\(product.price)"
} else {
subtitle = product.price
//subtitle = product.price
subtitle = "\(environment.strings.Gift_Options_Premium_Months(product.months))\(product.price)"
}
}
if product.isCurrent {

View file

@ -897,10 +897,10 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
}
), textAlignment: .center)
let (creatorButtonTitleLayout, creatorButtonTitleApply) = makeCreatorButtonTitleLayout(TextNodeLayoutArguments(attributedString: creatorButtonAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .middle, constrainedSize: CGSize(width: giftSize.width - 32.0, height: CGFloat.greatestFiniteMagnitude), alignment: .center, cutout: nil, insets: UIEdgeInsets()))
let (creatorButtonTitleLayout, creatorButtonTitleApply) = makeCreatorButtonTitleLayout(TextNodeLayoutArguments(attributedString: creatorButtonAttributedString, backgroundColor: nil, maximumNumberOfLines: 2, truncationType: .middle, constrainedSize: CGSize(width: giftSize.width - 32.0, height: CGFloat.greatestFiniteMagnitude), alignment: .center, cutout: nil, insets: UIEdgeInsets()))
if modelTitle == nil && !creatorButtonTitle.isEmpty {
textSpacing += 28.0
textSpacing += creatorButtonTitleLayout.size.height + 13.0
}
giftSize.height = titleLayout.size.height + textSpacing + clippedTextHeight + 164.0
@ -909,7 +909,8 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
giftSize.height += 70.0
if !creatorButtonTitle.isEmpty {
giftSize.height += 28.0
giftSize.height += creatorButtonTitleLayout.size.height + 13.0
//28.0
}
}
@ -1073,7 +1074,7 @@ public class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode {
var attributesOffsetY: CGFloat = 0.0
let creatorButtonSize = CGSize(width: creatorButtonTitleLayout.size.width + 18.0, height: 18.0)
let creatorButtonSize = CGSize(width: creatorButtonTitleLayout.size.width + 18.0, height: creatorButtonTitleLayout.size.height + 3.0)
let creatorButtonOriginY = modelTitle == nil ? titleFrame.maxY + 4.0 : clippingTextFrame.maxY + 5.0
let creatorButtonFrame = CGRect(origin: CGPoint(x: mediaBackgroundFrame.minX + floorToScreenPixels((mediaBackgroundFrame.width - creatorButtonSize.width) / 2.0), y: creatorButtonOriginY), size: creatorButtonSize)
if !creatorButtonTitle.isEmpty {

View file

@ -3262,6 +3262,7 @@ private final class GiftViewSheetContent: CombinedComponent {
)
})
} else {
let descriptionConstrainedWidth = hasDescriptionButton ? context.availableSize.width - sideInset : context.availableSize.width - sideInset * 2.0 - 50.0
let description = description.update(
component: MultilineTextComponent(
text: .plain(attributedString),
@ -3284,7 +3285,7 @@ private final class GiftViewSheetContent: CombinedComponent {
}
}
),
availableSize: CGSize(width: context.availableSize.width - sideInset * 2.0 - 50.0, height: CGFloat.greatestFiniteMagnitude),
availableSize: CGSize(width: descriptionConstrainedWidth, height: CGFloat.greatestFiniteMagnitude),
transition: context.transition
)
descriptionSize = description.size
@ -3311,7 +3312,7 @@ private final class GiftViewSheetContent: CombinedComponent {
animateScale: false
),
environment: {},
availableSize: CGSize(width: description.size.width + 18.0, height: 19.0),
availableSize: CGSize(width: description.size.width + 18.0, height: description.size.height + 1.0),
transition: .immediate
)
headerComponents.append({

View file

@ -858,7 +858,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(FilledRoundedRectangleComponent(
color: environment.theme.list.itemBlocksBackgroundColor,
cornerRadius: .value(11.0),
cornerRadius: .value(26.0),
smoothCorners: false
)),
environment: {},
@ -882,6 +882,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
string: environment.strings.AffiliateSetup_SectionCommission,
@ -952,6 +953,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: AnyComponent(HStack([
AnyComponentWithIdentity(id: 0, component: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
@ -1020,6 +1022,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: nil,
footer: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
@ -1032,6 +1035,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
items: [
AnyComponentWithIdentity(id: 0, component: AnyComponent(ListActionItemComponent(
theme: environment.theme,
style: .glass,
title: AnyComponent(VStack([
AnyComponentWithIdentity(id: AnyHashable(0), component: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
@ -1070,11 +1074,13 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: nil,
footer: nil,
items: [
AnyComponentWithIdentity(id: 0, component: AnyComponent(ListActionItemComponent(
theme: environment.theme,
style: .glass,
title: AnyComponent(VStack([
AnyComponentWithIdentity(id: AnyHashable(0), component: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
@ -1365,6 +1371,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: AnyComponent(MultilineTextComponent(
text: .plain(NSAttributedString(
string: environment.strings.AffiliateSetup_ConnectedSectionTitle,
@ -1519,6 +1526,7 @@ final class AffiliateProgramSetupScreenComponent: Component {
transition: transition,
component: AnyComponent(ListSectionComponent(
theme: environment.theme,
style: .glass,
header: AnyComponent(HStack(suggestedHeaderItems, spacing: 4.0, alignment: .alternatingLeftRight)),
footer: nil,
items: suggestedSectionItems,

View file

@ -1169,10 +1169,12 @@ private final class JoinAffiliateProgramScreenComponent: Component {
case .active:
actionButtonTitle = environment.strings.AffiliateProgram_ActionCopyLink
}
let actionButtonSize = self.actionButton.update(
transition: transition,
component: AnyComponent(ButtonComponent(
background: ButtonComponent.Background(
style: .glass,
color: environment.theme.list.itemCheckColors.fillColor,
foreground: environment.theme.list.itemCheckColors.foregroundColor,
pressedColor: environment.theme.list.itemCheckColors.fillColor.withMultipliedAlpha(0.9)
@ -1206,7 +1208,7 @@ private final class JoinAffiliateProgramScreenComponent: Component {
}
)),
environment: {},
containerSize: CGSize(width: availableSize.width - sideInset * 2.0, height: 50.0)
containerSize: CGSize(width: availableSize.width - 30.0 * 2.0, height: 52.0)
)
let bottomTextSize = self.bottomText.update(

View file

@ -100,9 +100,10 @@ private final class PeerInfoScreenCallListItemNode: PeerInfoScreenItemNode {
self.addSubnode(itemNode)
}
let height = itemNode.contentSize.height
let verticalInset: CGFloat = 8.0
let height = itemNode.contentSize.height + verticalInset * 2.0
transition.updateFrame(node: itemNode, frame: CGRect(origin: CGPoint(), size: itemNode.bounds.size))
transition.updateFrame(node: itemNode, frame: CGRect(origin: CGPoint(x: 0.0, y: verticalInset), size: itemNode.bounds.size))
let highlightNodeOffset: CGFloat = topItem == nil ? 0.0 : UIScreenPixel
self.selectionNode.update(size: CGSize(width: width, height: height + highlightNodeOffset), theme: presentationData.theme, transition: transition)
@ -115,7 +116,7 @@ private final class PeerInfoScreenCallListItemNode: PeerInfoScreenItemNode {
let hasTopCorners = hasCorners && topItem == nil
let hasBottomCorners = hasCorners && bottomItem == nil
self.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(presentationData.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil
self.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(presentationData.theme, top: hasTopCorners, bottom: hasBottomCorners, glass: true) : nil
self.maskNode.frame = CGRect(origin: CGPoint(x: safeInsets.left, y: 0.0), size: CGSize(width: width - safeInsets.left - safeInsets.right, height: height))
self.bottomSeparatorNode.isHidden = hasBottomCorners