trying to fix a bug where the shareed prferences listener has no context - not yet succeeded :-)
This commit is contained in:
parent
e97a1e6661
commit
6a989a8fc3
4 changed files with 22 additions and 4 deletions
|
@ -89,6 +89,7 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
|
||||
/* Overrides onDestroy from AppCompatActivity */
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
// unregister listener for changes in shared preferences
|
||||
|
|
|
@ -60,6 +60,7 @@ class MapFragment : Fragment(), YesNoDialog.YesNoDialogListener {
|
|||
private lateinit var currentBestLocation: Location
|
||||
private lateinit var layout: MapFragmentLayoutHolder
|
||||
private lateinit var trackerService: TrackerService
|
||||
private lateinit var sharedPreferenceChangeListener2:SharedPreferences.OnSharedPreferenceChangeListener
|
||||
|
||||
|
||||
/* Overrides onCreate from Fragment */
|
||||
|
@ -249,6 +250,21 @@ class MapFragment : Fragment(), YesNoDialog.YesNoDialogListener {
|
|||
*/
|
||||
|
||||
|
||||
private fun createSharedPreferenceChangeListener(): SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
return SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
|
||||
when (key) {
|
||||
Keys.PREF_TRACKING_STATE -> {
|
||||
if (isAdded) {
|
||||
trackingState = PreferencesHelper.loadTrackingState(activity as Context)
|
||||
layout.updateRecordingButton(trackingState)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Defines callbacks for service binding, passed to bindService()
|
||||
*/
|
||||
|
@ -259,7 +275,8 @@ class MapFragment : Fragment(), YesNoDialog.YesNoDialogListener {
|
|||
trackerService = binder.service
|
||||
bound = true
|
||||
// register listener for changes in shared preferences
|
||||
PreferenceManager.getDefaultSharedPreferences(activity as Context).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener)
|
||||
sharedPreferenceChangeListener2 = createSharedPreferenceChangeListener()
|
||||
PreferenceManager.getDefaultSharedPreferences(activity as Context).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener2)
|
||||
// start listening for location updates
|
||||
handler.removeCallbacks(periodicLocationRequestRunnable)
|
||||
handler.postDelayed(periodicLocationRequestRunnable, 0)
|
||||
|
@ -267,7 +284,7 @@ class MapFragment : Fragment(), YesNoDialog.YesNoDialogListener {
|
|||
override fun onServiceDisconnected(arg0: ComponentName) {
|
||||
bound = false
|
||||
// unregister listener for changes in shared preferences
|
||||
PreferenceManager.getDefaultSharedPreferences(activity as Context).unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener)
|
||||
PreferenceManager.getDefaultSharedPreferences(activity as Context).unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener2)
|
||||
// stop receiving location updates
|
||||
handler.removeCallbacks(periodicLocationRequestRunnable)
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ class Trackbook: Application() {
|
|||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
LogHelper.v(TAG, "Trackbook application started.")
|
||||
// set Day / Night theme state
|
||||
// set Dark / Light theme state
|
||||
AppThemeHelper.setTheme(PreferencesHelper.loadThemeSelection(this))
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* AppThemeHelper.kt
|
||||
* Implements the AppThemeHelper object
|
||||
* A AppThemeHelper can set the differnt app themes: Light Mode, Dark Mode, Follow System
|
||||
* A AppThemeHelper can set the different app themes: Light Mode, Dark Mode, Follow System
|
||||
*
|
||||
* This file is part of
|
||||
* TRACKBOOK - Movement Recorder for Android
|
||||
|
|
Loading…
Reference in a new issue