Added profiler option to SettingsFragment

pull/543/head
Marc Leclair 2 years ago committed by mergify[bot]
parent 2a83d029c8
commit 739839356a

@ -18,6 +18,8 @@ import android.view.LayoutInflater
import android.widget.Toast
import androidx.annotation.VisibleForTesting
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.Observer
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavDirections
import androidx.navigation.findNavController
@ -54,6 +56,7 @@ import org.mozilla.fenix.ext.openSetDefaultBrowserOption
import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.nimbus.FxNimbus
import org.mozilla.fenix.nimbus.MessageSurfaceId
import org.mozilla.fenix.perf.ProfilerViewModel
import org.mozilla.fenix.settings.account.AccountUiView
import org.mozilla.fenix.utils.BrowsersCache
import org.mozilla.fenix.utils.Settings
@ -64,6 +67,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
private val args by navArgs<SettingsFragmentArgs>()
private lateinit var accountUiView: AccountUiView
private val profilerViewModel: ProfilerViewModel by activityViewModels()
private val accountObserver = object : AccountObserver {
private fun updateAccountUi(profile: Profile? = null) {
@ -146,6 +150,10 @@ class SettingsFragment : PreferenceFragmentCompat() {
// The setting is not a boolean, not tracked
}
}
profilerViewModel.getProfilerState().observe(this, Observer<Boolean>{
updateProfilerUI(it)
})
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@ -188,7 +196,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
if (args.preferenceToScrollTo != null) {
scrollToPreference(args.preferenceToScrollTo)
}
// Consider finish of `onResume` to be the point at which we consider this fragment as 'created'.
creatingFragment = false
}
@ -408,6 +415,13 @@ class SettingsFragment : PreferenceFragmentCompat() {
null
}
resources.getString(R.string.pref_key_start_profiler) -> {
if (requireContext().components.core.engine.profiler?.isProfilerActive()!!) {
SettingsFragmentDirections.actionSettingsFragmentToStopProfilerDialog()
} else {
SettingsFragmentDirections.actionSettingsFragmentToStartProfilerDialog()
}
}
else -> null
}
directions?.let { navigateFromSettings(directions) }
@ -423,7 +437,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
requirePreference<Preference>(R.string.pref_key_make_default_browser)
val preferenceOpenLinksInExternalApp =
findPreference<Preference>(getPreferenceKey(R.string.pref_key_open_links_in_external_app))
if (!Config.channel.isReleased) {
preferenceLeakCanary?.setOnPreferenceChangeListener { _, newValue ->
val isEnabled = newValue == true
@ -471,6 +484,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
preferenceFxAOverride?.onPreferenceChangeListener = syncFxAOverrideUpdater
preferenceSyncOverride?.onPreferenceChangeListener = syncFxAOverrideUpdater
val preferenceStartProfiler =
findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler))
with(requireContext().settings()) {
findPreference<Preference>(
getPreferenceKey(R.string.pref_key_nimbus_experiments)
@ -481,8 +497,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
findPreference<Preference>(
getPreferenceKey(R.string.pref_key_secret_debug_info)
)?.isVisible = showSecretDebugMenuThisSession
preferenceStartProfiler?.isVisible = showSecretDebugMenuThisSession && (requireContext().components.core.engine.profiler?.isProfilerActive() != null)
}
setupAmoCollectionOverridePreference(requireContext().settings())
setupAllowDomesticChinaFxaServerPreference()
setupHttpsOnlyPreferences()
@ -644,6 +660,19 @@ class SettingsFragment : PreferenceFragmentCompat() {
return browsers.isFirefoxDefaultBrowser
}
private fun updateProfilerUI(profilerStatus: Boolean){
if (profilerStatus) {
findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler))?.title =
resources.getString(R.string.profiler_stop)
findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler))?.summary =
resources.getString(R.string.profiler_running)
} else {
findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler))?.title =
resources.getString(R.string.preferences_start_profiler)
findPreference<Preference>(getPreferenceKey(R.string.pref_key_start_profiler))?.summary = ""
}
}
companion object {
private const val SCROLL_INDICATOR_DELAY = 10L
private const val FXA_SYNC_OVERRIDE_EXIT_DELAY = 2000L

Loading…
Cancel
Save