Revert "Add async register/unregister APIs in Settings/UserSettingsProxy."

This reverts commit 4ffcd158428429b021509c4b87265f58f2c96e4d.

Reason for revert: b/345190406

Bug: 345190406
Bug: 345190802
Test: make SystemUIGoogle
Flag: NONE revert commit
Change-Id: I0c27c4062da89ea617e18296a4ae1f59db68d582
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/GlobalSettingsImpl.java b/packages/SystemUI/src/com/android/systemui/util/settings/GlobalSettingsImpl.java
index 4438763..42389f0 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/GlobalSettingsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/GlobalSettingsImpl.java
@@ -23,23 +23,16 @@
 import android.net.Uri;
 import android.provider.Settings;
 
-import com.android.systemui.dagger.qualifiers.Background;
-
-import kotlinx.coroutines.CoroutineDispatcher;
-
 import javax.inject.Inject;
 
 // use UserHandle.USER_SYSTEM everywhere
 @SuppressLint("StaticSettingsProvider")
 class GlobalSettingsImpl implements GlobalSettings {
     private final ContentResolver mContentResolver;
-    private final CoroutineDispatcher mBgDispatcher;
 
     @Inject
-    GlobalSettingsImpl(ContentResolver contentResolver,
-            @Background CoroutineDispatcher bgDispatcher) {
+    GlobalSettingsImpl(ContentResolver contentResolver) {
         mContentResolver = contentResolver;
-        mBgDispatcher = bgDispatcher;
     }
 
     @Override
@@ -53,11 +46,6 @@
     }
 
     @Override
-    public CoroutineDispatcher getBackgroundDispatcher() {
-        return mBgDispatcher;
-    }
-
-    @Override
     public String getString(String name) {
         return Settings.Global.getString(mContentResolver, name);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java b/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java
index 38ad5d0..6532ce8 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java
@@ -22,24 +22,18 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.settings.UserTracker;
 
-import kotlinx.coroutines.CoroutineDispatcher;
-
 import javax.inject.Inject;
 
 class SecureSettingsImpl implements SecureSettings {
     private final ContentResolver mContentResolver;
     private final UserTracker mUserTracker;
-    private final CoroutineDispatcher mBgDispatcher;
 
     @Inject
-    SecureSettingsImpl(ContentResolver contentResolver, UserTracker userTracker,
-            @Background CoroutineDispatcher bgDispatcher) {
+    SecureSettingsImpl(ContentResolver contentResolver, UserTracker userTracker) {
         mContentResolver = contentResolver;
         mUserTracker = userTracker;
-        mBgDispatcher = bgDispatcher;
     }
 
     @Override
@@ -58,11 +52,6 @@
     }
 
     @Override
-    public CoroutineDispatcher getBackgroundDispatcher() {
-        return mBgDispatcher;
-    }
-
-    @Override
     public String getStringForUser(String name, int userHandle) {
         return Settings.Secure.getStringForUser(mContentResolver, name,
                 getRealUserHandle(userHandle));
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt
index 8f5f4bb..d92127c 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt
@@ -20,10 +20,6 @@
 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
-import kotlinx.coroutines.withContext
 
 /**
  * Used to interact with mainly with Settings.Global, but can also be used for Settings.System and
@@ -44,12 +40,6 @@
     fun getContentResolver(): ContentResolver
 
     /**
-     * Returns the background [CoroutineDispatcher] that the async APIs will use for a specific
-     * implementation.
-     */
-    fun getBackgroundDispatcher(): CoroutineDispatcher
-
-    /**
      * Construct the content URI for a particular name/value pair, useful for monitoring changes
      * with a ContentObserver.
      *
@@ -67,28 +57,6 @@
         registerContentObserverSync(getUriFor(name), settingsObserver)
     }
 
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserver] to ensure that [ContentObserver]
-     * registration happens on a worker thread. Caller may wrap the API in an async block if they
-     * wish to synchronize execution.
-     */
-    suspend fun registerContentObserver(name: String, settingsObserver: ContentObserver) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverSync(getUriFor(name), settingsObserver)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserver] for Java usage.
-     */
-    fun registerContentObserverAsync(name: String, settingsObserver: ContentObserver) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverSync(getUriFor(name), settingsObserver)
-        }
-
     /** Convenience wrapper around [ContentResolver.registerContentObserver].' */
     fun registerContentObserverSync(uri: Uri, settingsObserver: ContentObserver) =
         registerContentObserverSync(uri, false, settingsObserver)
@@ -96,28 +64,6 @@
     /**
      * Convenience wrapper around [ContentResolver.registerContentObserver].'
      *
-     * suspend API corresponding to [registerContentObserver] to ensure that [ContentObserver]
-     * registration happens on a worker thread. Caller may wrap the API in an async block if they
-     * wish to synchronize execution.
-     */
-    suspend fun registerContentObserver(uri: Uri, settingsObserver: ContentObserver) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverSync(uri, settingsObserver)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserver] for Java usage.
-     */
-    fun registerContentObserverAsync(uri: Uri, settingsObserver: ContentObserver) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverSync(uri, settingsObserver)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
      * Implicitly calls [getUriFor] on the passed in name.
      */
     fun registerContentObserverSync(
@@ -126,36 +72,6 @@
         settingsObserver: ContentObserver
     ) = registerContentObserverSync(getUriFor(name), notifyForDescendants, settingsObserver)
 
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserver] to ensure that [ContentObserver]
-     * registration happens on a worker thread. Caller may wrap the API in an async block if they
-     * wish to synchronize execution.
-     */
-    suspend fun registerContentObserver(
-        name: String,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverSync(getUriFor(name), notifyForDescendants, settingsObserver)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserver] for Java usage.
-     */
-    fun registerContentObserverAsync(
-        name: String,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverSync(getUriFor(name), notifyForDescendants, settingsObserver)
-        }
-
     /** Convenience wrapper around [ContentResolver.registerContentObserver].' */
     fun registerContentObserverSync(
         uri: Uri,
@@ -168,36 +84,6 @@
         }
     }
 
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserver] to ensure that [ContentObserver]
-     * registration happens on a worker thread. Caller may wrap the API in an async block if they
-     * wish to synchronize execution.
-     */
-    suspend fun registerContentObserver(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverSync(uri, notifyForDescendants, settingsObserver)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserver] for Java usage.
-     */
-    fun registerContentObserverAsync(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverSync(uri, notifyForDescendants, settingsObserver)
-        }
-
     /** See [ContentResolver.unregisterContentObserver]. */
     fun unregisterContentObserverSync(settingsObserver: ContentObserver) {
         trace({ "SP#unregisterObserver" }) {
@@ -206,27 +92,6 @@
     }
 
     /**
-     * Convenience wrapper around [ContentResolver.unregisterContentObserver].'
-     *
-     * API corresponding to [unregisterContentObserver] for Java usage to ensure that
-     * [ContentObserver] un-registration happens on a worker thread. Caller may wrap the API in an
-     * async block if they wish to synchronize execution.
-     */
-    suspend fun unregisterContentObserver(settingsObserver: ContentObserver) =
-        withContext(getBackgroundDispatcher()) { unregisterContentObserverSync(settingsObserver) }
-
-    /**
-     * Convenience wrapper around [ContentResolver.unregisterContentObserver].'
-     *
-     * API corresponding to [unregisterContentObserver] for Java usage to ensure that
-     * [ContentObserver] registration happens on a worker thread.
-     */
-    fun unregisterContentObserverAsync(settingsObserver: ContentObserver) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            unregisterContentObserverSync(settingsObserver)
-        }
-
-    /**
      * Look up a name in the database.
      *
      * @param name to look up in the table
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java b/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java
index 68cc753..658b299 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java
@@ -22,24 +22,18 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.settings.UserTracker;
 
-import kotlinx.coroutines.CoroutineDispatcher;
-
 import javax.inject.Inject;
 
 class SystemSettingsImpl implements SystemSettings {
     private final ContentResolver mContentResolver;
     private final UserTracker mUserTracker;
-    private final CoroutineDispatcher mBgCoroutineDispatcher;
 
     @Inject
-    SystemSettingsImpl(ContentResolver contentResolver, UserTracker userTracker,
-            @Background CoroutineDispatcher bgDispatcher) {
+    SystemSettingsImpl(ContentResolver contentResolver, UserTracker userTracker) {
         mContentResolver = contentResolver;
         mUserTracker = userTracker;
-        mBgCoroutineDispatcher = bgDispatcher;
     }
 
     @Override
@@ -58,11 +52,6 @@
     }
 
     @Override
-    public CoroutineDispatcher getBackgroundDispatcher() {
-        return mBgCoroutineDispatcher;
-    }
-
-    @Override
     public String getStringForUser(String name, int userHandle) {
         return Settings.System.getStringForUser(mContentResolver, name,
                 getRealUserHandle(userHandle));
diff --git a/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt b/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt
index 9133fbb..ed65f1a 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt
@@ -16,7 +16,6 @@
 package com.android.systemui.util.settings
 
 import android.annotation.UserIdInt
-import android.content.ContentResolver
 import android.database.ContentObserver
 import android.net.Uri
 import android.os.UserHandle
@@ -27,9 +26,6 @@
 import com.android.systemui.util.settings.SettingsProxy.Companion.parseFloatOrThrow
 import com.android.systemui.util.settings.SettingsProxy.Companion.parseLongOrThrow
 import com.android.systemui.util.settings.SettingsProxy.Companion.parseLongOrUseDefault
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
 
 /**
  * Used to interact with per-user Settings.Secure and Settings.System settings (but not
@@ -70,16 +66,6 @@
         registerContentObserverForUserSync(uri, settingsObserver, userId)
     }
 
-    override suspend fun registerContentObserver(uri: Uri, settingsObserver: ContentObserver) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(uri, settingsObserver, userId)
-        }
-
-    override fun registerContentObserverAsync(uri: Uri, settingsObserver: ContentObserver) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(uri, settingsObserver, userId)
-        }
-
     /** Convenience wrapper around [ContentResolver.registerContentObserver].' */
     override fun registerContentObserverSync(
         uri: Uri,
@@ -89,29 +75,6 @@
         registerContentObserverForUserSync(uri, notifyForDescendants, settingsObserver, userId)
     }
 
