Various settings UI improvements

This commit is contained in:
Ilya Laktyushin 2021-10-25 19:16:03 +04:00
parent 3f2689d7d0
commit 461f9b874c
128 changed files with 4474 additions and 538 deletions

View File

@ -921,6 +921,11 @@ open class NavigationBar: ASDisplayNode {
}
}
public func updateBackgroundAlpha(_ alpha: CGFloat, transition: ContainedViewLayoutTransition) {
transition.updateAlpha(node: self.backgroundNode, alpha: alpha)
transition.updateAlpha(node: self.stripeNode, alpha: alpha)
}
public func updatePresentationData(_ presentationData: NavigationBarPresentationData) {
if presentationData.theme !== self.presentationData.theme || presentationData.strings !== self.presentationData.strings {
self.presentationData = presentationData

View File

@ -5,10 +5,10 @@ import Display
import AppBundle
import LegacyComponents
private func generateKnobImage() -> UIImage? {
func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setShadow(offset: CGSize(width: 0.0, height: -3.0), blur: 12.0, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})

View File

@ -5,15 +5,6 @@ import Display
import AppBundle
import LegacyComponents
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
final class InstantPageSettingsFontSizeItemNode: InstantPageSettingsItemNode {
private let updated: (Int) -> Void

View File

@ -122,15 +122,6 @@ final class ItemListInviteLinkTimeLimitItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class ItemListInviteLinkTimeLimitItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -227,10 +218,10 @@ private final class ItemListInviteLinkTimeLimitItemNode: ListViewItemNode {
if let item = self.item, let params = self.layoutParams {
sliderView.value = CGFloat(item.value.position)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -372,9 +363,10 @@ private final class ItemListInviteLinkTimeLimitItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -138,15 +138,6 @@ final class ItemListInviteLinkUsageLimitItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class ItemListInviteLinkUsageLimitItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -243,10 +234,10 @@ private final class ItemListInviteLinkUsageLimitItemNode: ListViewItemNode {
if let item = self.item, let params = self.layoutParams {
sliderView.value = CGFloat(item.value.position)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -382,9 +373,10 @@ private final class ItemListInviteLinkUsageLimitItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -471,6 +471,9 @@ public class ItemListInviteRequestItemNode: ListViewItemNode, ItemListItemNode {
transition.updateAlpha(node: strongSelf.subtitleNode, alpha: isExtracted ? 0.0 : 1.0)
transition.updateAlpha(node: strongSelf.expandedSubtitleNode, alpha: isExtracted ? 1.0 : 0.0)
transition.updateAlpha(node: strongSelf.addButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
transition.updateAlpha(node: strongSelf.dismissButton, alpha: isExtracted ? 0.0 : 1.0, delay: isExtracted ? 0.0 : 0.1)
transition.updateSublayerTransformOffset(layer: strongSelf.offsetContainerNode.layer, offset: CGPoint(x: isExtracted ? inset : 0.0, y: isExtracted ? extractedVerticalOffset : 0.0))
}
}

View File

@ -280,6 +280,8 @@ open class ItemListControllerNode: ASDisplayNode {
var alwaysSynchronous = false
private var previousContentOffset: ListViewVisibleContentOffset?
public init(controller: ItemListController?, navigationBar: NavigationBar, state: Signal<(ItemListPresentationData, (ItemListNodeState, Any)), NoError>) {
self.navigationBar = navigationBar
@ -343,7 +345,29 @@ open class ItemListControllerNode: ASDisplayNode {
if let validLayout = self?.validLayout {
inVoiceOver = validLayout.0.inVoiceOver
}
self?.contentOffsetChanged?(offset, inVoiceOver)
if let strongSelf = self {
var previousContentOffsetValue: CGFloat?
if let previousContentOffset = strongSelf.previousContentOffset, case let .known(value) = previousContentOffset {
previousContentOffsetValue = value
}
switch offset {
case let .known(value):
let transition: ContainedViewLayoutTransition
if let previousContentOffsetValue = previousContentOffsetValue, value <= 0.0, previousContentOffsetValue > 30.0 {
transition = .animated(duration: 0.3, curve: .linear)
} else {
transition = .immediate
}
strongSelf.navigationBar.updateBackgroundAlpha(min(30.0, value) / 30.0, transition: transition)
case .unknown, .none:
strongSelf.navigationBar.updateBackgroundAlpha(0.0, transition: .immediate)
}
strongSelf.previousContentOffset = offset
}
}
self.listNode.beganInteractiveDragging = { [weak self] _ in
@ -403,6 +427,8 @@ open class ItemListControllerNode: ASDisplayNode {
override open func didLoad() {
super.didLoad()
self.navigationBar.updateBackgroundAlpha(0.0, transition: .immediate)
(self.view as? ItemListControllerNodeView)?.onLayout = { [weak self] in
guard let strongSelf = self else {
return
@ -442,30 +468,18 @@ open class ItemListControllerNode: ASDisplayNode {
insets.bottom = max(insets.bottom, additionalInsets.bottom)
var addedInsets: UIEdgeInsets?
if layout.size.width > 480.0 {
let inset = max(20.0, floor((layout.size.width - 674.0) / 2.0))
insets.left += inset
insets.right += inset
addedInsets = UIEdgeInsets(top: 0.0, left: inset, bottom: 0.0, right: inset)
if self.leftOverlayNode.supernode == nil {
self.insertSubnode(self.leftOverlayNode, aboveSubnode: self.listNode)
}
if self.rightOverlayNode.supernode == nil {
self.insertSubnode(self.rightOverlayNode, aboveSubnode: self.listNode)
}
} else {
insets.left += layout.safeInsets.left
insets.right += layout.safeInsets.right
if self.leftOverlayNode.supernode != nil {
self.leftOverlayNode.removeFromSupernode()
}
if self.rightOverlayNode.supernode != nil {
self.rightOverlayNode.removeFromSupernode()
}
}
let inset = max(16.0, floor((layout.size.width - 674.0) / 2.0))
insets.left += inset
insets.right += inset
addedInsets = UIEdgeInsets(top: 0.0, left: inset, bottom: 0.0, right: inset)
if self.leftOverlayNode.supernode == nil {
self.insertSubnode(self.leftOverlayNode, aboveSubnode: self.listNode)
}
if self.rightOverlayNode.supernode == nil {
self.insertSubnode(self.rightOverlayNode, aboveSubnode: self.listNode)
}
if let toolbarItem = self.toolbarItem {
var tabBarHeight: CGFloat
let bottomInset: CGFloat = insets.bottom

View File

@ -148,7 +148,7 @@ public func itemListNeighborsGroupedInsets(_ neighbors: ItemListNeighbors) -> UI
}
public func itemListHasRoundedBlockLayout(_ params: ListViewItemLayoutParams) -> Bool {
return params.width > 480.0
return true
}
public final class ItemListPresentationData: Equatable {

View File

@ -268,9 +268,9 @@ public class ItemListActionItemNode: ListViewItemNode, ItemListItemNode {
switch item.alignment {
case .natural:
strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: leftInset, y: 11.0), size: titleLayout.size)
strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: leftInset, y: 12.0), size: titleLayout.size)
case .center:
strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: params.leftInset + floor((params.width - params.leftInset - params.rightInset - titleLayout.size.width) / 2.0), y: 11.0), size: titleLayout.size)
strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: params.leftInset + floor((params.width - params.leftInset - params.rightInset - titleLayout.size.width) / 2.0), y: 12.0), size: titleLayout.size)
}
strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel))

View File

@ -280,7 +280,7 @@ public class ItemListDisclosureItemNode: ListViewItemNode, ItemListItemNode {
let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.title, font: titleFont, textColor: titleColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - params.rightInset - 20.0 - leftInset - additionalTextRightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
let detailFont = Font.regular(floor(item.presentationData.fontSize.itemListBaseFontSize * 13.0 / 17.0))
let detailFont = Font.regular(floor(item.presentationData.fontSize.itemListBaseFontSize * 15.0 / 17.0))
let labelFont: UIFont
let labelBadgeColor: UIColor
@ -308,7 +308,7 @@ public class ItemListDisclosureItemNode: ListViewItemNode, ItemListItemNode {
let (labelLayout, labelApply) = makeLabelLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.label, font: labelFont, textColor:labelBadgeColor), backgroundColor: nil, maximumNumberOfLines: multilineLabel ? 0 : 1, truncationType: .end, constrainedSize: CGSize(width: labelConstrain, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
let verticalInset: CGFloat = 11.0
let titleSpacing: CGFloat = 3.0
let titleSpacing: CGFloat = 1.0
let height: CGFloat
switch item.labelStyle {

View File

@ -209,7 +209,7 @@ const CGFloat TGPhotoEditorSliderViewInternalMargin = 7.0f;
for (NSInteger i = 0; i < self.positionsCount; i++)
{
if (self.useLinesForPositions) {
CGSize lineSize = CGSizeMake(2.0, 8.0);
CGSize lineSize = CGSizeMake(4.0, 12.0);
CGRect lineRect = CGRectMake(margin - lineSize.width / 2.0f + totalLength / (self.positionsCount - 1) * i, (sideLength - lineSize.height) / 2, lineSize.width, lineSize.height);
if (vertical)
lineRect = CGRectMake(lineRect.origin.y, lineRect.origin.x, lineRect.size.height, lineRect.size.width);

View File

@ -18,15 +18,15 @@ final class LocationInfoListItem: ListViewItem {
let location: TelegramMediaMap
let address: String?
let distance: String?
let drivingTime: Double?
let transitTime: Double?
let walkingTime: Double?
let drivingTime: ExpectedTravelTime
let transitTime: ExpectedTravelTime
let walkingTime: ExpectedTravelTime
let action: () -> Void
let drivingAction: () -> Void
let transitAction: () -> Void
let walkingAction: () -> Void
public init(presentationData: ItemListPresentationData, engine: TelegramEngine, location: TelegramMediaMap, address: String?, distance: String?, drivingTime: Double?, transitTime: Double?, walkingTime: Double?, action: @escaping () -> Void, drivingAction: @escaping () -> Void, transitAction: @escaping () -> Void, walkingAction: @escaping () -> Void) {
public init(presentationData: ItemListPresentationData, engine: TelegramEngine, location: TelegramMediaMap, address: String?, distance: String?, drivingTime: ExpectedTravelTime, transitTime: ExpectedTravelTime, walkingTime: ExpectedTravelTime, action: @escaping () -> Void, drivingAction: @escaping () -> Void, transitAction: @escaping () -> Void, walkingAction: @escaping () -> Void) {
self.presentationData = presentationData
self.engine = engine
self.location = location
@ -279,28 +279,28 @@ final class LocationInfoListItemNode: ListViewItemNode {
let iconNodeFrame = CGRect(origin: CGPoint(x: params.leftInset + inset, y: 10.0), size: CGSize(width: iconSize, height: iconSize))
strongSelf.venueIconNode.frame = iconNodeFrame
if let drivingTime = item.drivingTime {
if case let .ready(drivingTime) = item.drivingTime {
strongSelf.drivingButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: drivingTime, format: { $0 })
if currentItem?.drivingTime == nil {
if let previousDrivingTime = currentItem?.drivingTime, case .calculating = previousDrivingTime {
strongSelf.drivingButtonNode?.alpha = 1.0
strongSelf.drivingButtonNode?.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
}
}
if let transitTime = item.transitTime {
if case let .ready(transitTime) = item.transitTime {
strongSelf.transitButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: transitTime, format: { $0 })
if currentItem?.transitTime == nil {
if let previousTransitTime = currentItem?.transitTime, case .calculating = previousTransitTime {
strongSelf.transitButtonNode?.alpha = 1.0
strongSelf.transitButtonNode?.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
}
}
if let walkingTime = item.walkingTime {
if case let .ready(walkingTime) = item.walkingTime {
strongSelf.walkingButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: walkingTime, format: { $0 })
if currentItem?.walkingTime == nil {
if let previousWalkingTime = currentItem?.walkingTime, case .calculating = previousWalkingTime {
strongSelf.walkingButtonNode?.alpha = 1.0
strongSelf.walkingButtonNode?.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
}
@ -309,7 +309,7 @@ final class LocationInfoListItemNode: ListViewItemNode {
let directionsWidth: CGFloat = 93.0
let directionsSpacing: CGFloat = 8.0
if item.drivingTime == nil && item.transitTime == nil && item.walkingTime == nil {
if case .calculating = item.drivingTime, case .calculating = item.transitTime, case .calculating = item.walkingTime {
let shimmerNode: ShimmerEffectNode
if let current = strongSelf.placeholderNode {
shimmerNode = current
@ -343,13 +343,13 @@ final class LocationInfoListItemNode: ListViewItemNode {
var buttonOrigin = leftInset
strongSelf.drivingButtonNode?.frame = CGRect(origin: CGPoint(x: buttonOrigin, y: subtitleFrame.maxY + 12.0), size: CGSize(width: directionsWidth, height: drivingHeight))
if item.drivingTime != nil {
if case .ready = item.drivingTime {
buttonOrigin += directionsWidth + directionsSpacing
}
strongSelf.transitButtonNode?.frame = CGRect(origin: CGPoint(x: buttonOrigin, y: subtitleFrame.maxY + 12.0), size: CGSize(width: directionsWidth, height: transitHeight))
if item.transitTime != nil {
if case .ready = item.transitTime {
buttonOrigin += directionsWidth + directionsSpacing
}

View File

@ -24,9 +24,9 @@ final class LocationLiveListItem: ListViewItem {
let message: Message
let distance: Double?
let drivingTime: Double?
let transitTime: Double?
let walkingTime: Double?
let drivingTime: ExpectedTravelTime
let transitTime: ExpectedTravelTime
let walkingTime: ExpectedTravelTime
let action: () -> Void
let longTapAction: () -> Void
@ -35,7 +35,7 @@ final class LocationLiveListItem: ListViewItem {
let transitAction: () -> Void
let walkingAction: () -> Void
public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, message: Message, distance: Double?, drivingTime: Double?, transitTime: Double?, walkingTime: Double?, action: @escaping () -> Void, longTapAction: @escaping () -> Void = { }, drivingAction: @escaping () -> Void, transitAction: @escaping () -> Void, walkingAction: @escaping () -> Void) {
public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, message: Message, distance: Double?, drivingTime: ExpectedTravelTime, transitTime: ExpectedTravelTime, walkingTime: ExpectedTravelTime, action: @escaping () -> Void, longTapAction: @escaping () -> Void = { }, drivingAction: @escaping () -> Void, transitAction: @escaping () -> Void, walkingAction: @escaping () -> Void) {
self.presentationData = presentationData
self.dateTimeFormat = dateTimeFormat
self.nameDisplayOrder = nameDisplayOrder
@ -206,7 +206,17 @@ final class LocationLiveListItemNode: ListViewItemNode {
let titleSpacing: CGFloat = 1.0
var contentSize = CGSize(width: params.width, height: verticalInset * 2.0 + titleLayout.size.height + titleSpacing + subtitleLayout.size.height)
if item.drivingTime != nil || item.transitTime != nil || item.walkingTime != nil {
let hasEta: Bool
if case .ready = item.drivingTime {
hasEta = true
} else if case .ready = item.transitTime {
hasEta = true
} else if case .ready = item.walkingTime {
hasEta = true
} else {
hasEta = false
}
if hasEta {
contentSize.height += 46.0
}
let nodeLayout = ListViewItemNodeLayout(contentSize: contentSize, insets: UIEdgeInsets())
@ -326,7 +336,7 @@ final class LocationLiveListItemNode: ListViewItemNode {
timerNode.removeFromSupernode()
}
if let drivingTime = item.drivingTime {
if case let .ready(drivingTime) = item.drivingTime {
strongSelf.drivingButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: drivingTime, format: { $0 })
if currentItem?.drivingTime == nil {
@ -335,7 +345,7 @@ final class LocationLiveListItemNode: ListViewItemNode {
}
}
if let transitTime = item.transitTime {
if case let .ready(transitTime) = item.transitTime {
strongSelf.transitButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: transitTime, format: { $0 })
if currentItem?.transitTime == nil {
@ -344,7 +354,7 @@ final class LocationLiveListItemNode: ListViewItemNode {
}
}
if let walkingTime = item.walkingTime {
if case let .ready(walkingTime) = item.walkingTime {
strongSelf.walkingButtonNode?.title = stringForEstimatedDuration(strings: item.presentationData.strings, time: walkingTime, format: { $0 })
if currentItem?.walkingTime == nil {
@ -362,13 +372,13 @@ final class LocationLiveListItemNode: ListViewItemNode {
var buttonOrigin = leftInset
strongSelf.drivingButtonNode?.frame = CGRect(origin: CGPoint(x: buttonOrigin, y: subtitleFrame.maxY + 12.0), size: CGSize(width: directionsWidth, height: drivingHeight))
if item.drivingTime != nil {
if case .ready = item.drivingTime {
buttonOrigin += directionsWidth + directionsSpacing
}
strongSelf.transitButtonNode?.frame = CGRect(origin: CGPoint(x: buttonOrigin, y: subtitleFrame.maxY + 12.0), size: CGSize(width: directionsWidth, height: transitHeight))
if item.transitTime != nil {
if case .ready = item.transitTime {
buttonOrigin += directionsWidth + directionsSpacing
}

View File

@ -120,8 +120,16 @@ func throttledUserLocation(_ userLocation: Signal<CLLocation?, NoError>) -> Sign
}
}
func getExpectedTravelTime(coordinate: CLLocationCoordinate2D, transportType: MKDirectionsTransportType) -> Signal<Double?, NoError> {
enum ExpectedTravelTime: Equatable {
case unknown
case calculating
case ready(Double)
}
func getExpectedTravelTime(coordinate: CLLocationCoordinate2D, transportType: MKDirectionsTransportType) -> Signal<ExpectedTravelTime, NoError> {
return Signal { subscriber in
subscriber.putNext(.calculating)
let destinationPlacemark = MKPlacemark(coordinate: coordinate, addressDictionary: nil)
let destination = MKMapItem(placemark: destinationPlacemark)
@ -133,7 +141,11 @@ func getExpectedTravelTime(coordinate: CLLocationCoordinate2D, transportType: MK
let directions = MKDirections(request: request)
directions.calculateETA { response, error in
subscriber.putNext(response?.expectedTravelTime)
if let travelTime = response?.expectedTravelTime {
subscriber.putNext(.ready(travelTime))
} else {
subscriber.putNext(.unknown)
}
subscriber.putCompletion()
}
return ActionDisposable {

View File

@ -48,9 +48,9 @@ private enum LocationViewEntryId: Hashable {
}
private enum LocationViewEntry: Comparable, Identifiable {
case info(PresentationTheme, TelegramMediaMap, String?, Double?, Double?, Double?, Double?)
case info(PresentationTheme, TelegramMediaMap, String?, Double?, ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime)
case toggleLiveLocation(PresentationTheme, String, String, Double?, Double?)
case liveLocation(PresentationTheme, PresentationDateTimeFormat, PresentationPersonNameOrder, Message, Double?, Double?, Double?, Double?, Int)
case liveLocation(PresentationTheme, PresentationDateTimeFormat, PresentationPersonNameOrder, Message, Double?, ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime, Int)
var stableId: LocationViewEntryId {
switch self {
@ -240,12 +240,12 @@ final class LocationViewControllerNode: ViewControllerTracingNode, CLLocationMan
var onAnnotationsReady: (() -> Void)?
private let travelDisposables = DisposableSet()
private var travelTimes: [EngineMessage.Id: (Double, Double?, Double?, Double?)] = [:] {
private var travelTimes: [EngineMessage.Id: (Double, ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime)] = [:] {
didSet {
self.travelTimesPromise.set(.single(self.travelTimes))
}
}
private let travelTimesPromise = Promise<[EngineMessage.Id: (Double, Double?, Double?, Double?)]>([:])
private let travelTimesPromise = Promise<[EngineMessage.Id: (Double, ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime)]>([:])
init(context: AccountContext, presentationData: PresentationData, subject: Message, interaction: LocationViewInteraction, locationManager: LocationManager) {
self.context = context
@ -287,12 +287,25 @@ final class LocationViewControllerNode: ViewControllerTracingNode, CLLocationMan
throttledUserLocation(self.headerNode.mapNode.userLocation)
)
var eta: Signal<(Double?, Double?, Double?)?, NoError> = .single(nil)
var eta: Signal<(ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime), NoError> = .single((.calculating, .calculating, .calculating))
var address: Signal<String?, NoError> = .single(nil)
if let location = getLocation(from: subject), location.liveBroadcastingTimeout == nil {
eta = .single(nil)
|> then(combineLatest(queue: Queue.mainQueue(), getExpectedTravelTime(coordinate: location.coordinate, transportType: .automobile), getExpectedTravelTime(coordinate: location.coordinate, transportType: .transit), getExpectedTravelTime(coordinate: location.coordinate, transportType: .walking)) |> map(Optional.init))
eta = .single((.calculating, .calculating, .calculating))
|> then(combineLatest(queue: Queue.mainQueue(), getExpectedTravelTime(coordinate: location.coordinate, transportType: .automobile), getExpectedTravelTime(coordinate: location.coordinate, transportType: .transit), getExpectedTravelTime(coordinate: location.coordinate, transportType: .walking))
|> mapToSignal { drivingTime, transitTime, walkingTime -> Signal<(ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime), NoError> in
if case .calculating = drivingTime {
return .complete()
}
if case .calculating = transitTime {
return .complete()
}
if case .calculating = walkingTime {
return .complete()
}
return .single((drivingTime, transitTime, walkingTime))
})
if let venue = location.venue, let venueAddress = venue.address, !venueAddress.isEmpty {
address = .single(venueAddress)
@ -360,7 +373,7 @@ final class LocationViewControllerNode: ViewControllerTracingNode, CLLocationMan
let subjectLocation = CLLocation(latitude: location.latitude, longitude: location.longitude)
let distance = userLocation.flatMap { subjectLocation.distance(from: $0) }
entries.append(.info(presentationData.theme, location, address, distance, eta?.0, eta?.1, eta?.2))
entries.append(.info(presentationData.theme, location, address, distance, eta.0, eta.1, eta.2))
annotations.append(LocationPinAnnotation(context: context, theme: presentationData.theme, location: location, forcedSelection: true))
} else {
@ -451,18 +464,24 @@ final class LocationViewControllerNode: ViewControllerTracingNode, CLLocationMan
if message.localTags.contains(.OutgoingLiveLocation), let selfPeer = selfPeer {
userAnnotation = LocationPinAnnotation(context: context, theme: presentationData.theme, message: message, selfPeer: selfPeer, isSelf: true, heading: location.heading)
} else {
var drivingTime: Double?
var transitTime: Double?
var walkingTime: Double?
var drivingTime: ExpectedTravelTime = .unknown
var transitTime: ExpectedTravelTime = .unknown
var walkingTime: ExpectedTravelTime = .unknown
if !isLocationView && message.author?.id != context.account.peerId {
let signal = combineLatest(queue: Queue.mainQueue(), getExpectedTravelTime(coordinate: location.coordinate, transportType: .automobile), getExpectedTravelTime(coordinate: location.coordinate, transportType: .transit), getExpectedTravelTime(coordinate: location.coordinate, transportType: .walking))
|> mapToSignal { drivingTime, transitTime, walkingTime -> Signal<(Double?, Double?, Double?), NoError> in
if drivingTime != nil && transitTime != nil && walkingTime != nil {
return .single((drivingTime, transitTime, walkingTime))
} else {
return .single((drivingTime, transitTime, walkingTime))
|> delay(0.3, queue: Queue.mainQueue())
|> mapToSignal { drivingTime, transitTime, walkingTime -> Signal<(ExpectedTravelTime, ExpectedTravelTime, ExpectedTravelTime), NoError> in
if case .calculating = drivingTime {
return .complete()
}
if case .calculating = transitTime {
return .complete()
}
if case .calculating = walkingTime {
return .complete()
}
return .single((drivingTime, transitTime, walkingTime))
}
if let (previousTimestamp, maybeDrivingTime, maybeTransitTime, maybeWalkingTime) = travelTimes[message.id] {
@ -482,6 +501,10 @@ final class LocationViewControllerNode: ViewControllerTracingNode, CLLocationMan
}))
}
} else {
drivingTime = .calculating
transitTime = .calculating
walkingTime = .calculating
strongSelf.travelDisposables.add(signal.start(next: { [weak self] drivingTime, transitTime, walkingTime in
guard let strongSelf = self else {
return

View File

@ -53,6 +53,8 @@ public final class PasscodeSetupController: ViewController {
self.displayNode = PasscodeSetupControllerNode(presentationData: self.presentationData, mode: self.mode)
self.displayNodeDidLoad()
self.navigationBar?.updateBackgroundAlpha(0.0, transition: .immediate)
self.controllerNode.selectPasscodeMode = { [weak self] in
guard let strongSelf = self, case let .setup(change, type) = strongSelf.mode else {
return

View File

@ -59,15 +59,6 @@ class ChatSlowmodeItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private let allowedValues: [Int32] = [0, 10, 30, 60, 300, 900, 3600]
class ChatSlowmodeItemNode: ListViewItemNode {
@ -138,8 +129,8 @@ class ChatSlowmodeItemNode: ListViewItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.limitValueChangedToLatestState = true
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = CGFloat(allowedValues.count - 1)
@ -159,10 +150,10 @@ class ChatSlowmodeItemNode: ListViewItemNode {
sliderView.value = CGFloat(value)
self.reportedValue = item.value
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -273,9 +264,10 @@ class ChatSlowmodeItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -90,15 +90,6 @@ class PeerRemoveTimeoutItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -3.0), blur: 8.0, color: UIColor(white: 0.0, alpha: 0.15).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
class PeerRemoveTimeoutItemNode: ListViewItemNode, ItemListItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -146,8 +137,8 @@ class PeerRemoveTimeoutItemNode: ListViewItemNode, ItemListItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = CGFloat(self.titleNodes.count - 1)
@ -162,9 +153,9 @@ class PeerRemoveTimeoutItemNode: ListViewItemNode, ItemListItemNode {
sliderView.value = mapTimeoutToSliderValue(item.value, availableValues: item.availableValues)
sliderView.backgroundColor = item.presentationData.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.presentationData.theme.list.disclosureArrowColor
sliderView.backColor = item.presentationData.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.enabled ? item.presentationData.theme.list.itemAccentColor : item.presentationData.theme.list.itemDisabledTextColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.presentationData.theme)
let sliderInset: CGFloat = params.leftInset + 16.0
@ -290,8 +281,8 @@ class PeerRemoveTimeoutItemNode: ListViewItemNode, ItemListItemNode {
if themeUpdated {
sliderView.backgroundColor = item.presentationData.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.presentationData.theme.list.disclosureArrowColor
sliderView.knobImage = generateKnobImage()
sliderView.backColor = item.presentationData.theme.list.itemSwitchColors.frameColor
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.presentationData.theme)
}
let value: CGFloat

View File

@ -157,15 +157,15 @@ private enum AutodownloadMediaCategoryEntry: ItemListNodeEntry {
case let .typesHeader(_, text):
return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section)
case let .photos(_, text, value, enabled):
return ItemListDisclosureItem(presentationData: presentationData, title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Photos")?.precomposed(), title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
arguments.customize(.photo)
})
case let .videos(_, text, value, enabled):
return ItemListDisclosureItem(presentationData: presentationData, title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Videos")?.precomposed(), title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
arguments.customize(.video)
})
case let .files(_, text, value, enabled):
return ItemListDisclosureItem(presentationData: presentationData, title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Files")?.precomposed(), title: text, enabled: enabled, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
arguments.customize(.file)
})
case let .voiceMessagesInfo(_, text):

View File

@ -83,15 +83,6 @@ final class AutodownloadDataUsagePickerItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class AutodownloadDataUsagePickerItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -171,8 +162,8 @@ private final class AutodownloadDataUsagePickerItemNode: ListViewItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 2.0 + (self.item?.customPosition != nil ? 1 : 0)
@ -194,10 +185,10 @@ private final class AutodownloadDataUsagePickerItemNode: ListViewItemNode {
sliderView.value = CGFloat(value)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -321,9 +312,9 @@ private final class AutodownloadDataUsagePickerItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemSwitchColors.frameColor
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -101,15 +101,6 @@ final class AutodownloadSizeLimitItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class AutodownloadSizeLimitItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -160,8 +151,8 @@ private final class AutodownloadSizeLimitItemNode: ListViewItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 1.0
@ -171,10 +162,10 @@ private final class AutodownloadSizeLimitItemNode: ListViewItemNode {
if let item = self.item, let params = self.layoutParams {
sliderView.value = sliderValue(for: item.value)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -278,9 +269,9 @@ private final class AutodownloadSizeLimitItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -300,21 +300,21 @@ private enum DataAndStorageEntry: ItemListNodeEntry {
let arguments = arguments as! DataAndStorageControllerArguments
switch self {
case let .storageUsage(_, text):
return ItemListDisclosureItem(presentationData: presentationData, title: text, label: "", sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Storage")?.precomposed(), title: text, label: "", sectionId: self.section, style: .blocks, action: {
arguments.openStorageUsage()
})
case let .networkUsage(_, text):
return ItemListDisclosureItem(presentationData: presentationData, title: text, label: "", sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Network")?.precomposed(), title: text, label: "", sectionId: self.section, style: .blocks, action: {
arguments.openNetworkUsage()
})
case let .automaticDownloadHeader(_, text):
return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section)
case let .automaticDownloadCellular(_, text, value):
return ItemListDisclosureItem(presentationData: presentationData, title: text, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/Cellular")?.precomposed(), title: text, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
arguments.openAutomaticDownloadConnectionType(.cellular)
})
case let .automaticDownloadWifi(_, text, value):
return ItemListDisclosureItem(presentationData: presentationData, title: text, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
return ItemListDisclosureItem(presentationData: presentationData, icon: UIImage(bundleImageName: "Settings/MenuIcons/WiFi")?.precomposed(), title: text, label: value, labelStyle: .detailText, sectionId: self.section, style: .blocks, action: {
arguments.openAutomaticDownloadConnectionType(.wifi)
})
case let .automaticDownloadReset(_, text, enabled):

View File

@ -74,15 +74,6 @@ final class KeepMediaDurationPickerItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class KeepMediaDurationPickerItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -138,8 +129,8 @@ private final class KeepMediaDurationPickerItemNode: ListViewItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 3.0
@ -152,10 +143,10 @@ private final class KeepMediaDurationPickerItemNode: ListViewItemNode {
sliderView.value = CGFloat(value)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -278,9 +269,10 @@ private final class KeepMediaDurationPickerItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -89,15 +89,6 @@ final class MaximumCacheSizePickerItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -2.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.35).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
private final class MaximumCacheSizePickerItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -153,8 +144,8 @@ private final class MaximumCacheSizePickerItemNode: ListViewItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 3.0
@ -167,10 +158,10 @@ private final class MaximumCacheSizePickerItemNode: ListViewItemNode {
sliderView.value = CGFloat(value)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.startColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))
sliderView.hitTestEdgeInsets = UIEdgeInsets(top: -sliderView.frame.minX, left: 0.0, bottom: 0.0, right: -sliderView.frame.minX)
@ -293,9 +284,10 @@ private final class MaximumCacheSizePickerItemNode: ListViewItemNode {
if let sliderView = strongSelf.sliderView {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.startColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 15.0, y: 37.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 15.0 * 2.0, height: 44.0))

View File

@ -194,7 +194,7 @@ private final class StorageUsageItemNode: ListViewItemNode {
var textFrame = CGRect(origin: textOrigin, size: textLayout.size)
if textFrame.maxX > params.width - params.rightInset - inset {
textFrame.origin = CGPoint(x: horizontalSpacing, y: textOrigin.y + verticalSpacing)
textFrame.origin = CGPoint(x: params.leftInset + horizontalSpacing, y: textOrigin.y + verticalSpacing)
}
textOrigin = CGPoint(x: textFrame.maxX + horizontalSpacing, y: textFrame.minY)

View File

@ -124,7 +124,7 @@ private enum BlockedPeersEntry: ItemListNodeEntry {
let arguments = arguments as! BlockedPeersControllerArguments
switch self {
case let .add(theme, text):
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.addPersonIcon(theme), title: text, sectionId: self.section, height: .generic, editing: false, action: {
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.blockAccentIcon(theme), title: text, sectionId: self.section, height: .generic, editing: false, action: {
arguments.addPeer()
})
case let .peerItem(_, _, strings, dateTimeFormat, nameDisplayOrder, peer, editing, enabled):

View File

@ -148,6 +148,8 @@ final class PrivacyIntroController: ViewController {
override public func loadDisplayNode() {
self.displayNode = PrivacyIntroControllerNode(context: self.context, mode: self.mode, proceedAction: self.proceedAction)
self.displayNodeDidLoad()
self.navigationBar?.updateBackgroundAlpha(0.0, transition: .immediate)
}
override func viewDidAppear(_ animated: Bool) {

View File

@ -10,6 +10,7 @@ import ItemListUI
import PresentationDataUtils
import AccountContext
import AuthTransferUI
import ItemListPeerActionItem
private final class RecentSessionsControllerArguments {
let context: AccountContext
@ -271,12 +272,12 @@ private enum RecentSessionsEntry: ItemListNodeEntry {
return ItemListRecentSessionItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, session: session, enabled: true, editable: false, editing: false, revealed: false, sectionId: self.section, setSessionIdWithRevealedOptions: { _, _ in
}, removeSession: { _ in
})
case let .terminateOtherSessions(_, text):
return ItemListActionItem(presentationData: presentationData, title: text, kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
case let .terminateOtherSessions(theme, text):
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.blockDestructiveIcon(theme), title: text, sectionId: self.section, height: .generic, color: .destructive, editing: false, action: {
arguments.terminateOtherSessions()
})
case let .terminateAllWebSessions(_, text):
return ItemListActionItem(presentationData: presentationData, title: text, kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: {
case let .terminateAllWebSessions(theme, text):
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.blockDestructiveIcon(theme), title: text, sectionId: self.section, height: .generic, color: .destructive, editing: false, action: {
arguments.terminateAllWebSessions()
})
case let .currentAddDevice(_, text):

View File

@ -68,15 +68,6 @@ class BubbleSettingsRadiusItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
class BubbleSettingsRadiusItemNode: ListViewItemNode, ItemListItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -133,8 +124,8 @@ class BubbleSettingsRadiusItemNode: ListViewItemNode, ItemListItemNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.enablePanHandling = true
sliderView.enablePanHandling = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.dotSize = 5.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 4.0
@ -146,9 +137,9 @@ class BubbleSettingsRadiusItemNode: ListViewItemNode, ItemListItemNode {
sliderView.value = CGFloat((item.value - 8) / 2)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0
@ -274,8 +265,8 @@ class BubbleSettingsRadiusItemNode: ListViewItemNode, ItemListItemNode {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.knobImage = generateKnobImage()
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
let value: CGFloat = CGFloat((item.value - 8) / 2)

View File

@ -452,16 +452,28 @@ private final class ThemeCarouselThemeItemIconNode : ListViewItemNode {
}
}
func crossfade() {
// if let snapshotView = self.containerNode.view.snapshotView(afterScreenUpdates: false) {
// snapshotView.transform = self.containerNode.view.transform
// snapshotView.frame = self.containerNode.view.frame
// self.view.insertSubview(snapshotView, aboveSubview: self.containerNode.view)
//
// snapshotView.layer.animateAlpha(from: 1.0, to: 0.0, duration: ChatThemeScreen.themeCrossfadeDuration, delay: ChatThemeScreen.themeCrossfadeDelay, timingFunction: CAMediaTimingFunctionName.linear.rawValue, removeOnCompletion: false, completion: { [weak snapshotView] _ in
// snapshotView?.removeFromSuperview()
// })
// }
func prepareCrossfadeTransition() {
guard self.snapshotView == nil else {
return
}
if let snapshotView = self.containerNode.view.snapshotView(afterScreenUpdates: false) {
snapshotView.transform = self.containerNode.view.transform
snapshotView.frame = self.containerNode.view.frame
self.view.insertSubview(snapshotView, aboveSubview: self.containerNode.view)
self.snapshotView = snapshotView
}
}
func animateCrossfadeTransition() {
guard self.snapshotView?.layer.animationKeys()?.isEmpty ?? true else {
return
}
self.snapshotView?.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.3, removeOnCompletion: false, completion: { [weak self] _ in
self?.snapshotView?.removeFromSuperview()
self?.snapshotView = nil
})
}
override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) {
@ -796,11 +808,11 @@ class ThemeCarouselThemeItemNode: ListViewItemNode, ItemListItemNode {
self.snapshotView = snapshotView
}
// self.listNode.forEachVisibleItemNode { node in
// if let node = node as? ThemeCarouselThemeItemIconNode {
// node.prepareCrossfadeTransition()
// }
// }
self.listNode.forEachVisibleItemNode { node in
if let node = node as? ThemeCarouselThemeItemIconNode {
node.prepareCrossfadeTransition()
}
}
}
func animateCrossfadeTransition() {

View File

@ -271,7 +271,7 @@ private enum ThemePickerControllerEntry: ItemListNodeEntry {
arguments.openAccentColorPicker(currentTheme, create)
}, tag: ThemeSettingsEntryTag.accentColor)
case let .editTheme(theme, text):
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.makeEditThemeIcon(theme), title: text, sectionId: self.section, height: .generic, editing: false, action: {
return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.editThemeIcon(theme), title: text, sectionId: self.section, height: .generic, editing: false, action: {
arguments.editCurrentTheme()
})
case let .createTheme(theme, text):

View File

@ -140,29 +140,7 @@ private final class ThemeGridThemeItemIconNode : ASDisplayNode {
guard let item = self.item else {
return
}
let wasSelected = item.selected
item.action(item.themeReference)
if let animatedStickerNode = self.animatedStickerNode {
Queue.mainQueue().after(0.1) {
if !wasSelected {
animatedStickerNode.seekTo(.frameIndex(0))
animatedStickerNode.play()
// let scale: CGFloat = 2.6
// animatedStickerNode.transform = CATransform3DMakeScale(scale, scale, 1.0)
// animatedStickerNode.layer.animateSpring(from: 1.0 as NSNumber, to: scale as NSNumber, keyPath: "transform.scale", duration: 0.45)
//
// animatedStickerNode.completed = { [weak animatedStickerNode, weak self] _ in
// guard let item = self?.item, item.selected else {
// return
// }
// animatedStickerNode?.transform = CATransform3DIdentity
// animatedStickerNode?.layer.animateSpring(from: scale as NSNumber, to: 1.0 as NSNumber, keyPath: "transform.scale", duration: 0.45)
// }
}
}
}
}
private func removePlaceholder(animated: Bool) {

View File

@ -57,15 +57,6 @@ class ThemeSettingsBrightnessItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
class ThemeSettingsBrightnessItemNode: ListViewItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -119,9 +110,9 @@ class ThemeSettingsBrightnessItemNode: ListViewItemNode {
if let item = self.item, let params = self.layoutParams {
sliderView.value = CGFloat(item.value)
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 38.0, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 38.0 * 2.0, height: 44.0))
}
@ -224,8 +215,8 @@ class ThemeSettingsBrightnessItemNode: ListViewItemNode {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.itemSecondaryTextColor
sliderView.trackColor = item.theme.list.itemAccentColor
sliderView.knobImage = generateKnobImage()
sliderView.trackColor = item.theme.list.itemAccentColor.withAlphaComponent(0.45)
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 38.0, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 38.0 * 2.0, height: 44.0))

View File

@ -284,7 +284,7 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry {
arguments.selectTheme(theme)
}, contextAction: { theme, node, gesture in
arguments.themeContextAction(false, theme, node, gesture)
}, tag: nil)
}, tag: ThemeSettingsEntryTag.theme)
case let .chatTheme(_, text):
return ItemListDisclosureItem(presentationData: presentationData, title: text, label: "", sectionId: self.section, style: .blocks, action: {
arguments.openThemeSettings()
@ -1030,8 +1030,7 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The
var topOffset: CGFloat?
var bottomOffset: CGFloat?
var leftOffset: CGFloat?
var themeItemNode: ThemeSettingsThemeItemNode?
var colorItemNode: ThemeSettingsAccentColorItemNode?
var themeItemNode: ThemeCarouselThemeItemNode?
var view: UIView?
if #available(iOS 11.0, *) {
@ -1053,15 +1052,9 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The
let frame = node.view.convert(node.view.bounds, to: controller.navigationController?.view)
topOffset = frame.minY
bottomOffset = frame.maxY
if let itemNode = node as? ThemeSettingsThemeItemNode {
if let itemNode = node as? ThemeCarouselThemeItemNode {
themeItemNode = itemNode
}
} else if itemTag.isEqual(to: ThemeSettingsEntryTag.accentColor) && hasAccentColors {
let frame = node.view.convert(node.view.bounds, to: controller.navigationController?.view)
bottomOffset = frame.maxY
if let itemNode = node as? ThemeSettingsAccentColorItemNode {
colorItemNode = itemNode
}
}
}
}
@ -1077,14 +1070,12 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The
if view != nil {
themeItemNode?.prepareCrossfadeTransition()
colorItemNode?.prepareCrossfadeTransition()
}
let crossfadeController = ThemeSettingsCrossfadeController(view: view, topOffset: topOffset, bottomOffset: bottomOffset, leftOffset: leftOffset)
crossfadeController.didAppear = { [weak themeItemNode, weak colorItemNode] in
crossfadeController.didAppear = { [weak themeItemNode] in
if view != nil {
themeItemNode?.animateCrossfadeTransition()
colorItemNode?.animateCrossfadeTransition()
}
}

View File

@ -68,15 +68,6 @@ class ThemeSettingsFontSizeItem: ListViewItem, ItemListItem {
}
}
private func generateKnobImage() -> UIImage? {
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
}
class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode {
private let backgroundNode: ASDisplayNode
private let topStripeNode: ASDisplayNode
@ -161,9 +152,9 @@ class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode {
}
sliderView.value = value
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor
sliderView.knobImage = generateKnobImage()
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0
@ -283,8 +274,8 @@ class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode {
if themeUpdated {
sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor
sliderView.backColor = item.theme.list.disclosureArrowColor
sliderView.knobImage = generateKnobImage()
sliderView.backColor = item.theme.list.itemSwitchColors.frameColor
sliderView.knobImage = PresentationResourcesItemList.knobImage(item.theme)
}
let value: CGFloat

View File

@ -296,8 +296,8 @@ final class WallpaperPatternPanelNode: ASDisplayNode {
let sliderView = TGPhotoEditorSliderView()
sliderView.disableSnapToPositions = true
sliderView.trackCornerRadius = 1.0
sliderView.lineSize = 2.0
sliderView.trackCornerRadius = 2.0
sliderView.lineSize = 4.0
sliderView.startValue = 0.0
sliderView.minimumValue = 0.0
sliderView.maximumValue = 200.0
@ -308,7 +308,7 @@ final class WallpaperPatternPanelNode: ASDisplayNode {
sliderView.value = intensityToSliderValue(50, allowDark: self.allowDark)
sliderView.disablesInteractiveTransitionGestureRecognizer = true
sliderView.backgroundColor = .clear
sliderView.backColor = self.theme.list.disclosureArrowColor
sliderView.backColor = self.theme.list.itemSwitchColors.frameColor
if self.allowDark {
sliderView.trackColor = self.theme.list.disclosureArrowColor
} else {
@ -392,7 +392,7 @@ final class WallpaperPatternPanelNode: ASDisplayNode {
self.backgroundNode.updateColor(color: self.theme.chat.inputPanel.panelBackgroundColor, transition: .immediate)
self.topSeparatorNode.backgroundColor = self.theme.chat.inputPanel.panelSeparatorColor
self.sliderView?.backColor = self.theme.list.disclosureArrowColor
self.sliderView?.backColor = self.theme.list.itemSwitchColors.frameColor
if self.allowDark {
self.sliderView?.trackColor = self.theme.list.disclosureArrowColor
} else {

View File

@ -59,6 +59,9 @@ public enum PresentationResourceKey: Int32 {
case itemListCornersTop
case itemListCornersBottom
case itemListCornersBoth
case itemListKnob
case itemListBlockAccentIcon
case itemListBlockDestructiveIcon
case itemListVoiceCallIcon
case itemListVideoCallIcon

View File

@ -181,12 +181,35 @@ public struct PresentationResourcesItemList {
})
}
public static func makeEditThemeIcon(_ theme: PresentationTheme) -> UIImage? {
public static func editThemeIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.itemListEditThemeIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Settings/EditTheme"), color: theme.list.itemAccentColor)
})
}
public static func knobImage(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.itemListKnob.rawValue, { theme in
return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in
context.clear(CGRect(origin: CGPoint(), size: size))
context.setShadow(offset: CGSize(width: 0.0, height: -3.0), blur: 12.0, color: UIColor(white: 0.0, alpha: 0.25).cgColor)
context.setFillColor(UIColor.white.cgColor)
context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0)))
})
})
}
public static func blockAccentIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.itemListBlockAccentIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Item List/Block"), color: theme.list.itemAccentColor)
})
}
public static func blockDestructiveIcon(_ theme: PresentationTheme) -> UIImage? {
return theme.image(PresentationResourceKey.itemListBlockDestructiveIcon.rawValue, { theme in
return generateTintedImage(image: UIImage(bundleImageName: "Item List/Block"), color: theme.list.itemDestructiveColor)
})
}
public static func cornersImage(_ theme: PresentationTheme, top: Bool, bottom: Bool) -> UIImage? {
if !top && !bottom {
return nil

View File

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

View File

@ -0,0 +1,132 @@
%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.209961 4.334961 cm
1.000000 0.231373 0.188235 scn
8.477501 20.000078 m
7.981826 20.000078 7.580001 19.598253 7.580001 19.102577 c
7.580001 17.852577 l
7.580001 13.165078 l
7.580001 11.290078 l
7.580001 10.922809 7.282270 10.625078 6.915001 10.625078 c
6.547732 10.625078 6.250001 10.922809 6.250001 11.290078 c
6.250001 13.165078 l
6.250001 17.852577 l
6.250001 18.348253 5.848176 18.750078 5.352501 18.750078 c
4.856825 18.750078 4.455001 18.348253 4.455001 17.852577 c
4.455001 15.352578 l
4.455001 11.915078 l
4.455001 10.665078 l
4.455001 10.297809 4.157270 10.000078 3.790001 10.000078 c
3.422732 10.000078 3.125001 10.297809 3.125001 10.665078 c
3.125001 11.915078 l
3.125001 15.352578 l
3.125001 15.848253 2.723176 16.250078 2.227501 16.250078 c
1.731825 16.250078 1.330001 15.848253 1.330001 15.352578 c
1.330001 8.790077 l
1.330001 8.199193 1.330360 7.935847 1.344635 7.718048 c
1.568969 4.295376 4.295299 1.569046 7.717971 1.344711 c
7.935771 1.330437 8.199116 1.330078 8.790001 1.330078 c
11.187643 1.330078 13.360397 2.742092 14.334173 4.933088 c
17.002613 10.937080 l
17.168566 11.310472 17.011471 11.748350 16.645998 11.931087 c
16.268457 12.119858 15.809368 11.966828 15.620598 11.589286 c
13.759795 7.867682 l
13.621869 7.591829 13.312377 7.447009 13.012215 7.517867 c
12.712053 7.588726 12.500001 7.856667 12.500001 8.165078 c
12.500001 17.852577 l
12.500001 18.348253 12.098177 18.750078 11.602501 18.750078 c
11.106825 18.750078 10.705001 18.348253 10.705001 17.852577 c
10.705001 11.915078 l
10.705001 11.290078 l
10.705001 10.922809 10.407270 10.625078 10.040001 10.625078 c
9.672731 10.625078 9.375001 10.922809 9.375001 11.290078 c
9.375001 11.915078 l
9.375001 17.852577 l
9.375001 19.102577 l
9.375001 19.598253 8.973177 20.000078 8.477501 20.000078 c
h
10.582383 19.833282 m
10.279950 20.704594 9.451770 21.330078 8.477501 21.330078 c
7.503232 21.330078 6.675053 20.704594 6.372619 19.833282 c
6.066981 19.991014 5.720144 20.080078 5.352501 20.080078 c
4.122287 20.080078 3.125001 19.082792 3.125001 17.852577 c
3.125001 17.391878 l
2.850438 17.512890 2.546816 17.580078 2.227501 17.580078 c
0.997287 17.580078 0.000000 16.582792 0.000000 15.352578 c
0.000000 8.790077 l
0.000000 8.757024 l
0.000000 8.756998 l
-0.000006 8.207906 -0.000010 7.897946 0.017483 7.631062 c
0.285469 3.542383 3.542306 0.285545 7.630985 0.017559 c
7.897878 0.000065 8.207848 0.000069 8.756974 0.000076 c
8.790001 0.000076 l
11.713245 0.000076 14.362301 1.721630 15.549542 4.392923 c
18.217983 10.396915 l
18.672722 11.420079 18.242252 12.619946 17.240791 13.120675 c
16.206259 13.637941 14.948276 13.218613 14.431009 12.184080 c
13.830001 10.982062 l
13.830001 17.852577 l
13.830001 19.082792 12.832715 20.080078 11.602501 20.080078 c
11.234859 20.080078 10.888021 19.991014 10.582383 19.833282 c
h
f*
n
Q
endstream
endobj
3 0 obj
2878
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002968 00000 n
0000002991 00000 n
0000003164 00000 n
0000003238 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3297
%%EOF

View File

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

View File

@ -0,0 +1,126 @@
%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 0.000000 0.000000 cm
0.000000 0.478431 1.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 8.730286 6.000000 cm
1.000000 1.000000 1.000000 scn
8.269731 10.500000 m
10.478869 10.500000 12.269731 12.290861 12.269731 14.500000 c
12.269731 16.709139 10.478869 18.500000 8.269731 18.500000 c
6.060592 18.500000 4.269731 16.709139 4.269731 14.500000 c
4.269731 12.290861 6.060592 10.500000 8.269731 10.500000 c
h
16.238016 3.829397 m
15.145899 5.884616 12.897719 8.000000 8.269734 8.000000 c
3.641746 8.000000 1.393565 5.884617 0.301445 3.829397 c
-0.735194 1.878584 1.060591 0.000000 3.269731 0.000000 c
13.269731 0.000000 l
15.478869 0.000000 17.274654 1.878582 16.238016 3.829397 c
h
f*
n
Q
q
1.000000 0.000000 -0.000000 1.000000 4.335022 12.335083 cm
1.000000 1.000000 1.000000 scn
4.330000 6.664956 m
4.330000 7.032226 4.032269 7.329956 3.665000 7.329956 c
3.297731 7.329956 3.000000 7.032226 3.000000 6.664956 c
3.000000 4.329956 l
0.665000 4.329956 l
0.297731 4.329956 0.000000 4.032226 0.000000 3.664956 c
0.000000 3.297687 0.297731 2.999956 0.665000 2.999956 c
3.000000 2.999956 l
3.000000 0.664956 l
3.000000 0.297687 3.297731 -0.000044 3.665000 -0.000044 c
4.032269 -0.000044 4.330000 0.297687 4.330000 0.664956 c
4.330000 2.999956 l
6.665000 2.999956 l
7.032269 2.999956 7.330000 3.297687 7.330000 3.664956 c
7.330000 4.032226 7.032269 4.329956 6.665000 4.329956 c
4.330000 4.329956 l
4.330000 6.664956 l
h
f*
n
Q
endstream
endobj
3 0 obj
2312
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002402 00000 n
0000002425 00000 n
0000002598 00000 n
0000002672 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2731
%%EOF

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_theme@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_theme@3x.png",
"scale" : "3x"
"filename" : "Icon-14.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -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 0.000000 0.000000 cm
0.203922 0.666667 0.858824 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.000000 5.000000 cm
1.000000 1.000000 1.000000 scn
18.340000 10.000000 m
18.340000 5.393945 14.606055 1.660000 10.000000 1.660000 c
10.000000 18.340000 l
14.606055 18.340000 18.340000 14.606054 18.340000 10.000000 c
h
20.000000 10.000000 m
20.000000 4.477153 15.522847 0.000000 10.000000 0.000000 c
4.477152 0.000000 0.000000 4.477153 0.000000 10.000000 c
0.000000 15.522848 4.477152 20.000000 10.000000 20.000000 c
15.522847 20.000000 20.000000 15.522848 20.000000 10.000000 c
h
f*
n
Q
endstream
endobj
3 0 obj
1471
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000001561 00000 n
0000001584 00000 n
0000001757 00000 n
0000001831 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
1890
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 B

View File

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

View File

@ -0,0 +1,135 @@
%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 0.000000 0.000000 cm
1.000000 0.231373 0.188235 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.500000 5.500000 cm
1.000000 1.000000 1.000000 scn
4.167446 17.594112 m
1.405888 14.832555 l
1.405885 14.832552 l
0.887032 14.313698 0.627604 14.054272 0.442079 13.751522 c
0.277593 13.483105 0.156380 13.190471 0.082890 12.884362 c
0.000000 12.539099 0.000000 12.172214 0.000000 11.438441 c
0.000000 7.545784 l
0.000000 6.810102 0.000000 6.442260 0.083289 6.096203 c
0.157133 5.789393 0.278921 5.496157 0.444164 5.227307 c
0.630544 4.924067 0.891141 4.664457 1.412334 4.145239 c
4.168560 1.399452 l
4.168570 1.399441 l
4.687047 0.882929 4.946289 0.624670 5.248544 0.439999 c
5.516528 0.276268 5.808558 0.155630 6.113966 0.082491 c
6.458433 0.000000 6.824364 0.000000 7.556225 0.000000 c
11.454216 0.000000 l
12.189898 0.000000 12.557740 0.000000 12.903797 0.083290 c
13.210607 0.157133 13.503843 0.278921 13.772693 0.444164 c
14.075933 0.630545 14.335543 0.891140 14.854761 1.412334 c
17.600548 4.168560 l
18.117069 4.687044 18.375328 4.946287 18.560001 5.248544 c
18.723732 5.516527 18.844370 5.808558 18.917509 6.113965 c
19.000000 6.458433 19.000000 6.824364 19.000000 7.556226 c
19.000000 11.438440 l
19.000000 12.172213 19.000000 12.539099 18.917110 12.884362 c
18.843620 13.190471 18.722406 13.483105 18.557920 13.751522 c
18.372395 14.054272 18.112968 14.313700 17.594112 14.832554 c
14.832554 17.594112 l
14.832548 17.594120 l
14.832542 17.594124 l
14.313695 18.112970 14.054270 18.372396 13.751521 18.557920 c
13.483105 18.722406 13.190471 18.843620 12.884362 18.917110 c
12.539100 19.000000 12.172214 19.000000 11.438441 19.000000 c
7.561559 19.000000 l
6.827787 19.000000 6.460901 19.000000 6.115638 18.917110 c
5.809529 18.843620 5.516895 18.722406 5.248478 18.557920 c
4.945728 18.372395 4.686301 18.112968 4.167446 17.594112 c
h
5.500000 10.500000 m
4.947715 10.500000 4.500000 10.052285 4.500000 9.500000 c
4.500000 8.947715 4.947715 8.500000 5.500000 8.500000 c
13.500000 8.500000 l
14.052285 8.500000 14.500000 8.947715 14.500000 9.500000 c
14.500000 10.052285 14.052284 10.500000 13.500000 10.500000 c
5.500000 10.500000 l
h
f*
n
Q
endstream
endobj
3 0 obj
3034
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003124 00000 n
0000003147 00000 n
0000003320 00000 n
0000003394 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3453
%%EOF

View File

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

View File

@ -0,0 +1,139 @@
%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 0.000000 0.000000 cm
0.203922 0.780392 0.349020 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 4.170044 5.059082 cm
1.000000 1.000000 1.000000 scn
3.227690 19.490351 m
2.856838 19.759790 2.337782 19.677578 2.068344 19.306728 c
0.724037 17.456450 0.000000 15.228086 0.000000 12.941015 c
0.000000 10.653946 0.724039 8.425583 2.068346 6.575304 c
2.337784 6.204453 2.856840 6.122242 3.227692 6.391682 c
3.598541 6.661119 3.680752 7.180178 3.411314 7.551027 c
2.273060 9.117699 1.660000 11.004503 1.660000 12.941015 c
1.660000 14.877529 2.273058 16.764334 3.411312 18.331005 c
3.680750 18.701857 3.598539 19.220913 3.227690 19.490351 c
h
18.432310 19.490351 m
18.803162 19.759790 19.322218 19.677578 19.591656 19.306728 c
20.935963 17.456450 21.660000 15.228086 21.660000 12.941015 c
21.660000 10.653946 20.935961 8.425583 19.591654 6.575304 c
19.322216 6.204453 18.803160 6.122242 18.432308 6.391682 c
18.061459 6.661119 17.979248 7.180178 18.248686 7.551027 c
19.386940 9.117699 20.000000 11.004503 20.000000 12.941015 c
20.000000 14.877529 19.386942 16.764334 18.248688 18.331005 c
17.979250 18.701857 18.061460 19.220913 18.432310 19.490351 c
h
15.196241 17.139212 m
15.567092 17.408649 16.086149 17.326439 16.355587 16.955589 c
17.203381 15.788700 17.660000 14.383370 17.660000 12.941016 c
17.660000 11.498663 17.203381 10.093334 16.355587 8.926445 c
16.086147 8.555594 15.567091 8.473384 15.196240 8.742823 c
14.825390 9.012261 14.743179 9.531318 15.012618 9.902168 c
15.654360 10.785450 16.000000 11.849220 16.000000 12.941017 c
16.000000 14.032813 15.654361 15.096584 15.012619 15.979866 c
14.743180 16.350716 14.825391 16.869774 15.196241 17.139212 c
h
5.304412 16.955589 m
5.573851 17.326439 6.092908 17.408649 6.463758 17.139212 c
6.834609 16.869774 6.916820 16.350716 6.647381 15.979866 c
6.005639 15.096584 5.660000 14.032813 5.660000 12.941017 c
5.660000 11.849220 6.005640 10.785450 6.647382 9.902168 c
6.916821 9.531318 6.834610 9.012261 6.463759 8.742823 c
6.092909 8.473384 5.573853 8.555594 5.304414 8.926445 c
4.456619 10.093334 4.000000 11.498663 4.000000 12.941016 c
4.000000 14.383370 4.456618 15.788700 5.304412 16.955589 c
h
13.329992 12.941007 m
13.329992 11.851246 12.632727 10.924340 11.659992 10.582087 c
11.659992 0.941006 l
11.659992 0.482611 11.288389 0.111008 10.829992 0.111008 c
10.371595 0.111008 9.999992 0.482611 9.999992 0.941006 c
9.999992 10.582087 l
9.027258 10.924340 8.329992 11.851246 8.329992 12.941007 c
8.329992 14.321718 9.449281 15.441007 10.829992 15.441007 c
12.210704 15.441007 13.329992 14.321718 13.329992 12.941007 c
h
f*
n
Q
endstream
endobj
3 0 obj
3465
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003555 00000 n
0000003578 00000 n
0000003751 00000 n
0000003825 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3884
%%EOF

View File

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

View File

@ -0,0 +1,130 @@
%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 0.000000 0.000000 cm
0.000000 0.478431 1.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 7.000000 5.000000 cm
1.000000 1.000000 1.000000 scn
9.600000 0.000000 m
6.400000 0.000000 l
4.159790 0.000000 3.039685 0.000000 2.184038 0.435974 c
1.431390 0.819468 0.819467 1.431389 0.435974 2.184038 c
0.000000 3.039684 0.000000 4.159790 0.000000 6.400000 c
0.000000 13.600000 l
0.000000 15.840210 0.000000 16.960316 0.435974 17.815962 c
0.819467 18.568611 1.431390 19.180532 2.184038 19.564026 c
3.039685 20.000000 4.159790 20.000000 6.400000 20.000000 c
7.011775 20.000000 l
7.745547 20.000000 8.112432 20.000000 8.457695 19.917110 c
8.763804 19.843620 9.056438 19.722406 9.324855 19.557920 c
9.627604 19.372395 9.887032 19.112968 10.405886 18.594114 c
14.594112 14.405888 l
14.594118 14.405882 l
15.112969 13.887031 15.372396 13.627604 15.557920 13.324855 c
15.722406 13.056438 15.843619 12.763803 15.917109 12.457695 c
16.000000 12.112432 16.000000 11.745546 16.000000 11.011775 c
16.000000 6.400001 l
16.000000 4.159790 16.000000 3.039684 15.564026 2.184038 c
15.180532 1.431389 14.568610 0.819468 13.815962 0.435974 c
12.960315 0.000000 11.840210 0.000000 9.600000 0.000000 c
h
3.217987 9.907981 m
3.000000 9.480158 3.000000 8.920105 3.000000 7.800000 c
3.000000 6.200000 l
3.000000 5.079895 3.000000 4.519842 3.217987 4.092019 c
3.409734 3.715694 3.715695 3.409733 4.092019 3.217987 c
4.519843 3.000000 5.079895 3.000000 6.200000 3.000000 c
9.800000 3.000000 l
10.920105 3.000000 11.480158 3.000000 11.907981 3.217987 c
12.284306 3.409733 12.590266 3.715694 12.782013 4.092019 c
13.000000 4.519842 13.000000 5.079895 13.000000 6.200000 c
13.000000 7.800000 l
13.000000 8.920105 13.000000 9.480158 12.782013 9.907981 c
12.590266 10.284306 12.284306 10.590266 11.907981 10.782013 c
11.480158 11.000000 10.920105 11.000000 9.800000 11.000000 c
6.200000 11.000000 l
5.079895 11.000000 4.519843 11.000000 4.092019 10.782013 c
3.715695 10.590266 3.409734 10.284306 3.217987 9.907981 c
h
f*
n
Q
endstream
endobj
3 0 obj
2880
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002970 00000 n
0000002993 00000 n
0000003166 00000 n
0000003240 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3299
%%EOF

View File

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

View File

@ -0,0 +1,132 @@
%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 0.000000 0.000000 cm
0.203922 0.666667 0.858824 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.500000 7.000000 cm
1.000000 1.000000 1.000000 scn
0.326980 15.361972 m
0.000000 14.720236 0.000000 13.880157 0.000000 12.199999 c
0.000000 12.130000 l
0.000000 11.849974 0.000000 11.709961 0.054497 11.603004 c
0.102433 11.508924 0.178924 11.432433 0.273005 11.384497 c
0.379961 11.330000 0.519973 11.330000 0.799999 11.330000 c
18.266001 11.330000 l
18.483961 11.330000 18.592939 11.330000 18.679672 11.363398 c
18.811571 11.414187 18.915813 11.518429 18.966602 11.650328 c
19.000000 11.737060 19.000000 11.846040 19.000000 12.064000 c
19.000000 12.935841 19.000000 13.371761 18.866409 13.718690 c
18.663250 14.246285 18.246286 14.663251 17.718691 14.866409 c
17.371761 15.000000 16.935841 15.000000 16.064001 15.000000 c
10.414214 15.000000 l
10.245598 15.000000 10.161290 15.000000 10.080059 15.004409 c
9.397568 15.041451 8.748186 15.310432 8.239400 15.766834 c
8.178847 15.821153 8.119237 15.880764 8.000020 15.999980 c
8.000000 16.000000 l
7.880771 16.119228 7.821156 16.178844 7.760600 16.233166 c
7.251813 16.689568 6.602432 16.958549 5.919941 16.995592 c
5.838710 17.000000 5.754402 17.000000 5.585786 17.000000 c
4.800000 17.000000 l
3.119843 17.000000 2.279764 17.000000 1.638029 16.673019 c
1.073542 16.385399 0.614601 15.926457 0.326980 15.361972 c
h
0.163490 9.180986 m
0.000000 8.860118 0.000000 8.440079 0.000000 7.600000 c
0.000000 6.400000 l
0.000000 4.159790 0.000000 3.039684 0.435974 2.184038 c
0.819467 1.431390 1.431390 0.819468 2.184038 0.435974 c
3.039685 0.000000 4.159790 0.000000 6.399999 0.000000 c
12.599999 0.000000 l
14.840210 0.000000 15.960315 0.000000 16.815962 0.435974 c
17.568609 0.819468 18.180532 1.431390 18.564026 2.184038 c
19.000000 3.039684 19.000000 4.159790 19.000000 6.400000 c
19.000000 7.600000 l
19.000000 8.440079 19.000000 8.860118 18.836510 9.180986 c
18.692699 9.463228 18.463228 9.692699 18.180986 9.836510 c
17.860119 10.000000 17.440079 10.000000 16.600000 10.000000 c
2.400000 10.000000 l
1.559921 10.000000 1.139882 10.000000 0.819014 9.836510 c
0.536771 9.692699 0.307300 9.463228 0.163490 9.180986 c
h
f*
n
Q
endstream
endobj
3 0 obj
3055
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003145 00000 n
0000003168 00000 n
0000003341 00000 n
0000003415 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3474
%%EOF

View File

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

View File

@ -0,0 +1,175 @@
%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 0.000000 0.000000 cm
0.203922 0.780392 0.349020 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.835022 5.000000 cm
1.000000 1.000000 1.000000 scn
7.038761 21.165039 m
7.064992 21.165039 l
9.264992 21.165039 l
9.291224 21.165039 l
9.291246 21.165039 l
9.688916 21.165049 10.026937 21.165058 10.304341 21.142393 c
10.595594 21.118597 10.878077 21.066540 11.147882 20.929068 c
11.555252 20.721500 11.886456 20.390299 12.094021 19.982927 c
12.231494 19.713121 12.283551 19.430639 12.307348 19.139387 c
12.330013 18.861979 12.330004 18.523952 12.329992 18.126278 c
12.329992 18.100037 l
12.329992 17.665022 l
15.665000 17.665022 l
16.032269 17.665022 16.330000 17.367292 16.330000 17.000023 c
16.330000 16.632753 16.032269 16.335022 15.665000 16.335022 c
0.665000 16.335022 l
0.297731 16.335022 0.000000 16.632753 0.000000 17.000023 c
0.000000 17.367292 0.297731 17.665022 0.665000 17.665022 c
3.999992 17.665022 l
3.999992 18.100037 l
3.999992 18.126268 l
3.999981 18.523949 3.999972 18.861977 4.022637 19.139387 c
4.046433 19.430639 4.098491 19.713121 4.235963 19.982927 c
4.443529 20.390299 4.774732 20.721500 5.182103 20.929068 c
5.451908 21.066540 5.734391 21.118597 6.025643 21.142393 c
6.303048 21.165058 6.641069 21.165049 7.038738 21.165039 c
7.038761 21.165039 l
h
10.999992 18.100037 m
10.999992 17.665022 l
5.329992 17.665022 l
5.329992 18.100037 l
5.329992 18.531050 5.330510 18.814316 5.348220 19.031082 c
5.365296 19.240086 5.394984 19.328056 5.421002 19.379120 c
5.501056 19.536236 5.628795 19.663975 5.785910 19.744028 c
5.836973 19.770046 5.924943 19.799734 6.133947 19.816811 c
6.350715 19.834520 6.633980 19.835037 7.064992 19.835037 c
9.264992 19.835037 l
9.696005 19.835037 9.979270 19.834520 10.196037 19.816811 c
10.405041 19.799734 10.493011 19.770046 10.544075 19.744028 c
10.701189 19.663975 10.828928 19.536236 10.908983 19.379120 c
10.935000 19.328056 10.964688 19.240086 10.981765 19.031082 c
10.999475 18.814316 10.999992 18.531050 10.999992 18.100037 c
h
1.866287 4.480732 m
1.278763 13.293592 l
1.239206 13.886940 1.219428 14.183613 1.322701 14.412016 c
1.413458 14.612740 1.567953 14.777878 1.762195 14.881785 c
1.983222 15.000023 2.280554 15.000023 2.875219 15.000023 c
13.454782 15.000023 l
14.049447 15.000023 14.346780 15.000023 14.567807 14.881785 c
14.762049 14.777878 14.916544 14.612740 15.007301 14.412016 c
15.110574 14.183613 15.090796 13.886940 15.051239 13.293592 c
14.463715 4.480732 l
14.358499 2.902485 14.305890 2.113361 13.965018 1.515018 c
13.664913 0.988235 13.212244 0.564739 12.666664 0.300339 c
12.046970 0.000023 11.256096 0.000023 9.674346 0.000023 c
6.655656 0.000023 l
5.073906 0.000023 4.283031 0.000023 3.663338 0.300339 c
3.117758 0.564739 2.665089 0.988235 2.364984 1.515018 c
2.024112 2.113361 1.971503 2.902485 1.866287 4.480732 c
h
5.420216 12.030214 m
5.403539 12.397105 5.092596 12.681009 4.725705 12.664333 c
4.358815 12.647655 4.074911 12.336713 4.091587 11.969823 c
4.500678 2.969837 l
4.517354 2.602947 4.828297 2.319042 5.195188 2.335720 c
5.562078 2.352396 5.845983 2.663338 5.829306 3.030230 c
5.420216 12.030214 l
h
11.604276 12.664333 m
11.971167 12.647655 12.255072 12.336713 12.238394 11.969823 c
11.829304 2.969837 l
11.812627 2.602947 11.501684 2.319042 11.134793 2.335720 c
10.767903 2.352396 10.483999 2.663338 10.500675 3.030230 c
10.909766 12.030214 l
10.926443 12.397105 11.237386 12.681009 11.604276 12.664333 c
h
8.164989 12.665019 m
8.532259 12.665019 8.829989 12.367289 8.829989 12.000019 c
8.829989 3.000034 l
8.829989 2.632763 8.532259 2.335033 8.164989 2.335033 c
7.797720 2.335033 7.499990 2.632763 7.499990 3.000034 c
7.499990 12.000019 l
7.499990 12.367289 7.797720 12.665019 8.164989 12.665019 c
h
f*
n
Q
endstream
endobj
3 0 obj
4588
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000004678 00000 n
0000004701 00000 n
0000004874 00000 n
0000004948 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
5007
%%EOF

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_data@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_data@3x.png",
"scale" : "3x"
"filename" : "Icon-13.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,131 @@
%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 0.000000 0.000000 cm
0.203922 0.780392 0.349020 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 17.630737 cm
1.000000 1.000000 1.000000 scn
15.784544 -0.013806 m
13.987058 -0.612968 11.588451 -0.960737 9.000000 -0.960737 c
6.411548 -0.960737 4.012942 -0.612968 2.215456 -0.013806 c
1.730055 0.147994 1.266624 0.335277 0.844752 0.551414 c
0.479448 0.738568 0.000000 0.487332 0.000000 0.076876 c
0.000000 -2.630737 l
0.000000 -4.287592 4.029435 -5.630737 8.999998 -5.630737 c
13.970561 -5.630737 17.999998 -4.287592 17.999998 -2.630737 c
18.000000 0.076875 l
18.000000 0.487331 17.520552 0.738568 17.155247 0.551413 c
16.733376 0.335277 16.269945 0.147994 15.784544 -0.013806 c
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 17.630737 cm
1.000000 1.000000 1.000000 scn
18.000000 -5.923121 m
18.000000 -5.512666 17.520554 -5.261430 17.155249 -5.448585 c
16.733376 -5.664722 16.269945 -5.852006 15.784542 -6.013806 c
13.987056 -6.612968 11.588449 -6.960737 8.999998 -6.960737 c
6.411546 -6.960737 4.012940 -6.612968 2.215454 -6.013806 c
1.730053 -5.852006 1.266623 -5.664722 0.844751 -5.448586 c
0.479447 -5.261432 0.000000 -5.512668 0.000000 -5.923123 c
0.000000 -8.630737 l
0.000000 -10.287592 4.029437 -11.630737 9.000000 -11.630737 c
13.970563 -11.630737 18.000000 -10.287592 18.000000 -8.630737 c
18.000000 -5.923121 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 18.000000 cm
1.000000 1.000000 1.000000 scn
9.000000 0.000000 m
13.970563 0.000000 18.000000 1.343146 18.000000 3.000000 c
18.000000 4.656854 13.970563 6.000000 9.000000 6.000000 c
4.029437 6.000000 0.000000 4.656854 0.000000 3.000000 c
0.000000 1.343146 4.029437 0.000000 9.000000 0.000000 c
h
f
n
Q
endstream
endobj
3 0 obj
2582
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002672 00000 n
0000002695 00000 n
0000002868 00000 n
0000002942 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3001
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

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

View File

@ -0,0 +1,218 @@
%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 0.000000 0.000000 cm
0.203922 0.780392 0.349020 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.334961 5.334961 cm
1.000000 1.000000 1.000000 scn
5.436178 19.330078 m
5.465000 19.330078 l
5.665000 19.330078 l
6.032269 19.330078 6.330000 19.032347 6.330000 18.665077 c
6.330000 18.297808 6.032269 18.000078 5.665000 18.000078 c
5.465000 18.000078 l
4.613948 18.000078 4.015654 17.999561 3.548758 17.961414 c
3.089627 17.923901 2.816429 17.853340 2.604933 17.745579 c
2.165574 17.521713 1.808364 17.164505 1.584500 16.725145 c
1.476737 16.513649 1.406177 16.240452 1.368664 15.781320 c
1.330517 15.314425 1.330000 14.716129 1.330000 13.865078 c
1.330000 13.665078 l
1.330000 13.297809 1.032270 13.000078 0.665000 13.000078 c
0.297731 13.000078 0.000000 13.297809 0.000000 13.665078 c
0.000000 13.865078 l
0.000000 13.893900 l
-0.000006 14.709540 -0.000011 15.362205 0.043081 15.889624 c
0.087314 16.431005 0.180244 16.898714 0.399461 17.328953 c
0.750837 18.018568 1.311511 18.579241 2.001125 18.930616 c
2.431364 19.149834 2.899073 19.242764 3.440454 19.286997 c
3.967873 19.330090 4.620538 19.330084 5.436178 19.330078 c
h
15.781242 17.961414 m
15.314346 17.999561 14.716052 18.000078 13.865000 18.000078 c
13.665000 18.000078 l
13.297730 18.000078 13.000000 18.297808 13.000000 18.665077 c
13.000000 19.032347 13.297730 19.330078 13.665000 19.330078 c
13.865000 19.330078 l
13.893822 19.330078 l
14.709462 19.330084 15.362127 19.330090 15.889546 19.286997 c
16.430927 19.242764 16.898636 19.149834 17.328875 18.930616 c
18.018490 18.579241 18.579163 18.018568 18.930538 17.328953 c
19.149757 16.898714 19.242687 16.431005 19.286919 15.889624 c
19.330009 15.362221 19.330006 14.709579 19.330000 13.893974 c
19.330000 13.893909 l
19.330000 13.865078 l
19.330000 13.665078 l
19.330000 13.297809 19.032269 13.000078 18.665001 13.000078 c
18.297729 13.000078 18.000000 13.297809 18.000000 13.665078 c
18.000000 13.865078 l
18.000000 14.716129 17.999483 15.314425 17.961336 15.781320 c
17.923824 16.240452 17.853264 16.513649 17.745501 16.725145 c
17.521635 17.164505 17.164427 17.521713 16.725067 17.745579 c
16.513571 17.853340 16.240374 17.923901 15.781242 17.961414 c
h
19.330000 5.665078 m
19.330000 6.032348 19.032269 6.330078 18.665001 6.330078 c
18.297729 6.330078 18.000000 6.032348 18.000000 5.665078 c
18.000000 5.465078 l
18.000000 4.614026 17.999483 4.015732 17.961336 3.548836 c
17.923824 3.089705 17.853264 2.816507 17.745501 2.605011 c
17.521635 2.165651 17.164427 1.808443 16.725067 1.584578 c
16.513571 1.476814 16.240374 1.406254 15.781242 1.368742 c
15.314346 1.330595 14.716052 1.330078 13.865000 1.330078 c
13.665000 1.330078 l
13.297730 1.330078 13.000000 1.032349 13.000000 0.665077 c
13.000000 0.297810 13.297730 0.000078 13.665000 0.000078 c
13.865000 0.000078 l
13.893831 0.000078 l
13.893897 0.000078 l
14.709501 0.000072 15.362144 0.000069 15.889546 0.043159 c
16.430927 0.087391 16.898636 0.180321 17.328875 0.399540 c
18.018490 0.750916 18.579163 1.311588 18.930538 2.001204 c
19.149757 2.431442 19.242687 2.899151 19.286919 3.440532 c
19.330009 3.967935 19.330006 4.620577 19.330000 5.436181 c
19.330000 5.436247 l
19.330000 5.465078 l
19.330000 5.665078 l
h
0.665000 6.330078 m
1.032270 6.330078 1.330000 6.032348 1.330000 5.665078 c
1.330000 5.465078 l
1.330000 4.614026 1.330517 4.015732 1.368664 3.548836 c
1.406177 3.089705 1.476737 2.816507 1.584500 2.605011 c
1.808364 2.165651 2.165574 1.808443 2.604933 1.584578 c
2.816429 1.476814 3.089627 1.406254 3.548758 1.368742 c
4.015654 1.330595 4.613948 1.330078 5.465000 1.330078 c
5.665000 1.330078 l
6.032269 1.330078 6.330000 1.032349 6.330000 0.665077 c
6.330000 0.297810 6.032269 0.000078 5.665000 0.000078 c
5.465000 0.000078 l
5.436168 0.000078 l
5.436104 0.000078 l
4.620498 0.000072 3.967857 0.000069 3.440454 0.043159 c
2.899073 0.087391 2.431364 0.180321 2.001125 0.399540 c
1.311511 0.750916 0.750837 1.311588 0.399461 2.001204 c
0.180244 2.431442 0.087314 2.899151 0.043081 3.440532 c
-0.000011 3.967951 -0.000006 4.620616 0.000000 5.436256 c
0.000000 5.465078 l
0.000000 5.665078 l
0.000000 6.032348 0.297731 6.330078 0.665000 6.330078 c
h
9.664998 14.000092 m
10.123394 14.000092 10.494998 13.628489 10.494998 13.170092 c
10.494998 10.470092 l
10.494998 9.569867 9.765223 8.840092 8.864998 8.840092 c
8.664998 8.840092 l
8.206602 8.840092 7.834998 9.211695 7.834998 9.670092 c
7.834998 10.128489 8.206602 10.500092 8.664998 10.500092 c
8.834998 10.500092 l
8.834998 13.170092 l
8.834998 13.628489 9.206602 14.000092 9.664998 14.000092 c
h
5.664999 14.000083 m
6.123395 14.000083 6.494999 13.628479 6.494999 13.170083 c
6.494999 11.670083 l
6.494999 11.211687 6.123395 10.840083 5.664999 10.840083 c
5.206603 10.840083 4.834999 11.211687 4.834999 11.670083 c
4.834999 13.170083 l
4.834999 13.628479 5.206603 14.000083 5.664999 14.000083 c
h
14.494999 13.170083 m
14.494999 13.628479 14.123395 14.000083 13.664999 14.000083 c
13.206603 14.000083 12.834999 13.628479 12.834999 13.170083 c
12.834999 11.670083 l
12.834999 11.211687 13.206603 10.840083 13.664999 10.840083 c
14.123395 10.840083 14.494999 11.211687 14.494999 11.670083 c
14.494999 13.170083 l
h
6.001358 6.668205 m
6.276660 7.034723 6.796959 7.108668 7.163477 6.833365 c
7.860340 6.309931 8.725288 6.000092 9.664998 6.000092 c
10.604708 6.000092 11.469656 6.309932 12.166519 6.833365 c
12.533037 7.108668 13.053335 7.034723 13.328638 6.668205 c
13.603941 6.301686 13.529996 5.781388 13.163477 5.506085 c
12.189019 4.774141 10.976501 4.340092 9.664998 4.340092 c
8.353496 4.340092 7.140977 4.774141 6.166519 5.506085 c
5.800000 5.781388 5.726055 6.301687 6.001358 6.668205 c
h
f*
n
Q
endstream
endobj
3 0 obj
6528
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000006618 00000 n
0000006641 00000 n
0000006814 00000 n
0000006888 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
6947
%%EOF

View File

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

View File

@ -0,0 +1,143 @@
%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 0.000000 0.000000 cm
0.000000 0.478431 1.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 7.000000 6.000000 cm
1.000000 1.000000 1.000000 scn
5.330000 18.000000 m
5.807298 18.000000 6.123703 17.999550 6.367812 17.982895 c
6.604466 17.966749 6.711959 17.938187 6.777740 17.910938 c
7.064423 17.792191 7.292191 17.564423 7.410939 17.277740 c
7.438186 17.211960 7.466748 17.104465 7.482895 16.867813 c
7.499550 16.623703 7.500000 16.307299 7.500000 15.830000 c
7.500000 13.530003 l
7.500000 13.496872 l
7.499987 12.965037 7.499976 12.516354 7.530005 12.148819 c
7.561447 11.763987 7.629904 11.395631 7.808452 11.045210 c
8.079773 10.512712 8.512709 10.079777 9.045207 9.808455 c
9.395627 9.629908 9.763983 9.561451 10.148815 9.530008 c
10.516351 9.499980 10.965034 9.499990 11.496870 9.500004 c
11.530001 9.500004 l
13.829997 9.500004 l
14.307296 9.500004 14.623703 9.499555 14.867812 9.482899 c
15.104466 9.466752 15.211960 9.438190 15.277740 9.410942 c
15.564423 9.292194 15.792191 9.064426 15.910938 8.777744 c
15.938186 8.711964 15.966748 8.604470 15.982895 8.367816 c
15.999551 8.123706 16.000000 7.807300 16.000000 7.330000 c
16.000000 4.800000 l
16.000000 3.119843 16.000000 2.279763 15.673019 1.638029 c
15.385400 1.073542 14.926457 0.614601 14.361972 0.326981 c
13.720237 0.000000 12.880157 0.000000 11.200000 0.000000 c
4.800000 0.000000 l
3.119843 0.000000 2.279764 0.000000 1.638029 0.326981 c
1.073542 0.614601 0.614601 1.073542 0.326980 1.638029 c
0.000000 2.279763 0.000000 3.119843 0.000000 4.800000 c
0.000000 13.200001 l
0.000000 14.880157 0.000000 15.720236 0.326980 16.361971 c
0.614601 16.926458 1.073542 17.385399 1.638029 17.673019 c
2.279764 18.000000 3.119843 18.000000 4.800000 18.000000 c
5.330000 18.000000 l
h
15.621112 11.042418 m
15.558301 11.176268 15.488032 11.306717 15.410561 11.433140 c
15.163194 11.836806 14.817290 12.182710 14.125484 12.874516 c
10.874516 16.125484 l
10.182710 16.817291 9.836806 17.163193 9.433140 17.410561 c
9.306716 17.488033 9.176266 17.558304 9.042415 17.621115 c
9.097363 17.412268 9.124138 17.199299 9.139045 16.980810 c
9.160017 16.673437 9.160009 16.300030 9.160000 15.857494 c
9.160000 15.830000 l
9.160000 13.530003 l
9.160000 12.956255 9.160645 12.575861 9.184492 12.283996 c
9.207546 12.001820 9.248083 11.876238 9.287522 11.798835 c
9.399694 11.578686 9.578682 11.399698 9.798831 11.287526 c
9.876234 11.248087 10.001816 11.207550 10.283993 11.184496 c
10.575858 11.160649 10.956251 11.160004 11.530001 11.160004 c
13.829997 11.160004 l
13.857491 11.160004 l
14.300028 11.160013 14.673436 11.160021 14.980811 11.139048 c
15.199297 11.124141 15.412265 11.097366 15.621112 11.042418 c
h
f*
n
Q
endstream
endobj
3 0 obj
3553
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003643 00000 n
0000003666 00000 n
0000003839 00000 n
0000003913 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3972
%%EOF

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_language@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_language@3x.png",
"scale" : "3x"
"filename" : "Icon-15.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,175 @@
%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 0.000000 0.000000 cm
0.686275 0.321569 0.870588 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 5.000000 5.000000 cm
1.000000 1.000000 1.000000 scn
10.000000 0.000000 m
11.332236 0.000000 12.490623 2.126680 13.081975 5.256653 c
13.139112 5.559070 12.903993 5.835000 12.596226 5.835000 c
7.403774 5.835000 l
7.096008 5.835000 6.860889 5.559070 6.918025 5.256653 c
7.509377 2.126680 8.667764 0.000000 10.000000 0.000000 c
h
6.006241 0.829363 m
6.433020 0.643244 6.826202 1.141396 6.635602 1.566193 c
6.503169 1.861351 6.381440 2.170578 6.269794 2.489567 c
5.968773 3.349628 5.722127 4.335591 5.539253 5.410378 c
5.497780 5.654119 5.288262 5.835000 5.041017 5.835000 c
1.685445 5.835000 l
1.321049 5.835000 1.081028 5.458234 1.258385 5.139912 c
2.321402 3.231998 3.990916 1.708252 6.006241 0.829363 c
h
6.600248 7.613991 m
6.622123 7.358671 6.837408 7.165000 7.093662 7.165000 c
12.906337 7.165000 l
13.162592 7.165000 13.377876 7.358671 13.399752 7.613991 c
13.465262 8.378595 13.500000 9.177707 13.500000 10.000000 c
13.500000 10.822293 13.465262 11.621405 13.399752 12.386009 c
13.377876 12.641329 13.162592 12.835000 12.906337 12.835000 c
7.093663 12.835000 l
6.837408 12.835000 6.622123 12.641329 6.600248 12.386009 c
6.534737 11.621405 6.500000 10.822293 6.500000 10.000000 c
6.500000 9.177707 6.534737 8.378595 6.600248 7.613991 c
h
4.754473 12.835000 m
5.049911 12.835000 5.280571 12.580243 5.257625 12.285698 c
5.199983 11.545815 5.170000 10.780856 5.170000 10.000000 c
5.170000 9.219143 5.199983 8.454185 5.257625 7.714302 c
5.280571 7.419757 5.049911 7.165000 4.754474 7.165000 c
0.781324 7.165000 l
0.559684 7.165000 0.363223 7.310601 0.308544 7.525391 c
0.107079 8.316790 0.000000 9.145889 0.000000 10.000000 c
0.000000 10.854111 0.107079 11.683210 0.308544 12.474609 c
0.363223 12.689399 0.559683 12.835000 0.781323 12.835000 c
4.754473 12.835000 l
h
6.918025 14.743347 m
6.860888 14.440931 7.096007 14.165000 7.403774 14.165000 c
12.596226 14.165000 l
12.903993 14.165000 13.139112 14.440931 13.081975 14.743347 c
12.490623 17.873322 11.332236 20.000000 10.000000 20.000000 c
8.667764 20.000000 7.509377 17.873322 6.918025 14.743347 c
h
13.993759 19.170635 m
13.566980 19.356756 13.173798 18.858603 13.364398 18.433805 c
13.496832 18.138647 13.618560 17.829422 13.730206 17.510433 c
14.031227 16.650372 14.277873 15.664409 14.460747 14.589622 c
14.502220 14.345881 14.711739 14.165000 14.958983 14.165000 c
18.314556 14.165000 l
18.678953 14.165000 18.918972 14.541767 18.741615 14.860088 c
17.678598 16.768003 16.009083 18.291748 13.993759 19.170635 c
h
15.245526 12.835000 m
14.950089 12.835000 14.719429 12.580244 14.742375 12.285698 c
14.800016 11.545815 14.830000 10.780857 14.830000 10.000000 c
14.830000 9.219143 14.800016 8.454185 14.742375 7.714302 c
14.719429 7.419757 14.950089 7.165000 15.245526 7.165000 c
19.218676 7.165000 l
19.440317 7.165000 19.636776 7.310601 19.691456 7.525391 c
19.892921 8.316790 20.000000 9.145889 20.000000 10.000000 c
20.000000 10.854111 19.892921 11.683210 19.691456 12.474609 c
19.636776 12.689400 19.440315 12.835000 19.218676 12.835000 c
15.245526 12.835000 l
h
14.958983 5.835000 m
14.711739 5.835000 14.502220 5.654119 14.460747 5.410377 c
14.277873 4.335591 14.031227 3.349628 13.730206 2.489567 c
13.618560 2.170580 13.496832 1.861353 13.364398 1.566195 c
13.173799 1.141397 13.566981 0.643244 13.993760 0.829363 c
16.009085 1.708252 17.678598 3.231998 18.741615 5.139911 c
18.918972 5.458233 18.678951 5.835000 18.314556 5.835000 c
14.958983 5.835000 l
h
6.006241 19.170637 m
6.433020 19.356756 6.826203 18.858604 6.635602 18.433807 c
6.503169 18.138649 6.381440 17.829422 6.269794 17.510433 c
5.968773 16.650372 5.722127 15.664409 5.539253 14.589622 c
5.497780 14.345881 5.288262 14.165000 5.041017 14.165000 c
1.685444 14.165000 l
1.321049 14.165000 1.081028 14.541767 1.258385 14.860088 c
2.321402 16.768002 3.990917 18.291748 6.006241 19.170637 c
h
f*
n
Q
endstream
endobj
3 0 obj
4809
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000004899 00000 n
0000004922 00000 n
0000005095 00000 n
0000005169 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
5228
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

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

View File

@ -0,0 +1,137 @@
%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 0.000000 0.000000 cm
0.686275 0.321569 0.870588 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 7.000000 cm
1.000000 1.000000 1.000000 scn
7.000000 14.000000 m
7.000000 14.464986 7.000000 14.697479 7.051111 14.888228 c
7.189812 15.405867 7.594133 15.810188 8.111772 15.948889 c
8.302522 16.000000 8.535014 16.000000 9.000000 16.000000 c
9.464986 16.000000 9.697478 16.000000 9.888228 15.948889 c
10.405867 15.810188 10.810188 15.405867 10.948889 14.888228 c
11.000000 14.697479 11.000000 14.464986 11.000000 14.000000 c
11.000000 2.000000 l
11.000000 1.535014 11.000000 1.302522 10.948889 1.111772 c
10.810188 0.594133 10.405867 0.189812 9.888228 0.051111 c
9.697478 0.000000 9.464986 0.000000 9.000000 0.000000 c
8.535014 0.000000 8.302522 0.000000 8.111772 0.051111 c
7.594133 0.189812 7.189812 0.594133 7.051111 1.111772 c
7.000000 1.302522 7.000000 1.535014 7.000000 2.000000 c
7.000000 14.000000 l
h
0.000000 8.000000 m
0.000000 8.464986 0.000000 8.697479 0.051111 8.888228 c
0.189812 9.405867 0.594133 9.810188 1.111771 9.948889 c
1.302521 10.000000 1.535014 10.000000 2.000000 10.000000 c
2.464986 10.000000 2.697479 10.000000 2.888229 9.948889 c
3.405867 9.810188 3.810188 9.405867 3.948889 8.888228 c
4.000000 8.697479 4.000000 8.464986 4.000000 8.000000 c
4.000000 2.000000 l
4.000000 1.535014 4.000000 1.302522 3.948889 1.111772 c
3.810188 0.594133 3.405867 0.189812 2.888229 0.051111 c
2.697479 0.000000 2.464986 0.000000 2.000000 0.000000 c
1.535014 0.000000 1.302521 0.000000 1.111771 0.051111 c
0.594133 0.189812 0.189812 0.594133 0.051111 1.111772 c
0.000000 1.302522 0.000000 1.535014 0.000000 2.000000 c
0.000000 8.000000 l
h
14.051111 4.888228 m
14.000000 4.697478 14.000000 4.464986 14.000000 4.000000 c
14.000000 2.000000 l
14.000000 1.535014 14.000000 1.302522 14.051111 1.111772 c
14.189812 0.594133 14.594133 0.189812 15.111772 0.051111 c
15.302522 0.000000 15.535014 0.000000 16.000000 0.000000 c
16.464985 0.000000 16.697479 0.000000 16.888229 0.051111 c
17.405867 0.189812 17.810188 0.594133 17.948889 1.111772 c
18.000000 1.302522 18.000000 1.535014 18.000000 2.000000 c
18.000000 4.000000 l
18.000000 4.464986 18.000000 4.697478 17.948889 4.888228 c
17.810188 5.405867 17.405867 5.810188 16.888229 5.948889 c
16.697479 6.000000 16.464985 6.000000 16.000000 6.000000 c
15.535014 6.000000 15.302522 6.000000 15.111772 5.948889 c
14.594133 5.810188 14.189812 5.405867 14.051111 4.888228 c
h
f*
n
Q
endstream
endobj
3 0 obj
3320
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003410 00000 n
0000003433 00000 n
0000003606 00000 n
0000003680 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
3739
%%EOF

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_notifications@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_notifications@3x.png",
"scale" : "3x"
"filename" : "Icon-11.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,123 @@
%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 0.000000 0.000000 cm
1.000000 0.231373 0.188235 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.410034 5.500000 cm
1.000000 1.000000 1.000000 scn
10.636045 18.378523 m
10.193608 19.072224 9.424309 19.500000 8.590019 19.500000 c
7.670720 19.500000 6.830322 18.980606 6.419199 18.158360 c
6.281816 17.883595 l
6.159605 17.639172 5.940400 17.457279 5.677630 17.382250 c
5.199451 17.245712 l
3.622896 16.795553 2.480688 15.428877 2.317544 13.797451 c
1.765389 8.275956 l
1.650539 7.127475 1.141886 6.054095 0.325736 5.237946 c
0.294898 5.207107 l
-0.335067 4.577142 0.111100 3.500000 1.002005 3.500000 c
16.173584 3.500000 l
17.064487 3.500000 17.510654 4.577141 16.880692 5.207107 c
16.849852 5.237946 l
16.033705 6.054095 15.525055 7.127475 15.410207 8.275955 c
15.207751 10.300512 l
14.848315 10.215172 14.473325 10.170000 14.087784 10.170000 c
11.420248 10.170000 9.257784 12.332464 9.257784 15.000000 c
9.257784 16.315147 9.783410 17.507528 10.636045 18.378523 c
h
11.519055 17.377340 m
10.941062 16.753115 10.587784 15.917814 10.587784 15.000000 c
10.587784 13.067003 12.154787 11.500000 14.087784 11.500000 c
14.109180 11.500000 14.130532 11.500193 14.151838 11.500574 c
14.471422 11.506310 14.780550 11.554880 15.073724 11.640787 c
16.526691 12.066540 17.587788 13.409353 17.587788 15.000000 c
17.587788 16.932997 16.020782 18.500000 14.087787 18.500000 c
13.072603 18.500000 12.158367 18.067789 11.519055 17.377340 c
h
8.589996 0.000000 m
9.970709 0.000000 11.089996 1.119287 11.089996 2.500000 c
6.089996 2.500000 l
6.089996 1.119287 7.209284 0.000000 8.589996 0.000000 c
h
f*
n
Q
endstream
endobj
3 0 obj
2476
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002566 00000 n
0000002589 00000 n
0000002762 00000 n
0000002836 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2895
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

View File

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

View File

@ -0,0 +1,155 @@
%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 0.000000 0.000000 cm
1.000000 0.584314 0.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 6.000000 cm
1.000000 1.000000 1.000000 scn
0.326980 16.361971 m
0.000000 15.720236 0.000000 14.880157 0.000000 13.200001 c
0.000000 7.873625 l
2.719312 10.802114 l
2.739366 10.823713 l
2.739403 10.823753 l
2.739418 10.823770 l
2.925786 11.024508 3.099065 11.211145 3.256842 11.354792 c
3.426955 11.509670 3.635908 11.669102 3.908790 11.762256 c
4.292071 11.893097 4.707929 11.893097 5.091210 11.762256 c
5.364092 11.669102 5.573045 11.509670 5.743158 11.354791 c
5.900949 11.211132 6.074247 11.024471 6.260634 10.823713 c
6.280688 10.802114 l
10.392858 6.373626 l
11.719312 7.802115 l
11.739367 7.823714 l
11.925754 8.024473 12.099051 8.211132 12.256842 8.354791 c
12.426956 8.509670 12.635908 8.669102 12.908790 8.762256 c
13.292071 8.893097 13.707929 8.893097 14.091210 8.762256 c
14.364092 8.669102 14.573045 8.509670 14.743158 8.354791 c
14.900943 8.211139 15.074232 8.024488 15.260609 7.823739 c
15.260634 7.823713 l
15.280688 7.802114 l
18.000000 4.873625 l
18.000000 13.200000 l
18.000000 14.880157 18.000000 15.720236 17.673019 16.361971 c
17.385399 16.926458 16.926458 17.385399 16.361971 17.673019 c
15.720237 18.000000 14.880157 18.000000 13.200001 18.000000 c
4.800000 18.000000 l
3.119843 18.000000 2.279764 18.000000 1.638029 17.673019 c
1.073542 17.385399 0.614601 16.926458 0.326980 16.361971 c
h
16.108553 0.218262 m
11.525509 5.153847 l
12.935749 6.672566 l
13.149095 6.902323 13.274549 7.036421 13.374386 7.127316 c
13.419220 7.168135 13.445271 7.187207 13.456385 7.194696 c
13.484964 7.202284 13.515036 7.202284 13.543615 7.194696 c
13.554729 7.187207 13.580781 7.168135 13.625614 7.127316 c
13.725451 7.036421 13.850905 6.902323 14.064251 6.672565 c
17.925373 2.514434 l
17.877884 2.167143 17.800177 1.887589 17.673019 1.638029 c
17.385399 1.073542 16.926458 0.614601 16.361971 0.326981 c
16.281078 0.285763 16.197035 0.249743 16.108553 0.218262 c
h
14.044044 0.002020 m
5.064251 9.672565 l
4.850905 9.902323 4.725451 10.036421 4.625614 10.127316 c
4.580781 10.168135 4.554729 10.187207 4.543615 10.194696 c
4.515036 10.202284 4.484964 10.202284 4.456385 10.194696 c
4.445271 10.187207 4.419219 10.168135 4.374386 10.127316 c
4.274549 10.036421 4.149095 9.902323 3.935749 9.672565 c
0.000000 5.434067 l
0.000000 4.800000 l
0.000000 3.119843 0.000000 2.279763 0.326980 1.638029 c
0.614601 1.073542 1.073542 0.614601 1.638029 0.326981 c
2.279764 0.000000 3.119842 0.000000 4.800000 0.000000 c
13.200000 0.000000 l
13.508314 0.000000 13.788341 0.000000 14.044044 0.002020 c
h
13.500000 12.000000 m
14.328427 12.000000 15.000000 12.671573 15.000000 13.500000 c
15.000000 14.328427 14.328427 15.000000 13.500000 15.000000 c
12.671573 15.000000 12.000000 14.328427 12.000000 13.500000 c
12.000000 12.671573 12.671573 12.000000 13.500000 12.000000 c
h
f*
n
Q
endstream
endobj
3 0 obj
3765
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000003855 00000 n
0000003878 00000 n
0000004051 00000 n
0000004125 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
4184
%%EOF

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_recentcalls@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_recentcalls@3x.png",
"scale" : "3x"
"filename" : "Icon-8.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,111 @@
%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 0.000000 0.000000 cm
0.203922 0.780392 0.349020 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 6.000000 6.000000 cm
1.000000 1.000000 1.000000 scn
4.868853 4.891197 m
2.124590 7.636960 0.000000 11.022417 0.000000 13.837070 c
0.000000 15.086933 0.413115 16.218699 1.357377 17.133953 c
1.927869 17.694916 2.596721 18.000000 3.216393 18.000000 c
3.747541 18.000000 4.229508 17.783487 4.573771 17.301258 c
6.244052 14.601130 l
6.749065 13.784742 6.700242 12.741879 6.121165 11.976244 c
4.939975 10.414518 l
4.831778 10.306263 4.792434 10.188166 4.792434 10.060226 c
4.792434 9.942129 4.841614 9.814191 4.890794 9.705935 c
5.176040 9.105606 6.031778 8.062413 7.035057 7.058586 c
8.028500 6.054759 9.090795 5.218237 9.671123 4.913152 c
9.779319 4.863944 9.907188 4.814737 10.044893 4.814737 c
10.182598 4.814737 10.310467 4.854102 10.418663 4.962358 c
11.944046 6.134850 l
12.711500 6.724756 13.764204 6.777284 14.586570 6.266706 c
17.340984 4.556588 l
17.822952 4.221979 18.000000 3.769273 18.000000 3.296884 c
18.000000 2.637506 17.626228 1.948606 17.124590 1.417168 c
16.219671 0.442865 15.118032 0.000000 13.829508 0.000000 c
11.016394 0.000000 7.603279 2.155275 4.868853 4.891197 c
h
f*
n
Q
endstream
endobj
3 0 obj
2078
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002168 00000 n
0000002191 00000 n
0000002364 00000 n
0000002438 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2497
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,22 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_savedmessages@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_savedmessages@3x.png",
"scale" : "3x"
"filename" : "Icon-7.pdf",
"idiom" : "universal"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}

View File

@ -0,0 +1,111 @@
%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 0.000000 0.000000 cm
0.000000 0.478431 1.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 7.000000 6.791504 cm
1.000000 1.000000 1.000000 scn
0.000000 10.808496 m
0.000000 13.048706 0.000000 14.168811 0.435974 15.024458 c
0.819467 15.777106 1.431390 16.389029 2.184038 16.772522 c
3.039685 17.208496 4.159790 17.208496 6.400000 17.208496 c
9.600000 17.208496 l
11.840210 17.208496 12.960315 17.208496 13.815962 16.772522 c
14.568610 16.389029 15.180532 15.777106 15.564026 15.024458 c
16.000000 14.168811 16.000000 13.048706 16.000000 10.808496 c
16.000000 3.497539 l
16.000000 1.817662 16.000000 0.977724 15.659835 0.562948 c
15.364265 0.202549 14.917956 0.000029 14.452095 0.014914 c
13.915944 0.032045 13.283825 0.585150 12.019588 1.691357 c
9.580409 3.825638 l
9.020452 4.315600 8.740473 4.560582 8.425380 4.653764 c
8.147737 4.735870 7.852264 4.735870 7.574620 4.653764 c
7.259527 4.560582 6.979548 4.315600 6.419589 3.825637 c
3.980410 1.691355 l
2.716174 0.585148 2.084056 0.032045 1.547905 0.014914 c
1.082044 0.000029 0.635734 0.202549 0.340165 0.562948 c
0.000000 0.977724 0.000000 1.817662 0.000000 3.497540 c
0.000000 10.808496 l
h
f
n
Q
endstream
endobj
3 0 obj
2043
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002133 00000 n
0000002156 00000 n
0000002329 00000 n
0000002403 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2462
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

View File

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

View File

@ -0,0 +1,115 @@
%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 0.000000 0.000000 cm
0.556863 0.556863 0.576471 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 7.000000 5.000000 cm
1.000000 1.000000 1.000000 scn
8.000000 20.665039 m
4.871307 20.665039 2.335000 18.128733 2.335000 15.000039 c
2.335000 11.637044 l
1.418141 11.217348 0.691740 10.465696 0.304482 9.530773 c
0.000000 8.795689 0.000000 7.863806 0.000000 6.000039 c
0.000000 4.136272 0.000000 3.204390 0.304482 2.469305 c
0.710458 1.489193 1.489154 0.710497 2.469266 0.304520 c
3.204350 0.000038 4.136234 0.000038 6.000000 0.000038 c
10.000000 0.000038 l
11.863767 0.000038 12.795650 0.000038 13.530734 0.304520 c
14.510846 0.710497 15.289542 1.489193 15.695518 2.469305 c
16.000000 3.204390 16.000000 4.136272 16.000000 6.000039 c
16.000000 7.863806 16.000000 8.795689 15.695518 9.530773 c
15.308260 10.465696 14.581859 11.217348 13.665000 11.637044 c
13.665000 15.000039 l
13.665000 18.128733 11.128693 20.665039 8.000000 20.665039 c
h
12.335000 11.950824 m
12.335000 15.000039 l
12.335000 17.394194 10.394154 19.335039 8.000000 19.335039 c
5.605845 19.335039 3.665000 17.394194 3.665000 15.000039 c
3.665000 11.950824 l
4.246028 12.000039 4.984757 12.000039 6.000000 12.000039 c
10.000000 12.000039 l
11.015244 12.000039 11.753971 12.000039 12.335000 11.950824 c
h
f*
n
Q
endstream
endobj
3 0 obj
2159
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002249 00000 n
0000002272 00000 n
0000002445 00000 n
0000002519 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2578
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 879 B

View File

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

View File

@ -0,0 +1,168 @@
%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 0.000000 0.000000 cm
1.000000 0.584314 0.000000 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
1.000000 0.000000 -0.000000 1.000000 4.913940 6.000000 cm
1.000000 1.000000 1.000000 scn
6.886106 17.665039 m
6.857284 17.665039 l
6.041643 17.665045 5.388978 17.665051 4.861559 17.621958 c
4.320179 17.577724 3.852469 17.484795 3.422230 17.265577 c
2.732616 16.914202 2.171942 16.353529 1.820566 15.663914 c
1.601349 15.233675 1.508419 14.765965 1.464186 14.224585 c
1.421094 13.697165 1.421099 13.044500 1.421105 12.228861 c
1.421105 12.200039 l
1.421105 8.200039 l
1.421105 8.172565 l
1.421096 7.635868 1.421089 7.193019 1.450562 6.832291 c
1.481171 6.457663 1.546852 6.113438 1.711573 5.790154 c
1.967075 5.288702 2.374769 4.881009 2.876221 4.625506 c
3.199503 4.460786 3.543729 4.395104 3.918357 4.364496 c
4.279082 4.335024 4.721926 4.335031 5.258616 4.335039 c
5.258646 4.335039 l
5.286105 4.335039 l
14.886106 4.335039 l
14.913565 4.335039 l
14.913593 4.335039 l
15.450286 4.335031 15.893129 4.335024 16.253853 4.364496 c
16.628483 4.395104 16.972706 4.460786 17.295990 4.625506 c
17.797443 4.881009 18.205135 5.288702 18.460638 5.790154 c
18.625359 6.113438 18.691040 6.457663 18.721649 6.832291 c
18.751122 7.193022 18.751116 7.635876 18.751106 8.172580 c
18.751106 8.200039 l
18.751106 12.200039 l
18.751106 12.228846 l
18.751106 12.228909 l
18.751112 13.044527 18.751116 13.697176 18.708025 14.224586 c
18.663792 14.765965 18.570862 15.233675 18.351645 15.663914 c
18.000267 16.353529 17.439594 16.914202 16.749981 17.265577 c
16.319742 17.484795 15.852033 17.577724 15.310652 17.621958 c
14.783233 17.665051 14.130567 17.665045 13.314927 17.665039 c
13.286105 17.665039 l
6.886106 17.665039 l
h
4.026037 16.080540 m
4.237534 16.188301 4.510732 16.258862 4.969863 16.296375 c
5.436759 16.334522 6.035054 16.335039 6.886106 16.335039 c
13.286105 16.335039 l
14.137157 16.335039 14.735452 16.334522 15.202347 16.296375 c
15.661479 16.258862 15.934677 16.188301 16.146173 16.080540 c
16.585531 15.856675 16.942741 15.499465 17.166607 15.060106 c
17.274368 14.848610 17.344929 14.575413 17.382442 14.116281 c
17.420589 13.649385 17.421104 13.051090 17.421104 12.200039 c
17.421104 8.200039 l
17.421104 7.629013 17.420589 7.240738 17.396065 6.940596 c
17.372177 6.648215 17.328865 6.498503 17.275600 6.393962 c
17.147608 6.142765 16.943378 5.938537 16.692183 5.810545 c
16.587643 5.757279 16.437929 5.713967 16.145550 5.690079 c
15.845406 5.665556 15.457130 5.665039 14.886106 5.665039 c
5.286105 5.665039 l
4.715079 5.665039 4.326805 5.665556 4.026661 5.690079 c
3.734282 5.713967 3.584569 5.757279 3.480028 5.810545 c
3.228832 5.938537 3.024603 6.142765 2.896612 6.393962 c
2.843346 6.498503 2.800034 6.648215 2.776145 6.940596 c
2.751623 7.240739 2.751105 7.629014 2.751105 8.200039 c
2.751105 12.200039 l
2.751105 13.051090 2.751623 13.649385 2.789769 14.116281 c
2.827282 14.575413 2.897842 14.848610 3.005605 15.060106 c
3.229469 15.499465 3.586679 15.856675 4.026037 16.080540 c
h
1.181526 2.574744 m
1.086058 2.499991 0.997261 2.411195 0.819668 2.233602 c
0.382109 1.796042 0.163330 1.577263 0.088082 1.409702 c
-0.147629 0.884821 0.107125 0.269789 0.644945 0.065315 c
0.816637 0.000038 1.126038 0.000038 1.744839 0.000038 c
18.427372 0.000038 l
19.046173 0.000038 19.355574 0.000038 19.527266 0.065315 c
20.065086 0.269789 20.319839 0.884821 20.084129 1.409702 c
20.008881 1.577263 19.790102 1.796042 19.352543 2.233602 c
19.174950 2.411195 19.086153 2.499991 18.990685 2.574744 c
18.703798 2.799378 18.360996 2.941372 17.999296 2.985391 c
17.878931 3.000039 17.753353 3.000039 17.502199 3.000039 c
2.670012 3.000039 l
2.418857 3.000039 2.293280 3.000039 2.172915 2.985391 c
1.811215 2.941372 1.468413 2.799378 1.181526 2.574744 c
h
f*
n
Q
endstream
endobj
3 0 obj
4601
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000004691 00000 n
0000004714 00000 n
0000004887 00000 n
0000004961 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
5020
%%EOF

View File

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

View File

@ -0,0 +1,114 @@
%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 0.000000 0.000000 cm
0.556863 0.556863 0.576471 scn
0.000000 18.799999 m
0.000000 22.720367 0.000000 24.680552 0.762954 26.177933 c
1.434068 27.495068 2.504932 28.565931 3.822066 29.237045 c
5.319448 30.000000 7.279633 30.000000 11.200000 30.000000 c
18.799999 30.000000 l
22.720367 30.000000 24.680552 30.000000 26.177933 29.237045 c
27.495068 28.565931 28.565931 27.495068 29.237045 26.177933 c
30.000000 24.680552 30.000000 22.720367 30.000000 18.799999 c
30.000000 11.200001 l
30.000000 7.279633 30.000000 5.319448 29.237045 3.822067 c
28.565931 2.504932 27.495068 1.434069 26.177933 0.762955 c
24.680552 0.000000 22.720367 0.000000 18.799999 0.000000 c
11.200000 0.000000 l
7.279633 0.000000 5.319448 0.000000 3.822066 0.762955 c
2.504932 1.434069 1.434068 2.504932 0.762954 3.822067 c
0.000000 5.319448 0.000000 7.279633 0.000000 11.200001 c
0.000000 18.799999 l
h
f
n
Q
q
-1.000000 -0.000000 -0.000000 1.000000 25.000000 6.000000 cm
1.000000 1.000000 1.000000 scn
6.650000 19.000000 m
2.945000 19.000000 0.000000 16.055000 0.000000 12.350000 c
0.000000 8.645000 2.945000 5.700001 6.650000 5.700001 c
7.500165 5.700001 8.310955 5.861581 9.054688 6.145313 c
10.450001 4.750000 l
12.350000 4.750000 l
12.350000 2.850000 l
14.250000 2.850000 l
14.250000 0.950001 l
14.903126 0.296875 l
15.093125 0.106874 15.300938 0.000000 15.585938 0.000000 c
18.049999 0.000000 l
18.619999 0.000000 19.000000 0.380001 19.000000 0.950001 c
19.000000 3.414062 l
19.000000 3.699062 18.893126 3.906875 18.703125 4.096874 c
12.854687 9.945312 l
13.138419 10.689045 13.299999 11.499835 13.299999 12.350000 c
13.299999 16.055000 10.355000 19.000000 6.650000 19.000000 c
h
5.225000 16.150000 m
6.555000 16.150000 7.600000 15.105000 7.600000 13.775000 c
7.600000 12.445000 6.555000 11.400000 5.225000 11.400000 c
3.895000 11.400000 2.850000 12.445000 2.850000 13.775000 c
2.850000 15.105000 3.895000 16.150000 5.225000 16.150000 c
h
f*
n
Q
endstream
endobj
3 0 obj
1987
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 30.000000 30.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
0000002077 00000 n
0000002100 00000 n
0000002273 00000 n
0000002347 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2406
%%EOF

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