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

Commit 4257ebc0 authored by archisha's avatar archisha
Browse files

Fix WindowManager instance used in WindowMagnificationSettings window.

Bug: 404993250
Flag: com.android.systemui.enable_view_capture_tracing
Test: mp droid and verified Magnification shortcut and Quick settings
usage on different apps.

Change-Id: Idf6e9682faeb1cac7c17d9d5120d3833634ad21d
parent c2d77c9e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.accessibility.WindowMagnificationSettings.MagnificationSize;
import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.utils.windowmanager.WindowManagerProvider;

import org.junit.After;
import org.junit.Before;
@@ -58,14 +59,14 @@ public class MagnificationSettingsControllerTest extends SysuiTestCase {
    @Mock
    private SecureSettings mSecureSettings;
    @Mock
    private WindowManager mWindowManager;
    private WindowManagerProvider mWindowManagerProvider;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mMagnificationSettingsController = new MagnificationSettingsController(
                mContext, mSfVsyncFrameProvider,
                mMagnificationSettingControllerCallback, mSecureSettings, mWindowManager,
                mMagnificationSettingControllerCallback, mSecureSettings, mWindowManagerProvider,
                mWindowMagnificationSettings);
    }

+1 −3
Original line number Diff line number Diff line
@@ -212,15 +212,13 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        protected MagnificationSettingsController createInstance(Display display) {
            final Context windowContext = mContext.createWindowContext(display,
                    TYPE_ACCESSIBILITY_OVERLAY, /* options */ null);
            final WindowManager windowManager = mWindowManagerProvider
                    .getWindowManager(windowContext);
            windowContext.setTheme(com.android.systemui.res.R.style.Theme_SystemUI);
            return new MagnificationSettingsController(
                    windowContext,
                    new SfVsyncFrameCallbackProvider(),
                    mSettingsControllerCallback,
                    mSecureSettings,
                    windowManager);
                    mWindowManagerProvider);
        }
    }

+5 −3
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.internal.accessibility.common.MagnificationConstants;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.utils.windowmanager.WindowManagerProvider;

/**
 * A class to control {@link WindowMagnificationSettings} and receive settings panel callbacks by
@@ -61,9 +62,9 @@ public class MagnificationSettingsController implements ComponentCallbacks {
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            @NonNull Callback settingsControllerCallback,
            SecureSettings secureSettings,
            WindowManager windowManager) {
            WindowManagerProvider windowManagerProvider) {
        this(context, sfVsyncFrameProvider, settingsControllerCallback,  secureSettings,
                windowManager, null);
                windowManagerProvider, null);
    }

    @VisibleForTesting
@@ -72,7 +73,7 @@ public class MagnificationSettingsController implements ComponentCallbacks {
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            @NonNull Callback settingsControllerCallback,
            SecureSettings secureSettings,
            WindowManager windowManager,
            WindowManagerProvider windowManagerProvider,
            WindowMagnificationSettings windowMagnificationSettings) {
        mContext = context.createWindowContext(
                context.getDisplay(),
@@ -85,6 +86,7 @@ public class MagnificationSettingsController implements ComponentCallbacks {
        if (windowMagnificationSettings != null) {
            mWindowMagnificationSettings = windowMagnificationSettings;
        } else {
            WindowManager windowManager = windowManagerProvider.getWindowManager(mContext);
            mWindowMagnificationSettings = new WindowMagnificationSettings(mContext,
                    mWindowMagnificationSettingsCallback,
                    sfVsyncFrameProvider, secureSettings, windowManager);