-    override suspend fun registerContentObserver(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(uri, notifyForDescendants, settingsObserver, userId)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserverForUser] for Java usage.
-     */
-    override fun registerContentObserverAsync(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(uri, notifyForDescendants, settingsObserver, userId)
-        }
-
     /**
      * Convenience wrapper around [ContentResolver.registerContentObserver]
      *
@@ -125,36 +88,6 @@
         registerContentObserverForUserSync(getUriFor(name), settingsObserver, userHandle)
     }
 
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserverForUser] to ensure that
-     * [ContentObserver] registration happens on a worker thread. Caller may wrap the API in an
-     * async block if they wish to synchronize execution.
-     */
-    suspend fun registerContentObserverForUser(
-        name: String,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(name, settingsObserver, userHandle)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserverForUser] for Java usage.
-     */
-    fun registerContentObserverForUserAsync(
-        name: String,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(getUriFor(name), settingsObserver, userHandle)
-        }
-
     /** Convenience wrapper around [ContentResolver.registerContentObserver] */
     fun registerContentObserverForUserSync(
         uri: Uri,
@@ -165,36 +98,6 @@
     }
 
     /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserverForUser] to ensure that
-     * [ContentObserver] registration happens on a worker thread. Caller may wrap the API in an
-     * async block if they wish to synchronize execution.
-     */
-    suspend fun registerContentObserverForUser(
-        uri: Uri,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(uri, settingsObserver, userHandle)
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserverForUser] for Java usage.
-     */
-    fun registerContentObserverForUserAsync(
-        uri: Uri,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(uri, settingsObserver, userHandle)
-        }
-
-    /**
      * Convenience wrapper around [ContentResolver.registerContentObserver]
      *
      * Implicitly calls [getUriFor] on the passed in name.
@@ -213,49 +116,6 @@
         )
     }
 
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserverForUser] to ensure that
-     * [ContentObserver] registration happens on a worker thread. Caller may wrap the API in an
-     * async block if they wish to synchronize execution.
-     */
-    suspend fun registerContentObserverForUser(
-        name: String,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(
-                name,
-                notifyForDescendants,
-                settingsObserver,
-                userHandle
-            )
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserverForUser] for Java usage.
-     */
-    fun registerContentObserverForUserAsync(
-        name: String,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) {
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(
-                getUriFor(name),
-                notifyForDescendants,
-                settingsObserver,
-                userHandle
-            )
-        }
-    }
-
     /** Convenience wrapper around [ContentResolver.registerContentObserver] */
     fun registerContentObserverForUserSync(
         uri: Uri,
@@ -276,48 +136,6 @@
     }
 
     /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * suspend API corresponding to [registerContentObserverForUser] to ensure that
