Various improvements

This commit is contained in:
Ilya Laktyushin 2023-03-01 16:43:06 +04:00
parent 145a23627a
commit 1071f76fcf
125 changed files with 244 additions and 4678 deletions

View File

@ -628,7 +628,7 @@ final class InnerTextSelectionTipContainerNode: ASDisplayNode {
switch presentation {
case .modal:
self.shadowNode.isHidden = true
case .inline:
case .inline, .additional:
self.shadowNode.isHidden = false
}

View File

@ -2344,6 +2344,7 @@ public final class ContextController: ViewController, StandalonePresentableContr
public struct Items {
public enum Content {
case list([ContextMenuItem])
case twoLists([ContextMenuItem], [ContextMenuItem])
case custom(ContextControllerItemsContent)
}

View File

@ -818,16 +818,18 @@ final class ContextControllerActionsCustomStackItem: ContextControllerActionsSta
}
}
func makeContextControllerActionsStackItem(items: ContextController.Items) -> ContextControllerActionsStackItem {
func makeContextControllerActionsStackItem(items: ContextController.Items) -> [ContextControllerActionsStackItem] {
var reactionItems: (context: AccountContext, reactionItems: [ReactionContextItem], selectedReactionItems: Set<MessageReaction.Reaction>, animationCache: AnimationCache, getEmojiContent: ((AnimationCache, MultiAnimationRenderer) -> Signal<EmojiPagerContentComponent, NoError>)?)?
if let context = items.context, let animationCache = items.animationCache, !items.reactionItems.isEmpty {
reactionItems = (context, items.reactionItems, items.selectedReactionItems, animationCache, items.getEmojiContent)
}
switch items.content {
case let .list(listItems):
return ContextControllerActionsListStackItem(items: listItems, reactionItems: reactionItems, tip: items.tip, tipSignal: items.tipSignal)
return [ContextControllerActionsListStackItem(items: listItems, reactionItems: reactionItems, tip: items.tip, tipSignal: items.tipSignal)]
case let .twoLists(listItems1, listItems2):
return [ContextControllerActionsListStackItem(items: listItems1, reactionItems: nil, tip: nil, tipSignal: nil), ContextControllerActionsListStackItem(items: listItems2, reactionItems: nil, tip: nil, tipSignal: nil)]
case let .custom(customContent):
return ContextControllerActionsCustomStackItem(content: customContent, reactionItems: reactionItems, tip: items.tip, tipSignal: items.tipSignal)
return [ContextControllerActionsCustomStackItem(content: customContent, reactionItems: reactionItems, tip: items.tip, tipSignal: items.tipSignal)]
}
}
@ -835,6 +837,7 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
enum Presentation {
case modal
case inline
case additional
}
final class NavigationContainer: ASDisplayNode, UIGestureRecognizerDelegate {
@ -925,6 +928,9 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
case .inline:
self.backgroundNode.updateColor(color: presentationData.theme.contextMenu.backgroundColor, enableBlur: true, forceKeepBlur: true, transition: transition)
self.parentShadowNode.isHidden = false
case .additional:
self.backgroundNode.updateColor(color: presentationData.theme.contextMenu.backgroundColor.withMultipliedAlpha(0.5), enableBlur: true, forceKeepBlur: true, transition: transition)
self.parentShadowNode.isHidden = false
}
self.backgroundNode.update(size: size, transition: transition)
}

View File

