diff --git a/Telegram/Telegram-iOS/en.lproj/Localizable.strings b/Telegram/Telegram-iOS/en.lproj/Localizable.strings index e6f754d3c0..8481a453da 100644 --- a/Telegram/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram/Telegram-iOS/en.lproj/Localizable.strings @@ -9552,8 +9552,9 @@ Sorry for the inconvenience."; "Story.ContextDeleteStory" = "Delete Story"; -"Story.TooltipPrivacyCloseFriendsMy" = "Only people from your close friends list will see this story."; "Story.TooltipPrivacyCloseFriends" = "You are seeing this story because you have\nbeen added to %@'s list of close friends."; +"Story.TooltipPrivacyContacts" = "Only %@'s contacts can view this story."; +"Story.TooltipPrivacySelectedContacts" = "Only some contacts %@ selected can view this story."; "Story.ToastViewInChat" = "View in Chat"; "Story.ToastReactionSent" = "Reaction Sent."; diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift index 9ab5955f23..8274a49433 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift @@ -363,7 +363,7 @@ public final class StoryItemSetContainerComponent: Component { let moreButton = ComponentView() let soundButton = ComponentView() - var closeFriendIcon: ComponentView? + var privacyIcon: ComponentView? var captionItem: CaptionItem? @@ -1314,7 +1314,7 @@ public final class StoryItemSetContainerComponent: Component { if let soundButtonView = self.soundButton.view { soundButtonView.layer.animateAlpha(from: 0.0, to: soundButtonView.alpha, duration: 0.25) } - if let closeFriendIcon = self.closeFriendIcon?.view { + if let closeFriendIcon = self.privacyIcon?.view { closeFriendIcon.layer.animateAlpha(from: 0.0, to: closeFriendIcon.alpha, duration: 0.25) } self.closeButton.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) @@ -1455,7 +1455,7 @@ public final class StoryItemSetContainerComponent: Component { if let soundButtonView = self.soundButton.view { soundButtonView.layer.animateAlpha(from: soundButtonView.alpha, to: 0.0, duration: 0.25, removeOnCompletion: false) } - if let closeFriendIconView = self.closeFriendIcon?.view { + if let closeFriendIconView = self.privacyIcon?.view { closeFriendIconView.layer.animateAlpha(from: closeFriendIconView.alpha, to: 0.0, duration: 0.25, removeOnCompletion: false) } if let captionView = self.captionItem?.view.view { @@ -2443,38 +2443,62 @@ public final class StoryItemSetContainerComponent: Component { } } + let storyPrivacyIcon: StoryPrivacyIconComponent.Privacy? if component.slice.item.storyItem.isCloseFriends { - let closeFriendIcon: ComponentView - var closeFriendIconTransition = transition - if let current = self.closeFriendIcon { - closeFriendIcon = current + storyPrivacyIcon = .closeFriends + } else if component.slice.item.storyItem.isContacts { + storyPrivacyIcon = .contacts + } else if component.slice.item.storyItem.isSelectedContacts { + storyPrivacyIcon = .selectedContacts + } else if component.slice.peer.id == component.context.account.peerId { + storyPrivacyIcon = .everyone + } else { + storyPrivacyIcon = nil + } + + if let storyPrivacyIcon { + let privacyIcon: ComponentView + var privacyIconTransition = transition + if let current = self.privacyIcon { + privacyIcon = current } else { - closeFriendIconTransition = .immediate - closeFriendIcon = ComponentView() - self.closeFriendIcon = closeFriendIcon + privacyIconTransition = .immediate + privacyIcon = ComponentView() + self.privacyIcon = privacyIcon } - let closeFriendIconSize = closeFriendIcon.update( - transition: closeFriendIconTransition, + let closeFriendIconSize = privacyIcon.update( + transition: privacyIconTransition, component: AnyComponent(PlainButtonComponent( - content: AnyComponent(BundleIconComponent( - name: "Stories/CloseStoryIcon", - tintColor: nil, - maxSize: nil - )), + content: AnyComponent( + StoryPrivacyIconComponent( + privacy: storyPrivacyIcon, + isEditable: component.slice.peer.id == component.context.account.peerId + ) + ), effectAlignment: .center, action: { [weak self] in guard let self, let component = self.component else { return } - guard let closeFriendIconView = self.closeFriendIcon?.view else { + if component.slice.peer.id == component.context.account.peerId { + self.openItemPrivacySettings() + return + } + guard let closeFriendIconView = self.privacyIcon?.view else { return } let tooltipText: String - if component.slice.peer.id == component.context.account.peerId { - tooltipText = component.strings.Story_TooltipPrivacyCloseFriendsMy - } else { + switch storyPrivacyIcon { + case .closeFriends: tooltipText = component.strings.Story_TooltipPrivacyCloseFriends(component.slice.peer.compactDisplayTitle).string + case .contacts: + tooltipText = component.strings.Story_TooltipPrivacyContacts(component.slice.peer.compactDisplayTitle).string + case .selectedContacts: + tooltipText = component.strings.Story_TooltipPrivacySelectedContacts(component.slice.peer.compactDisplayTitle).string + case .everyone: + tooltipText = "" } + let tooltipScreen = TooltipScreen( account: component.context.account, sharedContext: component.context.sharedContext, @@ -2499,16 +2523,16 @@ public final class StoryItemSetContainerComponent: Component { containerSize: CGSize(width: 44.0, height: 44.0) ) let closeFriendIconFrame = CGRect(origin: CGPoint(x: headerRightOffset - closeFriendIconSize.width - 8.0, y: 23.0), size: closeFriendIconSize) - if let closeFriendIconView = closeFriendIcon.view { + if let closeFriendIconView = privacyIcon.view { if closeFriendIconView.superview == nil { self.controlsContainerView.addSubview(closeFriendIconView) } - closeFriendIconTransition.setFrame(view: closeFriendIconView, frame: closeFriendIconFrame) + privacyIconTransition.setFrame(view: closeFriendIconView, frame: closeFriendIconFrame) headerRightOffset -= 44.0 } - } else if let closeFriendIcon = self.closeFriendIcon { - self.closeFriendIcon = nil + } else if let closeFriendIcon = self.privacyIcon { + self.privacyIcon = nil closeFriendIcon.view?.removeFromSuperview() } diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryPrivacyIconComponent.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryPrivacyIconComponent.swift index a00d413ed4..fa886bfa5d 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryPrivacyIconComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryPrivacyIconComponent.swift @@ -41,48 +41,50 @@ final class StoryPrivacyIconComponent: Component { self.state = state let size = CGSize(width: component.isEditable ? 40.0 : 24.0, height: 24.0) - self.image = generateImage(size, rotatedContext: { size, context in + self.image = generateImage(size, contextGenerator: { size, context in + let bounds = CGRect(origin: .zero, size: size) + context.clear(bounds) + let path: CGPath if size.width == size.height { - path = CGPath(ellipseIn: CGRect(origin: .zero, size: size), transform: nil) + path = CGPath(ellipseIn: bounds, transform: nil) } else { - path = CGPath(roundedRect: CGRect(origin: .zero, size: size), cornerWidth: size.height / 2.0, cornerHeight: size.height / 2.0, transform: nil) + path = CGPath(roundedRect: bounds, cornerWidth: size.height / 2.0, cornerHeight: size.height / 2.0, transform: nil) } context.addPath(path) context.clip() - var locations: [CGFloat] = [0.0, 1.0] + var locations: [CGFloat] = [1.0, 0.0] let colors: [CGColor] - let icon: UIImage + var icon: UIImage? switch component.privacy { case .everyone: colors = [UIColor(rgb: 0x4faaff).cgColor, UIColor(rgb: 0x017aff).cgColor] - icon = UIImage() + icon = UIImage(bundleImageName: "Stories/PrivacyEveryone") case .closeFriends: colors = [UIColor(rgb: 0x87d93a).cgColor, UIColor(rgb: 0x31b73b).cgColor] - icon = UIImage() + icon = UIImage(bundleImageName: "Stories/PrivacyCloseFriends") case .contacts: colors = [UIColor(rgb: 0xc36eff).cgColor, UIColor(rgb: 0x8c61fa).cgColor] - icon = UIImage() + icon = UIImage(bundleImageName: "Stories/PrivacyContacts") case .selectedContacts: colors = [UIColor(rgb: 0xffb643).cgColor, UIColor(rgb: 0xf69a36).cgColor] - icon = UIImage() + icon = UIImage(bundleImageName: "Stories/PrivacySelectedContacts") } let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) - if let cgImage = icon.cgImage { - context.draw(cgImage, in: CGRect(origin: .zero, size: icon.size)) + if let icon, let cgImage = icon.cgImage { + context.draw(cgImage, in: CGRect(origin: CGPoint(x: component.isEditable ? 1.0 : 0.0, y: 0.0), size: icon.size)) } if component.isEditable { - let arrowIcon = UIImage() - if let cgImage = arrowIcon.cgImage { - context.draw(cgImage, in: CGRect(origin: .zero, size: icon.size)) + if let arrowIcon = UIImage(bundleImageName: "Stories/PrivacyDownArrow"), let cgImage = arrowIcon.cgImage { + context.draw(cgImage, in: CGRect(origin: CGPoint(x: size.width - arrowIcon.size.width - 6.0, y: floorToScreenPixels((size.height - arrowIcon.size.height) / 2.0)), size: arrowIcon.size)) } } }) diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/Contents.json new file mode 100644 index 0000000000..67afe0b0ef --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "close_friends.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/close_friends.pdf b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/close_friends.pdf new file mode 100644 index 0000000000..736b55cd3f --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyCloseFriends.imageset/close_friends.pdf @@ -0,0 +1,156 @@ +%PDF-1.7 + +1 0 obj + << /Type /XObject + /Length 2 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 3.639893 6.344296 cm +1.000000 1.000000 1.000000 scn +7.906197 0.972034 m +8.185396 1.140079 8.534603 1.140079 8.813802 0.972034 c +11.741163 -0.789910 l +12.407873 -1.191195 13.229085 -0.593198 13.051833 0.164504 c +12.276699 3.477976 l +12.202148 3.796658 12.310615 4.130385 12.558279 4.344343 c +15.138153 6.573098 l +15.727732 7.082436 15.413402 8.050200 14.637055 8.115883 c +11.237473 8.403505 l +10.912478 8.431002 10.629348 8.635992 10.501773 8.936163 c +9.169889 12.069943 l +8.866268 12.784330 7.853731 12.784333 7.550110 12.069945 c +6.218227 8.936163 l +6.090652 8.635993 5.807520 8.431002 5.482525 8.403505 c +2.082942 8.115883 l +1.306596 8.050200 0.992266 7.082436 1.581845 6.573099 c +4.161719 4.344343 l +4.409384 4.130385 4.517849 3.796658 4.443299 3.477976 c +3.668166 0.164505 l +3.490914 -0.593197 4.312125 -1.191195 4.978834 -0.789911 c +7.906197 0.972034 l +h +f* +n +Q + +endstream +endobj + +2 0 obj + 934 +endobj + +3 0 obj + << /Type /XObject + /Length 4 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm +0.850980 0.850980 0.850980 scn +24.000000 12.000000 m +24.000000 5.372583 18.627417 0.000000 12.000000 0.000000 c +5.372583 0.000000 0.000000 5.372583 0.000000 12.000000 c +0.000000 18.627417 5.372583 24.000000 12.000000 24.000000 c +18.627417 24.000000 24.000000 18.627417 24.000000 12.000000 c +h +f +n +Q + +endstream +endobj + +4 0 obj + 387 +endobj + +5 0 obj + << /XObject << /X1 1 0 R >> + /ExtGState << /E1 << /SMask << /Type /Mask + /G 3 0 R + /S /Alpha + >> + /Type /ExtGState + >> >> + >> +endobj + +6 0 obj + << /Length 7 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +/E1 gs +/X1 Do +Q + +endstream +endobj + +7 0 obj + 46 +endobj + +8 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] + /Resources 5 0 R + /Contents 6 0 R + /Parent 9 0 R + >> +endobj + +9 0 obj + << /Kids [ 8 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +10 0 obj + << /Pages 9 0 R + /Type /Catalog + >> +endobj + +xref +0 11 +0000000000 65535 f +0000000010 00000 n +0000001192 00000 n +0000001214 00000 n +0000001849 00000 n +0000001871 00000 n +0000002169 00000 n +0000002271 00000 n +0000002292 00000 n +0000002465 00000 n +0000002539 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 10 0 R + /Size 11 +>> +startxref +2599 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/Contents.json new file mode 100644 index 0000000000..4642ccf40c --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "contacts.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/contacts.pdf b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/contacts.pdf new file mode 100644 index 0000000000..87787ae0d4 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyContacts.imageset/contacts.pdf @@ -0,0 +1,231 @@ +%PDF-1.7 + +1 0 obj + << /Type /XObject + /Length 2 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 4.832031 4.831968 cm +1.000000 1.000000 1.000000 scn +14.336000 7.168000 m +14.336000 3.209223 11.126778 0.000000 7.168000 0.000000 c +3.209223 0.000000 0.000000 3.209223 0.000000 7.168000 c +0.000000 11.126778 3.209223 14.336000 7.168000 14.336000 c +11.126778 14.336000 14.336000 11.126778 14.336000 7.168000 c +h +11.029660 3.789469 m +10.114908 4.571531 8.827744 4.962564 7.168171 4.962564 c +5.510108 4.962564 4.223779 4.572244 3.308579 3.791444 c +3.198709 3.697709 3.054291 3.543928 2.930439 3.405277 c +2.778217 3.234865 2.788850 2.976903 2.952451 2.817385 c +3.073660 2.699200 3.210053 2.570437 3.310692 2.487403 c +4.359039 1.622445 5.702928 1.102871 7.168171 1.102871 c +8.634604 1.102871 9.979486 1.623290 11.028034 2.489694 c +11.127872 2.572187 11.263104 2.699939 11.383461 2.817362 c +11.546887 2.976804 11.557580 3.234535 11.405600 3.404923 c +11.282407 3.543037 11.138890 3.696083 11.029660 3.789469 c +h +9.373669 8.822415 m +9.373669 10.040501 8.386215 11.027954 7.168130 11.027954 c +5.950045 11.027954 4.962592 10.040501 4.962592 8.822415 c +4.962592 7.604330 5.950045 6.616877 7.168130 6.616877 c +8.386215 6.616877 9.373669 7.604330 9.373669 8.822415 c +h +f* +n +Q + +endstream +endobj + +2 0 obj + 1228 +endobj + +3 0 obj + << /Type /XObject + /Length 4 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm +0.850980 0.850980 0.850980 scn +24.000000 12.000000 m +24.000000 5.372583 18.627417 0.000000 12.000000 0.000000 c +5.372583 0.000000 0.000000 5.372583 0.000000 12.000000 c +0.000000 18.627417 5.372583 24.000000 12.000000 24.000000 c +18.627417 24.000000 24.000000 18.627417 24.000000 12.000000 c +h +f +n +Q + +endstream +endobj + +4 0 obj + 387 +endobj + +5 0 obj + << /Type /XObject + /Length 6 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << /XObject << /X1 1 0 R >> + /ExtGState << /E1 << /SMask << /Type /Mask + /G 3 0 R + /S /Alpha + >> + /Type /ExtGState + >> >> + >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +/E1 gs +/X1 Do +Q + +endstream +endobj + +6 0 obj + 46 +endobj + +7 0 obj + << /Type /XObject + /Length 8 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm +0.000000 0.000000 0.000000 scn +0.000000 12.000000 m +0.000000 18.627417 5.372584 24.000000 12.000000 24.000000 c +12.000000 24.000000 l +18.627417 24.000000 24.000000 18.627417 24.000000 12.000000 c +24.000000 12.000000 l +24.000000 5.372583 18.627417 0.000000 12.000000 0.000000 c +12.000000 0.000000 l +5.372584 0.000000 0.000000 5.372583 0.000000 12.000000 c +0.000000 12.000000 l +h +f +n +Q + +endstream +endobj + +8 0 obj + 472 +endobj + +9 0 obj + << /XObject << /X1 5 0 R >> + /ExtGState << /E1 << /SMask << /Type /Mask + /G 7 0 R + /S /Alpha + >> + /Type /ExtGState + >> >> + >> +endobj + +10 0 obj + << /Length 11 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +/E1 gs +/X1 Do +Q + +endstream +endobj + +11 0 obj + 46 +endobj + +12 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] + /Resources 9 0 R + /Contents 10 0 R + /Parent 13 0 R + >> +endobj + +13 0 obj + << /Kids [ 12 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +14 0 obj + << /Pages 13 0 R + /Type /Catalog + >> +endobj + +xref +0 15 +0000000000 65535 f +0000000010 00000 n +0000001486 00000 n +0000001509 00000 n +0000002144 00000 n +0000002166 00000 n +0000002832 00000 n +0000002853 00000 n +0000003573 00000 n +0000003595 00000 n +0000003893 00000 n +0000003997 00000 n +0000004019 00000 n +0000004195 00000 n +0000004271 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 14 0 R + /Size 15 +>> +startxref +4332 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/Contents.json new file mode 100644 index 0000000000..3ca99e47a9 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "down_arrow.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/down_arrow.pdf b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/down_arrow.pdf new file mode 100644 index 0000000000..8fd7dc5250 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyDownArrow.imageset/down_arrow.pdf @@ -0,0 +1,92 @@ +%PDF-1.7 + +1 0 obj + << >> +endobj + +2 0 obj + << /Length 3 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +0.000000 -1.000000 1.000000 0.000000 3.205152 5.500000 cm +1.000000 1.000000 1.000000 scn +0.470226 5.930075 m +0.210527 6.189774 -0.210527 6.189774 -0.470226 5.930075 c +-0.729925 5.670377 -0.729925 5.249322 -0.470226 4.989624 c +0.470226 5.930075 l +h +4.000000 1.459849 m +4.470226 0.989624 l +4.729925 1.249322 4.729925 1.670377 4.470226 1.930075 c +4.000000 1.459849 l +h +-0.470226 -2.069925 m +-0.729925 -2.329623 -0.729925 -2.750678 -0.470226 -3.010377 c +-0.210527 -3.270076 0.210527 -3.270076 0.470226 -3.010377 c +-0.470226 -2.069925 l +h +-0.470226 4.989624 m +3.529774 0.989624 l +4.470226 1.930075 l +0.470226 5.930075 l +-0.470226 4.989624 l +h +3.529774 1.930075 m +-0.470226 -2.069925 l +0.470226 -3.010377 l +4.470226 0.989624 l +3.529774 1.930075 l +h +f +n +Q + +endstream +endobj + +3 0 obj + 779 +endobj + +4 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 9.330002 8.000000 ] + /Resources 1 0 R + /Contents 2 0 R + /Parent 5 0 R + >> +endobj + +5 0 obj + << /Kids [ 4 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +6 0 obj + << /Pages 5 0 R + /Type /Catalog + >> +endobj + +xref +0 7 +0000000000 65535 f +0000000010 00000 n +0000000034 00000 n +0000000869 00000 n +0000000891 00000 n +0000001062 00000 n +0000001136 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 6 0 R + /Size 7 +>> +startxref +1195 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/Contents.json new file mode 100644 index 0000000000..a25b2d156e --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "public.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/public.pdf b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/public.pdf new file mode 100644 index 0000000000..450de26491 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacyEveryone.imageset/public.pdf @@ -0,0 +1,100 @@ +%PDF-1.7 + +1 0 obj + << >> +endobj + +2 0 obj + << /Length 3 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 6.000000 5.519524 cm +1.000000 1.000000 1.000000 scn +2.823530 4.239948 m +4.682996 4.239948 l +4.857792 4.239948 4.945190 4.239948 5.030216 4.233620 c +5.423162 4.204372 5.801950 4.074408 6.130080 3.856249 c +6.201078 3.809046 6.270064 3.755390 6.408029 3.648083 c +6.408045 3.648071 l +8.050591 2.370535 l +9.317920 1.384834 9.951585 0.891985 10.483602 0.896511 c +10.946416 0.900450 11.382551 1.113756 11.669800 1.476662 c +12.000000 1.893831 12.000000 2.696596 12.000000 4.302126 c +12.000000 9.824834 l +12.000000 11.430362 12.000000 12.233126 11.669800 12.650295 c +11.382551 13.013201 10.946416 13.226507 10.483602 13.230446 c +9.951585 13.234972 9.317920 12.742123 8.050591 11.756422 c +6.408045 10.478886 l +6.270069 10.371571 6.201080 10.317913 6.130080 10.270708 c +5.801950 10.052550 5.423162 9.922585 5.030216 9.893337 c +4.945190 9.887009 4.857792 9.887009 4.682995 9.887009 c +2.823529 9.887009 l +1.264137 9.887009 0.000000 8.622871 0.000000 7.063478 c +0.000000 5.504086 1.264137 4.239948 2.823530 4.239948 c +h +2.867944 2.794148 m +2.823317 2.669311 2.823317 2.513694 2.823317 2.202460 c +2.823317 1.416263 l +2.823317 0.636566 3.455386 0.004498 4.235082 0.004498 c +5.014778 0.004498 5.646847 0.636567 5.646847 1.416263 c +5.646847 2.202461 l +5.646847 2.513694 5.646847 2.669311 5.602220 2.794148 c +5.525096 3.009894 5.355299 3.179691 5.139553 3.256816 c +5.014715 3.301442 4.859099 3.301442 4.547866 3.301442 c +3.922298 3.301442 l +3.611065 3.301442 3.455449 3.301442 3.330611 3.256816 c +3.114865 3.179691 2.945068 3.009894 2.867944 2.794148 c +h +f* +n +Q + +endstream +endobj + +3 0 obj + 1610 +endobj + +4 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] + /Resources 1 0 R + /Contents 2 0 R + /Parent 5 0 R + >> +endobj + +5 0 obj + << /Kids [ 4 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +6 0 obj + << /Pages 5 0 R + /Type /Catalog + >> +endobj + +xref +0 7 +0000000000 65535 f +0000000010 00000 n +0000000034 00000 n +0000001700 00000 n +0000001723 00000 n +0000001896 00000 n +0000001970 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 6 0 R + /Size 7 +>> +startxref +2029 +%%EOF \ No newline at end of file diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/Contents.json new file mode 100644 index 0000000000..5b50320b23 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "selected_contacts.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/selected_contacts.pdf b/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/selected_contacts.pdf new file mode 100644 index 0000000000..1b71010876 --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Stories/PrivacySelectedContacts.imageset/selected_contacts.pdf @@ -0,0 +1,162 @@ +%PDF-1.7 + +1 0 obj + << /Type /XObject + /Length 2 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 4.660004 6.674881 cm +1.000000 1.000000 1.000000 scn +5.146568 6.930217 m +6.422345 6.930217 7.456567 7.964439 7.456567 9.240217 c +7.456567 10.515994 6.422345 11.550217 5.146568 11.550217 c +3.870790 11.550217 2.836568 10.515994 2.836568 9.240217 c +2.836568 7.964439 3.870790 6.930217 5.146568 6.930217 c +h +10.427466 6.930110 m +11.520990 6.930110 12.407467 7.816586 12.407467 8.910110 c +12.407467 10.003633 11.520990 10.890109 10.427466 10.890109 c +9.333943 10.890109 8.447467 10.003633 8.447467 8.910110 c +8.447467 7.816586 9.333943 6.930110 10.427466 6.930110 c +h +5.146821 5.280002 m +8.024133 5.280002 9.425701 3.891067 10.108419 2.537938 c +10.765203 1.236212 9.574854 0.000002 8.116822 0.000002 c +2.176821 0.000002 l +0.718790 0.000002 -0.471559 1.236211 0.185224 2.537937 c +0.867942 3.891067 2.269510 5.280002 5.146821 5.280002 c +h +8.928054 5.152647 m +9.879559 4.534925 10.495606 3.718197 10.891599 2.933352 c +11.169246 2.383063 11.227625 1.827765 11.121881 1.320235 c +12.736839 1.320235 l +13.830363 1.320235 14.721933 2.245488 14.238333 3.226266 c +13.722783 4.271839 12.651772 5.357882 10.426840 5.357882 c +9.850128 5.357882 9.350945 5.284914 8.918867 5.158597 c +8.928054 5.152647 l +h +f* +n +Q + +endstream +endobj + +2 0 obj + 1259 +endobj + +3 0 obj + << /Type /XObject + /Length 4 0 R + /Group << /Type /Group + /S /Transparency + >> + /Subtype /Form + /Resources << >> + /BBox [ 0.000000 0.000000 24.000000 24.000000 ] + >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm +0.850980 0.850980 0.850980 scn +24.000000 12.000000 m +24.000000 5.372583 18.627417 0.000000 12.000000 0.000000 c +5.372583 0.000000 0.000000 5.372583 0.000000 12.000000 c +0.000000 18.627417 5.372583 24.000000 12.000000 24.000000 c +18.627417 24.000000 24.000000 18.627417 24.000000 12.000000 c +h +f +n +Q + +endstream +endobj + +4 0 obj + 387 +endobj + +5 0 obj + << /XObject << /X1 1 0 R >> + /ExtGState << /E1 << /SMask << /Type /Mask + /G 3 0 R + /S /Alpha + >> + /Type /ExtGState + >> >> + >> +endobj + +6 0 obj + << /Length 7 0 R >> +stream +/DeviceRGB CS +/DeviceRGB cs +q +/E1 gs +/X1 Do +Q + +endstream +endobj + +7 0 obj + 46 +endobj + +8 0 obj + << /Annots [] + /Type /Page + /MediaBox [ 0.000000 0.000000 24.000000 24.000000 ] + /Resources 5 0 R + /Contents 6 0 R + /Parent 9 0 R + >> +endobj + +9 0 obj + << /Kids [ 8 0 R ] + /Count 1 + /Type /Pages + >> +endobj + +10 0 obj + << /Pages 9 0 R + /Type /Catalog + >> +endobj + +xref +0 11 +0000000000 65535 f +0000000010 00000 n +0000001517 00000 n +0000001540 00000 n +0000002175 00000 n +0000002197 00000 n +0000002495 00000 n +0000002597 00000 n +0000002618 00000 n +0000002791 00000 n +0000002865 00000 n +trailer +<< /ID [ (some) (id) ] + /Root 10 0 R + /Size 11 +>> +startxref +2925 +%%EOF \ No newline at end of file