Compare commits

...

5 Commits

Author SHA1 Message Date
Korna 06e63202c8 Add working repository url 2021-07-05 23:23:46 +03:00
Artyom Tsebrov f692c07d71 LIC-3666: Add "isMapInitialized" method to AbstractMapManager 2021-03-15 20:59:10 +03:00
NoDopezzz 2c264ecd66 Make savedInstanceState nullable 2020-11-24 13:07:15 +03:00
Artyom Tsebrov 77331dd2a2 Update map manager interface 2020-11-23 16:19:33 +03:00
Artyom Tsebrov c73a8c8e8e WIP: add new methods to MapManagers 2020-11-23 16:17:19 +03:00
4 changed files with 22 additions and 5 deletions
@@ -46,7 +46,7 @@ abstract class AbstractMapManager<TMapView : View, TMap : Any, TLocation : Any>(
this.mapListener = mapListener
}
open fun onCreate(savedInstanceState: Bundle) = Unit
open fun onCreate(savedInstanceState: Bundle?) = Unit
open fun onDestroy() = Unit
@@ -67,6 +67,8 @@ abstract class AbstractMapManager<TMapView : View, TMap : Any, TLocation : Any>(
this.mapListener?.onMapInitialized(map)
}
fun isMapInitialized(): Boolean = this::map.isInitialized
interface AbstractMapListener<TMapView, TMap, TLocation> {
fun onMapInitialized(map: TMap)
+1 -1
View File
@@ -17,7 +17,7 @@ allprojects {
google()
jcenter()
maven {
url "https://dl.bintray.com/touchin/touchin-tools"
url "https://maven.dev.touchin.ru"
metadataSources {
artifact()
}
@@ -8,6 +8,7 @@ import com.google.android.gms.maps.MapView
import com.google.android.gms.maps.model.CameraPosition
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.LatLngBounds
import com.google.android.gms.maps.model.VisibleRegion
import ru.touchin.basemap.AbstractMapManager
@Suppress("detekt.TooManyFunctions")
@@ -29,7 +30,7 @@ class GoogleMapManager(mapView: MapView) : AbstractMapManager<MapView, GoogleMap
}
}
override fun onCreate(savedInstanceState: Bundle) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mapView.onCreate(savedInstanceState)
}
@@ -77,10 +78,16 @@ class GoogleMapManager(mapView: MapView) : AbstractMapManager<MapView, GoogleMap
override fun getCameraTilt(): Float = map.cameraPosition.tilt
fun getVisibleRegion(): VisibleRegion = map.projection.visibleRegion
override fun moveCamera(target: LatLng, zoom: Float, azimuth: Float, tilt: Float) {
map.moveCamera(CameraUpdateFactory.newCameraPosition(buildCameraPosition(target, zoom, azimuth, tilt)))
}
fun moveCamera(target: LatLng, userRegionZoom: Float) {
map.animateCamera(CameraUpdateFactory.newLatLngZoom(target, userRegionZoom))
}
override fun smoothMoveCamera(target: LatLng, zoom: Float, azimuth: Float, tilt: Float) {
map.animateCamera(CameraUpdateFactory.newCameraPosition(buildCameraPosition(target, zoom, azimuth, tilt)))
}
@@ -15,6 +15,8 @@ import com.yandex.mapkit.map.InputListener
import com.yandex.mapkit.map.Map
import com.yandex.mapkit.map.MapLoadStatistics
import com.yandex.mapkit.map.MapLoadedListener
import com.yandex.mapkit.map.MapObjectCollection
import com.yandex.mapkit.map.VisibleRegion
import com.yandex.mapkit.mapview.MapView
import com.yandex.mapkit.user_location.UserLocationObjectListener
import com.yandex.mapkit.user_location.UserLocationView
@@ -91,6 +93,8 @@ class YandexMapManager(
mapListener?.onMapTap(point)
}
fun getCameraPosition(): CameraPosition = map.cameraPosition
override fun getCameraTarget(): Point = map.cameraPosition.target
override fun getCameraZoom(): Float = map.cameraPosition.zoom
@@ -99,6 +103,10 @@ class YandexMapManager(
override fun getCameraTilt(): Float = map.cameraPosition.tilt
fun moveCamera(target: CameraPosition) {
map.move(target)
}
override fun moveCamera(target: Point, zoom: Float, azimuth: Float, tilt: Float) {
map.move(CameraPosition(target, zoom, azimuth, tilt), Animation(Animation.Type.LINEAR, CAMERA_ANIMATION_DURATION), null)
}
@@ -152,9 +160,9 @@ class YandexMapManager(
userLocationAccuracyCirceColor = accuracyCircleColor
}
fun getVisibleRegion() = map.visibleRegion
fun getVisibleRegion(): VisibleRegion = map.visibleRegion
fun getMapObjects() = map.mapObjects
fun getMapObjects(): MapObjectCollection = map.mapObjects
interface MapListener : AbstractMapListener<MapView, Map, Point>