@ -189,7 +189,10 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
private var contentNode: ContentNode?
private let contentRectDebugNode: ASDisplayNode
private var actionsContainerNode: ASDisplayNode
private let actionsStackNode: ContextControllerActionsStackNode
private let additionalActionsStackNode: ContextControllerActionsStackNode
private var validLayout: ContainerViewLayout?
private var animatingOutState: AnimatingOutState?
@ -247,6 +250,7 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
self.contentRectDebugNode.isUserInteractionEnabled = false
self.contentRectDebugNode.backgroundColor = UIColor.red.withAlphaComponent(0.2)
self.actionsContainerNode = ASDisplayNode()
self.actionsStackNode = ContextControllerActionsStackNode(
getController: getController,
requestDismiss: { result in
@ -255,6 +259,14 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
requestUpdate: requestUpdate
)
self.additionalActionsStackNode = ContextControllerActionsStackNode(
getController: getController,
requestDismiss: { result in
requestDismiss(result)
},
requestUpdate: requestUpdate
)
super.init()
self.addSubnode(self.backgroundNode)
@ -262,8 +274,10 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
self.clippingNode.addSubnode(self.scrollNode)
self.scrollNode.addSubnode(self.dismissTapNode)
self.scrollNode.addSubnode(self.dismissAccessibilityArea)
self.scrollNode.addSubnode(self.actionsStackNode)
self.scrollNode.addSubnode(self.actionsContainerNode)
self.actionsContainerNode.addSubnode(self.additionalActionsStackNode)
self.actionsContainerNode.addSubnode(self.actionsStackNode)
self.scroller.delegate = self
self.dismissTapNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismissTapGesture(_:))))
@ -406,7 +420,13 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
}
func replaceItems(items: ContextController.Items, animated: Bool) {
self.actionsStackNode.replace(item: makeContextControllerActionsStackItem(items: items), animated: animated)
if case .twoLists = items.content {
let stackItems = makeContextControllerActionsStackItem(items: items)
self.actionsStackNode.replace(item: stackItems.first!, animated: animated)
self.additionalActionsStackNode.replace(item: stackItems.last!, animated: animated)
} else {
self.actionsStackNode.replace(item: makeContextControllerActionsStackItem(items: items).first!, animated: animated)
}
}
func pushItems(items: ContextController.Items) {
@ -415,7 +435,7 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
if !items.disablePositionLock {
positionLock = self.getActionsStackPositionLock()
}
self.actionsStackNode.push(item: makeContextControllerActionsStackItem(items: items), currentScrollingState: currentScrollingState, positionLock: positionLock, animated: true)
self.actionsStackNode.push(item: makeContextControllerActionsStackItem(items: items).first!, currentScrollingState: currentScrollingState, positionLock: positionLock, animated: true)
}
func popItems() {
@ -509,7 +529,7 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
}
let contentNodeValue = ContentNode(containingItem: takeInfo.containingItem)
contentNodeValue.animateClippingFromContentAreaInScreenSpace = takeInfo.contentAreaInScreenSpace
self.scrollNode.insertSubnode(contentNodeValue, aboveSubnode: self.actionsStackNode)
self.scrollNode.insertSubnode(contentNodeValue, aboveSubnode: self.actionsContainerNode)
self.contentNode = contentNodeValue
contentNode = contentNodeValue
contentTransition = .immediate
@ -686,6 +706,14 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
actionsStackPresentation = .modal
}
let additionalActionsSize = self.additionalActionsStackNode.update(
presentationData: presentationData,
constrainedSize: CGSize(width: layout.size.width, height: actionsConstrainedHeight),
presentation: .additional,
transition: transition
)
self.additionalActionsStackNode.isHidden = additionalActionsSize.height.isZero
let actionsSize = self.actionsStackNode.update(
presentationData: presentationData,
constrainedSize: CGSize(width: layout.size.width, height: actionsConstrainedHeight),
@ -763,7 +791,7 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
actionsFrame = CGRect(origin: CGPoint(x: actionsSideInset, y: contentRect.maxY + contentActionsSpacing), size: actionsSize)
}
var contentVerticalOffset: CGFloat = 0.0
if keepInPlace, case .extracted = self.source {
actionsFrame.origin.y = contentRect.minY - contentActionsSpacing - actionsFrame.height
let statusBarHeight = (layout.statusBarHeight ?? 0.0)
@ -821,7 +849,20 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
actionsFrame = actionsFrame.offsetBy(dx: customPosition.x, dy: customPosition.y)
}
transition.updateFrame(node: self.actionsStackNode, frame: actionsFrame.offsetBy(dx: 0.0, dy: additionalVisibleOffsetY), beginWithCurrentState: true)
var additionalActionsFrame: CGRect
let combinedActionsFrame: CGRect
if additionalActionsSize.height > 0.0 {
additionalActionsFrame = CGRect(origin: actionsFrame.origin, size: additionalActionsSize)
actionsFrame = actionsFrame.offsetBy(dx: 0.0, dy: additionalActionsSize.height + 10.0)
combinedActionsFrame = actionsFrame.union(additionalActionsFrame)
} else {
additionalActionsFrame = .zero
combinedActionsFrame = actionsFrame
}
transition.updateFrame(node: self.actionsContainerNode, frame: combinedActionsFrame.offsetBy(dx: 0.0, dy: additionalVisibleOffsetY))
transition.updateFrame(node: self.actionsStackNode, frame: CGRect(origin: CGPoint(x: 0.0, y: combinedActionsFrame.height - actionsSize.height), size: actionsSize), beginWithCurrentState: true)
transition.updateFrame(node: self.additionalActionsStackNode, frame: CGRect(origin: .zero, size: additionalActionsSize), beginWithCurrentState: true)
if let contentNode = contentNode {
var contentFrame = CGRect(origin: CGPoint(x: contentParentGlobalFrame.minX + contentRect.minX - contentNode.containingItem.contentRect.minX, y: contentRect.minY - contentNode.containingItem.contentRect.minY + contentVerticalOffset + additionalVisibleOffsetY), size: contentNode.containingItem.view.bounds.size)
@ -925,8 +966,8 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
currentContentScreenFrame = contentRect
}
self.actionsStackNode.layer.animateAlpha(from: 0.0, to: self.actionsStackNode.alpha, duration: 0.05)
self.actionsStackNode.layer.animateSpring(
self.actionsContainerNode.layer.animateAlpha(from: 0.0, to: self.actionsContainerNode.alpha, duration: 0.05)
self.actionsContainerNode.layer.animateSpring(
from: 0.01 as NSNumber,
to: 1.0 as NSNumber,
keyPath: "transform.scale",
@ -937,33 +978,33 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
additive: false
)
let actionsSize = self.actionsStackNode.bounds.size
let actionsSize = self.actionsContainerNode.bounds.size
var actionsPositionDeltaXDistance: CGFloat = 0.0
if case .center = actionsHorizontalAlignment {
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsStackNode.frame.midX
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsContainerNode.frame.midX
}
if case .reference = self.source {
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsStackNode.frame.midX
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsContainerNode.frame.midX
}
let actionsVerticalTransitionDirection: CGFloat
if let contentNode = contentNode {
if contentNode.frame.minY < self.actionsStackNode.frame.minY {
if contentNode.frame.minY < self.actionsContainerNode.frame.minY {
actionsVerticalTransitionDirection = -1.0
} else {
actionsVerticalTransitionDirection = 1.0
}
} else {
if contentRect.minY < self.actionsStackNode.frame.minY {
if contentRect.minY < self.actionsContainerNode.frame.minY {
actionsVerticalTransitionDirection = -1.0
} else {
actionsVerticalTransitionDirection = 1.0
}
}
let actionsPositionDeltaYDistance = -animationInContentYDistance + actionsVerticalTransitionDirection * actionsSize.height / 2.0 - contentActionsSpacing
self.actionsStackNode.layer.animateSpring(
self.actionsContainerNode.layer.animateSpring(
from: NSValue(cgPoint: CGPoint(x: actionsPositionDeltaXDistance, y: actionsPositionDeltaYDistance)),
to: NSValue(cgPoint: CGPoint()),
keyPath: "position",
@ -1093,13 +1134,13 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
let actionsVerticalTransitionDirection: CGFloat
if let contentNode = contentNode {
if contentNode.frame.minY < self.actionsStackNode.frame.minY {
if contentNode.frame.minY < self.actionsContainerNode.frame.minY {
actionsVerticalTransitionDirection = -1.0
} else {
actionsVerticalTransitionDirection = 1.0
}
} else {
if contentRect.minY < self.actionsStackNode.frame.minY {
if contentRect.minY < self.actionsContainerNode.frame.minY {
actionsVerticalTransitionDirection = -1.0
} else {
actionsVerticalTransitionDirection = 1.0
@ -1159,8 +1200,8 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
)
}
self.actionsStackNode.layer.animateAlpha(from: self.actionsStackNode.alpha, to: 0.0, duration: duration, removeOnCompletion: false)
self.actionsStackNode.layer.animate(
self.actionsContainerNode.layer.animateAlpha(from: self.actionsContainerNode.alpha, to: 0.0, duration: duration, removeOnCompletion: false)
self.actionsContainerNode.layer.animate(
from: 1.0 as NSNumber,
to: 0.01 as NSNumber,
keyPath: "transform.scale",
@ -1175,17 +1216,17 @@ final class ContextControllerExtractedPresentationNode: ASDisplayNode, ContextCo
}
)
let actionsSize = self.actionsStackNode.bounds.size
let actionsSize = self.actionsContainerNode.bounds.size
var actionsPositionDeltaXDistance: CGFloat = 0.0
if case .center = actionsHorizontalAlignment {
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsStackNode.frame.midX
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsContainerNode.frame.midX
}
if case .reference = self.source {
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsStackNode.frame.midX
actionsPositionDeltaXDistance = currentContentScreenFrame.midX - self.actionsContainerNode.frame.midX
}
let actionsPositionDeltaYDistance = -animationInContentYDistance + actionsVerticalTransitionDirection * actionsSize.height / 2.0 - contentActionsSpacing
self.actionsStackNode.layer.animate(
self.actionsContainerNode.layer.animate(
from: NSValue(cgPoint: CGPoint()),
to: NSValue(cgPoint: CGPoint(x: actionsPositionDeltaXDistance, y: actionsPositionDeltaYDistance)),
keyPath: "position",

View File

@ -139,7 +139,7 @@ public final class NavigationBackgroundNode: ASDisplayNode {
private var enableBlur: Bool
private var effectView: UIVisualEffectView?
public var effectView: UIVisualEffectView?
private let backgroundNode: ASDisplayNode
private var validLayout: (CGSize, CGFloat)?

View File

@ -172,9 +172,7 @@ final class ChatAnimationGalleryItemNode: ZoomableContentGalleryItemNode {
self._title.set(.single("\(fileReference.media.fileName ?? "") - \(dataSizeString(fileReference.media.size ?? 0, forceDecimal: false, formatting: DataSizeStringFormatting(presentationData: self.presentationData)))"))
let speedItem = UIBarButtonItem(image: UIImage(bundleImageName: "Media Gallery/SlowDown"), style: .plain, target: self, action: #selector(self.toggleSpeedButtonPressed))
let backgroundItem = UIBarButtonItem(image: backgroundButtonIcon, style: .plain, target: self, action: #selector(self.toggleBackgroundButtonPressed))
self._rightBarButtonItems.set(.single([speedItem, backgroundItem]))
self._rightBarButtonItems.set(.single([]))
}
self.contextAndMedia = (context, fileReference.abstract)
}

Binary file not shown.

View File

@ -3,7 +3,6 @@ import UIKit
import Display
import ComponentFlow
import SwiftSignalKit
import SceneKit
import GZip
import AppBundle
import LegacyComponents
@ -50,7 +49,7 @@ class EmojiHeaderComponent: Component {
return lhs.placeholderColor == rhs.placeholderColor && lhs.accentColor == rhs.accentColor && lhs.fileId == rhs.fileId && lhs.isVisible == rhs.isVisible && lhs.hasIdleAnimations == rhs.hasIdleAnimations
}
final class View: UIView, SCNSceneRendererDelegate, ComponentTaggedView {
final class View: UIView, ComponentTaggedView {
final class Tag {
}

View File

@ -524,23 +524,20 @@ public final class MediaNavigationAccessoryHeaderNode: ASDisplayNode, UIScrollVi
return speedList
}
private func contextMenuSpeedItems(dismiss: @escaping () -> Void) -> Signal<[ContextMenuItem], NoError> {
var items: [ContextMenuItem] = []
private func contextMenuSpeedItems(scheduleTooltip: @escaping (MediaNavigationAccessoryPanel.ChangeType) -> Void) -> Signal<ContextController.Items, NoError> {
var presetItems: [ContextMenuItem] = []
let previousValue = self.playbackBaseRate?.doubleValue ?? 1.0
items.append(.custom(SliderContextItem(minValue: 0.5, maxValue: 2.5, value: previousValue, valueChanged: { [weak self] newValue, finished in
let type: MediaNavigationAccessoryPanel.ChangeType = finished ? .sliderCommit(previousValue, newValue) : .sliderChange
self?.setRate?(AudioPlaybackRate(newValue), type)
let sliderItem: ContextMenuItem = .custom(SliderContextItem(minValue: 0.5, maxValue: 2.5, value: previousValue, valueChanged: { [weak self] newValue, finished in
self?.setRate?(AudioPlaybackRate(newValue), .sliderChange)
if finished {
dismiss()
scheduleTooltip(.sliderCommit(previousValue, newValue))
}
}), true))
items.append(.separator)
}), true)
for (text, _, rate) in self.speedList(strings: self.strings) {
let isSelected = self.playbackBaseRate == rate
items.append(.action(ContextMenuActionItem(text: text, icon: { theme in
presetItems.append(.action(ContextMenuActionItem(text: text, icon: { theme in
if isSelected {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Check"), color: theme.contextMenu.primaryColor)
} else {
@ -553,20 +550,22 @@ public final class MediaNavigationAccessoryHeaderNode: ASDisplayNode, UIScrollVi
})))
}
return .single(items)
return .single(ContextController.Items(content: .twoLists(presetItems, [sliderItem])))
}
private func openRateMenu(sourceNode: ASDisplayNode, gesture: ContextGesture?) {
guard let controller = self.getController?() else {
return
}
var dismissImpl: (() -> Void)?
let items: Signal<[ContextMenuItem], NoError> = self.contextMenuSpeedItems(dismiss: {
dismissImpl?()
var scheduledTooltip: MediaNavigationAccessoryPanel.ChangeType?
let items = self.contextMenuSpeedItems(scheduleTooltip: { change in
scheduledTooltip = change
})
let contextController = ContextController(account: self.context.account, presentationData: self.context.sharedContext.currentPresentationData.with { $0 }, source: .reference(HeaderContextReferenceContentSource(controller: controller, sourceNode: self.rateButton.referenceNode, shouldBeDismissed: self.dismissedPromise.get())), items: items |> map { ContextController.Items(content: .list($0)) }, gesture: gesture)
dismissImpl = {
//contextController?.dismiss()
let contextController = ContextController(account: self.context.account, presentationData: self.context.sharedContext.currentPresentationData.with { $0 }, source: .reference(HeaderContextReferenceContentSource(controller: controller, sourceNode: self.rateButton.referenceNode, shouldBeDismissed: self.dismissedPromise.get())), items: items, gesture: gesture)
contextController.dismissed = { [weak self] in
if let scheduledTooltip, let self, let rate = self.playbackBaseRate {
self.setRate?(rate, scheduledTooltip)
}
}
self.presentInGlobalOverlay?(contextController)
}

View File

@ -29,8 +29,6 @@ public enum PresentationResourceKey: Int32 {
case navigationLiveLocationIcon
case navigationPlayerPlayIcon
case navigationPlayerPauseIcon
case navigationPlayerRateActiveIcon
case navigationPlayerRateInactiveIcon
case navigationPlayerMaximizedRateActiveIcon
@ -167,20 +165,11 @@ public enum PresentationResourceKey: Int32 {
case chatInputPanelEditIconImage
case chatInputPanelWebpageIconImage
case chatMediaInputPanelHighlightedIconImage
case chatInputMediaPanelSavedStickersIconImage
case chatInputMediaPanelRecentStickersIconImage
case chatInputMediaPanelRecentGifsIconImage
case chatInputMediaPanelTrendingIconImage
case chatInputMediaPanelSettingsIconImage
case chatInputMediaPanelAddPackButtonImage
case chatInputMediaPanelAddedPackButtonImage
case chatInputMediaPanelGridSetupImage
case chatInputMediaPanelGridDismissImage
case chatInputMediaPanelTrendingGifsIcon
case chatInputMediaPanelStickersModeIcon
case chatInputMediaPanelPremiumIcon
case chatInputButtonPanelButtonHighlightImage
case chatInputButtonPanelButtonShadowImage
@ -268,7 +257,6 @@ public enum PresentationResourceKey: Int32 {
case genericSearchBar
case inAppNotificationBackground
case inAppNotificationSecretChatIcon
case groupInfoAdminsIcon
case groupInfoPermissionsIcon
@ -325,10 +313,6 @@ public enum PresentationResourceParameterKey: Hashable {
case chatBubbleLamp(incoming: Bool)
case chatPsaInfo(color: UInt32)
case chatMessageLike(incoming: Bool, isSelected: Bool)
case chatMessageFreeLike(isSelected: Bool)
case chatMessageMediaLike(isSelected: Bool)
case chatMessageCommentsIcon(incoming: Bool)
case chatMessageCommentsArrowIcon(incoming: Bool)
case chatMessageCommentsUnreadDotIcon(incoming: Bool)

View File

@ -287,104 +287,6 @@ public struct PresentationResourcesChat {
})
}
public static func chatMediaInputPanelHighlightedIconImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatMediaInputPanelHighlightedIconImage.rawValue, { theme in
return generateStretchableFilledCircleImage(radius: 9.0, color: theme.chat.inputMediaPanel.panelHighlightedIconBackgroundColor)
})
}
public static func chatInputMediaPanelSavedStickersIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelSavedStickersIconImage.rawValue, { theme in
return generateImage(CGSize(width: 42.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/SavedStickersTabIcon"), color: theme.chat.inputMediaPanel.panelIconColor) {
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})
}
public static func chatInputMediaPanelStickersModeIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelStickersModeIcon.rawValue, { theme in
return generateImage(CGSize(width: 42.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/StickersMode"), color: theme.chat.inputMediaPanel.panelIconColor) {
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})
}
public static func chatInputMediaPanelTrendingGifsIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelTrendingGifsIcon.rawValue, { theme in
return generateImage(CGSize(width: 42.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/TrendingGifs"), color: theme.chat.inputMediaPanel.panelIconColor) {
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})
}
public static func chatInputMediaPanelPremiumIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelPremiumIcon.rawValue, { theme in
return generateImage(CGSize(width: 44.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = UIImage(bundleImageName: "Peer Info/PremiumIcon") {
if let cgImage = image.cgImage {
context.clip(to: CGRect(origin: .zero, size: size), mask: cgImage)
}
let colorsArray: [CGColor] = [
UIColor(rgb: 0x6B93FF).cgColor,
UIColor(rgb: 0x6B93FF).cgColor,
UIColor(rgb: 0x976FFF).cgColor,
UIColor(rgb: 0xE46ACE).cgColor,
UIColor(rgb: 0xE46ACE).cgColor
]
var locations: [CGFloat] = [0.0, 0.35, 0.5, 0.65, 1.0]
let gradient = CGGradient(colorsSpace: deviceColorSpace, colors: colorsArray as CFArray, locations: &locations)!
context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: size.width, y: size.height), options: CGGradientDrawingOptions())
}
})
})
}
public static func chatInputMediaPanelRecentStickersIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelRecentStickersIconImage.rawValue, { theme in
return generateImage(CGSize(width: 42.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/RecentTabIcon"), color: theme.chat.inputMediaPanel.panelIconColor) {
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})
}
public static func chatInputMediaPanelRecentGifsIconImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelRecentGifsIconImage.rawValue, { theme in
return generateImage(CGSize(width: 42.0, height: 42.0), contextGenerator: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
if let image = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/GifsTabIcon"), color: theme.chat.inputMediaPanel.panelIconColor) {
context.draw(image.cgImage!, in: CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size))
}
})
})
}
public static func chatInputMediaPanelTrendingIconImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelTrendingIconImage.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/TrendingIcon"), color: theme.chat.inputMediaPanel.panelIconColor)
})
}
public static func chatInputMediaPanelSettingsIconImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelSettingsIconImage.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Media/SettingsIcon"), color: theme.chat.inputMediaPanel.panelIconColor)
})
}
public static func chatInputMediaPanelAddPackButtonImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.chatInputMediaPanelAddPackButtonImage.rawValue, { theme in
return generateStretchableFilledCircleImage(diameter: 28.0, color: theme.chat.inputPanel.panelControlAccentColor, strokeColor: nil, strokeWidth: 1.0, backgroundColor: nil)
@ -1179,37 +1081,6 @@ public struct PresentationResourcesChat {
})
}
public static func chatMessageLike(_ theme: PresentationTheme, incoming: Bool, isSelected: Bool) -> UIImage? {
return theme.image(PresentationResourceParameterKey.chatMessageLike(incoming: incoming, isSelected: isSelected), { theme in
if isSelected {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartFilled"), color: UIColor(rgb: 0xfe1512))
} else {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartEmpty"), color: incoming ? theme.chat.message.incoming.secondaryTextColor : theme.chat.message.outgoing.secondaryTextColor)
}
})
}
public static func chatMessageFreeLike(_ theme: PresentationTheme, wallpaper: TelegramWallpaper, isSelected: Bool) -> UIImage? {
return theme.image(PresentationResourceParameterKey.chatMessageFreeLike(isSelected: isSelected), { theme in
if isSelected {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartFilled"), color: UIColor(rgb: 0xfe1512))
} else {
let serviceColor = serviceMessageColorComponents(theme: theme, wallpaper: wallpaper)
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartEmpty"), color: serviceColor.primaryText)
}
})
}
public static func chatMessageMediaLike(_ theme: PresentationTheme, isSelected: Bool) -> UIImage? {
return theme.image(PresentationResourceParameterKey.chatMessageMediaLike(isSelected: isSelected), { theme in
if isSelected {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartFilled"), color: UIColor(rgb: 0xfe1512))
} else {
return generateTintedImage(image: UIImage(bundleImageName: "Chat/Reactions/MessageHeartEmpty"), color: theme.chat.message.mediaDateAndStatusTextColor)
}
})
}
public static func chatMessageCommentsIcon(_ theme: PresentationTheme, incoming: Bool) -> UIImage? {
return theme.image(PresentationResourceParameterKey.chatMessageCommentsIcon(incoming: incoming), { theme in
let messageTheme = incoming ? theme.chat.message.incoming : theme.chat.message.outgoing

View File

@ -128,12 +128,6 @@ public struct PresentationResourcesRootController {
})
}
public static func navigationPlayerPlayIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.navigationPlayerPlayIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "GlobalMusicPlayer/MinimizedPlay"), color: theme.rootController.navigationBar.accentTextColor)
})
}
public static func navigationPlayerRateActiveIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.navigationPlayerRateActiveIcon.rawValue, { theme in
return generatePlayerRateIcon(theme.rootController.navigationBar.accentTextColor)
@ -158,12 +152,6 @@ public struct PresentationResourcesRootController {
})
}
public static func navigationPlayerPauseIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.navigationPlayerPauseIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "GlobalMusicPlayer/MinimizedPause"), color: theme.rootController.navigationBar.accentTextColor)
})
}
public static func navigationLiveLocationIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.navigationLiveLocationIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Chat List/LiveLocationPanelIcon"), color: theme.rootController.navigationBar.accentTextColor)
@ -181,10 +169,4 @@ public struct PresentationResourcesRootController {
})?.stretchableImage(withLeftCapWidth: Int(inset) + 15, topCapHeight: 8 * 2 + 15)
})
}
public static func inAppNotificationSecretChatIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.inAppNotificationSecretChatIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Notification/SecretLock"), color: theme.inAppNotification.primaryTextColor)
})
}
}

