Skip to content

Commit c1ddc1f

Browse files
committed
[Fix, iOS] Preserve customStyleCallback when updating customStyleId dynamically
1 parent b2a4d7b commit c1ddc1f

File tree

5 files changed

+26
-11
lines changed

5 files changed

+26
-11
lines changed

ios/Classes/applier/option/NaverMapApplierImpl.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import NMapsMap
33
internal class NaverMapApplierImpl: NaverMapOptionApplier {
44
private let isFirst: Bool
55
private let naverMapView: NMFNaverMapView
6+
private let customStyleCallbacks: CustomStyleCallbacks?
67
private var mapView: NMFMapView {
78
naverMapView.mapView
89
}
910

10-
init(_ mapView: NMFNaverMapView, isFirst: Bool) {
11+
init(_ mapView: NMFNaverMapView, isFirst: Bool, customStyleCallbacks: CustomStyleCallbacks? = nil) {
1112
naverMapView = mapView
1213
self.isFirst = isFirst
14+
self.customStyleCallbacks = customStyleCallbacks
1315
}
1416

1517
func setInitialCameraPosition(_ rawPosition: Any) {
@@ -159,6 +161,11 @@ internal class NaverMapApplierImpl: NaverMapOptionApplier {
159161
}
160162

161163
func setCustomStyleId(_ rawCustomStyleId: Any?) {
162-
mapView.customStyleId = castOrNull(rawCustomStyleId, caster: asString) ?? "" /// todo: SDK 업데이트 후 fallback empty string 지우기. 현재는 임시 조치 (정상 동작은 함)
164+
let styleId = castOrNull(rawCustomStyleId, caster: asString) ?? "" /// todo: SDK 업데이트 후 fallback empty string 지우기. 현재는 임시 조치 (정상 동작은 함)
165+
mapView.setCustomStyleId(
166+
styleId,
167+
loadHandler: customStyleCallbacks?.loadHandler,
168+
failHandler: customStyleCallbacks?.failHandler
169+
)
163170
}
164171
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import Foundation
2+
3+
typealias CustomStyleCallbacks = (loadHandler: () -> Void, failHandler: (any Error) -> Void)
4+
5+
internal extension NaverMapControlSender {
6+
func getCustomStyleCallback() -> CustomStyleCallbacks {
7+
return (
8+
loadHandler: onCustomStyleLoaded,
9+
failHandler: onCustomStyleLoadFailed
10+
)
11+
}
12+
}

ios/Classes/controller/NaverMapController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ internal class NaverMapController: NaverMapControlSender, NaverMapControlHandler
178178

179179
func updateOptions(options: Dictionary<String, Any?>, onSuccess: @escaping (Any?) -> ()) {
180180
naverMapViewOptions = NaverMapViewOptions.fromMessageable(options)
181-
naverMapViewOptions!.updateWithNaverMapView(naverMap: naverMap, isFirst: false)
181+
naverMapViewOptions!.updateWithNaverMapView(naverMap: naverMap, isFirst: false, customStyleCallbacks: getCustomStyleCallback())
182182
onSuccess(nil)
183183
}
184184

ios/Classes/model/map/NaverMapViewOptions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ internal struct NaverMapViewOptions {
99
return NaverMapViewOptions(args: messageableDict, consumeSymbolTapEvents: consumeSymbolTapEvents)
1010
}
1111

12-
func updateWithNaverMapView(naverMap: NMFNaverMapView, isFirst: Bool) {
12+
func updateWithNaverMapView(naverMap: NMFNaverMapView, isFirst: Bool, customStyleCallbacks: CustomStyleCallbacks? = nil) {
1313
naverMap.showCompass = false
1414
naverMap.showZoomControls = false
1515

16-
let applier = NaverMapApplierImpl(naverMap, isFirst: isFirst)
16+
let applier = NaverMapApplierImpl(naverMap, isFirst: isFirst, customStyleCallbacks: customStyleCallbacks)
1717
try! applier.applyOptions(args: args)
1818
}
1919
}

ios/Classes/view/NaverMapViewEventDelegate.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,8 @@ internal class NaverMapViewEventDelegate: NSObject, NMFMapViewTouchDelegate, NMF
4848

4949
mapView.setCustomStyleId(
5050
mapView.customStyleId,
51-
loadHandler: { [weak self] in
52-
self?.sender?.onCustomStyleLoaded()
53-
},
54-
failHandler: { [weak self] exception in
55-
self?.sender?.onCustomStyleLoadFailed(exception: exception)
56-
}
51+
loadHandler: sender?.onCustomStyleLoaded,
52+
failHandler: sender?.onCustomStyleLoadFailed,
5753
)
5854
}
5955

0 commit comments

Comments
 (0)