Commit ea8ee682 by Dmitriy Stepanets

Working on optimization

parent 0d839b0e
......@@ -7,48 +7,16 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A7148659-DCDF-4EB8-92F7-0A571A0AF0A4"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OneWeatherWidget/UI/SnapshotLoader.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
landmarkName = "load(at:size:completion:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "5B96F754-0820-40B1-949A-F9E6198E88F7"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OneWeatherWidget/UI/SnapshotLoader.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "59"
endingLineNumber = "59"
landmarkName = "addTile(to:region:scale:completion:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "095DF7BE-D4B0-44F2-8BAD-AE8C0E952B56"
uuid = "A9B8B751-5C25-4473-82EC-7DA4EEF9BFB2"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Pods/Swarm/Swarm/SwarmTileOverlayRenderer.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "88"
endingLineNumber = "88"
landmarkName = "getTilesImage(_:zoomLevel:completion:)"
startingLineNumber = "107"
endingLineNumber = "107"
landmarkName = "getTilesImage(_:zoomLevel:scale:completion:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
......
......@@ -13,10 +13,10 @@ extension OneWeatherUI {
static let frameworkBundle = Bundle(for: OneWeatherUIClass.self)
static let loadFonts: () = {
loadFontWith(name: "SF-Pro-Display-Regular", fileExtension: "otf")
loadFontWith(name: "SF-Pro-Display-Light", fileExtension: "otf")
// loadFontWith(name: "SF-Pro-Display-Regular", fileExtension: "otf")
// loadFontWith(name: "SF-Pro-Display-Light", fileExtension: "otf")
loadFontWith(name: "SF-Pro-Display-Bold", fileExtension: "otf")
loadFontWith(name: "SF-Pro-Display-Thin", fileExtension: "otf")
// loadFontWith(name: "SF-Pro-Display-Thin", fileExtension: "otf")
}()
internal static func loadFontWith(name: String, fileExtension: String) {
......
......@@ -64,12 +64,11 @@ class WeatherProvider: TimelineProvider {
}
func getTimeline(in context: Context, completion: @escaping (Timeline<WeatherEntry>) -> Void) {
getUpToDateLocation { location in
guard let fetchedLocation = location else {
return
}
if let coordinates = fetchedLocation.coordinates {
getUpToDateLocation { location in
if
let fetchedLocation = location,
let coordinates = fetchedLocation.coordinates
{
SnapshotLoader.load(at: coordinates,
size: .init(width: 340, height: 280)
) { mapImage in
......@@ -82,7 +81,7 @@ class WeatherProvider: TimelineProvider {
}
else {
let nextRefresh = Calendar.current.date(byAdding: .minute, value: 30, to: Date())!
let entry = WeatherEntry(location: fetchedLocation, date: nextRefresh)
let entry = WeatherEntry(location: location, date: nextRefresh)
let timeline = Timeline(entries: [entry], policy: .atEnd)
WidgetManager.shared.logUpdate()
completion(timeline)
......
......@@ -49,12 +49,21 @@ class SnapshotLoader: ObservableObject {
completion:@escaping (_ finalImage: UIImage?) -> Void
) {
DispatchQueue.main.async {
let mapView = MKMapView(frame: .init(origin: .zero, size: .init(width: 340, height: 280)))
mapView.setRegion(region, animated: false)
// let mapView = MKMapView(frame: .init(origin: .zero, size: .init(width: 340, height: 280)))
// mapView.setRegion(region, animated: false)
let topLeft = CLLocationCoordinate2D(latitude: region.center.latitude + (region.span.latitudeDelta / 2),
longitude: region.center.longitude - (region.span.longitudeDelta / 2))
let bottomRight = CLLocationCoordinate2D(latitude: region.center.latitude - (region.span.latitudeDelta / 2),
longitude: region.center.longitude + (region.span.longitudeDelta / 2))
let a = MKMapPoint(topLeft)
let b = MKMapPoint(bottomRight)
let rect = MKMapRect(origin: MKMapPoint(x:min(a.x,b.x), y:min(a.y,b.y)),
size: MKMapSize(width: abs(a.x-b.x), height: abs(a.y-b.y)))
let renderer = SwarmTileOverlayRenderer(overlay: SnapshotLoader.swarmOverlay)
let zoomLevel = Int(SnapshotLoader.zoomLevel(for: region).rounded(.up))
renderer.getTilesImage(mapView.visibleMapRect, zoomLevel: zoomLevel) { image in
renderer.getTilesImage(rect, zoomLevel: zoomLevel, scale: scale) { image in
guard let tilesImage = image else {
completion(nil)
return
......
......@@ -78,6 +78,7 @@ open class SwarmTileOverlayRenderer: MKTileOverlayRenderer {
public func getTilesImage(_ forRect: MKMapRect,
zoomLevel: Int,
scale: CGFloat,
completion:@escaping (_ tilesImage: UIImage?) -> Void
) {
let downloadGroup = DispatchGroup()
......@@ -89,7 +90,7 @@ open class SwarmTileOverlayRenderer: MKTileOverlayRenderer {
return
}
let tilePaths = forRect.tilePaths(zoomLevel, tileSize: 256, contentScale: 2)
let tilePaths = forRect.tilePaths(zoomLevel, tileSize: 256, contentScale: scale)
for path in tilePaths {
let url = swarm.urlForTile(path, timestamp: timeStamp)
downloadGroup.enter()
......
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