Compare commits
9 Commits
master
...
licard-dev
| Author | SHA1 | Date |
|---|---|---|
|
|
42876798fa | |
|
|
6eeb9c8b99 | |
|
|
6f74a503c4 | |
|
|
d154ee1988 | |
|
|
06e63202c8 | |
|
|
f692c07d71 | |
|
|
2c264ecd66 | |
|
|
77331dd2a2 | |
|
|
c73a8c8e8e |
|
|
@ -1,10 +1,10 @@
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
rootProject.ext {
|
rootProject.ext {
|
||||||
compileSdk = 29
|
compileSdk = 31
|
||||||
|
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 29
|
targetSdk = 31
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion(29)
|
compileSdkVersion(31)
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion(21)
|
minSdkVersion(21)
|
||||||
targetSdkVersion(29)
|
targetSdkVersion(31)
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ abstract class AbstractMapManager<TMapView : View, TMap : Any, TLocation : Any>(
|
||||||
this.mapListener = mapListener
|
this.mapListener = mapListener
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun onCreate(savedInstanceState: Bundle) = Unit
|
open fun onCreate(savedInstanceState: Bundle?) = Unit
|
||||||
|
|
||||||
open fun onDestroy() = Unit
|
open fun onDestroy() = Unit
|
||||||
|
|
||||||
|
|
@ -67,6 +67,8 @@ abstract class AbstractMapManager<TMapView : View, TMap : Any, TLocation : Any>(
|
||||||
this.mapListener?.onMapInitialized(map)
|
this.mapListener?.onMapInitialized(map)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun isMapInitialized(): Boolean = this::map.isInitialized
|
||||||
|
|
||||||
interface AbstractMapListener<TMapView, TMap, TLocation> {
|
interface AbstractMapListener<TMapView, TMap, TLocation> {
|
||||||
|
|
||||||
fun onMapInitialized(map: TMap)
|
fun onMapInitialized(map: TMap)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ allprojects {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
jcenter()
|
||||||
maven {
|
maven {
|
||||||
url "https://dl.bintray.com/touchin/touchin-tools"
|
url "https://maven.dev.touchin.ru"
|
||||||
metadataSources {
|
metadataSources {
|
||||||
artifact()
|
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.CameraPosition
|
||||||
import com.google.android.gms.maps.model.LatLng
|
import com.google.android.gms.maps.model.LatLng
|
||||||
import com.google.android.gms.maps.model.LatLngBounds
|
import com.google.android.gms.maps.model.LatLngBounds
|
||||||
|
import com.google.android.gms.maps.model.VisibleRegion
|
||||||
import ru.touchin.basemap.AbstractMapManager
|
import ru.touchin.basemap.AbstractMapManager
|
||||||
|
|
||||||
@Suppress("detekt.TooManyFunctions")
|
@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)
|
super.onCreate(savedInstanceState)
|
||||||
mapView.onCreate(savedInstanceState)
|
mapView.onCreate(savedInstanceState)
|
||||||
}
|
}
|
||||||
|
|
@ -77,10 +78,16 @@ class GoogleMapManager(mapView: MapView) : AbstractMapManager<MapView, GoogleMap
|
||||||
|
|
||||||
override fun getCameraTilt(): Float = map.cameraPosition.tilt
|
override fun getCameraTilt(): Float = map.cameraPosition.tilt
|
||||||
|
|
||||||
|
fun getVisibleRegion(): VisibleRegion = map.projection.visibleRegion
|
||||||
|
|
||||||
override fun moveCamera(target: LatLng, zoom: Float, azimuth: Float, tilt: Float) {
|
override fun moveCamera(target: LatLng, zoom: Float, azimuth: Float, tilt: Float) {
|
||||||
map.moveCamera(CameraUpdateFactory.newCameraPosition(buildCameraPosition(target, zoom, azimuth, tilt)))
|
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) {
|
override fun smoothMoveCamera(target: LatLng, zoom: Float, azimuth: Float, tilt: Float) {
|
||||||
map.animateCamera(CameraUpdateFactory.newCameraPosition(buildCameraPosition(target, zoom, azimuth, tilt)))
|
map.animateCamera(CameraUpdateFactory.newCameraPosition(buildCameraPosition(target, zoom, azimuth, tilt)))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,10 @@ open class ViewControllerFragment<TActivity : FragmentActivity, TState : Parcela
|
||||||
|
|
||||||
lateinit var state: TState private set
|
lateinit var state: TState private set
|
||||||
|
|
||||||
lateinit var viewControllerClass: Class<ViewController<TActivity, TState>> private set
|
val viewControllerClass: Class<ViewController<TActivity, TState>> by lazy {
|
||||||
|
arguments?.getSerializable(VIEW_CONTROLLER_CLASS_EXTRA) as? Class<ViewController<TActivity, TState>>
|
||||||
|
?: throw IllegalArgumentException("View controller class must be not-null")
|
||||||
|
}
|
||||||
|
|
||||||
private var viewController: ViewController<out TActivity, out TState>? = null
|
private var viewController: ViewController<out TActivity, out TState>? = null
|
||||||
|
|
||||||
|
|
@ -93,12 +96,9 @@ open class ViewControllerFragment<TActivity : FragmentActivity, TState : Parcela
|
||||||
|
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
|
|
||||||
viewControllerClass = arguments?.getSerializable(VIEW_CONTROLLER_CLASS_EXTRA) as? Class<ViewController<TActivity, TState>>
|
|
||||||
?: throw IllegalArgumentException("View controller class must be not-null")
|
|
||||||
|
|
||||||
state = savedInstanceState?.getParcelable<TState>(VIEW_CONTROLLER_STATE_EXTRA)
|
state = savedInstanceState?.getParcelable<TState>(VIEW_CONTROLLER_STATE_EXTRA)
|
||||||
?: arguments?.getParcelable(VIEW_CONTROLLER_STATE_EXTRA)
|
?: arguments?.getParcelable(VIEW_CONTROLLER_STATE_EXTRA)
|
||||||
?: throw IllegalStateException("State is required and null")
|
?: throw IllegalStateException("State is required and null")
|
||||||
|
|
||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
state = reserialize(state, state.javaClass.classLoader ?: Thread.currentThread().contextClassLoader)
|
state = reserialize(state, state.javaClass.classLoader ?: Thread.currentThread().contextClassLoader)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ open class DefaultActivityLifecycleCallbacks : Application.ActivityLifecycleCall
|
||||||
|
|
||||||
override fun onActivityDestroyed(activity: Activity) = Unit
|
override fun onActivityDestroyed(activity: Activity) = Unit
|
||||||
|
|
||||||
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle?) = Unit
|
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) = Unit
|
||||||
|
|
||||||
override fun onActivityStopped(activity: Activity) = Unit
|
override fun onActivityStopped(activity: Activity) = Unit
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@ import com.yandex.mapkit.map.InputListener
|
||||||
import com.yandex.mapkit.map.Map
|
import com.yandex.mapkit.map.Map
|
||||||
import com.yandex.mapkit.map.MapLoadStatistics
|
import com.yandex.mapkit.map.MapLoadStatistics
|
||||||
import com.yandex.mapkit.map.MapLoadedListener
|
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.mapview.MapView
|
||||||
import com.yandex.mapkit.user_location.UserLocationObjectListener
|
import com.yandex.mapkit.user_location.UserLocationObjectListener
|
||||||
import com.yandex.mapkit.user_location.UserLocationView
|
import com.yandex.mapkit.user_location.UserLocationView
|
||||||
|
|
@ -91,6 +93,8 @@ class YandexMapManager(
|
||||||
mapListener?.onMapTap(point)
|
mapListener?.onMapTap(point)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getCameraPosition(): CameraPosition = map.cameraPosition
|
||||||
|
|
||||||
override fun getCameraTarget(): Point = map.cameraPosition.target
|
override fun getCameraTarget(): Point = map.cameraPosition.target
|
||||||
|
|
||||||
override fun getCameraZoom(): Float = map.cameraPosition.zoom
|
override fun getCameraZoom(): Float = map.cameraPosition.zoom
|
||||||
|
|
@ -99,6 +103,10 @@ class YandexMapManager(
|
||||||
|
|
||||||
override fun getCameraTilt(): Float = map.cameraPosition.tilt
|
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) {
|
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)
|
map.move(CameraPosition(target, zoom, azimuth, tilt), Animation(Animation.Type.LINEAR, CAMERA_ANIMATION_DURATION), null)
|
||||||
}
|
}
|
||||||
|
|
@ -152,9 +160,9 @@ class YandexMapManager(
|
||||||
userLocationAccuracyCirceColor = accuracyCircleColor
|
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>
|
interface MapListener : AbstractMapListener<MapView, Map, Point>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue