Commit 02a9faf6 by Dmitriy Stepanets

- Finished AQI UI

- Added Settings location status
parent 99d03b18
...@@ -117,6 +117,8 @@ ...@@ -117,6 +117,8 @@
CDE2BF222609D4250085C930 /* ForecastWindSpeedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE2BF212609D4250085C930 /* ForecastWindSpeedCell.swift */; }; CDE2BF222609D4250085C930 /* ForecastWindSpeedCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE2BF212609D4250085C930 /* ForecastWindSpeedCell.swift */; };
CDE2BF252609D9140085C930 /* ForecastWindButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE2BF242609D9140085C930 /* ForecastWindButton.swift */; }; CDE2BF252609D9140085C930 /* ForecastWindButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDE2BF242609D9140085C930 /* ForecastWindButton.swift */; };
CDEE8AD725DA882200C289DE /* ForecastPeriodButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDEE8AD625DA882200C289DE /* ForecastPeriodButton.swift */; }; CDEE8AD725DA882200C289DE /* ForecastPeriodButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDEE8AD625DA882200C289DE /* ForecastPeriodButton.swift */; };
CDF4808F261727E00076E9F5 /* CLAuthorizationStatus+Localized.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDF4808E261727E00076E9F5 /* CLAuthorizationStatus+Localized.swift */; };
CDF48092261729680076E9F5 /* UIApplication+Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDF48091261729680076E9F5 /* UIApplication+Settings.swift */; };
CDF9BF8E26133D050037847D /* LocationSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDF9BF8D26133D050037847D /* LocationSearchCoordinator.swift */; }; CDF9BF8E26133D050037847D /* LocationSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDF9BF8D26133D050037847D /* LocationSearchCoordinator.swift */; };
CE28474F26159857006C8DC5 /* HealthSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE28474E26159857006C8DC5 /* HealthSource.swift */; }; CE28474F26159857006C8DC5 /* HealthSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE28474E26159857006C8DC5 /* HealthSource.swift */; };
CE28475226159A32006C8DC5 /* BlendHealthModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE28475126159A32006C8DC5 /* BlendHealthModels.swift */; }; CE28475226159A32006C8DC5 /* BlendHealthModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE28475126159A32006C8DC5 /* BlendHealthModels.swift */; };
...@@ -274,6 +276,8 @@ ...@@ -274,6 +276,8 @@
CDE2BF212609D4250085C930 /* ForecastWindSpeedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastWindSpeedCell.swift; sourceTree = "<group>"; }; CDE2BF212609D4250085C930 /* ForecastWindSpeedCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastWindSpeedCell.swift; sourceTree = "<group>"; };
CDE2BF242609D9140085C930 /* ForecastWindButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastWindButton.swift; sourceTree = "<group>"; }; CDE2BF242609D9140085C930 /* ForecastWindButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastWindButton.swift; sourceTree = "<group>"; };
CDEE8AD625DA882200C289DE /* ForecastPeriodButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastPeriodButton.swift; sourceTree = "<group>"; }; CDEE8AD625DA882200C289DE /* ForecastPeriodButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForecastPeriodButton.swift; sourceTree = "<group>"; };
CDF4808E261727E00076E9F5 /* CLAuthorizationStatus+Localized.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CLAuthorizationStatus+Localized.swift"; sourceTree = "<group>"; };
CDF48091261729680076E9F5 /* UIApplication+Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+Settings.swift"; sourceTree = "<group>"; };
CDF9BF8D26133D050037847D /* LocationSearchCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationSearchCoordinator.swift; sourceTree = "<group>"; }; CDF9BF8D26133D050037847D /* LocationSearchCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationSearchCoordinator.swift; sourceTree = "<group>"; };
CE28474E26159857006C8DC5 /* HealthSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthSource.swift; sourceTree = "<group>"; }; CE28474E26159857006C8DC5 /* HealthSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthSource.swift; sourceTree = "<group>"; };
CE28475126159A32006C8DC5 /* BlendHealthModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlendHealthModels.swift; sourceTree = "<group>"; }; CE28475126159A32006C8DC5 /* BlendHealthModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlendHealthModels.swift; sourceTree = "<group>"; };
...@@ -428,6 +432,8 @@ ...@@ -428,6 +432,8 @@
CD2B213F260A366B00AB918A /* UIView+InterfaceStyle.swift */, CD2B213F260A366B00AB918A /* UIView+InterfaceStyle.swift */,
CD866A61260F596B00E96A5C /* Dimension+Name.swift */, CD866A61260F596B00E96A5C /* Dimension+Name.swift */,
CDC70832260FBFD3004A1974 /* UnitPressure+Atmosphere.swift */, CDC70832260FBFD3004A1974 /* UnitPressure+Atmosphere.swift */,
CDF4808E261727E00076E9F5 /* CLAuthorizationStatus+Localized.swift */,
CDF48091261729680076E9F5 /* UIApplication+Settings.swift */,
); );
path = Extensions; path = Extensions;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -1159,6 +1165,7 @@ ...@@ -1159,6 +1165,7 @@
CD32CE0B260C744A00235081 /* MenuCoordinator.swift in Sources */, CD32CE0B260C744A00235081 /* MenuCoordinator.swift in Sources */,
CD55E0BB2615EE2400CC4DC7 /* PollutantView.swift in Sources */, CD55E0BB2615EE2400CC4DC7 /* PollutantView.swift in Sources */,
CEC526FA25E7959A00DA58A5 /* WeatherSource.swift in Sources */, CEC526FA25E7959A00DA58A5 /* WeatherSource.swift in Sources */,
CDF4808F261727E00076E9F5 /* CLAuthorizationStatus+Localized.swift in Sources */,
CD37D3DE260C9E37002669D6 /* MenuCell.swift in Sources */, CD37D3DE260C9E37002669D6 /* MenuCell.swift in Sources */,
CD822FFE25D6976F00A05501 /* TodayAdCell.swift in Sources */, CD822FFE25D6976F00A05501 /* TodayAdCell.swift in Sources */,
CEF959A626035A2600975FAA /* DeviceLocationMonitor.swift in Sources */, CEF959A626035A2600975FAA /* DeviceLocationMonitor.swift in Sources */,
...@@ -1190,6 +1197,7 @@ ...@@ -1190,6 +1197,7 @@
CEAFF0A325E0FF0800DF4EBF /* LocationManager.swift in Sources */, CEAFF0A325E0FF0800DF4EBF /* LocationManager.swift in Sources */,
CEAD00A12577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift in Sources */, CEAD00A12577B2D5003596AD /* StuffThatIsPresentInTheMainProject.swift in Sources */,
CEDE4E8925EEFFEF007457E9 /* WdtDayNight.swift in Sources */, CEDE4E8925EEFFEF007457E9 /* WdtDayNight.swift in Sources */,
CDF48092261729680076E9F5 /* UIApplication+Settings.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<key>1Weather.xcscheme_^#shared#^_</key> <key>1Weather.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>24</integer> <integer>25</integer>
</dict> </dict>
<key>PG (Playground) 1.xcscheme</key> <key>PG (Playground) 1.xcscheme</key>
<dict> <dict>
......
//
// CLAuthorizationStatus+Localized.swift
// 1Weather
//
// Created by Dmitry Stepanets on 02.04.2021.
//
import UIKit
import CoreLocation
extension CLAuthorizationStatus {
var localized:String {
switch self {
case .notDetermined:
return "location.status.notDetermined".localized().capitalized
case .restricted:
return "location.status.resticted".localized().capitalized
case .denied:
return "location.status.denied".localized().capitalized
case .authorizedAlways:
return "location.status.always".localized().capitalized
case .authorizedWhenInUse:
return "location.status.whenInUser".localized().capitalized
@unknown default:
return "location.status.unknown".localized().capitalized
}
}
}
//
// UIApplication+Settings.swift
// 1Weather
//
// Created by Dmitry Stepanets on 02.04.2021.
//
import UIKit
extension UIApplication {
static func openSettings() {
guard
let bundleIdentifier = Bundle.main.bundleIdentifier,
let appSettingsURL = URL(string: UIApplication.openSettingsURLString + bundleIdentifier)
else {
assert(false, "Failed to create settings URL from: \(UIApplication.openSettingsURLString)")
}
UIApplication.shared.open(appSettingsURL)
}
}
...@@ -151,21 +151,12 @@ internal class DeviceLocationMonitor: NSObject { ...@@ -151,21 +151,12 @@ internal class DeviceLocationMonitor: NSObject {
} }
// MARK: - Private methods // MARK: - Private methods
private func openAppSettings() {
guard let appSettingsUrl = URL(string: UIApplication.openSettingsURLString) else {
assert(false, "Failed to create settings URL from: \(UIApplication.openSettingsURLString)")
return
}
UIApplication.shared.open(appSettingsUrl)
}
private func showGoToSettingsDialog(text: String, in viewController: UIViewController, completion: @escaping CurrentLocationCompletion) { private func showGoToSettingsDialog(text: String, in viewController: UIViewController, completion: @escaping CurrentLocationCompletion) {
let alertGoToSettings = UIAlertController(title: "location.goToSettings.title".localized(), message: text, preferredStyle: .alert) let alertGoToSettings = UIAlertController(title: "location.goToSettings.title".localized(), message: text, preferredStyle: .alert)
let actionGoToSettings = UIAlertAction(title: "location.goToSettings.goToSettingsAction".localized(), style: .default) { [weak self] (_) in let actionGoToSettings = UIAlertAction(title: "location.goToSettings.goToSettingsAction".localized(), style: .default) { [weak self] (_) in
self?.openAppSettings() UIApplication.openSettings()
completion(.denied) completion(.denied)
} }
......
...@@ -111,6 +111,12 @@ ...@@ -111,6 +111,12 @@
"location.goToSettings.title" = "Location Services"; "location.goToSettings.title" = "Location Services";
"location.goToSettings.goToSettingsAction" = "Go to Settings"; "location.goToSettings.goToSettingsAction" = "Go to Settings";
"location.goToSettings.useSearchInsteadAction" = "Use Search instead"; "location.goToSettings.useSearchInsteadAction" = "Use Search instead";
"location.status.notDetermined" = "not determined";
"location.status.restricted" = "restricted";
"location.status.denied" = "denied";
"location.status.always" = "always";
"location.status.whenInUser" = "when in use";
"location.status.unknown" = "unknown";
//Menu //Menu
"menu.goPremium" = "Go premium"; "menu.goPremium" = "Go premium";
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
import UIKit import UIKit
import Localize_Swift import Localize_Swift
import CoreLocation
public enum SettingsRow { public enum SettingsRow {
case theme case theme
...@@ -164,7 +165,9 @@ class SettingsCellFactory: CellFactoryProtocol { ...@@ -164,7 +165,9 @@ class SettingsCellFactory: CellFactoryProtocol {
case .manageNotifications: case .manageNotifications:
cell.configure(settingsName: rowType.localizedName, selectedValue: "", roundCorners: rowType.roundedCorners) cell.configure(settingsName: rowType.localizedName, selectedValue: "", roundCorners: rowType.roundedCorners)
case .locationAccess: case .locationAccess:
cell.configure(settingsName: rowType.localizedName, selectedValue: "--", roundCorners: rowType.roundedCorners) cell.configure(settingsName: rowType.localizedName,
selectedValue: CLLocationManager.authorizationStatus().localized,
roundCorners: rowType.roundedCorners)
default: default:
break break
} }
......
...@@ -151,7 +151,18 @@ extension SettingsViewController: UITableViewDelegate { ...@@ -151,7 +151,18 @@ extension SettingsViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let sectionType = settingsCellFactory.sectionTypeAt(indexPath: indexPath) let sectionType = settingsCellFactory.sectionTypeAt(indexPath: indexPath)
guard sectionType == .units else { return } switch sectionType {
coordinator.openDetailsViewController(rowType: settingsCellFactory.rowTypeAt(indexPath: indexPath)) case .units:
coordinator.openDetailsViewController(rowType: settingsCellFactory.rowTypeAt(indexPath: indexPath))
case .other:
switch settingsCellFactory.rowTypeAt(indexPath: indexPath) {
case .locationAccess:
UIApplication.openSettings()
default:
break
}
default:
break
}
} }
} }
...@@ -70,9 +70,15 @@ class TodayAirQualityCell: UITableViewCell { ...@@ -70,9 +70,15 @@ class TodayAirQualityCell: UITableViewCell {
stackView.layoutIfNeeded() stackView.layoutIfNeeded()
//Progress //Progress
cirqueView.dataPoints = [AirQualityDataType(color: .red, value: 0.3), guard let airQuality = health.airQuality else {
AirQualityDataType(color: .blue, value: 0.2), return
AirQualityDataType(color: .yellow, value: 0.2)] }
cirqueView.transitionSize = airQuality.progress
cirqueView.dataPoints = [AirQualityDataType(color: airQuality.status.gradientColorStart,
value: Double(airQuality.progress / 2)),
AirQualityDataType(color: airQuality.status.gradientColorEnd,
value: Double(airQuality.progress / 2))]
} }
} }
...@@ -123,7 +129,9 @@ private extension TodayAirQualityCell { ...@@ -123,7 +129,9 @@ private extension TodayAirQualityCell {
airQualityLabel.snp.makeConstraints { (make) in airQualityLabel.snp.makeConstraints { (make) in
make.left.equalTo(airQualityValueLabel.snp.right).offset(54) make.left.equalTo(airQualityValueLabel.snp.right).offset(54)
make.centerY.equalTo(airQualityValueLabel) make.top.equalTo(headingLabel.snp.bottom).offset(48)
// make.centerY.equalTo(airQualityValueLabel)
make.right.equalToSuperview().inset(48)
} }
airDescLabel.snp.makeConstraints { (make) in airDescLabel.snp.makeConstraints { (make) in
...@@ -138,15 +146,16 @@ private extension TodayAirQualityCell { ...@@ -138,15 +146,16 @@ private extension TodayAirQualityCell {
valueCircle.lineWidth = 2 valueCircle.lineWidth = 2
contentView.layer.addSublayer(valueCircle) contentView.layer.addSublayer(valueCircle)
// cirqueView.lineWidth = 4 cirqueView.lineWidth = 6
// cirqueView.backgroundColor = .clear cirqueView.stepSize = 0.01
// contentView.addSubview(cirqueView) cirqueView.roundLineCorners = true
// cirqueView.backgroundColor = .clear
// cirqueView.snp.makeConstraints { (make) in contentView.addSubview(cirqueView)
// make.width.height.equalTo(72)
// make.top.equalTo(headingLabel.snp.bottom).offset(48) cirqueView.snp.makeConstraints { (make) in
// make.left.equalToSuperview().inset(20) make.width.height.equalTo(77)
// } make.center.equalTo(airQualityValueLabel)
}
} }
func prepareStackView() { func prepareStackView() {
......
...@@ -40,12 +40,12 @@ class TodayCellFactory: CellFactoryProtocol { ...@@ -40,12 +40,12 @@ class TodayCellFactory: CellFactoryProtocol {
private var todaySection = TodaySection(rows: [.alert, .forecast, .ad, private var todaySection = TodaySection(rows: [.alert, .forecast, .ad,
.conditions, .forecastPeriod, .precipitation, .conditions, .forecastPeriod, .precipitation,
.airQuality, .dayTime, .sun, .moon]) .airQuality, .dayTime, .sun, .moon])
// private let health = Health(lastUpdateTime: Date(), private let health = Health(lastUpdateTime: Date(),
// airQuality: .init(index: 48, advice: "some"), airQuality: .init(index: 140, advice: "some"),
// pollutants: ["pm25" : .init(name: "PM 2.5", value: 48), pollutants: ["pm25" : .init(name: "PM 2.5", value: 48),
// "pm10" : .init(name: "PM 10", value: 42), "pm10" : .init(name: "PM 10", value: 42),
// "no2" : .init(name: "NO2", value: 74), "no2" : .init(name: "NO2", value: 74),
// "so2" : .init(name: "SO2", value: 135)]) "so2" : .init(name: "SO2", value: 135)])
//Public //Public
init(viewModel: TodayViewModel) { init(viewModel: TodayViewModel) {
......
...@@ -9,7 +9,7 @@ target '1Weather' do ...@@ -9,7 +9,7 @@ target '1Weather' do
pod 'SnapKit' pod 'SnapKit'
pod 'BezierKit' pod 'BezierKit'
pod 'Localize-Swift' pod 'Localize-Swift'
pod 'Cirque' pod 'Cirque', :git => 'https://github.com/StepanetsDmtry/Cirque.git'
pod 'XMLCoder', '~> 0.12.0' pod 'XMLCoder', '~> 0.12.0'
pod 'AlgoliaSearchClient', '~> 8.2' pod 'AlgoliaSearchClient', '~> 8.2'
pod 'Flurry-iOS-SDK/FlurrySDK' pod 'Flurry-iOS-SDK/FlurrySDK'
......
...@@ -105,7 +105,7 @@ PODS: ...@@ -105,7 +105,7 @@ PODS:
DEPENDENCIES: DEPENDENCIES:
- AlgoliaSearchClient (~> 8.2) - AlgoliaSearchClient (~> 8.2)
- BezierKit - BezierKit
- Cirque - Cirque (from `https://github.com/StepanetsDmtry/Cirque.git`)
- Firebase/Analytics - Firebase/Analytics
- Firebase/Crashlytics - Firebase/Crashlytics
- Firebase/RemoteConfig - Firebase/RemoteConfig
...@@ -119,7 +119,6 @@ SPEC REPOS: ...@@ -119,7 +119,6 @@ SPEC REPOS:
trunk: trunk:
- AlgoliaSearchClient - AlgoliaSearchClient
- BezierKit - BezierKit
- Cirque
- Firebase - Firebase
- FirebaseABTesting - FirebaseABTesting
- FirebaseAnalytics - FirebaseAnalytics
...@@ -141,6 +140,15 @@ SPEC REPOS: ...@@ -141,6 +140,15 @@ SPEC REPOS:
- SnapKit - SnapKit
- XMLCoder - XMLCoder
EXTERNAL SOURCES:
Cirque:
:git: https://github.com/StepanetsDmtry/Cirque.git
CHECKOUT OPTIONS:
Cirque:
:commit: ceb7ba910a35973cbcd41c73a62be6305aed4d13
:git: https://github.com/StepanetsDmtry/Cirque.git
SPEC CHECKSUMS: SPEC CHECKSUMS:
AlgoliaSearchClient: bbafe7f014cc0b474646d794ae3675ef4e92f0d5 AlgoliaSearchClient: bbafe7f014cc0b474646d794ae3675ef4e92f0d5
BezierKit: 1828aca1675d68f0659c5353bc5b0d3399a3910c BezierKit: 1828aca1675d68f0659c5353bc5b0d3399a3910c
...@@ -166,6 +174,6 @@ SPEC CHECKSUMS: ...@@ -166,6 +174,6 @@ SPEC CHECKSUMS:
SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb
XMLCoder: f884dfa894a6f8b7dce465e4f6c02963bf17e028 XMLCoder: f884dfa894a6f8b7dce465e4f6c02963bf17e028
PODFILE CHECKSUM: 123aa219829b2749a7985c1ed900ee24b5c23739 PODFILE CHECKSUM: fc565a2c2350a930c31ffee09635be8191446c21
COCOAPODS: 1.10.1 COCOAPODS: 1.10.1
...@@ -24,6 +24,7 @@ public class CirqueView : UIView { ...@@ -24,6 +24,7 @@ public class CirqueView : UIView {
public var transitionSize: CGFloat = 0.05 public var transitionSize: CGFloat = 0.05
public var stepSize: CGFloat = 0.1 public var stepSize: CGFloat = 0.1
public var lineWidth: CGFloat = 5 public var lineWidth: CGFloat = 5
public var roundLineCorners = false
fileprivate var circleRadius : CGFloat { fileprivate var circleRadius : CGFloat {
return (self.bounds.size.width - lineWidth)/2 return (self.bounds.size.width - lineWidth)/2
...@@ -46,6 +47,9 @@ public class CirqueView : UIView { ...@@ -46,6 +47,9 @@ public class CirqueView : UIView {
let processPath = UIBezierPath() let processPath = UIBezierPath()
processPath.lineWidth = lineWidth processPath.lineWidth = lineWidth
if self.roundLineCorners {
processPath.lineCapStyle = .round
}
for stepFraction in stride(from: CGFloat(0), through: 1.0, by: stepSize) { for stepFraction in stride(from: CGFloat(0), through: 1.0, by: stepSize) {
...@@ -74,6 +78,9 @@ public class CirqueView : UIView { ...@@ -74,6 +78,9 @@ public class CirqueView : UIView {
let finalEndAngle = zeroAngle + (CGFloat(360).degreesToRadians * (startPosition + max(relativeSize, 0))) let finalEndAngle = zeroAngle + (CGFloat(360).degreesToRadians * (startPosition + max(relativeSize, 0)))
let processPath = UIBezierPath() let processPath = UIBezierPath()
processPath.lineWidth = lineWidth processPath.lineWidth = lineWidth
if self.roundLineCorners {
processPath.lineCapStyle = .round
}
color.set() color.set()
......
{
"name": "Cirque",
"version": "1.0.3",
"summary": "A multi color gradient circle progress view",
"description": "Cirque is an iOS component that enables you to draw multi color circle strokes with gradient trasitions between colors.",
"homepage": "https://github.com/tonsser/Cirque",
"license": {
"type": "MIT",
"file": "LICENSE"
},
"authors": {
"philipengberg": "philipengberg@gmail.com"
},
"source": {
"git": "https://github.com/tonsser/Cirque.git",
"tag": "1.0.3"
},
"platforms": {
"ios": "8.0"
},
"source_files": "Cirque/Classes/**/*"
}
...@@ -105,7 +105,7 @@ PODS: ...@@ -105,7 +105,7 @@ PODS:
DEPENDENCIES: DEPENDENCIES:
- AlgoliaSearchClient (~> 8.2) - AlgoliaSearchClient (~> 8.2)
- BezierKit - BezierKit
- Cirque - Cirque (from `https://github.com/StepanetsDmtry/Cirque.git`)
- Firebase/Analytics - Firebase/Analytics
- Firebase/Crashlytics - Firebase/Crashlytics
- Firebase/RemoteConfig - Firebase/RemoteConfig
...@@ -119,7 +119,6 @@ SPEC REPOS: ...@@ -119,7 +119,6 @@ SPEC REPOS:
trunk: trunk:
- AlgoliaSearchClient - AlgoliaSearchClient
- BezierKit - BezierKit
- Cirque
- Firebase - Firebase
- FirebaseABTesting - FirebaseABTesting
- FirebaseAnalytics - FirebaseAnalytics
...@@ -141,6 +140,15 @@ SPEC REPOS: ...@@ -141,6 +140,15 @@ SPEC REPOS:
- SnapKit - SnapKit
- XMLCoder - XMLCoder
EXTERNAL SOURCES:
Cirque:
:git: https://github.com/StepanetsDmtry/Cirque.git
CHECKOUT OPTIONS:
Cirque:
:commit: ceb7ba910a35973cbcd41c73a62be6305aed4d13
:git: https://github.com/StepanetsDmtry/Cirque.git
SPEC CHECKSUMS: SPEC CHECKSUMS:
AlgoliaSearchClient: bbafe7f014cc0b474646d794ae3675ef4e92f0d5 AlgoliaSearchClient: bbafe7f014cc0b474646d794ae3675ef4e92f0d5
BezierKit: 1828aca1675d68f0659c5353bc5b0d3399a3910c BezierKit: 1828aca1675d68f0659c5353bc5b0d3399a3910c
...@@ -166,6 +174,6 @@ SPEC CHECKSUMS: ...@@ -166,6 +174,6 @@ SPEC CHECKSUMS:
SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb
XMLCoder: f884dfa894a6f8b7dce465e4f6c02963bf17e028 XMLCoder: f884dfa894a6f8b7dce465e4f6c02963bf17e028
PODFILE CHECKSUM: 123aa219829b2749a7985c1ed900ee24b5c23739 PODFILE CHECKSUM: fc565a2c2350a930c31ffee09635be8191446c21
COCOAPODS: 1.10.1 COCOAPODS: 1.10.1
...@@ -7094,7 +7094,7 @@ ...@@ -7094,7 +7094,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Cirque/Cirque-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Cirque/Cirque-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Cirque/Cirque-Info.plist"; INFOPLIST_FILE = "Target Support Files/Cirque/Cirque-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
...@@ -7315,7 +7315,7 @@ ...@@ -7315,7 +7315,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Logging/Logging-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Logging/Logging-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Logging/Logging-Info.plist"; INFOPLIST_FILE = "Target Support Files/Logging/Logging-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
...@@ -7383,7 +7383,7 @@ ...@@ -7383,7 +7383,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-Info.plist"; INFOPLIST_FILE = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
...@@ -7555,7 +7555,7 @@ ...@@ -7555,7 +7555,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Logging/Logging-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Logging/Logging-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Logging/Logging-Info.plist"; INFOPLIST_FILE = "Target Support Files/Logging/Logging-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
...@@ -7627,7 +7627,7 @@ ...@@ -7627,7 +7627,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Cirque/Cirque-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Cirque/Cirque-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Cirque/Cirque-Info.plist"; INFOPLIST_FILE = "Target Support Files/Cirque/Cirque-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
...@@ -8338,7 +8338,7 @@ ...@@ -8338,7 +8338,7 @@
GCC_PREFIX_HEADER = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-prefix.pch"; GCC_PREFIX_HEADER = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-Info.plist"; INFOPLIST_FILE = "Target Support Files/Flurry-iOS-SDK/Flurry-iOS-SDK-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
......
...@@ -9,168 +9,168 @@ ...@@ -9,168 +9,168 @@
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>0</integer> <integer>1</integer>
</dict> </dict>
<key>BezierKit.xcscheme</key> <key>BezierKit.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>1</integer> <integer>2</integer>
</dict> </dict>
<key>Cirque.xcscheme</key> <key>Cirque.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>2</integer> <integer>3</integer>
</dict> </dict>
<key>Firebase.xcscheme</key> <key>Firebase.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>3</integer> <integer>4</integer>
</dict> </dict>
<key>FirebaseABTesting.xcscheme</key> <key>FirebaseABTesting.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>4</integer> <integer>5</integer>
</dict> </dict>
<key>FirebaseAnalytics.xcscheme</key> <key>FirebaseAnalytics.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>5</integer> <integer>6</integer>
</dict> </dict>
<key>FirebaseCore.xcscheme</key> <key>FirebaseCore.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>6</integer> <integer>7</integer>
</dict> </dict>
<key>FirebaseCoreDiagnostics.xcscheme</key> <key>FirebaseCoreDiagnostics.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>7</integer> <integer>8</integer>
</dict> </dict>
<key>FirebaseCrashlytics.xcscheme</key> <key>FirebaseCrashlytics.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>8</integer> <integer>9</integer>
</dict> </dict>
<key>FirebaseInstallations.xcscheme</key> <key>FirebaseInstallations.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer> <integer>10</integer>
</dict> </dict>
<key>FirebaseRemoteConfig.xcscheme</key> <key>FirebaseRemoteConfig.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer> <integer>11</integer>
</dict> </dict>
<key>Flurry-iOS-SDK.xcscheme</key> <key>Flurry-iOS-SDK.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer> <integer>12</integer>
</dict> </dict>
<key>GoogleAppMeasurement.xcscheme</key> <key>GoogleAppMeasurement.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>12</integer> <integer>13</integer>
</dict> </dict>
<key>GoogleDataTransport.xcscheme</key> <key>GoogleDataTransport.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer> <integer>14</integer>
</dict> </dict>
<key>GoogleUtilities.xcscheme</key> <key>GoogleUtilities.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer> <integer>15</integer>
</dict> </dict>
<key>Localize-Swift.xcscheme</key> <key>Localize-Swift.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer> <integer>16</integer>
</dict> </dict>
<key>Logging.xcscheme</key> <key>Logging.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer> <integer>17</integer>
</dict> </dict>
<key>MORichNotification.xcscheme</key> <key>MORichNotification.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer> <integer>19</integer>
</dict> </dict>
<key>MoEngage-iOS-SDK.xcscheme</key> <key>MoEngage-iOS-SDK.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer> <integer>18</integer>
</dict> </dict>
<key>Pods-1Weather.xcscheme</key> <key>Pods-1Weather.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>20</integer> <integer>21</integer>
</dict> </dict>
<key>PromisesObjC.xcscheme</key> <key>PromisesObjC.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>21</integer> <integer>22</integer>
</dict> </dict>
<key>SnapKit.xcscheme</key> <key>SnapKit.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>22</integer> <integer>23</integer>
</dict> </dict>
<key>XMLCoder.xcscheme</key> <key>XMLCoder.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>23</integer> <integer>24</integer>
</dict> </dict>
<key>nanopb.xcscheme</key> <key>nanopb.xcscheme</key>
<dict> <dict>
<key>isShown</key> <key>isShown</key>
<false/> <false/>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer> <integer>20</integer>
</dict> </dict>
</dict> </dict>
<key>SuppressBuildableAutocreation</key> <key>SuppressBuildableAutocreation</key>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment