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

Commit 31a742c9 authored by Ben Murdoch's avatar Ben Murdoch
Browse files

Make SysUI Classic Feature Flag loading multi-user aware.

This ensure that flags can be loaded properly on HSUM builds.

Bug: 345443431
Test: Launch the flippin app on HSUM and no crashes
Flag: com.android.systemui.classic_flags_multi_user
Change-Id: I05e2246ab5027bc7dcace9663418da883b7fa47b
parent 22b46e08
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.flags;

import static com.android.systemui.Flags.exampleFlag;
import static com.android.systemui.Flags.classicFlagsMultiUser;
import static com.android.systemui.Flags.sysuiTeamfood;
import static com.android.systemui.flags.FlagManager.ACTION_GET_FLAGS;
import static com.android.systemui.flags.FlagManager.ACTION_SET_FLAG;
@@ -41,6 +42,7 @@ import androidx.annotation.Nullable;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.settings.UserContextProvider;
import com.android.systemui.util.settings.GlobalSettings;

import java.io.PrintWriter;
@@ -125,9 +127,14 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic {
            @Main Resources resources,
            ServerFlagReader serverFlagReader,
            @Named(ALL_FLAGS) Map<String, Flag<?>> allFlags,
            Restarter restarter) {
            Restarter restarter,
            UserContextProvider userContextProvider) {
        mFlagManager = flagManager;
        if (classicFlagsMultiUser()) {
            mContext = userContextProvider.createCurrentUserContext(context);
        } else {
            mContext = context;
        }
        mGlobalSettings = globalSettings;
        mResources = resources;
        mSystemProperties = systemProperties;
+4 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags.FLAG_SYSUI_TEAMFOOD
import com.android.systemui.SysuiTestCase
import com.android.systemui.settings.FakeUserTracker
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.nullable
@@ -67,6 +68,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() {
    @Mock private lateinit var systemProperties: SystemPropertiesHelper
    @Mock private lateinit var resources: Resources
    @Mock private lateinit var restarter: Restarter
    private val userTracker = FakeUserTracker()
    private val flagMap = mutableMapOf<String, Flag<*>>()
    private lateinit var broadcastReceiver: BroadcastReceiver
    private lateinit var clearCacheAction: Consumer<String>
@@ -78,7 +80,6 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() {
    @Before
    fun setup() {
        MockitoAnnotations.initMocks(this)

        flagMap.put(teamfoodableFlagA.name, teamfoodableFlagA)
        flagMap.put(releasedFlagB.name, releasedFlagB)
        mFeatureFlagsClassicDebug =
@@ -90,7 +91,8 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() {
                resources,
                serverFlagReader,
                flagMap,
                restarter
                restarter,
                userTracker
            )
        mFeatureFlagsClassicDebug.init()
        verify(flagManager).onSettingsChangedAction = any()