Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 370ff315 authored by Jernej Virag's avatar Jernej Virag
Browse files

Add tracing for registration/deregistration of ContentObservers

This helps us trace calls to register/unregister observers and makes it
easier to track them down.

Bug: 330299944
Test: took a trace
Flag: EXEMPT logging only
Change-Id: I32907c6d048b156a709d5eafb5dd4017ff7ae652
parent d233902b
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.content.ContentResolver
import android.database.ContentObserver
import android.net.Uri
import android.provider.Settings.SettingNotFoundException
import com.android.app.tracing.TraceUtils.trace
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
@@ -161,7 +162,10 @@ interface SettingsProxy {
        notifyForDescendants: Boolean,
        settingsObserver: ContentObserver
    ) {
        getContentResolver().registerContentObserver(uri, notifyForDescendants, settingsObserver)
        trace({ "SP#registerObserver#[$uri]" }) {
            getContentResolver()
                .registerContentObserver(uri, notifyForDescendants, settingsObserver)
        }
    }

    /**
@@ -191,13 +195,15 @@ interface SettingsProxy {
        settingsObserver: ContentObserver
    ) =
        CoroutineScope(getBackgroundDispatcher()).launch {
            getContentResolver()
                .registerContentObserver(uri, notifyForDescendants, settingsObserver)
            registerContentObserverSync(uri, notifyForDescendants, settingsObserver)
        }

    /** See [ContentResolver.unregisterContentObserver]. */
    fun unregisterContentObserverSync(settingsObserver: ContentObserver) =
    fun unregisterContentObserverSync(settingsObserver: ContentObserver) {
        trace({ "SP#unregisterObserver" }) {
            getContentResolver().unregisterContentObserver(settingsObserver)
        }
    }

    /**
     * Convenience wrapper around [ContentResolver.unregisterContentObserver].'
@@ -217,7 +223,7 @@ interface SettingsProxy {
     */
    fun unregisterContentObserverAsync(settingsObserver: ContentObserver) =
        CoroutineScope(getBackgroundDispatcher()).launch {
            unregisterContentObserver(settingsObserver)
            unregisterContentObserverSync(settingsObserver)
        }

    /**