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

Commit 8e42f0af authored by Chun-Ku Lin's avatar Chun-Ku Lin
Browse files

Display the floating menu with the same context as current running

process

Somehow when the user in the view's context is different from the
current running progress, it's unable to load the androidx's
constraintlayout

Bug: 387419707
Test: manually verify opening the floating menu shortcut on different
users won't crash sysui
Test: atest com.android.systemui.accessibility.floatingmenu
Flag: EXEMPT bugfix for a crash

Change-Id: I2c9d28990ae78ed08bab69eab4e8d92726f5045a
parent 14ff94d1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public class DragToInteractAnimationControllerTest extends SysuiTestCase {
    @Before
    public void setUp() throws Exception {
        final WindowManager stubWindowManager = mContext.getSystemService(WindowManager.class);
        final SecureSettings mockSecureSettings = TestUtils.mockSecureSettings();
        final SecureSettings mockSecureSettings = TestUtils.mockSecureSettings(mContext);
        final MenuViewModel stubMenuViewModel = new MenuViewModel(mContext, mAccessibilityManager,
                mockSecureSettings, mHearingAidDeviceManager);
        final MenuViewAppearance stubMenuViewAppearance = new MenuViewAppearance(mContext,
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ public class MenuItemAccessibilityDelegateTest extends SysuiTestCase {
    private AccessibilityManager mAccessibilityManager;
    @Mock
    private HearingAidDeviceManager mHearingAidDeviceManager;
    private final SecureSettings mSecureSettings = TestUtils.mockSecureSettings();
    private final SecureSettings mSecureSettings = TestUtils.mockSecureSettings(mContext);
    private RecyclerView mStubListView;
    private MenuView mMenuView;
    private MenuViewLayer mMenuViewLayer;
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ public class MenuListViewTouchHandlerTest extends SysuiTestCase {
    @Before
    public void setUp() throws Exception {
        final WindowManager windowManager = mContext.getSystemService(WindowManager.class);
        final SecureSettings secureSettings = TestUtils.mockSecureSettings();
        final SecureSettings secureSettings = TestUtils.mockSecureSettings(mContext);
        final MenuViewModel stubMenuViewModel = new MenuViewModel(mContext, mAccessibilityManager,
                secureSettings, mHearingAidDeviceManager);
        final MenuViewAppearance stubMenuViewAppearance = new MenuViewAppearance(mContext,
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ public class MenuViewTest extends SysuiTestCase {
        mSpyContext = spy(mContext);
        doNothing().when(mSpyContext).startActivity(any());

        final SecureSettings secureSettings = TestUtils.mockSecureSettings();
        final SecureSettings secureSettings = TestUtils.mockSecureSettings(mContext);
        final MenuViewModel stubMenuViewModel = new MenuViewModel(mContext, mAccessibilityManager,
                secureSettings, mHearingAidDeviceManager);
        final WindowManager stubWindowManager = mContext.getSystemService(WindowManager.class);
+4 −1
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import android.content.ComponentName;
import android.content.Context;
import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
@@ -76,8 +77,10 @@ public class TestUtils {
     * Returns a mock secure settings configured to return information needed for tests.
     * Currently, this only includes button targets.
     */
    public static SecureSettings mockSecureSettings() {
    public static SecureSettings mockSecureSettings(Context context) {
        SecureSettings secureSettings = mock(SecureSettings.class);
        when(secureSettings.getRealUserHandle(UserHandle.USER_CURRENT))
                .thenReturn(context.getUserId());

        final String targets = getShortcutTargets(
                Set.of(TEST_COMPONENT_A, TEST_COMPONENT_B));
Loading