summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt5
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt70
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/util/settings/UserSettingsProxyTest.kt63
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettings.java18
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettingsKosmos.kt6
9 files changed, 103 insertions, 122 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
index 15ddf5bfd281..34d323d66349 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
@@ -103,6 +103,7 @@ import com.android.systemui.screenrecord.ScreenRecordModule;
import com.android.systemui.screenshot.dagger.ScreenshotModule;
import com.android.systemui.security.data.repository.SecurityRepositoryModule;
import com.android.systemui.settings.DisplayTracker;
+import com.android.systemui.settings.UserTracker;
import com.android.systemui.shade.ShadeController;
import com.android.systemui.shade.transition.LargeScreenShadeInterpolator;
import com.android.systemui.shade.transition.LargeScreenShadeInterpolatorImpl;
@@ -153,6 +154,7 @@ import com.android.systemui.util.dagger.UtilModule;
import com.android.systemui.util.kotlin.SysUICoroutinesModule;
import com.android.systemui.util.reference.ReferenceModule;
import com.android.systemui.util.sensors.SensorModule;
+import com.android.systemui.util.settings.SettingsProxy;
import com.android.systemui.util.settings.SettingsUtilModule;
import com.android.systemui.util.time.SystemClock;
import com.android.systemui.util.time.SystemClockImpl;
@@ -266,15 +268,15 @@ import javax.inject.Named;
NoteTaskModule.class,
WalletModule.class,
ContextualEducationModule.class
- },
+},
subcomponents = {
- ComplicationComponent.class,
- DozeComponent.class,
- ExpandableNotificationRowComponent.class,
- KeyguardBouncerComponent.class,
- NavigationBarComponent.class,
- NotificationRowComponent.class,
- WindowRootViewComponent.class,
+ ComplicationComponent.class,
+ DozeComponent.class,
+ ExpandableNotificationRowComponent.class,
+ KeyguardBouncerComponent.class,
+ NavigationBarComponent.class,
+ NotificationRowComponent.class,
+ WindowRootViewComponent.class,
})
public abstract class SystemUIModule {
@@ -441,4 +443,9 @@ public abstract class SystemUIModule {
@Binds
abstract SceneDataSource bindSceneDataSource(SceneDataSourceDelegator delegator);
+
+ @Provides
+ static SettingsProxy.CurrentUserIdProvider provideCurrentUserId(UserTracker userTracker) {
+ return userTracker::getUserId;
+ }
}
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 9c98f43e2501..f1da27f9cce9 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SecureSettingsImpl.java
@@ -22,23 +22,24 @@ import android.provider.Settings;
import androidx.annotation.NonNull;
-import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.kotlin.SettingsSingleThreadBackground;
-import javax.inject.Inject;
-
import kotlinx.coroutines.CoroutineDispatcher;
+import javax.inject.Inject;
+
class SecureSettingsImpl implements SecureSettings {
private final ContentResolver mContentResolver;
- private final UserTracker mUserTracker;
+ private final CurrentUserIdProvider mCurrentUserProvider;
private final CoroutineDispatcher mBgDispatcher;
@Inject
- SecureSettingsImpl(ContentResolver contentResolver, UserTracker userTracker,
+ SecureSettingsImpl(
+ ContentResolver contentResolver,
+ CurrentUserIdProvider currentUserProvider,
@SettingsSingleThreadBackground CoroutineDispatcher bgDispatcher) {
mContentResolver = contentResolver;
- mUserTracker = userTracker;
+ mCurrentUserProvider = currentUserProvider;
mBgDispatcher = bgDispatcher;
}
@@ -48,8 +49,8 @@ class SecureSettingsImpl implements SecureSettings {
}
@Override
- public UserTracker getUserTracker() {
- return mUserTracker;
+ public CurrentUserIdProvider getCurrentUserProvider() {
+ return mCurrentUserProvider;
}
@Override
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 9125a915b2a3..0ee997e4549d 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SettingsProxy.kt
@@ -15,6 +15,7 @@
*/
package com.android.systemui.util.settings
+import android.annotation.UserIdInt
import android.content.ContentResolver
import android.database.ContentObserver
import android.net.Uri
@@ -629,4 +630,8 @@ interface SettingsProxy {
}
}
}
+
+ fun interface CurrentUserIdProvider {
+ @UserIdInt fun getUserId(): Int
+ }
}
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 406d95bd8fd1..1e8035734a36 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/SystemSettingsImpl.java
@@ -22,23 +22,23 @@ import android.provider.Settings;
import androidx.annotation.NonNull;
-import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.kotlin.SettingsSingleThreadBackground;
-import javax.inject.Inject;
-
import kotlinx.coroutines.CoroutineDispatcher;
+import javax.inject.Inject;
+
class SystemSettingsImpl implements SystemSettings {
private final ContentResolver mContentResolver;
- private final UserTracker mUserTracker;
+ private final CurrentUserIdProvider mCurrentUserProvider;
private final CoroutineDispatcher mBgCoroutineDispatcher;
@Inject
- SystemSettingsImpl(ContentResolver contentResolver, UserTracker userTracker,
+ SystemSettingsImpl(ContentResolver contentResolver,
+ CurrentUserIdProvider currentUserProvider,
@SettingsSingleThreadBackground CoroutineDispatcher bgDispatcher) {
mContentResolver = contentResolver;
- mUserTracker = userTracker;
+ mCurrentUserProvider = currentUserProvider;
mBgCoroutineDispatcher = bgDispatcher;
}
@@ -48,8 +48,8 @@ class SystemSettingsImpl implements SystemSettings {
}
@Override
- public UserTracker getUserTracker() {
- return mUserTracker;
+ public CurrentUserIdProvider getCurrentUserProvider() {
+ return mCurrentUserProvider;
}
@Override
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 ac7c1ce77c9e..9ae8f03479cf 100644
--- a/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt
+++ b/packages/SystemUI/src/com/android/systemui/util/settings/UserSettingsProxy.kt
@@ -23,7 +23,6 @@ import android.net.Uri
import android.os.UserHandle
import android.provider.Settings.SettingNotFoundException
import com.android.app.tracing.TraceUtils.trace
-import com.android.systemui.settings.UserTracker
import com.android.systemui.util.settings.SettingsProxy.Companion.parseFloat
import com.android.systemui.util.settings.SettingsProxy.Companion.parseFloatOrThrow
import com.android.systemui.util.settings.SettingsProxy.Companion.parseLongOrThrow
@@ -46,8 +45,8 @@ import kotlinx.coroutines.withContext
* instances, unifying setting related actions in one place.
*/
interface UserSettingsProxy : SettingsProxy {
- /** Returns that [UserTracker] this instance was constructed with. */
- val userTracker: UserTracker
+ val currentUserProvider: SettingsProxy.CurrentUserIdProvider
+
/** Returns the user id for the associated [ContentResolver]. */
var userId: Int
get() = getContentResolver().userId
@@ -64,7 +63,7 @@ interface UserSettingsProxy : SettingsProxy {
fun getRealUserHandle(userHandle: Int): Int {
return if (userHandle != UserHandle.USER_CURRENT) {
userHandle
- } else userTracker.userId
+ } else currentUserProvider.getUserId()
}
@WorkerThread
diff --git a/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt
index 0196f95e29be..80a9e4ce991b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/notetask/NoteTaskControllerTest.kt
@@ -62,9 +62,8 @@ import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.mock
-import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.withArgCaptor
-import com.android.systemui.util.settings.SecureSettings
+import com.android.systemui.util.settings.FakeSettings
import com.android.wm.shell.bubbles.Bubble
import com.android.wm.shell.bubbles.Bubbles
import com.google.common.truth.Truth.assertThat
@@ -86,6 +85,7 @@ import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyZeroInteractions
import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.whenever
/** atest SystemUITests:NoteTaskControllerTest */
@OptIn(ExperimentalCoroutinesApi::class)
@@ -106,10 +106,10 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
@Mock private lateinit var shortcutManager: ShortcutManager
@Mock private lateinit var activityManager: ActivityManager
@Mock private lateinit var devicePolicyManager: DevicePolicyManager
- @Mock private lateinit var secureSettings: SecureSettings
private val userTracker = FakeUserTracker()
private val testDispatcher = UnconfinedTestDispatcher()
private val testScope = TestScope(testDispatcher)
+ private val secureSettings = FakeSettings(testDispatcher) { userTracker.userId }
@Before
fun setUp() {
@@ -139,7 +139,6 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
whenever(activityManager.getRunningTasks(anyInt())).thenReturn(emptyList())
whenever(userManager.isManagedProfile(workUserInfo.id)).thenReturn(true)
whenever(context.resources).thenReturn(getContext().resources)
- whenever(secureSettings.userTracker).thenReturn(userTracker)
}
private fun createNoteTaskController(
@@ -245,6 +244,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verifyZeroInteractions(bubbles, keyguardManager, userManager, eventLogger)
}
+
// endregion
// region showNoteTask
@@ -357,14 +357,11 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
@Test
fun showNoteTask_defaultUserSet_shouldStartActivityWithExpectedUserAndLogUiEvent() {
- whenever(
- secureSettings.getIntForUser(
- /* name= */ eq(Settings.Secure.DEFAULT_NOTE_TASK_PROFILE),
- /* def= */ any(),
- /* userHandle= */ any()
- )
- )
- .thenReturn(10)
+ secureSettings.putIntForUser(
+ /* name= */ Settings.Secure.DEFAULT_NOTE_TASK_PROFILE,
+ /* value= */ 10,
+ /* userHandle= */ userTracker.userId
+ )
val user10 = UserHandle.of(/* userId= */ 10)
val expectedInfo =
@@ -458,6 +455,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verify(eventLogger).logNoteTaskOpened(expectedInfo)
verifyZeroInteractions(bubbles)
}
+
// endregion
// region setNoteTaskShortcutEnabled
@@ -535,6 +533,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
assertThat(argument.value.className)
.isEqualTo(CreateNoteTaskShortcutActivity::class.java.name)
}
+
// endregion
// region keyguard policy
@@ -601,6 +600,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verifyNoteTaskOpenInBubbleInUser(userTracker.userHandle)
}
+
// endregion
// region showNoteTask, COPE devices
@@ -626,14 +626,11 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
@Test
fun showNoteTask_copeDevices_tailButtonEntryPoint_shouldStartBubbleInTheUserSelectedUser() {
- whenever(
- secureSettings.getIntForUser(
- /* name= */ eq(Settings.Secure.DEFAULT_NOTE_TASK_PROFILE),
- /* def= */ any(),
- /* userHandle= */ any()
- )
- )
- .thenReturn(mainUserInfo.id)
+ secureSettings.putIntForUser(
+ /* name= */ Settings.Secure.DEFAULT_NOTE_TASK_PROFILE,
+ /* value= */ mainUserInfo.id,
+ /* userHandle= */ userTracker.userId
+ )
whenever(devicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile).thenReturn(true)
userTracker.set(mainAndWorkProfileUsers, mainAndWorkProfileUsers.indexOf(mainUserInfo))
@@ -661,6 +658,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verifyNoteTaskOpenInBubbleInUser(mainUserInfo.userHandle)
}
+
// endregion
private fun verifyNoteTaskOpenInBubbleInUser(userHandle: UserHandle) {
@@ -700,6 +698,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verify(controller).updateNoteTaskAsUser(user)
}
+
// endregion
// region updateNoteTaskAsUser
@@ -729,6 +728,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
val intent = withArgCaptor { verify(context).startServiceAsUser(capture(), eq(user)) }
assertThat(intent).hasComponentClass(NoteTaskControllerUpdateService::class.java)
}
+
// endregion
// region internalUpdateNoteTaskAsUser
@@ -807,6 +807,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verify(shortcutManager, never()).enableShortcuts(any())
verify(shortcutManager, never()).updateShortcuts(any())
}
+
// endregion
// startregion updateNoteTaskForAllUsers
@@ -821,6 +822,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
verify(controller).updateNoteTaskAsUser(mainUserInfo.userHandle)
verify(controller).updateNoteTaskAsUser(workUserInfo.userHandle)
}
+
// endregion
// region getUserForHandlingNotesTaking
@@ -836,14 +838,11 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
@Test
fun getUserForHandlingNotesTaking_cope_userSelectedWorkProfile_tailButton_shouldReturnWorkProfileUser() { // ktlint-disable max-line-length
- whenever(
- secureSettings.getIntForUser(
- /* name= */ eq(Settings.Secure.DEFAULT_NOTE_TASK_PROFILE),
- /* def= */ any(),
- /* userHandle= */ any()
- )
- )
- .thenReturn(workUserInfo.id)
+ secureSettings.putIntForUser(
+ /* name= */ Settings.Secure.DEFAULT_NOTE_TASK_PROFILE,
+ /* value= */ workUserInfo.id,
+ /* userHandle= */ userTracker.userId
+ )
whenever(devicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile).thenReturn(true)
userTracker.set(mainAndWorkProfileUsers, mainAndWorkProfileUsers.indexOf(mainUserInfo))
@@ -854,14 +853,11 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
@Test
fun getUserForHandlingNotesTaking_cope_userSelectedMainProfile_tailButton_shouldReturnMainProfileUser() { // ktlint-disable max-line-length
- whenever(
- secureSettings.getIntForUser(
- /* name= */ eq(Settings.Secure.DEFAULT_NOTE_TASK_PROFILE),
- /* def= */ any(),
- /* userHandle= */ any()
- )
- )
- .thenReturn(mainUserInfo.id)
+ secureSettings.putIntForUser(
+ /* name= */ Settings.Secure.DEFAULT_NOTE_TASK_PROFILE,
+ /* value= */ mainUserInfo.id,
+ /* userHandle= */ userTracker.userId
+ )
whenever(devicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile).thenReturn(true)
userTracker.set(mainAndWorkProfileUsers, mainAndWorkProfileUsers.indexOf(mainUserInfo))
@@ -906,6 +902,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
assertThat(user).isEqualTo(UserHandle.of(mainUserInfo.id))
}
+
// endregion
// startregion startNotesRoleSetting
@@ -962,6 +959,7 @@ internal class NoteTaskControllerTest : SysuiTestCase() {
assertThat(intentCaptor.value).hasAction(ACTION_MANAGE_DEFAULT_APP)
assertThat(userCaptor.value).isEqualTo(UserHandle.of(mainUserInfo.id))
}
+
// endregion
private companion object {
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 ead9939c1dd7..eaeece9c293e 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
@@ -17,7 +17,6 @@
package com.android.systemui.util.settings
import android.content.ContentResolver
-import android.content.pm.UserInfo
import android.database.ContentObserver
import android.net.Uri
import android.os.Handler
@@ -28,8 +27,6 @@ import android.testing.TestableLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
-import com.android.systemui.settings.FakeUserTracker
-import com.android.systemui.settings.UserTracker
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -52,29 +49,21 @@ import org.mockito.kotlin.eq
@TestableLooper.RunWithLooper
class UserSettingsProxyTest : SysuiTestCase() {
- private var mUserTracker = FakeUserTracker()
+ private var userId = MAIN_USER_ID
private val testDispatcher = StandardTestDispatcher()
- private var mSettings: UserSettingsProxy = FakeUserSettingsProxy(mUserTracker, testDispatcher)
+ private var mSettings: UserSettingsProxy = FakeUserSettingsProxy({ userId }, testDispatcher)
private var mContentObserver = object : ContentObserver(Handler(Looper.getMainLooper())) {}
private lateinit var testScope: TestScope
@Before
fun setUp() {
- mUserTracker.set(
- listOf(UserInfo(MAIN_USER_ID, "main", UserInfo.FLAG_MAIN)),
- selectedUserIndex = 0
- )
testScope = TestScope(testDispatcher)
}
@Test
fun registerContentObserverForUser_inputString_success() =
testScope.runTest {
- mSettings.registerContentObserverForUserSync(
- TEST_SETTING,
- mContentObserver,
- mUserTracker.userId
- )
+ mSettings.registerContentObserverForUserSync(TEST_SETTING, mContentObserver, userId)
verify(mSettings.getContentResolver())
.registerContentObserver(
eq(TEST_SETTING_URI),
@@ -87,11 +76,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
@Test
fun registerContentObserverForUserSuspend_inputString_success() =
testScope.runTest {
- mSettings.registerContentObserverForUser(
- TEST_SETTING,
- mContentObserver,
- mUserTracker.userId
- )
+ mSettings.registerContentObserverForUser(TEST_SETTING, mContentObserver, userId)
verify(mSettings.getContentResolver())
.registerContentObserver(
eq(TEST_SETTING_URI),
@@ -104,11 +89,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
@Test
fun registerContentObserverForUserAsync_inputString_success() =
testScope.runTest {
- mSettings.registerContentObserverForUserAsync(
- TEST_SETTING,
- mContentObserver,
- mUserTracker.userId
- )
+ mSettings.registerContentObserverForUserAsync(TEST_SETTING, mContentObserver, userId)
testScope.advanceUntilIdle()
verify(mSettings.getContentResolver())
.registerContentObserver(
@@ -126,7 +107,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
verify(mSettings.getContentResolver())
.registerContentObserver(
@@ -144,7 +125,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
verify(mSettings.getContentResolver())
.registerContentObserver(
@@ -164,7 +145,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
testScope.advanceUntilIdle()
verify(mSettings.getContentResolver())
@@ -179,11 +160,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
@Test
fun registerContentObserverForUser_inputUri_success() =
testScope.runTest {
- mSettings.registerContentObserverForUserSync(
- TEST_SETTING_URI,
- mContentObserver,
- mUserTracker.userId
- )
+ mSettings.registerContentObserverForUserSync(TEST_SETTING_URI, mContentObserver, userId)
verify(mSettings.getContentResolver())
.registerContentObserver(
eq(TEST_SETTING_URI),
@@ -196,11 +173,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
@Test
fun registerContentObserverForUserSuspend_inputUri_success() =
testScope.runTest {
- mSettings.registerContentObserverForUser(
- TEST_SETTING_URI,
- mContentObserver,
- mUserTracker.userId
- )
+ mSettings.registerContentObserverForUser(TEST_SETTING_URI, mContentObserver, userId)
verify(mSettings.getContentResolver())
.registerContentObserver(
eq(TEST_SETTING_URI),
@@ -216,7 +189,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
mSettings.registerContentObserverForUserAsync(
TEST_SETTING_URI,
mContentObserver,
- mUserTracker.userId
+ userId
)
testScope.advanceUntilIdle()
@@ -239,7 +212,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
mSettings.registerContentObserverForUserAsync(
TEST_SETTING_URI,
mContentObserver,
- mUserTracker.userId,
+ userId,
runnable
)
testScope.advanceUntilIdle()
@@ -253,7 +226,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING_URI,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
verify(mSettings.getContentResolver())
.registerContentObserver(
@@ -271,14 +244,12 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING_URI,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
verify(mSettings.getContentResolver())
.registerContentObserver(
eq(TEST_SETTING_URI),
- eq(
- true,
- ),
+ eq(true),
eq(mContentObserver),
eq(MAIN_USER_ID)
)
@@ -291,7 +262,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
TEST_SETTING_URI,
notifyForDescendants = true,
mContentObserver,
- mUserTracker.userId
+ userId
)
testScope.advanceUntilIdle()
verify(mSettings.getContentResolver())
@@ -585,7 +556,7 @@ class UserSettingsProxyTest : SysuiTestCase() {
* This class uses a mock of [ContentResolver] to test the [ContentObserver] registration APIs.
*/
private class FakeUserSettingsProxy(
- override val userTracker: UserTracker,
+ override val currentUserProvider: SettingsProxy.CurrentUserIdProvider,
val testDispatcher: CoroutineDispatcher
) : UserSettingsProxy {
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 3f0318b71f8b..d1174667648c 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
@@ -28,9 +28,6 @@ import android.util.Pair;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
-import com.android.systemui.settings.FakeUserTracker;
-import com.android.systemui.settings.UserTracker;
-
import kotlinx.coroutines.CoroutineDispatcher;
import java.util.ArrayList;
@@ -44,12 +41,13 @@ public class FakeSettings implements SecureSettings, SystemSettings {
new HashMap<>();
private final Map<String, List<ContentObserver>> mContentObserversAllUsers = new HashMap<>();
private final CoroutineDispatcher mDispatcher;
- private final UserTracker mUserTracker;
public static final Uri CONTENT_URI = Uri.parse("content://settings/fake");
@UserIdInt
private int mUserId = UserHandle.USER_CURRENT;
+ private final CurrentUserIdProvider mCurrentUserProvider;
+
/**
* @deprecated Please use FakeSettings(testDispatcher) to provide the same dispatcher used
* by main test scope.
@@ -57,17 +55,17 @@ public class FakeSettings implements SecureSettings, SystemSettings {
@Deprecated
public FakeSettings() {
mDispatcher = StandardTestDispatcher(/* scheduler = */ null, /* name = */ null);
- mUserTracker = new FakeUserTracker();
+ mCurrentUserProvider = () -> mUserId;
}
public FakeSettings(CoroutineDispatcher dispatcher) {
mDispatcher = dispatcher;
- mUserTracker = new FakeUserTracker();
+ mCurrentUserProvider = () -> mUserId;
}
- public FakeSettings(CoroutineDispatcher dispatcher, UserTracker userTracker) {
+ public FakeSettings(CoroutineDispatcher dispatcher, CurrentUserIdProvider currentUserProvider) {
mDispatcher = dispatcher;
- mUserTracker = userTracker;
+ mCurrentUserProvider = currentUserProvider;
}
@VisibleForTesting
@@ -93,8 +91,8 @@ public class FakeSettings implements SecureSettings, SystemSettings {
@NonNull
@Override
- public UserTracker getUserTracker() {
- return mUserTracker;
+ public CurrentUserIdProvider getCurrentUserProvider() {
+ return mCurrentUserProvider;
}
@NonNull
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettingsKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettingsKosmos.kt
index 55044bf3650b..76ef20253078 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettingsKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/settings/FakeSettingsKosmos.kt
@@ -19,6 +19,8 @@ package com.android.systemui.util.settings
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.testDispatcher
-import com.android.systemui.settings.fakeUserTracker
+import com.android.systemui.settings.userTracker
-val Kosmos.fakeSettings: FakeSettings by Fixture { FakeSettings(testDispatcher, fakeUserTracker) }
+val Kosmos.fakeSettings: FakeSettings by Fixture {
+ FakeSettings(testDispatcher) { userTracker.userId }
+}