mirror of
https://github.com/nextcloud/talk-android.git
synced 2024-11-22 21:15:30 +03:00
update location when gps changed
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
751cd1268e
commit
0568ea6e72
1 changed files with 43 additions and 7 deletions
|
@ -5,6 +5,9 @@ import android.app.SearchManager
|
|||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.location.Location
|
||||
import android.location.LocationListener
|
||||
import android.location.LocationManager
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
|
@ -74,6 +77,7 @@ import javax.inject.Inject
|
|||
class LocationPickerController(args: Bundle) :
|
||||
BaseController(args),
|
||||
SearchView.OnQueryTextListener,
|
||||
LocationListener,
|
||||
GeocodingController.GeocodingResultListener {
|
||||
|
||||
@Inject
|
||||
|
@ -114,6 +118,10 @@ class LocationPickerController(args: Bundle) :
|
|||
|
||||
var roomToken: String?
|
||||
|
||||
var myLocation: GeoPoint = GeoPoint(0.0, 0.0)
|
||||
private var locationManager: LocationManager? = null
|
||||
private lateinit var locationOverlay: MyLocationNewOverlay
|
||||
|
||||
var moveToCurrentLocationWasClicked: Boolean = true
|
||||
var readyToShareLocation: Boolean = false
|
||||
var searchItem: MenuItem? = null
|
||||
|
@ -141,6 +149,16 @@ class LocationPickerController(args: Bundle) :
|
|||
initMap()
|
||||
}
|
||||
|
||||
override fun onDetach(view: View) {
|
||||
super.onDetach(view)
|
||||
try {
|
||||
locationManager!!.removeUpdates(this)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "error when trying to remove updates for location Manager", e)
|
||||
}
|
||||
locationOverlay.disableMyLocation()
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
inflater.inflate(R.menu.menu_locationpicker, menu)
|
||||
|
@ -217,14 +235,19 @@ class LocationPickerController(args: Bundle) :
|
|||
|
||||
map?.onResume()
|
||||
|
||||
locationManager = activity!!.getSystemService(Context.LOCATION_SERVICE) as LocationManager
|
||||
try {
|
||||
locationManager!!.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0L, 0f, this)
|
||||
} catch (ex: SecurityException) {
|
||||
}
|
||||
|
||||
val copyrightOverlay = CopyrightOverlay(context)
|
||||
map?.overlays?.add(copyrightOverlay)
|
||||
|
||||
map?.setMultiTouchControls(true)
|
||||
map?.isTilesScaledToDpi = true
|
||||
|
||||
val locationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(context), map)
|
||||
// locationOverlay.enableFollowLocation()
|
||||
locationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(context), map)
|
||||
locationOverlay.enableMyLocation()
|
||||
locationOverlay.setPersonHotspot(20.0F,20.0F)
|
||||
locationOverlay.setPersonIcon(
|
||||
|
@ -239,13 +262,10 @@ class LocationPickerController(args: Bundle) :
|
|||
mapController?.setZoom(12.0)
|
||||
}
|
||||
|
||||
var myLocation: GeoPoint
|
||||
myLocation = GeoPoint(52.0, 13.0)
|
||||
|
||||
var zoomToCurrentPositionAllowed = !receivedChosenGeocodingResult
|
||||
val zoomToCurrentPositionOnFirstFix = !receivedChosenGeocodingResult
|
||||
locationOverlay.runOnFirstFix {
|
||||
myLocation = locationOverlay.myLocation
|
||||
if (zoomToCurrentPositionAllowed) {
|
||||
if (zoomToCurrentPositionOnFirstFix) {
|
||||
activity!!.runOnUiThread {
|
||||
mapController?.setZoom(12.0)
|
||||
mapController?.setCenter(myLocation)
|
||||
|
@ -433,6 +453,22 @@ class LocationPickerController(args: Bundle) :
|
|||
}
|
||||
}
|
||||
|
||||
override fun onLocationChanged(location: Location?) {
|
||||
myLocation = GeoPoint(location)
|
||||
}
|
||||
|
||||
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
|
||||
// empty
|
||||
}
|
||||
|
||||
override fun onProviderEnabled(provider: String?) {
|
||||
// empty
|
||||
}
|
||||
|
||||
override fun onProviderDisabled(provider: String?) {
|
||||
// empty
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "LocPicker"
|
||||
private const val REQUEST_PERMISSIONS_REQUEST_CODE = 1
|
||||
|
|
Loading…
Reference in a new issue