From 0396fbeab25093850eb3a8cf2f05f39db883a5f0 Mon Sep 17 00:00:00 2001 From: "andi@tryb.de" Date: Fri, 15 May 2020 00:35:19 +0200 Subject: [PATCH] use coroutines --- app/build.gradle | 4 +- .../android/alert/handler/AlertSignal.kt | 4 +- .../java/org/blitzortung/android/app/Main.kt | 3 +- .../blitzortung/android/app/MainPopupMenu.kt | 5 ++- .../blitzortung/android/app/Preferences.kt | 7 ++-- .../blitzortung/android/app/view/AlertView.kt | 5 ++- .../android/dagger/module/AppModule.kt | 7 ++-- .../android/data/FetchBackgroundDataTask.kt | 11 ++--- .../blitzortung/android/data/FetchDataTask.kt | 41 +++++++++++++------ .../android/data/MainDataHandler.kt | 21 +++------- .../android/data/ServiceDataHandler.kt | 18 +++----- .../android/dialogs/QuickSettingsDialog.kt | 4 +- .../android/location/LocationHandler.kt | 4 +- .../provider/LocationProviderFactory.kt | 4 +- .../provider/ManagerLocationProvider.kt | 4 +- .../blitzortung/android/map/MapFragment.kt | 4 +- .../org/blitzortung/android/map/OwnMapView.kt | 4 +- .../android/map/overlay/OwnLocationOverlay.kt | 4 +- 18 files changed, 77 insertions(+), 77 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3c455693..2195935f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,6 @@ coveralls { jacocoReportPath 'build/reports/jacoco/jacocoTestReleaseUnitTestReport/jacocoTestReleaseUnitTestReport.xml' } -def anko_version = '0.10.8' def dagger_version = '2.27' dependencies { @@ -64,7 +63,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.media:media:1.1.0' - implementation "org.jetbrains.anko:anko:$anko_version" + implementation 'androidx.core:core-ktx:1.2.0' + implementation "androidx.work:work-runtime-ktx:2.3.4" implementation 'org.osmdroid:osmdroid-android:6.1.6' implementation 'com.android.support:multidex:1.0.3' diff --git a/app/src/main/java/org/blitzortung/android/alert/handler/AlertSignal.kt b/app/src/main/java/org/blitzortung/android/alert/handler/AlertSignal.kt index fe1f1c82..32fd27bc 100644 --- a/app/src/main/java/org/blitzortung/android/alert/handler/AlertSignal.kt +++ b/app/src/main/java/org/blitzortung/android/alert/handler/AlertSignal.kt @@ -8,6 +8,7 @@ import android.media.RingtoneManager import android.net.Uri import android.os.Build import android.os.Vibrator +import android.preference.PreferenceManager import android.util.Log import org.blitzortung.android.app.Main import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener @@ -16,7 +17,6 @@ import org.blitzortung.android.app.view.PreferenceKey.ALERT_SOUND_SIGNAL import org.blitzortung.android.app.view.PreferenceKey.ALERT_VIBRATION_SIGNAL import org.blitzortung.android.app.view.get import org.blitzortung.android.util.isAtLeast -import org.jetbrains.anko.defaultSharedPreferences import javax.inject.Inject import javax.inject.Singleton @@ -27,7 +27,7 @@ class AlertSignal @Inject constructor( ) : OnSharedPreferenceChangeListener { init { - val preferences = context.defaultSharedPreferences + val preferences = PreferenceManager.getDefaultSharedPreferences(context) preferences.registerOnSharedPreferenceChangeListener(this) onSharedPreferenceChanged(preferences, ALERT_VIBRATION_SIGNAL, ALERT_SOUND_SIGNAL) } diff --git a/app/src/main/java/org/blitzortung/android/app/Main.kt b/app/src/main/java/org/blitzortung/android/app/Main.kt index 4ae31737..e82787bc 100644 --- a/app/src/main/java/org/blitzortung/android/app/Main.kt +++ b/app/src/main/java/org/blitzortung/android/app/Main.kt @@ -72,7 +72,6 @@ import org.blitzortung.android.map.overlay.color.StrikeColorHandler import org.blitzortung.android.util.LogUtil import org.blitzortung.android.util.TabletAwareView import org.blitzortung.android.util.isAtLeast -import org.jetbrains.anko.intentFor import org.osmdroid.config.Configuration import org.osmdroid.tileprovider.util.StorageUtils import org.osmdroid.util.GeoPoint @@ -236,7 +235,7 @@ class Main : FragmentActivity(), OnSharedPreferenceChangeListener { } private val serviceIntent: Intent - get() = intentFor() + get() = Intent(this, AppService::class.java) private fun startService() { startService(serviceIntent) diff --git a/app/src/main/java/org/blitzortung/android/app/MainPopupMenu.kt b/app/src/main/java/org/blitzortung/android/app/MainPopupMenu.kt index 1ed80b25..6e6ce6e3 100644 --- a/app/src/main/java/org/blitzortung/android/app/MainPopupMenu.kt +++ b/app/src/main/java/org/blitzortung/android/app/MainPopupMenu.kt @@ -1,7 +1,9 @@ package org.blitzortung.android.app +import android.app.Activity import android.app.Dialog import android.content.Context +import android.content.Intent import android.content.SharedPreferences import androidx.appcompat.widget.PopupMenu import android.util.Log @@ -14,7 +16,6 @@ import org.blitzortung.android.dialogs.AlertDialog import org.blitzortung.android.dialogs.AlertDialogColorHandler import org.blitzortung.android.dialogs.InfoDialog import org.blitzortung.android.dialogs.LogDialog -import org.jetbrains.anko.startActivity class MainPopupMenu( context: Context, @@ -37,7 +38,7 @@ class MainPopupMenu( override fun onMenuItemClick(item: MenuItem?): Boolean { val versionComponent = VersionComponent(context) if (item?.itemId == R.id.menu_preferences) { - context.startActivity() + context.startActivity(Intent(context, Preferences::class.java)) } else { val dialog = when (item?.itemId) { R.id.menu_info -> InfoDialog(context, versionComponent) diff --git a/app/src/main/java/org/blitzortung/android/app/Preferences.kt b/app/src/main/java/org/blitzortung/android/app/Preferences.kt index 6b82cdc5..221c8ca3 100644 --- a/app/src/main/java/org/blitzortung/android/app/Preferences.kt +++ b/app/src/main/java/org/blitzortung/android/app/Preferences.kt @@ -18,6 +18,7 @@ package org.blitzortung.android.app +import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.location.LocationManager @@ -30,7 +31,6 @@ import org.blitzortung.android.app.view.PreferenceKey import org.blitzortung.android.app.view.get import org.blitzortung.android.data.provider.DataProviderType import org.blitzortung.android.location.LocationHandler -import org.jetbrains.anko.locationManager import javax.inject.Inject class Preferences : PreferenceActivity(), OnSharedPreferenceChangeListener { @@ -59,8 +59,9 @@ class Preferences : PreferenceActivity(), OnSharedPreferenceChangeListener { PreferenceKey.LOCATION_MODE -> { val provider = configureLocationProviderPreferences(sharedPreferences) - - if (provider != LocationHandler.MANUAL_PROVIDER && !this.locationManager.isProviderEnabled(provider)) { + getSystemService(Context.LOCATION_SERVICE) as LocationManager + if (provider != LocationHandler.MANUAL_PROVIDER && + !(getSystemService(Context.LOCATION_SERVICE) as LocationManager).isProviderEnabled(provider)) { startActivity(Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)) } } diff --git a/app/src/main/java/org/blitzortung/android/app/view/AlertView.kt b/app/src/main/java/org/blitzortung/android/app/view/AlertView.kt index 1fa63af5..ab3c1e05 100644 --- a/app/src/main/java/org/blitzortung/android/app/view/AlertView.kt +++ b/app/src/main/java/org/blitzortung/android/app/view/AlertView.kt @@ -23,6 +23,7 @@ import android.graphics.* import android.graphics.Paint.Align import android.graphics.Paint.Style import android.location.Location +import android.preference.PreferenceManager import android.util.AttributeSet import android.util.Log import android.view.View @@ -39,7 +40,6 @@ import org.blitzortung.android.dialogs.AlertDialogColorHandler import org.blitzortung.android.location.LocationEvent import org.blitzortung.android.map.overlay.color.ColorHandler import org.blitzortung.android.util.TabletAwareView -import org.jetbrains.anko.defaultSharedPreferences class AlertView @JvmOverloads constructor( context: Context, @@ -96,7 +96,8 @@ class AlertView @JvmOverloads constructor( } fun enableLongClickListener(dataHandler: MainDataHandler, alertHandler: AlertHandler) { - val sharedPreferences = context.defaultSharedPreferences + + val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) setOnLongClickListener { AlertDialog(context, AlertDialogColorHandler(sharedPreferences), dataHandler, alertHandler) diff --git a/app/src/main/java/org/blitzortung/android/dagger/module/AppModule.kt b/app/src/main/java/org/blitzortung/android/dagger/module/AppModule.kt index 28f55e0e..15e0426e 100644 --- a/app/src/main/java/org/blitzortung/android/dagger/module/AppModule.kt +++ b/app/src/main/java/org/blitzortung/android/dagger/module/AppModule.kt @@ -6,11 +6,10 @@ import android.content.SharedPreferences import android.content.pm.PackageInfo import android.os.PowerManager import android.os.Vibrator +import android.preference.PreferenceManager import dagger.Module import dagger.Provides import org.blitzortung.android.app.BOApplication -import org.jetbrains.anko.defaultSharedPreferences -import org.jetbrains.anko.powerManager import javax.inject.Inject import javax.inject.Named @@ -23,10 +22,10 @@ class AppModule @Inject constructor( fun provideContext(): Context = application @Provides - fun provideSharedPrefs(): SharedPreferences = application.defaultSharedPreferences + fun provideSharedPrefs(): SharedPreferences = PreferenceManager.getDefaultSharedPreferences(application) @Provides - fun wakeLock() : PowerManager.WakeLock = application.powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, BOApplication.WAKE_LOCK_TAG) + fun wakeLock(): PowerManager.WakeLock = (application.getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, BOApplication.WAKE_LOCK_TAG) @Provides fun packageInfo(): PackageInfo = application.packageManager.getPackageInfo(application.packageName, 0) diff --git a/app/src/main/java/org/blitzortung/android/data/FetchBackgroundDataTask.kt b/app/src/main/java/org/blitzortung/android/data/FetchBackgroundDataTask.kt index 2ba404e1..1eb66a54 100644 --- a/app/src/main/java/org/blitzortung/android/data/FetchBackgroundDataTask.kt +++ b/app/src/main/java/org/blitzortung/android/data/FetchBackgroundDataTask.kt @@ -3,18 +3,20 @@ package org.blitzortung.android.data import android.os.Build import android.os.PowerManager import android.util.Log +import kotlinx.coroutines.* import org.blitzortung.android.app.Main import org.blitzortung.android.data.provider.data.DataProvider import org.blitzortung.android.data.provider.result.ResultEvent import org.blitzortung.android.util.isAtLeast import java.util.concurrent.locks.Lock +import kotlin.reflect.KSuspendFunction1 internal class FetchBackgroundDataTask( dataMode: DataMode, dataProvider: DataProvider, lock: Lock, resultConsumer: (ResultEvent) -> Unit, - toast: (Int) -> Unit, + toast: KSuspendFunction1, private val wakeLock: PowerManager.WakeLock ) : FetchDataTask(dataMode, dataProvider, lock, resultConsumer, toast) { @@ -33,7 +35,7 @@ internal class FetchBackgroundDataTask( } } - override fun doInBackground(vararg taskParametersArray: TaskParameters): ResultEvent? { + override suspend fun doInBackground(taskParameters: TaskParameters): ResultEvent? = withContext(Dispatchers.IO) { if (isAtLeast(Build.VERSION_CODES.N)) { wakeLock.acquire(ServiceDataHandler.WAKELOCK_TIMEOUT) } else { @@ -42,10 +44,9 @@ internal class FetchBackgroundDataTask( Log.v(Main.LOG_TAG, "FetchBackgroundDataTask aquire wakelock " + wakeLock) - val taskParameters = taskParametersArray[0] val updatedParameters = taskParameters.parameters.copy(intervalDuration = 10, intervalOffset = 0) - val updatedParams = arrayOf(taskParameters.copy(parameters = updatedParameters, flags = Flags(storeResult = false))) + val updatedParams = taskParameters.copy(parameters = updatedParameters, flags = Flags(storeResult = false)) - return super.doInBackground(*updatedParams) + return@withContext super.doInBackground(updatedParams) } } \ No newline at end of file diff --git a/app/src/main/java/org/blitzortung/android/data/FetchDataTask.kt b/app/src/main/java/org/blitzortung/android/data/FetchDataTask.kt index 4a59ff45..7992d1fa 100644 --- a/app/src/main/java/org/blitzortung/android/data/FetchDataTask.kt +++ b/app/src/main/java/org/blitzortung/android/data/FetchDataTask.kt @@ -1,29 +1,37 @@ package org.blitzortung.android.data -import android.os.AsyncTask +import kotlinx.coroutines.* import org.blitzortung.android.app.R import org.blitzortung.android.data.provider.data.DataProvider import org.blitzortung.android.data.provider.result.ResultEvent import java.net.SocketException import java.net.SocketTimeoutException import java.util.concurrent.locks.Lock +import kotlin.coroutines.CoroutineContext +import kotlin.reflect.KSuspendFunction1 internal open class FetchDataTask( private val dataMode: DataMode, private val dataProvider: DataProvider, private val lock: Lock, private val resultConsumer: (ResultEvent) -> Unit, - private val toast: (Int) -> Unit -) : AsyncTask() { + private val toast: KSuspendFunction1 +) : CoroutineScope { + private var job: Job = Job() - override fun onPostExecute(result: ResultEvent?) { - if (result != null) { - resultConsumer.invoke(result) - } + override val coroutineContext: CoroutineContext + get() = Dispatchers.Main + job + + fun cancel() { + job.cancel() + } + + fun execute(taskParameters: TaskParameters) = launch { + val result = doInBackground(taskParameters) + onPostExecute(result) } - override fun doInBackground(vararg taskParametersArray: TaskParameters): ResultEvent? { - val taskParameters = taskParametersArray[0] + protected open suspend fun doInBackground(taskParameters: TaskParameters): ResultEvent? = withContext(Dispatchers.IO) { val parameters = taskParameters.parameters val flags = taskParameters.flags @@ -47,21 +55,21 @@ internal open class FetchDataTask( result.copy(stations = dataProvider!!.getStations(parameters.region)) }*/ - return result + return@withContext result } catch (e: RuntimeException) { e.printStackTrace() handleErrorUserFeedback(e) - return ResultEvent(failed = true, referenceTime = System.currentTimeMillis(), parameters = parameters, flags = flags) + return@withContext ResultEvent(failed = true, referenceTime = System.currentTimeMillis(), parameters = parameters, flags = flags) } finally { lock.unlock() } } - return null + return@withContext null } - private fun handleErrorUserFeedback(e: RuntimeException) { + private suspend fun handleErrorUserFeedback(e: RuntimeException) { val warningToastStringResource = when (e.cause) { is SocketTimeoutException -> R.string.timeout_warning @@ -76,4 +84,11 @@ internal open class FetchDataTask( toast.invoke(warningToastStringResource) } } + + open fun onPostExecute(result: ResultEvent?) { + if (result != null) { + resultConsumer.invoke(result) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/org/blitzortung/android/data/MainDataHandler.kt b/app/src/main/java/org/blitzortung/android/data/MainDataHandler.kt index a0b498e3..dc06119f 100644 --- a/app/src/main/java/org/blitzortung/android/data/MainDataHandler.kt +++ b/app/src/main/java/org/blitzortung/android/data/MainDataHandler.kt @@ -23,6 +23,8 @@ import android.content.SharedPreferences import android.os.Handler import android.util.Log import android.widget.Toast +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.blitzortung.android.app.Main import org.blitzortung.android.app.R import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener @@ -37,8 +39,6 @@ import org.blitzortung.android.data.provider.result.ResultEvent import org.blitzortung.android.data.provider.result.StatusEvent import org.blitzortung.android.protocol.ConsumerContainer import org.blitzortung.android.util.Period -import org.jetbrains.anko.doAsync -import org.jetbrains.anko.uiThread import java.util.* import java.util.concurrent.locks.ReentrantLock import javax.inject.Inject @@ -197,13 +197,8 @@ class MainDataHandler @Inject constructor( } } - private fun showBlitzortungProviderWarning() { - doAsync { - uiThread { - Toast.makeText(context, R.string.provider_warning, Toast.LENGTH_LONG).show() - } - } - } + private fun showBlitzortungProviderWarning() = + Toast.makeText(context, R.string.provider_warning, Toast.LENGTH_LONG).show() private fun updateProviderSpecifics() { @@ -250,12 +245,8 @@ class MainDataHandler @Inject constructor( val isRealtime: Boolean get() = parameters.isRealtime() - private fun toast(stringResource: Int) { - doAsync { - uiThread { - Toast.makeText(context, stringResource, Toast.LENGTH_LONG).show() - } - } + private suspend fun toast(stringResource: Int) = withContext(Dispatchers.Main) { + Toast.makeText(context, stringResource, Toast.LENGTH_LONG).show() } fun broadcastEvent(event: DataEvent) { diff --git a/app/src/main/java/org/blitzortung/android/data/ServiceDataHandler.kt b/app/src/main/java/org/blitzortung/android/data/ServiceDataHandler.kt index 7b682621..88ff4d99 100644 --- a/app/src/main/java/org/blitzortung/android/data/ServiceDataHandler.kt +++ b/app/src/main/java/org/blitzortung/android/data/ServiceDataHandler.kt @@ -23,6 +23,8 @@ import android.content.SharedPreferences import android.os.PowerManager import android.util.Log import android.widget.Toast +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.blitzortung.android.app.Main import org.blitzortung.android.app.R import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener @@ -34,8 +36,6 @@ import org.blitzortung.android.data.provider.data.DataProvider import org.blitzortung.android.data.provider.result.DataEvent import org.blitzortung.android.data.provider.result.ResultEvent import org.blitzortung.android.protocol.ConsumerContainer -import org.jetbrains.anko.doAsync -import org.jetbrains.anko.uiThread import java.util.concurrent.locks.ReentrantLock import javax.inject.Inject import javax.inject.Singleton @@ -190,11 +190,7 @@ class ServiceDataHandler @Inject constructor( } private fun showBlitzortungProviderWarning() { - doAsync { - uiThread { - Toast.makeText(context, R.string.provider_warning, Toast.LENGTH_LONG).show() - } - } + Toast.makeText(context, R.string.provider_warning, Toast.LENGTH_LONG).show() } private fun updateProviderSpecifics() { @@ -209,12 +205,8 @@ class ServiceDataHandler @Inject constructor( } - private fun toast(stringResource: Int) { - doAsync { - uiThread { - Toast.makeText(context, stringResource, Toast.LENGTH_LONG).show() - } - } + private suspend fun toast(stringResource: Int) = withContext(Dispatchers.Main) { + Toast.makeText(context, stringResource, Toast.LENGTH_LONG).show() } companion object { diff --git a/app/src/main/java/org/blitzortung/android/dialogs/QuickSettingsDialog.kt b/app/src/main/java/org/blitzortung/android/dialogs/QuickSettingsDialog.kt index 9fb8774c..d99c0c99 100644 --- a/app/src/main/java/org/blitzortung/android/dialogs/QuickSettingsDialog.kt +++ b/app/src/main/java/org/blitzortung/android/dialogs/QuickSettingsDialog.kt @@ -23,12 +23,12 @@ import android.app.AlertDialog.Builder import android.app.Dialog import android.content.DialogInterface import android.os.Bundle +import android.preference.PreferenceManager import android.widget.Spinner import androidx.fragment.app.DialogFragment import org.blitzortung.android.app.R import org.blitzortung.android.app.view.PreferenceKey import org.blitzortung.android.app.view.get -import org.jetbrains.anko.defaultSharedPreferences class QuickSettingsDialog : DialogFragment() { @@ -36,7 +36,7 @@ class QuickSettingsDialog : DialogFragment() { val builder = Builder(activity) val layoutInflater = activity!!.layoutInflater - val preferences = activity!!.defaultSharedPreferences + val preferences = PreferenceManager.getDefaultSharedPreferences(activity) val regionValues = resources.getStringArray(R.array.regions_values) val currentRegionValue = preferences.get(PreferenceKey.REGION, regionValues[0]) diff --git a/app/src/main/java/org/blitzortung/android/location/LocationHandler.kt b/app/src/main/java/org/blitzortung/android/location/LocationHandler.kt index c21d2b2c..6ae43160 100644 --- a/app/src/main/java/org/blitzortung/android/location/LocationHandler.kt +++ b/app/src/main/java/org/blitzortung/android/location/LocationHandler.kt @@ -22,6 +22,7 @@ import android.content.* import android.location.Location import android.location.LocationManager import android.util.Log +import android.widget.Toast import org.blitzortung.android.app.Main import org.blitzortung.android.app.R import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener @@ -30,7 +31,6 @@ import org.blitzortung.android.app.view.get import org.blitzortung.android.location.provider.LocationProvider import org.blitzortung.android.location.provider.createLocationProvider import org.blitzortung.android.protocol.ConsumerContainer -import org.jetbrains.anko.longToast import javax.inject.Inject import javax.inject.Singleton @@ -115,7 +115,7 @@ class LocationHandler @Inject constructor( this.provider = newProvider.apply { if (!this.isEnabled) { val message = context.resources.getString(R.string.location_provider_disabled).format(newProvider.type) - context.longToast(message) + Toast.makeText(context, message, Toast.LENGTH_LONG) } else { start() } diff --git a/app/src/main/java/org/blitzortung/android/location/provider/LocationProviderFactory.kt b/app/src/main/java/org/blitzortung/android/location/provider/LocationProviderFactory.kt index c444da0d..05831131 100644 --- a/app/src/main/java/org/blitzortung/android/location/provider/LocationProviderFactory.kt +++ b/app/src/main/java/org/blitzortung/android/location/provider/LocationProviderFactory.kt @@ -3,8 +3,8 @@ package org.blitzortung.android.location.provider import android.content.Context import android.location.Location import android.location.LocationManager.* +import android.preference.PreferenceManager import org.blitzortung.android.location.LocationHandler -import org.jetbrains.anko.defaultSharedPreferences internal fun createLocationProvider(context: Context, backgroundMode: Boolean, updateConsumer: (Location?) -> Unit, providerName: String): LocationProvider { @@ -13,7 +13,7 @@ internal fun createLocationProvider(context: Context, backgroundMode: Boolean, u GPS_PROVIDER -> GPSLocationProvider(context, backgroundMode, updateConsumer) NETWORK_PROVIDER -> NetworkLocationProvider(context, backgroundMode, updateConsumer) PASSIVE_PROVIDER -> PassiveLocationProvider(context, backgroundMode, updateConsumer) - LocationHandler.MANUAL_PROVIDER -> ManualLocationProvider(updateConsumer, context.defaultSharedPreferences) + LocationHandler.MANUAL_PROVIDER -> ManualLocationProvider(updateConsumer, PreferenceManager.getDefaultSharedPreferences(context)) else -> null } ?: throw IllegalArgumentException("Cannot find provider for name $providerName") } diff --git a/app/src/main/java/org/blitzortung/android/location/provider/ManagerLocationProvider.kt b/app/src/main/java/org/blitzortung/android/location/provider/ManagerLocationProvider.kt index 22f471a7..c9a6df1f 100644 --- a/app/src/main/java/org/blitzortung/android/location/provider/ManagerLocationProvider.kt +++ b/app/src/main/java/org/blitzortung/android/location/provider/ManagerLocationProvider.kt @@ -3,12 +3,12 @@ package org.blitzortung.android.location.provider import android.content.Context import android.location.Location import android.location.LocationListener +import android.location.LocationManager import android.os.Bundle import android.util.Log import android.widget.Toast import org.blitzortung.android.app.Main import org.blitzortung.android.app.Main.Companion.LOG_TAG -import org.jetbrains.anko.locationManager import java.lang.RuntimeException abstract class ManagerLocationProvider( @@ -18,7 +18,7 @@ abstract class ManagerLocationProvider( override val type: String ) : LocationProvider(locationUpdate), LocationListener { - protected val locationManager = context.locationManager + protected val locationManager = context.getSystemService(Context.LOCATION_SERVICE) as LocationManager protected open val minTime: Long get() = if (isInBackground) 120000 else 20000 diff --git a/app/src/main/java/org/blitzortung/android/map/MapFragment.kt b/app/src/main/java/org/blitzortung/android/map/MapFragment.kt index c7e04b41..67e6136d 100644 --- a/app/src/main/java/org/blitzortung/android/map/MapFragment.kt +++ b/app/src/main/java/org/blitzortung/android/map/MapFragment.kt @@ -3,6 +3,7 @@ package org.blitzortung.android.map import android.content.Context import android.content.SharedPreferences import android.os.Bundle +import android.preference.PreferenceManager import android.util.Log import android.view.LayoutInflater import android.view.View @@ -12,7 +13,6 @@ import org.blitzortung.android.app.Main import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener import org.blitzortung.android.app.view.PreferenceKey import org.blitzortung.android.app.view.get -import org.jetbrains.anko.defaultSharedPreferences import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint import org.osmdroid.views.CustomZoomButtonsController @@ -39,7 +39,7 @@ class MapFragment : Fragment(), OnSharedPreferenceChangeListener { val context = this.activity!! val dm = context.resources.displayMetrics - val preferences = context.defaultSharedPreferences + val preferences = PreferenceManager.getDefaultSharedPreferences(context) preferences.registerOnSharedPreferenceChangeListener(this) mPrefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) diff --git a/app/src/main/java/org/blitzortung/android/map/OwnMapView.kt b/app/src/main/java/org/blitzortung/android/map/OwnMapView.kt index ccdc48f6..09109f15 100644 --- a/app/src/main/java/org/blitzortung/android/map/OwnMapView.kt +++ b/app/src/main/java/org/blitzortung/android/map/OwnMapView.kt @@ -21,6 +21,7 @@ package org.blitzortung.android.map import android.content.Context import android.content.DialogInterface import android.graphics.Point +import android.preference.PreferenceManager import androidx.appcompat.app.AlertDialog import android.util.Log import android.view.GestureDetector @@ -31,7 +32,6 @@ import org.blitzortung.android.app.Main import org.blitzortung.android.app.R import org.blitzortung.android.app.view.PreferenceKey import org.blitzortung.android.location.LocationHandler -import org.jetbrains.anko.defaultSharedPreferences import org.osmdroid.views.MapView @@ -70,7 +70,7 @@ class OwnMapView(context: Context) : MapView(context) { val dialogClickListener = DialogInterface.OnClickListener { _, which -> when (which) { DialogInterface.BUTTON_POSITIVE -> { - val preferences = context.defaultSharedPreferences + val preferences = PreferenceManager.getDefaultSharedPreferences(context) preferences.edit().apply { putString(PreferenceKey.LOCATION_LONGITUDE.toString(), longitude.toString()) putString(PreferenceKey.LOCATION_LATITUDE.toString(), latitude.toString()) diff --git a/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlay.kt b/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlay.kt index f0c49829..5be5efdb 100644 --- a/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlay.kt +++ b/app/src/main/java/org/blitzortung/android/map/overlay/OwnLocationOverlay.kt @@ -24,6 +24,7 @@ import android.graphics.Canvas import android.graphics.Point import android.graphics.drawable.Drawable import android.graphics.drawable.ShapeDrawable +import android.preference.PreferenceManager import org.blitzortung.android.app.R import org.blitzortung.android.app.helper.ViewHelper import org.blitzortung.android.app.view.OnSharedPreferenceChangeListener @@ -33,7 +34,6 @@ import org.blitzortung.android.app.view.getAndConvert import org.blitzortung.android.location.LocationEvent import org.blitzortung.android.map.components.LayerOverlayComponent import org.blitzortung.android.util.TabletAwareView -import org.jetbrains.anko.defaultSharedPreferences import org.osmdroid.api.IMapView import org.osmdroid.events.MapListener import org.osmdroid.events.ScrollEvent @@ -80,7 +80,7 @@ class OwnLocationOverlay( sizeFactor = ViewHelper.pxFromDp(context, 1.0f) * TabletAwareView.sizeFactor(context) - val preferences = context.defaultSharedPreferences + val preferences = PreferenceManager.getDefaultSharedPreferences(context) preferences.registerOnSharedPreferenceChangeListener(this) onSharedPreferenceChanged(preferences, PreferenceKey.SHOW_LOCATION) onSharedPreferenceChanged(preferences, PreferenceKey.OWN_LOCATION_SIZE)