For #1932: Crash on telemetry setting change when unattached (#2124)

nightly-build-test
Colin Lee 5 years ago committed by GitHub
parent 41bbc1ad2b
commit dc3abe2698
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -4,32 +4,45 @@
package org.mozilla.fenix.settings
import android.content.SharedPreferences
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreference
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.utils.Settings
class DataChoicesFragment : PreferenceFragmentCompat() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(activity as AppCompatActivity).title = getString(R.string.preferences_data_choices)
(activity as AppCompatActivity).supportActionBar?.show()
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener { sharedPreferences, key ->
private val preferenceChangeListener =
SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
when (key) {
getString(R.string.pref_key_telemetry) -> {
if (sharedPreferences.getBoolean(key, Settings.getInstance(requireContext()).isTelemetryEnabled)) {
requireComponents.analytics.metrics.start()
context?.components?.analytics?.metrics?.start()
} else {
requireComponents.analytics.metrics.stop()
context?.components?.analytics?.metrics?.stop()
}
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(activity as AppCompatActivity).title = getString(R.string.preferences_data_choices)
(activity as AppCompatActivity).supportActionBar?.show()
context?.let {
preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener)
}
}
override fun onDestroy() {
context?.let {
preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener)
}
super.onDestroy()
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {

Loading…
Cancel
Save