View File

@ -2005,6 +2005,17 @@ public final class ChatEntityKeyboardInputNode: ChatInputNode {
}
strongSelf.performLayout(transition: Transition(animation: .curve(duration: 0.4, curve: .spring)))
})
if self.context.sharedContext.currentStickerSettings.with({ $0 }).dynamicPackOrder {
let presentationData = self.context.sharedContext.currentPresentationData.with { $0 }
self.controllerInteraction?.presentController(UndoOverlayController(presentationData: presentationData, content: .universal(animation: "anim_reorder", scale: 0.05, colors: [:], title: presentationData.strings.StickerPacksSettings_DynamicOrderOff, text: presentationData.strings.StickerPacksSettings_DynamicOrderOffInfo, customUndoText: nil), elevatedLayout: false, animateInAsReplacement: false, action: { action in
return false
}), nil)
let _ = updateStickerSettingsInteractively(accountManager: self.context.sharedContext.accountManager, {
return $0.withUpdatedDynamicPackOrder(false)
}).start()
}
}
private func openGifContextMenu(file: FileMediaReference, contextResult: (ChatContextResultCollection, ChatContextResult)?, sourceView: UIView, sourceRect: CGRect, gesture: ContextGesture, isSaved: Bool) {

View File

@ -2,6 +2,7 @@ import Foundation
import UIKit
import Display
import AsyncDisplayKit
import SwiftSignalKit
import ContextUI
import TelegramPresentationData
import AnimatedCountLabelNode
@ -29,7 +30,9 @@ private let textFont = Font.with(size: 17.0, design: .regular, traits: .monospac
private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode {
private var presentationData: PresentationData
private(set) var vibrancyEffectView: UIVisualEffectView?
private let backgroundTextNode: ImmediateAnimatedCountLabelNode
private let dimBackgroundTextNode: ImmediateAnimatedCountLabelNode
private let foregroundNode: ASDisplayNode
private let foregroundTextNode: ImmediateAnimatedCountLabelNode
@ -55,6 +58,9 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
self.backgroundTextNode = ImmediateAnimatedCountLabelNode()
self.backgroundTextNode.alwaysOneDirection = true
self.dimBackgroundTextNode = ImmediateAnimatedCountLabelNode()
self.dimBackgroundTextNode.alwaysOneDirection = true
self.foregroundNode = ASDisplayNode()
self.foregroundNode.clipsToBounds = true
@ -69,28 +75,46 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
self.isUserInteractionEnabled = true
if presentationData.theme.overallDarkAppearance {
} else {
let style: UIBlurEffect.Style
style = .extraLight
let blurEffect = UIBlurEffect(style: style)
let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect)
let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect)
self.vibrancyEffectView = vibrancyEffectView
}
self.addSubnode(self.backgroundTextNode)
self.addSubnode(self.dimBackgroundTextNode)
self.addSubnode(self.foregroundNode)
self.foregroundNode.addSubnode(self.foregroundTextNode)
let stringValue = "1.0x"
let backgroundTextColor = self.presentationData.theme.contextMenu.secondaryColor
let dimBackgroundTextColor = self.vibrancyEffectView != nil ? UIColor(white: 0.0, alpha: 0.15) : .clear
let backgroundTextColor = self.vibrancyEffectView != nil ? UIColor(white: 1.0, alpha: 0.7) : self.presentationData.theme.contextMenu.secondaryColor
let foregroundTextColor = UIColor.black
var dimBackgroundSegments: [AnimatedCountLabelNode.Segment] = []
var backgroundSegments: [AnimatedCountLabelNode.Segment] = []
var foregroundSegments: [AnimatedCountLabelNode.Segment] = []
var textCount = 0
for char in stringValue {
if let intValue = Int(String(char)) {
dimBackgroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: dimBackgroundTextColor)))
backgroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: backgroundTextColor)))
foregroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: foregroundTextColor)))
} else {
dimBackgroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: dimBackgroundTextColor)))
backgroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: backgroundTextColor)))
foregroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: foregroundTextColor)))
textCount += 1
}
}
self.dimBackgroundTextNode.segments = dimBackgroundSegments
self.backgroundTextNode.segments = backgroundSegments
self.foregroundTextNode.segments = foregroundSegments
}
@ -98,6 +122,15 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
override func didLoad() {
super.didLoad()
if let vibrancyEffectView = self.vibrancyEffectView {
Queue.mainQueue().after(0.05) {
if let effectNode = findEffectNode(node: self.supernode) {
effectNode.effectView?.contentView.insertSubview(vibrancyEffectView, at: 0)
vibrancyEffectView.contentView.addSubnode(self.backgroundTextNode)
}
}
}
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.panGesture(_:)))
self.view.addGestureRecognizer(panGestureRecognizer)
@ -119,25 +152,31 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
let stringValue = String(format: "%.1fx", self.value)
let backgroundTextColor = self.presentationData.theme.contextMenu.secondaryColor
let dimBackgroundTextColor = self.vibrancyEffectView != nil ? UIColor(white: 0.0, alpha: 0.15) : .clear
let backgroundTextColor = self.vibrancyEffectView != nil ? UIColor(white: 1.0, alpha: 0.7) : self.presentationData.theme.contextMenu.secondaryColor
let foregroundTextColor = UIColor.black
var dimBackgroundSegments: [AnimatedCountLabelNode.Segment] = []
var backgroundSegments: [AnimatedCountLabelNode.Segment] = []
var foregroundSegments: [AnimatedCountLabelNode.Segment] = []
var textCount = 0
for char in stringValue {
if let intValue = Int(String(char)) {
dimBackgroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: dimBackgroundTextColor)))
backgroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: backgroundTextColor)))
foregroundSegments.append(.number(intValue, NSAttributedString(string: String(char), font: textFont, textColor: foregroundTextColor)))
} else {
dimBackgroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: dimBackgroundTextColor)))
backgroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: backgroundTextColor)))
foregroundSegments.append(.text(textCount, NSAttributedString(string: String(char), font: textFont, textColor: foregroundTextColor)))
textCount += 1
}
}
self.dimBackgroundTextNode.segments = dimBackgroundSegments
self.backgroundTextNode.segments = backgroundSegments
self.foregroundTextNode.segments = foregroundSegments
let _ = self.dimBackgroundTextNode.updateLayout(size: CGSize(width: 70.0, height: .greatestFiniteMagnitude), animated: true)
let _ = self.backgroundTextNode.updateLayout(size: CGSize(width: 70.0, height: .greatestFiniteMagnitude), animated: true)
let _ = self.foregroundTextNode.updateLayout(size: CGSize(width: 70.0, height: .greatestFiniteMagnitude), animated: true)
}
@ -153,7 +192,10 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
return (CGSize(width: height * 3.0, height: height), { size, transition in
let leftInset: CGFloat = 17.0
self.vibrancyEffectView?.frame = CGRect(origin: .zero, size: size)
let textFrame = CGRect(origin: CGPoint(x: leftInset, y: floor((height - backgroundTextSize.height) / 2.0)), size: backgroundTextSize)
transition.updateFrameAdditive(node: self.dimBackgroundTextNode, frame: textFrame)
transition.updateFrameAdditive(node: self.backgroundTextNode, frame: textFrame)
transition.updateFrameAdditive(node: self.foregroundTextNode, frame: textFrame)
@ -213,3 +255,18 @@ private final class SliderContextItemNode: ASDisplayNode, ContextMenuCustomNode
func performAction() {
}
}
private func findEffectNode(node: ASDisplayNode?) -> NavigationBackgroundNode? {
if let node = node {
if let subnodes = node.subnodes {
for node in subnodes {
if let effectNode = node as? NavigationBackgroundNode {
return effectNode
}
}
}
return findEffectNode(node: node.supernode)
} else {
return nil
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "gif_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,249 +0,0 @@
%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 30.400024 17.342773 cm
0.000000 0.000000 0.000000 scn
-1.328000 2.657227 m
-1.328000 1.923792 -0.733434 1.329226 0.000000 1.329226 c
0.733434 1.329226 1.328000 1.923792 1.328000 2.657227 c
-1.328000 2.657227 l
h
4.000000 9.329226 m
4.733434 9.329226 5.328000 9.923793 5.328000 10.657227 c
5.328000 11.390660 4.733434 11.985227 4.000000 11.985227 c
4.000000 9.329226 l
h
1.328000 2.657227 m
1.328000 9.377226 l
-1.328000 9.377226 l
-1.328000 2.657227 l
1.328000 2.657227 l
h
1.280000 9.329226 m
4.000000 9.329226 l
4.000000 11.985227 l
1.280000 11.985227 l
1.280000 9.329226 l
h
1.328000 9.377226 m
1.328000 9.492270 1.328034 9.578946 1.329198 9.653058 c
1.330364 9.727207 1.332460 9.769691 1.334489 9.794523 c
1.338678 9.845800 1.338141 9.750368 1.270451 9.617519 c
-1.096062 10.823318 l
-1.250946 10.519341 -1.295081 10.226333 -1.312690 10.010806 c
-1.329033 9.810783 -1.328000 9.579334 -1.328000 9.377226 c
1.328000 9.377226 l
h
1.280000 11.985227 m
1.077892 11.985227 0.846443 11.986259 0.646420 11.969916 c
0.430894 11.952308 0.137886 11.908173 -0.166092 11.753288 c
1.039707 9.386775 l
0.906858 9.319085 0.811426 9.318548 0.862703 9.322738 c
0.887536 9.324766 0.930019 9.326862 1.004169 9.328028 c
1.078280 9.329193 1.164957 9.329226 1.280000 9.329226 c
1.280000 11.985227 l
h
1.270451 9.617519 m
1.219830 9.518170 1.139057 9.437396 1.039707 9.386775 c
-0.166092 11.753288 l
-0.566501 11.549270 -0.892043 11.223727 -1.096062 10.823318 c
1.270451 9.617519 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 30.400024 22.144531 cm
0.000000 0.000000 0.000000 scn
0.000000 3.183762 m
-0.733434 3.183762 -1.328000 2.589196 -1.328000 1.855762 c
-1.328000 1.122328 -0.733434 0.527762 0.000000 0.527762 c
0.000000 3.183762 l
h
4.000000 0.527762 m
4.733434 0.527762 5.328000 1.122328 5.328000 1.855762 c
5.328000 2.589196 4.733434 3.183762 4.000000 3.183762 c
4.000000 0.527762 l
h
0.000000 0.527762 m
4.000000 0.527762 l
4.000000 3.183762 l
0.000000 3.183762 l
0.000000 0.527762 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 24.799927 17.343750 cm
0.000000 0.000000 0.000000 scn
2.128000 10.656250 m
2.128000 11.389684 1.533434 11.984250 0.800000 11.984250 c
0.066566 11.984250 -0.528000 11.389684 -0.528000 10.656250 c
2.128000 10.656250 l
h
-0.528000 2.656250 m
-0.528000 1.922815 0.066566 1.328250 0.800000 1.328250 c
1.533434 1.328250 2.128000 1.922815 2.128000 2.656250 c
-0.528000 2.656250 l
h
-0.528000 10.656250 m
-0.528000 2.656250 l
2.128000 2.656250 l
2.128000 10.656250 l
-0.528000 10.656250 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 13.599976 17.343750 cm
0.000000 0.000000 0.000000 scn
5.231635 9.028395 m
5.882138 8.689614 6.684110 8.942316 7.022890 9.592818 c
7.361670 10.243321 7.108968 11.045293 6.458466 11.384073 c
5.231635 9.028395 l
h
7.584592 5.588284 m
8.889243 5.340351 l
8.901488 5.404787 l
8.907325 5.470116 l
7.584592 5.588284 l
h
5.600000 7.984250 m
4.866566 7.984250 4.272000 7.389684 4.272000 6.656250 c
4.272000 5.922816 4.866566 5.328250 5.600000 5.328250 c
5.600000 7.984250 l
h
6.458466 11.384073 m
5.721497 11.767884 4.884068 11.984250 4.000000 11.984250 c
4.000000 9.328250 l
4.446894 9.328250 4.864512 9.219591 5.231635 9.028395 c
6.458466 11.384073 l
h
4.000000 11.984250 m
1.057427 11.984250 -1.328000 9.598824 -1.328000 6.656250 c
1.328000 6.656250 l
1.328000 8.131955 2.524295 9.328250 4.000000 9.328250 c
4.000000 11.984250 l
h
-1.328000 6.656250 m
-1.328000 3.713677 1.057427 1.328250 4.000000 1.328250 c
4.000000 3.984250 l
2.524295 3.984250 1.328000 5.180545 1.328000 6.656250 c
-1.328000 6.656250 l
h
4.000000 1.328250 m
6.144260 1.328250 8.394547 2.737200 8.889243 5.340351 c
6.279942 5.836216 l
6.056704 4.661514 5.055740 3.984250 4.000000 3.984250 c
4.000000 1.328250 l
h
8.907325 5.470116 m
8.956036 6.015371 l
6.310571 6.251707 l
6.261860 5.706451 l
8.907325 5.470116 l
h
7.155208 7.984250 m
5.600000 7.984250 l
5.600000 5.328250 l
7.155208 5.328250 l
7.155208 7.984250 l
h
8.956036 6.015371 m
9.050537 7.073197 8.217244 7.984250 7.155208 7.984250 c
7.155208 5.328250 l
6.657084 5.328250 6.266247 5.755558 6.310571 6.251707 c
8.956036 6.015371 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.599976 2.943848 cm
0.000000 0.000000 0.000000 scn
35.472000 21.056055 m
35.472000 11.627451 27.828604 3.984055 18.400000 3.984055 c
18.400000 1.328056 l
29.295473 1.328056 38.127998 10.160582 38.127998 21.056055 c
35.472000 21.056055 l
h
18.400000 3.984055 m
8.971395 3.984055 1.328000 11.627451 1.328000 21.056055 c
-1.328000 21.056055 l
-1.328000 10.160582 7.504526 1.328056 18.400000 1.328056 c
18.400000 3.984055 l
h
1.328000 21.056055 m
1.328000 30.484661 8.971395 38.128056 18.400000 38.128056 c
18.400000 40.784054 l
7.504526 40.784054 -1.328000 31.951529 -1.328000 21.056055 c
1.328000 21.056055 l
h
18.400000 38.128056 m
27.828604 38.128056 35.472000 30.484661 35.472000 21.056055 c
38.127998 21.056055 l
38.127998 31.951529 29.295473 40.784054 18.400000 40.784054 c
18.400000 38.128056 l
h
f
n
Q
endstream
endobj
3 0 obj
5025
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000005115 00000 n
0000005138 00000 n
0000005311 00000 n
0000005385 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
5444
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "premium_48 (1).pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,359 +0,0 @@
%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 3.167969 0.232300 cm
0.000000 0.000000 0.000000 scn
26.596321 7.326611 m
26.017796 6.131248 l
26.017796 6.131248 l
26.596321 7.326611 l
h
33.049633 4.203373 m
33.628159 5.398735 l
33.628159 5.398735 l
33.049633 4.203373 l
h
23.465450 11.359636 m
24.766926 11.623732 l
24.766926 11.623732 l
23.465450 11.359636 l
h
21.219912 22.425730 m
22.521387 22.689827 l
22.521385 22.689829 l
21.219912 22.425730 l
h
20.468536 22.426363 m
21.769566 22.160072 l
21.769566 22.160076 l
20.468536 22.426363 l
h
18.201447 11.349876 m
16.900419 11.616165 l
16.900419 11.616165 l
18.201447 11.349876 l
h
15.076786 7.328415 m
15.656298 6.133530 l
15.656300 6.133530 l
15.076786 7.328415 l
h
8.645002 4.209038 m
8.065491 5.403923 l
8.065490 5.403923 l
8.645002 4.209038 l
h
6.009511 6.527775 m
7.266081 6.098106 l
7.266081 6.098106 l
6.009511 6.527775 l
h
0.756405 26.105867 m
1.562058 27.161572 l
1.562058 27.161572 l
0.756405 26.105867 l
h
1.732299 29.537737 m
1.861923 28.216080 l
1.861923 28.216080 l
1.732299 29.537737 l
h
13.316613 30.673882 m
13.446237 29.352222 l
13.446237 29.352222 l
13.316613 30.673882 l
h
14.893808 31.831930 m
16.116005 31.312487 l
16.116005 31.312487 l
14.893808 31.831930 l
h
19.081465 41.685043 m
20.303661 41.165604 l
20.303661 41.165604 l
19.081465 41.685043 l
h
19.421009 42.224472 m
20.411942 41.340370 l
20.444679 41.377064 20.475355 41.415550 20.503824 41.455647 c
19.421009 42.224472 l
h
22.270512 42.224518 m
21.187717 41.455658 l
21.216190 41.415562 21.246868 41.377079 21.279608 41.340382 c
22.270512 42.224518 l
h
22.610096 41.685043 m
21.387899 41.165604 l
21.387901 41.165600 l
22.610096 41.685043 l
h
26.797756 31.831928 m
28.019951 32.351372 l
28.019951 32.351372 l
26.797756 31.831928 l
h
28.374952 30.673882 m
28.245329 29.352222 l
28.245329 29.352222 l
28.374952 30.673882 l
h
39.959267 29.537737 m
39.829643 28.216080 l
39.829643 28.216080 l
39.959267 29.537737 l
h
40.935162 26.105867 m
41.740814 25.050165 l
41.740814 25.050167 l
40.935162 26.105867 l
h
35.683735 6.522823 m
36.940308 6.952484 l
36.940308 6.952484 l
35.683735 6.522823 l
h
32.468925 19.644917 m
31.663275 20.700619 l
32.468925 19.644917 l
h
9.222645 19.644909 m
10.028297 20.700611 l
9.222645 19.644909 l
h
31.848946 17.567064 m
30.596266 17.126188 l
31.848946 17.567064 l
h
9.842616 17.567089 m
8.589934 18.007967 l
9.842616 17.567089 l
h
26.017796 6.131248 m
32.471111 3.008007 l
33.628159 5.398735 l
27.174847 8.521973 l
26.017796 6.131248 l
h
22.163977 11.095541 m
22.603409 8.930000 24.028820 7.093861 26.017796 6.131248 c
27.174847 8.521973 l
25.932106 9.123428 25.041489 10.270676 24.766926 11.623732 c
22.163977 11.095541 l
h
19.918436 22.161634 m
22.163977 11.095541 l
24.766926 11.623732 l
22.521387 22.689827 l
19.918436 22.161634 l
h
21.769566 22.160076 m
21.563301 21.152304 20.123007 21.153507 19.918436 22.161633 c
22.521385 22.689829 l
22.150745 24.516350 19.541220 24.518536 19.167509 22.692650 c
21.769566 22.160076 l
h
19.502476 11.083588 m
21.769566 22.160072 l
19.167509 22.692652 l
16.900419 11.616165 l
19.502476 11.083588 l
h
15.656300 6.133530 m
17.638857 7.095062 19.060648 8.924915 19.502476 11.083588 c
16.900419 11.616165 l
16.624359 10.267399 15.736004 9.124077 14.497272 8.523296 c
15.656300 6.133530 l
h
9.224514 3.014153 m
15.656298 6.133530 l
14.497274 8.523300 l
8.065491 5.403923 l
9.224514 3.014153 l
h
4.752941 6.957447 m
3.816943 4.220119 6.650061 1.765560 9.224514 3.014153 c
8.065490 5.403923 l
7.586564 5.171646 7.104112 5.624428 7.266081 6.098106 c
4.752941 6.957447 l
h
8.589934 18.007967 m
6.955464 13.363882 5.655949 9.598297 4.752941 6.957447 c
7.266081 6.098106 l
8.166792 8.732243 9.463710 12.490316 11.095298 17.126213 c
8.589934 18.007967 l
h
-0.049248 25.050165 m
8.416991 18.589207 l
10.028297 20.700611 l
1.562058 27.161572 l
-0.049248 25.050165 l
h
1.602676 30.859396 m
-1.330588 30.571712 -2.392261 26.838221 -0.049247 25.050165 c
1.562058 27.161572 l
1.136752 27.486139 1.329462 28.163857 1.861923 28.216080 c
1.602676 30.859396 l
h
13.186990 31.995541 m
1.602676 30.859396 l
1.861923 28.216080 l
13.446237 29.352222 l
13.186990 31.995541 l
h
13.671613 32.351376 m
13.587321 32.153046 13.401456 32.016575 13.186990 31.995541 c
13.446237 29.352222 l
14.627732 29.468102 15.651648 30.219906 16.116005 31.312487 c
13.671613 32.351376 l
h
17.859270 42.204487 m
13.671613 32.351372 l
16.116005 31.312487 l
20.303661 41.165604 l
17.859270 42.204487 l
h
18.430077 43.108574 m
18.196718 42.847019 18.003445 42.543720 17.859268 42.204487 c
20.303661 41.165604 l
20.335835 41.241302 20.373804 41.297623 20.411942 41.340370 c
18.430077 43.108574 l
h
23.353304 42.993378 m
22.120342 44.729771 19.571110 44.729740 18.338192 42.993298 c
20.503824 41.455647 l
20.678020 41.700985 21.013519 41.700985 21.187717 41.455658 c
23.353304 42.993378 l
h
23.832294 42.204487 m
23.688103 42.543755 23.494802 42.847080 23.261414 43.108654 c
21.279608 41.340382 l
21.317753 41.297634 21.355724 41.241310 21.387899 41.165604 c
23.832294 42.204487 l
h
28.019951 32.351372 m
23.832293 42.204487 l
21.387901 41.165600 l
25.575560 31.312485 l
28.019951 32.351372 l
h
28.504576 31.995541 m
28.290104 32.016575 28.104240 32.153046 28.019951 32.351372 c
25.575560 31.312489 l
26.039915 30.219902 27.063835 29.468100 28.245329 29.352222 c
28.504576 31.995541 l
h
40.088890 30.859396 m
28.504576 31.995541 l
28.245329 29.352222 l
39.829643 28.216080 l
40.088890 30.859396 l
h
41.740814 25.050167 m
44.083820 26.838221 43.022160 30.571712 40.088890 30.859396 c
39.829643 28.216080 l
40.362099 28.163857 40.554817 27.486143 40.129505 27.161570 c
41.740814 25.050167 l
h
33.274578 18.589212 m
41.740814 25.050165 l
40.129509 27.161572 l
31.663275 20.700619 l
33.274578 18.589212 l
h
36.940308 6.952484 m
36.037231 9.593578 34.737118 13.360964 33.101627 18.007942 c
30.596266 17.126188 l
32.228870 12.487404 33.526386 8.727535 34.427162 6.093159 c
36.940308 6.952484 l
h
32.471111 3.008007 m
35.045464 1.762089 37.875858 4.216412 36.940308 6.952484 c
34.427162 6.093163 l
34.589066 5.619659 34.107037 5.166969 33.628159 5.398735 c
32.471111 3.008007 l
h
31.663275 20.700619 m
31.388407 20.490854 31.149704 20.237541 30.956619 19.950712 c
33.159912 18.467527 l
33.191242 18.514071 33.229977 18.555176 33.274578 18.589212 c
31.663275 20.700619 l
h
10.734936 19.950726 m
10.541856 20.237547 10.303158 20.490852 10.028297 20.700611 c
8.416991 18.589207 l
8.461590 18.555170 8.500321 18.514071 8.531651 18.467529 c
10.734936 19.950726 l
h
30.956619 19.950712 m
30.396477 19.118612 30.263741 18.071003 30.596266 17.126188 c
33.101627 18.007942 l
33.047279 18.162365 33.069302 18.332926 33.159912 18.467527 c
30.956619 19.950712 l
h
11.095298 17.126213 m
11.427822 18.071028 11.295080 19.118631 10.734936 19.950726 c
8.531651 18.467529 l
8.622259 18.332932 8.644280 18.162380 8.589934 18.007967 c
11.095298 17.126213 l
h
f
n
Q
endstream
endobj
3 0 obj
6902
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000006992 00000 n
0000007015 00000 n
0000007188 00000 n
0000007262 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
7321
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "recent_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,89 +0,0 @@
%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 4.271973 4.271973 cm
0.000000 0.000000 0.000000 scn
2.656000 19.728054 m
2.656000 29.156660 10.299395 36.800056 19.728001 36.800056 c
29.156605 36.800056 36.799999 29.156660 36.799999 19.728054 c
36.799999 10.299450 29.156605 2.656055 19.728001 2.656055 c
10.299395 2.656055 2.656000 10.299450 2.656000 19.728054 c
h
19.728001 39.456055 m
8.832526 39.456055 0.000000 30.623528 0.000000 19.728054 c
0.000000 8.832581 8.832526 0.000057 19.728001 0.000057 c
30.623474 0.000057 39.455997 8.832581 39.455997 19.728054 c
39.455997 30.623528 30.623474 39.456055 19.728001 39.456055 c
h
21.056000 30.928055 m
21.056000 31.661489 20.461435 32.256054 19.728001 32.256054 c
18.994566 32.256054 18.400002 31.661489 18.400002 30.928055 c
18.400002 20.440632 l
18.400002 19.610584 18.752302 18.819542 19.369272 18.264267 c
26.839615 11.540958 l
27.384773 11.050316 28.224453 11.094513 28.715096 11.639668 c
29.205738 12.184826 29.161543 13.024506 28.616386 13.515148 c
21.146042 20.238457 l
21.088728 20.290041 21.056000 20.363525 21.056000 20.440632 c
21.056000 30.928055 l
h
f*
n
Q
endstream
endobj
3 0 obj
1137
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000001227 00000 n
0000001250 00000 n
0000001423 00000 n
0000001497 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
1556
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "favourites_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,257 +0,0 @@
%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 8.640038 3.178040 cm
0.000000 0.000000 0.000000 scn
6.261478 5.109386 m
5.424051 6.140068 l
6.261478 5.109386 l
h
2.415318 2.664314 m
2.406842 3.992287 l
2.415318 2.664314 l
h
0.527705 3.562763 m
1.563708 4.393593 l
0.527705 3.562763 l
h
17.377895 10.862392 m
18.215322 11.893072 l
17.377895 10.862392 l
h
15.899100 11.850965 m
16.257063 13.129810 l
15.899100 11.850965 l
h
13.342102 10.862394 m
14.179529 9.831715 l
13.342102 10.862394 l
h
14.820896 11.850965 m
15.178860 10.572121 l
14.820896 11.850965 l
h
30.192291 3.562763 m
29.156288 4.393593 l
30.192291 3.562763 l
h
28.304678 2.664314 m
28.296202 1.336342 l
28.304678 2.664314 l
h
27.225536 37.724377 m
26.622637 36.541122 l
27.225536 37.724377 l
h
30.022438 34.927475 m
31.205694 35.530376 l
30.022438 34.927475 l
h
3.494461 37.724377 m
2.891561 38.907635 l
3.494461 37.724377 l
h
10.240000 37.093937 m
20.479986 37.093937 l
20.479986 39.749935 l
10.240000 39.749935 l
10.240000 37.093937 l
h
29.391996 28.181934 m
29.391996 8.089657 l
32.047997 8.089657 l
32.047997 28.181934 l
29.391996 28.181934 l
h
25.295948 6.140064 m
18.215322 11.893072 l
16.540470 9.831713 l
23.621094 4.078705 l
25.295948 6.140064 l
h
12.504675 11.893072 m
5.424051 6.140068 l
7.098906 4.078709 l
14.179529 9.831715 l
12.504675 11.893072 l
h
1.328000 8.089663 m
1.328000 28.181942 l
-1.328000 28.181942 l
-1.328000 8.089663 l
1.328000 8.089663 l
h
5.424051 6.140068 m
4.402600 5.310135 3.707039 4.746693 3.163149 4.381077 c
2.897757 4.202675 2.710315 4.100582 2.576172 4.044216 c
2.447700 3.990234 2.400969 3.992249 2.406842 3.992287 c
2.423795 1.336342 l
3.258891 1.341671 3.998366 1.742203 4.644900 2.176819 c
5.312774 2.625778 6.118561 3.282177 7.098906 4.078709 c
5.424051 6.140068 l
h
-1.328000 8.089663 m
-1.328000 6.826519 -1.329317 5.787216 -1.256605 4.985760 c
-1.186216 4.209911 -1.030768 3.383423 -0.508299 2.731930 c
1.563708 4.393593 l
1.567382 4.389011 1.536350 4.424007 1.497233 4.557758 c
1.456389 4.697414 1.417425 4.907269 1.388531 5.225739 c
1.329317 5.878414 1.328000 6.773554 1.328000 8.089663 c
-1.328000 8.089663 l
h
2.406842 3.992287 m
2.079242 3.990196 1.768668 4.138020 1.563708 4.393593 c
-0.508299 2.731930 l
0.204472 1.843143 1.284526 1.329071 2.423795 1.336342 c
2.406842 3.992287 l
h
18.215322 11.893072 m
17.870771 12.173019 17.557215 12.428867 17.277817 12.623514 c
16.984676 12.827738 16.656111 13.018112 16.257063 13.129810 c
15.541137 10.572121 l
15.541925 10.571899 15.593106 10.560205 15.759577 10.444231 c
15.939793 10.318680 16.165714 10.136200 16.540470 9.831713 c
18.215322 11.893072 l
h
14.179529 9.831715 m
14.554282 10.136202 14.780205 10.318680 14.960420 10.444231 c
15.126890 10.560205 15.178071 10.571899 15.178860 10.572121 c
14.462933 13.129810 l
14.063885 13.018112 13.735321 12.827738 13.442180 12.623516 c
13.162783 12.428869 12.849226 12.173021 12.504675 11.893072 c
14.179529 9.831715 l
h
16.257063 13.129810 m
15.670297 13.294054 15.049700 13.294054 14.462933 13.129810 c
15.178860 10.572121 l
15.297341 10.605284 15.422654 10.605284 15.541137 10.572121 c
16.257063 13.129810 l
h
29.391996 8.089657 m
29.391996 6.773550 29.390678 5.878414 29.331465 5.225739 c
29.302572 4.907269 29.263607 4.697414 29.222763 4.557758 c
29.183647 4.424007 29.152615 4.389011 29.156288 4.393593 c
31.228294 2.731930 l
31.750763 3.383423 31.906212 4.209911 31.976601 4.985760 c
32.049313 5.787212 32.047997 6.826513 32.047997 8.089657 c
29.391996 8.089657 l
h
23.621094 4.078705 m
24.601437 3.282177 25.407223 2.625778 26.075096 2.176819 c
26.721630 1.742203 27.461105 1.341671 28.296202 1.336342 c
28.313154 3.992287 l
28.319027 3.992249 28.272297 3.990234 28.143824 4.044216 c
28.009682 4.100582 27.822239 4.202671 27.556849 4.381073 c
27.012959 4.746689 26.317398 5.310135 25.295948 6.140064 c
23.621094 4.078705 l
h
29.156288 4.393593 m
28.951328 4.138020 28.640755 3.990196 28.313154 3.992287 c
28.296202 1.336342 l
29.435471 1.329071 30.515524 1.843143 31.228294 2.731930 c
29.156288 4.393593 l
h
20.479986 37.093937 m
22.294069 37.093937 23.574766 37.092903 24.575359 37.011150 c
25.560450 36.930668 26.156532 36.778614 26.622637 36.541122 c
27.828436 38.907635 l
26.925505 39.367702 25.940983 39.564426 24.791643 39.658329 c
23.657806 39.750969 22.250244 39.749935 20.479986 39.749935 c
20.479986 37.093937 l
h
32.047997 28.181934 m
32.047997 29.952190 32.049030 31.359749 31.956390 32.493584 c
31.862486 33.642921 31.665760 34.627445 31.205694 35.530376 c
28.839182 34.324577 l
29.076674 33.858471 29.228727 33.262390 29.309212 32.277302 c
29.390965 31.276711 29.391996 29.996016 29.391996 28.181934 c
32.047997 28.181934 l
h
26.622637 36.541122 m
27.576994 36.054852 28.352911 35.278934 28.839182 34.324577 c
31.205694 35.530376 l
30.464785 36.984489 29.282551 38.166725 27.828436 38.907635 c
26.622637 36.541122 l
h
10.240000 39.749935 m
8.469745 39.749935 7.062186 39.750969 5.928351 39.658329 c
4.779013 39.564426 3.794492 39.367702 2.891561 38.907635 c
4.097360 36.541122 l
4.563464 36.778614 5.159545 36.930668 6.144634 37.011150 c
7.145226 37.092903 8.425919 37.093937 10.240000 37.093937 c
10.240000 39.749935 l
h
1.328000 28.181942 m
1.328000 29.996021 1.329033 31.276712 1.410784 32.277302 c
1.491269 33.262390 1.643323 33.858471 1.880815 34.324577 c
-0.485698 35.530376 l
-0.945765 34.627445 -1.142490 33.642925 -1.236395 32.493587 c
-1.329033 31.359753 -1.328000 29.952194 -1.328000 28.181942 c
1.328000 28.181942 l
h
2.891561 38.907635 m
1.437445 38.166725 0.255211 36.984489 -0.485698 35.530376 c
1.880815 34.324577 l
2.367085 35.278934 3.143002 36.054852 4.097360 36.541122 c
2.891561 38.907635 l
h
f
n
Q
endstream
endobj
3 0 obj
5667
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
0000005757 00000 n
0000005780 00000 n
0000005953 00000 n
0000006027 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
6086
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "settings_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,198 +0,0 @@
%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 3.500000 3.500000 cm
0.000000 0.000000 0.000000 scn
22.000000 39.500000 m
22.000000 40.328426 21.328428 41.000000 20.500000 41.000000 c
19.671574 41.000000 19.000000 40.328426 19.000000 39.500000 c
19.000000 38.338337 l
19.000000 37.690460 18.579983 37.117363 17.962181 36.922268 c
17.088881 36.646984 l
16.504770 36.524204 15.932035 36.370529 15.372461 36.187752 c
14.486683 35.991013 l
13.854101 35.851067 13.203807 36.137375 12.879869 36.698452 c
12.299038 37.704483 l
11.884825 38.421921 10.967439 38.667736 10.250000 38.253521 c
9.532561 37.839306 9.286749 36.921921 9.700962 36.204483 c
10.281794 35.198452 l
10.605731 34.637375 10.528535 33.931049 10.091049 33.453190 c
9.444299 32.748505 l
9.026765 32.371395 8.628606 31.973236 8.251495 31.555702 c
7.546809 30.908951 l
7.068950 30.471466 6.362623 30.394268 5.801547 30.718206 c
4.795517 31.299038 l
4.078078 31.713251 3.160693 31.467438 2.746479 30.750000 c
2.332266 30.032562 2.578078 29.115175 3.295517 28.700962 c
4.301547 28.120131 l
4.862623 27.796192 5.148933 27.145899 5.008989 26.513317 c
4.812248 25.627539 l
4.629469 25.067965 4.475796 24.495230 4.353016 23.911119 c
4.077733 23.037819 l
3.882637 22.420017 3.309538 22.000000 2.661662 22.000000 c
1.500000 22.000000 l
0.671573 22.000000 0.000000 21.328426 0.000000 20.500000 c
0.000000 19.671572 0.671573 19.000000 1.500000 19.000000 c
2.661662 19.000000 l
3.309538 19.000000 3.882637 18.579983 4.077733 17.962181 c
4.353333 17.087372 l
4.475950 16.504307 4.629352 15.932577 4.811759 15.373960 c
5.008989 14.486683 l
5.148933 13.854101 4.862623 13.203808 4.301547 12.879869 c
3.295517 12.299038 l
2.578078 11.884825 2.332266 10.967440 2.746479 10.250000 c
3.160693 9.532560 4.078078 9.286747 4.795517 9.700962 c
5.801547 10.281792 l
6.362623 10.605730 7.068950 10.528536 7.546809 10.091049 c
8.250140 9.445797 l
8.627652 9.027718 9.026265 8.629059 9.444299 8.251495 c
10.091049 7.546806 l
10.528535 7.068951 10.605731 6.362625 10.281794 5.801548 c
9.700962 4.795517 l
9.286749 4.078079 9.532561 3.160690 10.250000 2.746479 c
10.967439 2.332264 11.884825 2.578079 12.299038 3.295517 c
12.879869 4.301548 l
13.203807 4.862625 13.854101 5.148933 14.486683 5.008987 c
15.384456 4.808334 l
15.943589 4.626175 16.515841 4.473072 17.099430 4.350803 c
17.962181 4.077732 l
18.125601 4.015381 l
18.652878 3.777821 19.000000 3.250641 19.000000 2.661663 c
19.000000 1.500000 l
19.010092 1.325066 l
19.096739 0.579060 19.730747 0.000000 20.500000 0.000000 c
21.328428 0.000000 22.000000 0.671574 22.000000 1.500000 c
22.000000 2.661663 l
22.010246 2.836273 l
22.078001 3.410614 22.476181 3.900372 23.037819 4.077732 c
23.905090 4.351749 l
24.486071 4.473644 25.055811 4.626099 25.612547 4.807358 c
26.513317 5.008987 l
27.145899 5.148933 27.796192 4.862625 28.120131 4.301548 c
28.700962 3.295517 l
29.115175 2.578079 30.032560 2.332264 30.750000 2.746479 c
31.467440 3.160690 31.713253 4.078079 31.299038 4.795517 c
30.718208 5.801548 l
30.394270 6.362625 30.471464 7.068951 30.908951 7.546806 c
31.555702 8.251495 l
31.973736 8.629059 32.372349 9.027718 32.749863 9.445797 c
33.453194 10.091049 l
33.931049 10.528536 34.637375 10.605730 35.198452 10.281792 c
36.204483 9.700962 l
36.921921 9.286747 37.839310 9.532560 38.253521 10.250000 c
38.667736 10.967440 38.421921 11.884825 37.704483 12.299038 c
36.698452 12.879869 l
36.137375 13.203808 35.851067 13.854101 35.991013 14.486683 c
36.192642 15.387453 l
36.373901 15.944189 36.526356 16.513929 36.648251 17.094910 c
36.922268 17.962181 l
37.117363 18.579983 37.690460 19.000000 38.338337 19.000000 c
39.500000 19.000000 l
40.328426 19.000000 41.000000 19.671572 41.000000 20.500000 c
41.000000 21.328426 40.328426 22.000000 39.500000 22.000000 c
38.338337 22.000000 l
37.690460 22.000000 37.117363 22.420017 36.922268 23.037819 c
36.648884 23.902077 l
36.526775 24.484623 36.373940 25.055870 36.192154 25.614044 c
35.991013 26.513317 l
35.851067 27.145899 36.137375 27.796192 36.698452 28.120131 c
37.704483 28.700962 l
38.421921 29.115175 38.667736 30.032562 38.253521 30.750000 c
37.839310 31.467438 36.921921 31.713251 36.204483 31.299038 c
35.198452 30.718206 l
34.637375 30.394268 33.931049 30.471466 33.453194 30.908951 c
32.748505 31.555702 l
32.370941 31.973736 31.972282 32.372349 31.554203 32.749859 c
30.908951 33.453190 l
30.471464 33.931049 30.394270 34.637375 30.718208 35.198452 c
31.299038 36.204483 l
31.713253 36.921921 31.467440 37.839306 30.750000 38.253521 c
30.032560 38.667736 29.115175 38.421921 28.700962 37.704483 c
28.120131 36.698452 l
27.796192 36.137375 27.145899 35.851067 26.513317 35.991013 c
25.626040 36.188240 l
25.067423 36.370647 24.495693 36.524048 23.912628 36.646667 c
23.037819 36.922268 l
22.420017 37.117363 22.000000 37.690460 22.000000 38.338337 c
22.000000 39.500000 l
h
6.999939 20.500244 m
6.999939 27.956089 13.044094 34.000244 20.499939 34.000244 c
27.955784 34.000244 33.999939 27.956089 33.999939 20.500244 c
33.999939 13.044399 27.955784 7.000244 20.499939 7.000244 c
13.044094 7.000244 6.999939 13.044399 6.999939 20.500244 c
h
14.233011 30.086567 m
14.833106 30.510162 15.662971 30.367085 16.086567 29.766989 c
21.689148 21.830000 l
30.500000 21.830000 l
31.234539 21.830000 31.830000 21.234539 31.830000 20.500000 c
31.830000 19.765461 31.234539 19.170000 30.500000 19.170000 c
21.689148 19.170000 l
16.086567 11.233011 l
15.662971 10.632917 14.833106 10.489836 14.233011 10.913433 c
13.632916 11.337029 13.489837 12.166895 13.913433 12.766989 c
19.372028 20.500000 l
13.913433 28.233011 l
13.489837 28.833107 13.632916 29.662971 14.233011 30.086567 c
h
f*
n
Q
endstream
endobj
3 0 obj
5648
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000005738 00000 n
0000005761 00000 n
0000005934 00000 n
0000006008 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
6067
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "stickers_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,123 +0,0 @@
%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 4.270020 4.152344 cm
0.000000 0.000000 0.000000 scn
16.315697 39.500134 m
17.465136 39.695385 18.643398 39.519531 19.692223 38.997250 c
20.036819 38.810360 l
20.329382 38.633312 l
22.423059 37.333458 25.297297 34.879963 28.991110 31.253437 c
30.068821 30.185352 l
30.611883 29.639896 l
34.713905 25.501024 37.402637 22.349218 38.705769 20.126995 c
39.294643 19.122784 39.547707 17.960588 39.433071 16.802202 c
39.381195 16.416437 l
39.289803 15.914349 l
39.216812 15.566687 l
39.100006 15.079699 l
36.891888 6.359375 29.005989 0.117638 19.853556 0.117638 c
8.888740 0.117638 0.000000 9.006048 0.000000 19.970463 c
0.000000 29.125599 6.246058 37.013073 14.970581 39.218063 c
15.710625 39.388660 l
16.315697 39.500134 l
h
12.798756 35.489426 m
12.631100 35.425148 l
12.241472 35.242031 l
6.578289 32.429054 2.786009 26.584171 2.786009 19.970726 c
2.786009 10.544853 10.427470 2.903671 19.853691 2.903671 c
26.466494 2.903671 32.311123 6.694832 35.134140 12.353510 c
35.125557 12.358789 l
35.308681 12.748402 l
35.384480 12.909666 35.423779 13.085659 35.423779 13.263847 c
35.423779 13.877327 34.967880 14.384329 34.376385 14.464569 c
34.211948 14.475632 l
32.160770 14.475632 l
22.489969 14.475632 14.620218 22.186560 14.364793 31.795357 c
14.358393 32.277351 l
14.358393 34.328457 l
14.358393 34.506645 14.319095 34.682640 14.243299 34.843903 c
13.984495 35.394527 13.364433 35.659653 12.798756 35.489426 c
h
16.782263 36.753235 m
17.411953 36.860195 18.059189 36.741272 18.609720 36.417446 c
18.873783 36.257626 l
19.147327 36.083416 l
21.103546 34.807701 23.928543 32.350906 27.572746 28.738895 c
28.098915 28.215038 l
29.130342 27.174446 l
32.797047 23.440453 35.195877 20.604664 36.302593 18.717381 c
36.625195 18.167248 36.743385 17.520950 36.636360 16.892254 c
36.563797 16.495956 l
35.903824 16.976896 35.090961 17.260666 34.211819 17.260666 c
32.160641 17.260666 l
31.717884 17.267069 l
23.629288 17.501270 17.144138 24.131626 17.144138 32.276615 c
17.144138 34.327721 l
17.128656 34.679214 l
17.087467 35.145836 16.964489 35.602531 16.764452 36.028126 c
16.655125 36.260727 16.526255 36.477886 16.380722 36.678566 c
16.574390 36.716927 l
16.782263 36.753235 l
h
f*
n
Q
endstream
endobj
3 0 obj
2244
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000002334 00000 n
0000002357 00000 n
0000002530 00000 n
0000002604 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2663
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "trending_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,110 +0,0 @@
%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 4.170044 0.499023 cm
0.000000 0.000000 0.000000 scn
32.698776 36.649349 m
33.196007 37.230061 33.128334 38.103909 32.547619 38.601139 c
24.752439 45.275715 13.077241 44.850506 5.778737 37.552002 c
-1.926246 29.847019 -1.926246 17.354773 5.778737 9.649792 c
13.483720 1.944809 25.975967 1.944809 33.680950 9.649792 c
35.733494 11.702333 37.280899 14.138113 38.257706 16.806875 c
38.402122 17.201443 38.533802 17.600437 38.652599 18.003250 c
38.868858 18.736530 38.449730 19.506285 37.716450 19.722542 c
36.983170 19.938799 36.213417 19.519670 35.997158 18.786390 c
35.895077 18.440252 35.781937 18.097435 35.657864 17.758453 c
34.818737 15.465839 33.489719 13.373833 31.723314 11.607428 c
25.099504 4.983616 14.360184 4.983616 7.736373 11.607428 c
1.112563 18.231237 1.112563 28.970556 7.736373 35.594368 c
14.010414 41.868408 24.048201 42.233982 30.746983 36.498192 c
31.327696 36.000961 32.201546 36.068634 32.698776 36.649349 c
h
38.615009 32.391445 m
38.529594 33.073990 37.947231 33.602066 37.241535 33.602066 c
28.902636 33.602066 l
28.728996 33.591278 l
28.046450 33.505859 27.518377 32.923504 27.518377 32.217808 c
27.529161 32.044167 l
27.614580 31.361622 28.196938 30.833549 28.902636 30.833549 c
34.177799 30.834362 l
25.567074 22.223354 l
20.660971 27.129120 l
20.471394 27.300470 l
19.490988 28.100105 18.044804 28.042988 17.130936 27.129120 c
8.744342 18.742527 l
8.620458 18.600773 l
8.207510 18.058197 8.248805 17.280428 8.744342 16.784891 c
8.886098 16.661007 l
9.428673 16.248058 10.206441 16.289354 10.701978 16.784891 c
18.894285 24.980196 l
23.802057 20.072762 l
23.991632 19.901411 l
24.972040 19.101778 26.418222 19.158894 27.332090 20.072762 c
35.857254 28.599537 l
35.857281 23.878904 l
35.868065 23.705265 l
35.953484 23.022720 36.535839 22.494646 37.241535 22.494646 c
38.006042 22.494646 38.625793 23.114401 38.625793 23.878904 c
38.625793 32.217808 l
38.615009 32.391445 l
h
f*
n
Q
endstream
endobj
3 0 obj
1977
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000002067 00000 n
0000002090 00000 n
0000002263 00000 n
0000002337 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2396
%%EOF

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "add_48.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,95 +0,0 @@
%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 4.272095 4.271973 cm
0.000000 0.000000 0.000000 scn
19.728001 36.800056 m
10.299395 36.800056 2.656000 29.156660 2.656000 19.728054 c
2.656000 10.299450 10.299395 2.656055 19.728001 2.656055 c
29.156605 2.656055 36.799999 10.299450 36.799999 19.728054 c
36.799999 29.156660 29.156605 36.800056 19.728001 36.800056 c
h
0.000000 19.728054 m
0.000000 30.623528 8.832526 39.456055 19.728001 39.456055 c
30.623474 39.456055 39.455997 30.623528 39.455997 19.728054 c
39.455997 8.832581 30.623474 0.000057 19.728001 0.000057 c
8.832526 0.000057 0.000000 8.832581 0.000000 19.728054 c
h
19.728001 29.056055 m
20.461435 29.056055 21.056002 28.461489 21.056002 27.728054 c
21.056002 21.056053 l
27.728001 21.056053 l
28.461435 21.056053 29.056002 20.461487 29.056002 19.728054 c
29.056002 18.994619 28.461435 18.400053 27.728001 18.400053 c
21.056002 18.400053 l
21.056002 11.728054 l
21.056002 10.994619 20.461435 10.400053 19.728001 10.400053 c
18.994568 10.400053 18.400002 10.994619 18.400002 11.728054 c
18.400002 18.400053 l
11.728000 18.400053 l
10.994566 18.400053 10.400000 18.994619 10.400000 19.728054 c
10.400000 20.461487 10.994566 21.056053 11.728000 21.056053 c
18.400002 21.056053 l
18.400002 27.728054 l
18.400002 28.461489 18.994568 29.056055 19.728001 29.056055 c
h
f*
n
Q
endstream
endobj
3 0 obj
1349
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 48.000000 48.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
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000001439 00000 n
0000001462 00000 n
0000001635 00000 n
0000001709 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
1768
%%EOF

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "bold@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "bold@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 906 B

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "italic@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "italic@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "link@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "link@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "markdown@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "markdown@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "strike@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "strike@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@ -1,21 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ChannelIntro@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,9 +0,0 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"provides-namespace" : true
}
}

View File

@ -1,9 +0,0 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_unlikelongtap_l.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_unlikelongtap_r.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_likelongtap.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_likemsg.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_likedmsg.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_unlikeswipe.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"filename" : "ic_likeswipe.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "LaunchLogo@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "LaunchLogo@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,12 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_secretchat.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerArrow@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerArrow@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

View File

@ -1,9 +1,9 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerMinimizedPause@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerMinimizedPause@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerMinimizedPlay@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "MusicPlayerMinimizedPlay@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ChannelVerifiedIconMedium@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ChannelVerifiedIconMedium@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,21 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ModernMenuCheck@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

View File

@ -1,9 +0,0 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"provides-namespace" : true
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaDocumentStatusDownload@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaDocumentStatusDownload@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "SlowDown@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "SlowDown@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,9 +1,9 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}
}

View File

@ -1,9 +0,0 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"provides-namespace" : true
}
}

View File

@ -1,21 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaEmptyFilesIcon@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,21 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaEmptyIcon@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,22 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaEmptyLinks@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "SharedMediaEmptyLinks@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Some files were not shown because too many files have changed in this diff Show More