mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
b2955394c2
commit
f869c0450b
@ -9756,10 +9756,35 @@ Sorry for the inconvenience.";
|
|||||||
"Premium.New" = "NEW";
|
"Premium.New" = "NEW";
|
||||||
|
|
||||||
"MediaEditor.AddGif" = "Add GIF";
|
"MediaEditor.AddGif" = "Add GIF";
|
||||||
|
"MediaEditor.AddLocation" = "Add Location";
|
||||||
|
|
||||||
"Premium.Stories" = "Upgraded Stories";
|
"Premium.Stories" = "Upgraded Stories";
|
||||||
"Premium.StoriesInfo" = "Priority order, stealth mode, permanent views history and more.";
|
"Premium.StoriesInfo" = "Priority order, stealth mode, permanent views history and more.";
|
||||||
|
|
||||||
|
"Premium.Stories.Title" = "Upgraded Stories";
|
||||||
|
"Premium.Stories.AdditionalTitle" = "Exclusive Features in Stories";
|
||||||
|
|
||||||
|
"Premium.Stories.Order.Title" = "Priority Order";
|
||||||
|
"Premium.Stories.Order.Text" = "Get more views as your stories are always displayed first.";
|
||||||
|
|
||||||
|
"Premium.Stories.Stealth.Title" = "Stealth Mode";
|
||||||
|
"Premium.Stories.Stealth.Text" = "Hide the fact that you viewed other people's stories.";
|
||||||
|
|
||||||
|
"Premium.Stories.Views.Title" = "Permanent Views History";
|
||||||
|
"Premium.Stories.Views.Text" = "Check who opens your stories — even after they expire.";
|
||||||
|
|
||||||
|
"Premium.Stories.Expiration.Title" = "Expiration Durations";
|
||||||
|
"Premium.Stories.Expiration.Text" = "Set custom expiration durations like 6 or 48 hours for your stories.";
|
||||||
|
|
||||||
|
"Premium.Stories.Save.Title" = "Save Stories to Gallery";
|
||||||
|
"Premium.Stories.Save.Text" = "Save other people's unprotected stories to your Gallery.";
|
||||||
|
|
||||||
|
"Premium.Stories.Captions.Title" = "Longer Captions";
|
||||||
|
"Premium.Stories.Captions.Text" = "Add ten times longer captions to your stories.";
|
||||||
|
|
||||||
|
"Premium.Stories.Format.Title" = "Links and Formatting";
|
||||||
|
"Premium.Stories.Format.Text" = "Add links and formatting in captions to your stories.";
|
||||||
|
|
||||||
"Premium.MaxExpiringStoriesText" = "You can post **%@** stories in **24** hours. Subscribe to **Telegram Premium** to increase this limit to **%@**.";
|
"Premium.MaxExpiringStoriesText" = "You can post **%@** stories in **24** hours. Subscribe to **Telegram Premium** to increase this limit to **%@**.";
|
||||||
"Premium.MaxExpiringStoriesNoPremiumText" = "You have reached the limit of **%@** stories per **24** hours.";
|
"Premium.MaxExpiringStoriesNoPremiumText" = "You have reached the limit of **%@** stories per **24** hours.";
|
||||||
"Premium.MaxExpiringStoriesFinalText" = "You have reached the limit of **%@** stories per **24** hours.";
|
"Premium.MaxExpiringStoriesFinalText" = "You have reached the limit of **%@** stories per **24** hours.";
|
||||||
|
@ -2049,7 +2049,7 @@ final class StoryStickersContentView: UIView, EmojiCustomContentView {
|
|||||||
self.locationAction()
|
self.locationAction()
|
||||||
}
|
}
|
||||||
|
|
||||||
func update(theme: PresentationTheme, useOpaqueTheme: Bool, availableSize: CGSize, transition: Transition) -> CGSize {
|
func update(theme: PresentationTheme, strings: PresentationStrings, useOpaqueTheme: Bool, availableSize: CGSize, transition: Transition) -> CGSize {
|
||||||
if useOpaqueTheme {
|
if useOpaqueTheme {
|
||||||
self.backgroundLayer.backgroundColor = theme.chat.inputMediaPanel.panelContentControlOpaqueSelectionColor.cgColor
|
self.backgroundLayer.backgroundColor = theme.chat.inputMediaPanel.panelContentControlOpaqueSelectionColor.cgColor
|
||||||
self.tintBackgroundLayer.backgroundColor = UIColor.white.cgColor
|
self.tintBackgroundLayer.backgroundColor = UIColor.white.cgColor
|
||||||
@ -2065,7 +2065,7 @@ final class StoryStickersContentView: UIView, EmojiCustomContentView {
|
|||||||
let titleSize = self.title.update(
|
let titleSize = self.title.update(
|
||||||
transition: .immediate,
|
transition: .immediate,
|
||||||
component: AnyComponent(Text(
|
component: AnyComponent(Text(
|
||||||
text: "ADD LOCATION",
|
text: strings.MediaEditor_AddLocation.uppercased(),
|
||||||
font: Font.with(size: 23.0, design: .camera),
|
font: Font.with(size: 23.0, design: .camera),
|
||||||
color: .white
|
color: .white
|
||||||
)),
|
)),
|
||||||
|
@ -360,7 +360,8 @@ public enum PremiumPerk: CaseIterable {
|
|||||||
.appIcons,
|
.appIcons,
|
||||||
.animatedEmoji,
|
.animatedEmoji,
|
||||||
.emojiStatus,
|
.emojiStatus,
|
||||||
.translation
|
.translation,
|
||||||
|
.stories
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1614,17 +1615,6 @@ private final class PremiumIntroScreenContentComponent: CombinedComponent {
|
|||||||
)
|
)
|
||||||
context.add(text
|
context.add(text
|
||||||
.position(CGPoint(x: size.width / 2.0, y: size.height + text.size.height / 2.0))
|
.position(CGPoint(x: size.width / 2.0, y: size.height + text.size.height / 2.0))
|
||||||
// .update(Transition.Update { _, view, _ in
|
|
||||||
// if let snapshot = view.snapshotView(afterScreenUpdates: false) {
|
|
||||||
// let transition = Transition(animation: .curve(duration: 0.2, curve: .easeInOut))
|
|
||||||
// view.superview?.addSubview(snapshot)
|
|
||||||
// transition.setAlpha(view: snapshot, alpha: 0.0, completion: { [weak snapshot] _ in
|
|
||||||
// snapshot?.removeFromSuperview()
|
|
||||||
// })
|
|
||||||
// snapshot.frame = view.frame
|
|
||||||
// transition.animateAlpha(view: view, from: 0.0, to: 1.0)
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
)
|
)
|
||||||
size.height += text.size.height
|
size.height += text.size.height
|
||||||
size.height += 21.0
|
size.height += 21.0
|
||||||
|
@ -309,7 +309,7 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
|
|
||||||
return { context in
|
return { context in
|
||||||
let theme = context.component.theme
|
let theme = context.component.theme
|
||||||
// let strings = context.component.context.sharedContext.currentPresentationData.with { $0 }.strings
|
let strings = context.component.context.sharedContext.currentPresentationData.with { $0 }.strings
|
||||||
|
|
||||||
let colors = [
|
let colors = [
|
||||||
UIColor(rgb: 0x0275f3),
|
UIColor(rgb: 0x0275f3),
|
||||||
@ -343,9 +343,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "order",
|
id: "order",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Priority Order",
|
title: strings.Premium_Stories_Order_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Get more views as your stories are always displayed first.",
|
text: strings.Premium_Stories_Order_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Order",
|
iconName: "Premium/Stories/Order",
|
||||||
iconColor: colors[0]
|
iconColor: colors[0]
|
||||||
@ -357,9 +357,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "stealth",
|
id: "stealth",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Stealth Mode",
|
title: strings.Premium_Stories_Stealth_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Hide the fact that you viewed other people's stories.",
|
text: strings.Premium_Stories_Stealth_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Stealth",
|
iconName: "Premium/Stories/Stealth",
|
||||||
iconColor: colors[1]
|
iconColor: colors[1]
|
||||||
@ -371,9 +371,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "views",
|
id: "views",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Permanent Views History",
|
title: strings.Premium_Stories_Views_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Check who opens your stories — even after they expire.",
|
text: strings.Premium_Stories_Views_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Views",
|
iconName: "Premium/Stories/Views",
|
||||||
iconColor: colors[2]
|
iconColor: colors[2]
|
||||||
@ -385,9 +385,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "expiration",
|
id: "expiration",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Expiration Durations",
|
title: strings.Premium_Stories_Expiration_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Set custom expiration durations like 6 or 48 hours for your stories.",
|
text: strings.Premium_Stories_Expiration_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Expire",
|
iconName: "Premium/Stories/Expire",
|
||||||
iconColor: colors[3]
|
iconColor: colors[3]
|
||||||
@ -399,9 +399,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "save",
|
id: "save",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Save Stories to Gallery",
|
title: strings.Premium_Stories_Save_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Save other people's unprotected stories to your Gallery.",
|
text: strings.Premium_Stories_Save_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Save",
|
iconName: "Premium/Stories/Save",
|
||||||
iconColor: colors[4]
|
iconColor: colors[4]
|
||||||
@ -413,9 +413,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "captions",
|
id: "captions",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Longer Captions",
|
title: strings.Premium_Stories_Captions_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Add ten times longer captions to your stories.",
|
text: strings.Premium_Stories_Captions_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Caption",
|
iconName: "Premium/Stories/Caption",
|
||||||
iconColor: colors[5]
|
iconColor: colors[5]
|
||||||
@ -427,9 +427,9 @@ private final class StoriesListComponent: CombinedComponent {
|
|||||||
AnyComponentWithIdentity(
|
AnyComponentWithIdentity(
|
||||||
id: "format",
|
id: "format",
|
||||||
component: AnyComponent(ParagraphComponent(
|
component: AnyComponent(ParagraphComponent(
|
||||||
title: "Links and Formatting",
|
title: strings.Premium_Stories_Format_Title,
|
||||||
titleColor: titleColor,
|
titleColor: titleColor,
|
||||||
text: "Add links and formatting in captions to your stories.",
|
text: strings.Premium_Stories_Format_Text,
|
||||||
textColor: textColor,
|
textColor: textColor,
|
||||||
iconName: "Premium/Stories/Format",
|
iconName: "Premium/Stories/Format",
|
||||||
iconColor: colors[6]
|
iconColor: colors[6]
|
||||||
@ -581,7 +581,7 @@ final class StoriesPageComponent: CombinedComponent {
|
|||||||
state.isDisplaying = environment.isDisplaying
|
state.isDisplaying = environment.isDisplaying
|
||||||
|
|
||||||
let theme = context.component.theme
|
let theme = context.component.theme
|
||||||
// let strings = context.component.context.sharedContext.currentPresentationData.with { $0 }.strings
|
let strings = context.component.context.sharedContext.currentPresentationData.with { $0 }.strings
|
||||||
|
|
||||||
let topInset: CGFloat = 56.0
|
let topInset: CGFloat = 56.0
|
||||||
|
|
||||||
@ -641,7 +641,7 @@ final class StoriesPageComponent: CombinedComponent {
|
|||||||
|
|
||||||
let title = title.update(
|
let title = title.update(
|
||||||
component: MultilineTextComponent(
|
component: MultilineTextComponent(
|
||||||
text: .plain(NSAttributedString(string: "Upgraded Stories", font: Font.semibold(20.0), textColor: theme.rootController.navigationBar.primaryTextColor)),
|
text: .plain(NSAttributedString(string: strings.Premium_Stories_Title, font: Font.semibold(20.0), textColor: theme.rootController.navigationBar.primaryTextColor)),
|
||||||
horizontalAlignment: .center,
|
horizontalAlignment: .center,
|
||||||
truncationType: .end,
|
truncationType: .end,
|
||||||
maximumNumberOfLines: 1
|
maximumNumberOfLines: 1
|
||||||
@ -652,7 +652,7 @@ final class StoriesPageComponent: CombinedComponent {
|
|||||||
|
|
||||||
let secondaryTitle = secondaryTitle.update(
|
let secondaryTitle = secondaryTitle.update(
|
||||||
component: MultilineTextComponent(
|
component: MultilineTextComponent(
|
||||||
text: .plain(NSAttributedString(string: "Exclusive Features in Stories", font: Font.semibold(17.0), textColor: theme.rootController.navigationBar.primaryTextColor)),
|
text: .plain(NSAttributedString(string: strings.Premium_Stories_AdditionalTitle, font: Font.semibold(17.0), textColor: theme.rootController.navigationBar.primaryTextColor)),
|
||||||
horizontalAlignment: .center,
|
horizontalAlignment: .center,
|
||||||
truncationType: .end,
|
truncationType: .end,
|
||||||
maximumNumberOfLines: 1
|
maximumNumberOfLines: 1
|
||||||
|
@ -2213,7 +2213,7 @@ public protocol EmojiContentPeekBehavior: AnyObject {
|
|||||||
public protocol EmojiCustomContentView: UIView {
|
public protocol EmojiCustomContentView: UIView {
|
||||||
var tintContainerView: UIView { get }
|
var tintContainerView: UIView { get }
|
||||||
|
|
||||||
func update(theme: PresentationTheme, useOpaqueTheme: Bool, availableSize: CGSize, transition: Transition) -> CGSize
|
func update(theme: PresentationTheme, strings: PresentationStrings, useOpaqueTheme: Bool, availableSize: CGSize, transition: Transition) -> CGSize
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class EmojiPagerContentComponent: Component {
|
public final class EmojiPagerContentComponent: Component {
|
||||||
@ -6562,7 +6562,7 @@ public final class EmojiPagerContentComponent: Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let availableCustomContentSize = availableSize
|
let availableCustomContentSize = availableSize
|
||||||
let customContentViewSize = customContentView.update(theme: keyboardChildEnvironment.theme, useOpaqueTheme: useOpaqueTheme, availableSize: availableCustomContentSize, transition: customContentViewTransition)
|
let customContentViewSize = customContentView.update(theme: keyboardChildEnvironment.theme, strings: keyboardChildEnvironment.strings, useOpaqueTheme: useOpaqueTheme, availableSize: availableCustomContentSize, transition: customContentViewTransition)
|
||||||
customContentViewTransition.setFrame(view: customContentView, frame: CGRect(origin: CGPoint(x: 0.0, y: pagerEnvironment.containerInsets.top + (component.displaySearchWithPlaceholder != nil ? 54.0 : 0.0)), size: customContentViewSize))
|
customContentViewTransition.setFrame(view: customContentView, frame: CGRect(origin: CGPoint(x: 0.0, y: pagerEnvironment.containerInsets.top + (component.displaySearchWithPlaceholder != nil ? 54.0 : 0.0)), size: customContentViewSize))
|
||||||
|
|
||||||
customContentHeight = customContentViewSize.height
|
customContentHeight = customContentViewSize.height
|
||||||
|
@ -503,6 +503,12 @@ public final class MediaEditor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let player {
|
if let player {
|
||||||
|
player.isMuted = self.values.videoIsMuted
|
||||||
|
if let trimRange = self.values.videoTrimRange {
|
||||||
|
self.player?.currentItem?.forwardPlaybackEndTime = CMTime(seconds: trimRange.upperBound, preferredTimescale: CMTimeScale(1000))
|
||||||
|
self.additionalPlayer?.currentItem?.forwardPlaybackEndTime = CMTime(seconds: trimRange.upperBound, preferredTimescale: CMTimeScale(1000))
|
||||||
|
}
|
||||||
|
|
||||||
if let initialSeekPosition = self.initialSeekPosition {
|
if let initialSeekPosition = self.initialSeekPosition {
|
||||||
self.initialSeekPosition = nil
|
self.initialSeekPosition = nil
|
||||||
player.seek(to: CMTime(seconds: initialSeekPosition, preferredTimescale: CMTimeScale(1000)), toleranceBefore: .zero, toleranceAfter: .zero)
|
player.seek(to: CMTime(seconds: initialSeekPosition, preferredTimescale: CMTimeScale(1000)), toleranceBefore: .zero, toleranceAfter: .zero)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user