-     * [ContentObserver] registration happens on a worker thread. Caller may wrap the API in an
-     * async block if they wish to synchronize execution.
-     */
-    suspend fun registerContentObserverForUser(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        withContext(getBackgroundDispatcher()) {
-            registerContentObserverForUserSync(
-                uri,
-                notifyForDescendants,
-                settingsObserver,
-                getRealUserHandle(userHandle)
-            )
-        }
-
-    /**
-     * Convenience wrapper around [ContentResolver.registerContentObserver].'
-     *
-     * API corresponding to [registerContentObserverForUser] for Java usage.
-     */
-    fun registerContentObserverForUserAsync(
-        uri: Uri,
-        notifyForDescendants: Boolean,
-        settingsObserver: ContentObserver,
-        userHandle: Int
-    ) =
-        CoroutineScope(getBackgroundDispatcher()).launch {
-            registerContentObserverForUserSync(
-                uri,
-                notifyForDescendants,
-                settingsObserver,
-                userHandle
-            )
-        }
-
-    /**
      * Look up a name in the database.
      *
      * @param name to look up in the table
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt
index 92dd391..eb11e38 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/settings/SettingsProxyTest.kt
@@ -27,12 +27,6 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.StandardTestDispatcher
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.runTest
-import kotlinx.coroutines.test.setMain
 import org.junit.Assert.assertThrows
 import org.junit.Before
 import org.junit.Test
@@ -47,16 +41,11 @@
 @TestableLooper.RunWithLooper
 class SettingsProxyTest : SysuiTestCase() {
 
-    private val testDispatcher = StandardTestDispatcher()
-
     private lateinit var mSettings: SettingsProxy
     private lateinit var mContentObserver: ContentObserver
-    private lateinit var testScope: TestScope
 
     @Before
     fun setUp() {
-        testScope = TestScope(testDispatcher)
-        Dispatchers.setMain(testDispatcher)
         mSettings = FakeSettingsProxy()
         mContentObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {}
     }
@@ -69,23 +58,6 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputString_success() =
-        testScope.runTest {
-            mSettings.registerContentObserver(TEST_SETTING, mContentObserver)
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(false), eq(mContentObserver))
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputString_success() {
-        mSettings.registerContentObserverAsync(TEST_SETTING, mContentObserver)
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(false), eq(mContentObserver))
-        }
-    }
-
-    @Test
     fun registerContentObserver_inputString_notifyForDescendants_true() {
         mSettings.registerContentObserverSync(
             TEST_SETTING,
@@ -97,31 +69,6 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputString_notifyForDescendants_true() =
-        testScope.runTest {
-            mSettings.registerContentObserver(
-                TEST_SETTING,
-                notifyForDescendants = true,
-                mContentObserver
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(true), eq(mContentObserver))
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputString_notifyForDescendants_true() {
-        mSettings.registerContentObserverAsync(
-            TEST_SETTING,
-            notifyForDescendants = true,
-            mContentObserver
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(true), eq(mContentObserver))
-        }
-    }
-
-    @Test
     fun registerContentObserver_inputUri_success() {
         mSettings.registerContentObserverSync(TEST_SETTING_URI, mContentObserver)
         verify(mSettings.getContentResolver())
@@ -129,23 +76,6 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputUri_success() =
-        testScope.runTest {
-            mSettings.registerContentObserver(TEST_SETTING_URI, mContentObserver)
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(false), eq(mContentObserver))
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputUri_success() {
-        mSettings.registerContentObserverAsync(TEST_SETTING_URI, mContentObserver)
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(false), eq(mContentObserver))
-        }
-    }
-
-    @Test
     fun registerContentObserver_inputUri_notifyForDescendants_true() {
         mSettings.registerContentObserverSync(
             TEST_SETTING_URI,
@@ -157,52 +87,12 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputUri_notifyForDescendants_true() =
-        testScope.runTest {
-            mSettings.registerContentObserver(
-                TEST_SETTING_URI,
-                notifyForDescendants = true,
-                mContentObserver
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(true), eq(mContentObserver))
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputUri_notifyForDescendants_true() {
-        mSettings.registerContentObserverAsync(
-            TEST_SETTING_URI,
-            notifyForDescendants = true,
-            mContentObserver
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(eq(TEST_SETTING_URI), eq(true), eq(mContentObserver))
-        }
-    }
-
-    @Test
-    fun unregisterContentObserverSync() {
+    fun unregisterContentObserver() {
         mSettings.unregisterContentObserverSync(mContentObserver)
         verify(mSettings.getContentResolver()).unregisterContentObserver(eq(mContentObserver))
     }
 
     @Test
-    fun unregisterContentObserverSuspend_inputString_success() =
-        testScope.runTest {
-            mSettings.unregisterContentObserver(mContentObserver)
-            verify(mSettings.getContentResolver()).unregisterContentObserver(eq(mContentObserver))
-        }
-
-    @Test
-    fun unregisterContentObserverAsync_inputString_success() {
-        mSettings.unregisterContentObserverAsync(mContentObserver)
-        testScope.launch {
-            verify(mSettings.getContentResolver()).unregisterContentObserver(eq(mContentObserver))
-        }
-    }
-
-    @Test
     fun getString_keyPresent_returnValidValue() {
         mSettings.putString(TEST_SETTING, "test")
         assertThat(mSettings.getString(TEST_SETTING)).isEqualTo("test")
@@ -313,15 +203,12 @@
 
         private val mContentResolver = mock(ContentResolver::class.java)
         private val settingToValueMap: MutableMap<String, String> = mutableMapOf()
-        private val testDispatcher = StandardTestDispatcher()
 
         override fun getContentResolver() = mContentResolver
 
         override fun getUriFor(name: String) =
             Uri.parse(StringBuilder().append("content://settings/").append(name).toString())
 
-        override fun getBackgroundDispatcher() = testDispatcher
-
         override fun getString(name: String): String {
             return settingToValueMap[name] ?: ""
         }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt
index 4cb5fa9..38469ee 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt
@@ -30,12 +30,6 @@
 import com.android.systemui.settings.FakeUserTracker
 import com.android.systemui.settings.UserTracker
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.StandardTestDispatcher
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.runTest
-import kotlinx.coroutines.test.setMain
 import org.junit.Assert.assertThrows
 import org.junit.Before
 import org.junit.Test
@@ -53,7 +47,6 @@
     private var mUserTracker = FakeUserTracker()
     private var mSettings: UserSettingsProxy = FakeUserSettingsProxy(mUserTracker)
     private var mContentObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {}
-    private lateinit var testScope: TestScope
 
     @Before
     fun setUp() {
@@ -61,9 +54,6 @@
             listOf(UserInfo(MAIN_USER_ID, "main", UserInfo.FLAG_MAIN)),
             selectedUserIndex = 0
         )
-        val testDispatcher = StandardTestDispatcher()
-        testScope = TestScope(testDispatcher)
-        Dispatchers.setMain(testDispatcher)
     }
 
     @Test
@@ -83,41 +73,6 @@
     }
 
     @Test
-    fun registerContentObserverForUserSuspend_inputString_success() =
-        testScope.runTest {
-            mSettings.registerContentObserverForUser(
-                TEST_SETTING,
-                mContentObserver,
-                mUserTracker.userId
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-
-    @Test
-    fun registerContentObserverForUserAsync_inputString_success() {
-        mSettings.registerContentObserverForUserAsync(
-            TEST_SETTING,
-            mContentObserver,
-            mUserTracker.userId
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-    }
-
-    @Test
     fun registerContentObserverForUser_inputString_notifyForDescendants_true() {
         mSettings.registerContentObserverForUserSync(
             TEST_SETTING,
@@ -135,45 +90,6 @@
     }
 
     @Test
-    fun registerContentObserverForUserSuspend_inputString_notifyForDescendants_true() =
-        testScope.runTest {
-            mSettings.registerContentObserverForUser(
-                TEST_SETTING,
-                notifyForDescendants = true,
-                mContentObserver,
-                mUserTracker.userId
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(
-                        true,
-                    ),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-
-    @Test
-    fun registerContentObserverForUserAsync_inputString_notifyForDescendants_true() {
-        mSettings.registerContentObserverForUserAsync(
-            TEST_SETTING,
-            notifyForDescendants = true,
-            mContentObserver,
-            mUserTracker.userId
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(true),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-    }
-
-    @Test
     fun registerContentObserverForUser_inputUri_success() {
         mSettings.registerContentObserverForUserSync(
             TEST_SETTING_URI,
@@ -190,41 +106,6 @@
     }
 
     @Test
-    fun registerContentObserverForUserSuspend_inputUri_success() =
-        testScope.runTest {
-            mSettings.registerContentObserverForUser(
-                TEST_SETTING_URI,
-                mContentObserver,
-                mUserTracker.userId
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-
-    @Test
-    fun registerContentObserverForUserAsync_inputUri_success() {
-        mSettings.registerContentObserverForUserAsync(
-            TEST_SETTING_URI,
-            mContentObserver,
-            mUserTracker.userId
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-    }
-
-    @Test
     fun registerContentObserverForUser_inputUri_notifyForDescendants_true() {
         mSettings.registerContentObserverForUserSync(
             TEST_SETTING_URI,
@@ -242,45 +123,6 @@
     }
 
     @Test
-    fun registerContentObserverForUserSuspend_inputUri_notifyForDescendants_true() =
-        testScope.runTest {
-            mSettings.registerContentObserverForUser(
-                TEST_SETTING_URI,
-                notifyForDescendants = true,
-                mContentObserver,
-                mUserTracker.userId
-            )
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(
-                        true,
-                    ),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-
-    @Test
-    fun registerContentObserverForUserAsync_inputUri_notifyForDescendants_true() {
-        mSettings.registerContentObserverForUserAsync(
-            TEST_SETTING_URI,
-            notifyForDescendants = true,
-            mContentObserver,
-            mUserTracker.userId
-        )
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(true),
-                    eq(mContentObserver),
-                    eq(MAIN_USER_ID)
-                )
-        }
-    }
-
-    @Test
     fun registerContentObserver_inputUri_success() {
         mSettings.registerContentObserverSync(TEST_SETTING_URI, mContentObserver)
         verify(mSettings.getContentResolver())
@@ -288,33 +130,6 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputUri_success() =
-        testScope.runTest {
-            mSettings.registerContentObserver(TEST_SETTING_URI, mContentObserver)
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(0)
-                )
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputUri_success() {
-        mSettings.registerContentObserverAsync(TEST_SETTING_URI, mContentObserver)
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(0)
-                )
-        }
-    }
-
-    @Test
     fun registerContentObserver_inputUri_notifyForDescendants_true() {
         mSettings.registerContentObserverSync(
             TEST_SETTING_URI,
@@ -326,33 +141,6 @@
     }
 
     @Test
-    fun registerContentObserverSuspend_inputUri_notifyForDescendants_true() =
-        testScope.runTest {
-            mSettings.registerContentObserver(TEST_SETTING_URI, mContentObserver)
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(0)
-                )
-        }
-
-    @Test
-    fun registerContentObserverAsync_inputUri_notifyForDescendants_true() {
-        mSettings.registerContentObserverAsync(TEST_SETTING_URI, mContentObserver)
-        testScope.launch {
-            verify(mSettings.getContentResolver())
-                .registerContentObserver(
-                    eq(TEST_SETTING_URI),
-                    eq(false),
-                    eq(mContentObserver),
-                    eq(0)
-                )
-        }
-    }
-
-    @Test
     fun getString_keyPresent_returnValidValue() {
         mSettings.putString(TEST_SETTING, "test")
         assertThat(mSettings.getString(TEST_SETTING)).isEqualTo("test")
@@ -517,15 +305,12 @@
         private val mContentResolver = mock(ContentResolver::class.java)
         private val userIdToSettingsValueMap: MutableMap<Int, MutableMap<String, String>> =
             mutableMapOf()
-        private val testDispatcher = StandardTestDispatcher()
 
         override fun getContentResolver() = mContentResolver
 
         override fun getUriFor(name: String) =
             Uri.parse(StringBuilder().append(URI_PREFIX).append(name).toString())
 
-        override fun getBackgroundDispatcher() = testDispatcher
-
         override fun getStringForUser(name: String, userHandle: Int) =
             userIdToSettingsValueMap[userHandle]?.get(name) ?: ""
 
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java
index 136b129..3a70cdf 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeGlobalSettings.java
@@ -22,8 +22,6 @@
 import android.database.ContentObserver;
 import android.net.Uri;
 
-import kotlinx.coroutines.CoroutineDispatcher;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -46,13 +44,6 @@
     }
 
     @Override
-    public CoroutineDispatcher getBackgroundDispatcher() {
-        throw new UnsupportedOperationException(
-                "GlobalSettings.getBackgroundDispatcher is not implemented, but you may find "
-                        + "GlobalSettings.getBackgroundDispatcher helpful instead.");
-    }
-
-    @Override
     public void registerContentObserverSync(Uri uri, boolean notifyDescendants,
             ContentObserver settingsObserver) {
         List<ContentObserver> observers;
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java
index 6cefa34..cd219ec 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java
@@ -27,8 +27,6 @@
 
 import com.android.systemui.settings.UserTracker;
 
-import kotlinx.coroutines.CoroutineDispatcher;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -68,11 +66,6 @@
     }
 
     @Override
-    public CoroutineDispatcher getBackgroundDispatcher() {
-        return null;
-    }
-
-    @Override
     public void registerContentObserverForUserSync(Uri uri, boolean notifyDescendants,
             ContentObserver settingsObserver, int userHandle) {
         List<ContentObserver> observers;