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

Commit c2d77c9e authored by Archisha Baranwal's avatar Archisha Baranwal Committed by archisha
Browse files

Revert "Removing use of WindowManagerProvider to create window manager for"

This reverts commit a5f871fd.

Reason for revert: This was a quick fix solution for b/404724787. Reverting this change with modification to provide correct fix

Change-Id: Iff783b61f8ae3f14c0cbfe50087f01c271223571
parent d4803f46
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ public class A11yMenuOverlayLayout {
        final Display display = mDisplayManager.getDisplay(DEFAULT_DISPLAY);
        final Context uiContext = mService.createWindowContext(
                display, TYPE_ACCESSIBILITY_OVERLAY, /* options= */null);
        final WindowManager windowManager = uiContext.getSystemService(WindowManager.class);
        final WindowManager windowManager = WindowManagerUtils.getWindowManager(uiContext);
        mLayout = new A11yMenuFrameLayout(uiContext);
        updateLayoutPosition(uiContext);
        inflateLayoutAndSetOnTouchListener(mLayout, uiContext);
+4 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.verify;

import android.content.pm.ActivityInfo;
import android.testing.TestableLooper;
import android.view.WindowManager;

import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
@@ -56,13 +57,15 @@ public class MagnificationSettingsControllerTest extends SysuiTestCase {
    private SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
    @Mock
    private SecureSettings mSecureSettings;
    @Mock
    private WindowManager mWindowManager;

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

+29 −13
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.systemui.recents.LauncherProxyService;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.utils.windowmanager.WindowManagerProvider;

import java.io.PrintWriter;
import java.util.concurrent.Executor;
@@ -96,17 +97,19 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        private final WindowMagnifierCallback mWindowMagnifierCallback;
        private final SysUiState mSysUiState;
        private final SecureSettings mSecureSettings;
        private final WindowManagerProvider mWindowManagerProvider;

        WindowMagnificationControllerSupplier(Context context, Handler handler,
                WindowMagnifierCallback windowMagnifierCallback,
                DisplayManager displayManager, SysUiState sysUiState,
                SecureSettings secureSettings) {
                SecureSettings secureSettings, WindowManagerProvider windowManagerProvider) {
            super(displayManager);
            mContext = context;
            mHandler = handler;
            mWindowMagnifierCallback = windowMagnifierCallback;
            mSysUiState = sysUiState;
            mSecureSettings = secureSettings;
            mWindowManagerProvider = windowManagerProvider;
        }

        @Override
@@ -114,8 +117,9 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
            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);
            final WindowManager windowManager = windowContext.getSystemService(WindowManager.class);

            Supplier<SurfaceControlViewHost> scvhSupplier = () ->
                    new SurfaceControlViewHost(mContext,
@@ -146,17 +150,20 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        private final Executor mExecutor;
        private final DisplayManager mDisplayManager;
        private final IWindowManager mIWindowManager;
        private final WindowManagerProvider mWindowManagerProvider;

        FullscreenMagnificationControllerSupplier(Context context,
                DisplayManager displayManager,
                Handler handler,
                Executor executor, IWindowManager iWindowManager) {
                Executor executor, IWindowManager iWindowManager,
                WindowManagerProvider windowManagerProvider) {
            super(displayManager);
            mContext = context;
            mHandler = handler;
            mExecutor = executor;
            mDisplayManager = displayManager;
            mIWindowManager = iWindowManager;
            mWindowManagerProvider = windowManagerProvider;
        }

        @Override
@@ -172,7 +179,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
                    mExecutor,
                    mDisplayManager,
                    windowContext.getSystemService(AccessibilityManager.class),
                    windowContext.getSystemService(WindowManager.class),
                    mWindowManagerProvider.getWindowManager(windowContext),
                    mIWindowManager,
                    scvhSupplier);
        }
@@ -188,28 +195,32 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        private final Context mContext;
        private final MagnificationSettingsController.Callback mSettingsControllerCallback;
        private final SecureSettings mSecureSettings;
        private final WindowManagerProvider mWindowManagerProvider;

        SettingsSupplier(Context context,
                MagnificationSettingsController.Callback settingsControllerCallback,
                DisplayManager displayManager,
                SecureSettings secureSettings) {
                SecureSettings secureSettings, WindowManagerProvider windowManagerProvider) {
            super(displayManager);
            mContext = context;
            mSettingsControllerCallback = settingsControllerCallback;
            mSecureSettings = secureSettings;
            mWindowManagerProvider = windowManagerProvider;
        }

        @Override
        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);
                    mSecureSettings,
                    windowManager);
        }
    }

@@ -223,10 +234,12 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
            SysUiState sysUiState, LauncherProxyService launcherProxyService,
            SecureSettings secureSettings, DisplayTracker displayTracker,
            DisplayManager displayManager, AccessibilityLogger a11yLogger,
            IWindowManager iWindowManager, AccessibilityManager accessibilityManager) {
            IWindowManager iWindowManager, AccessibilityManager accessibilityManager,
            WindowManagerProvider windowManagerProvider) {
        this(context, mainHandler.getLooper(), executor, commandQueue,
                modeSwitchesController, sysUiState, launcherProxyService, secureSettings,
                displayTracker, displayManager, a11yLogger, iWindowManager, accessibilityManager);
                displayTracker, displayManager, a11yLogger, iWindowManager, accessibilityManager,
                windowManagerProvider);
    }

    @VisibleForTesting
@@ -236,7 +249,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
            SecureSettings secureSettings, DisplayTracker displayTracker,
            DisplayManager displayManager, AccessibilityLogger a11yLogger,
            IWindowManager iWindowManager,
            AccessibilityManager accessibilityManager) {
            AccessibilityManager accessibilityManager,
            WindowManagerProvider windowManagerProvider) {
        mHandler = new Handler(looper) {
            @Override
            public void handleMessage(@NonNull Message msg) {
@@ -255,11 +269,13 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        mA11yLogger = a11yLogger;
        mWindowMagnificationControllerSupplier = new WindowMagnificationControllerSupplier(context,
                mHandler, mWindowMagnifierCallback,
                displayManager, sysUiState, secureSettings);
                displayManager, sysUiState, secureSettings, windowManagerProvider);
        mFullscreenMagnificationControllerSupplier = new FullscreenMagnificationControllerSupplier(
                context, displayManager, mHandler, mExecutor, iWindowManager);
                context, displayManager, mHandler, mExecutor, iWindowManager,
                windowManagerProvider);
        mMagnificationSettingsSupplier = new SettingsSupplier(context,
                mMagnificationSettingsControllerCallback, displayManager, secureSettings);
                mMagnificationSettingsControllerCallback, displayManager, secureSettings,
                windowManagerProvider);

        mModeSwitchesController.setClickListenerDelegate(
                displayId -> mHandler.post(() -> {
+6 −4
Original line number Diff line number Diff line
@@ -60,8 +60,10 @@ public class MagnificationSettingsController implements ComponentCallbacks {
            @UiContext Context context,
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            @NonNull Callback settingsControllerCallback,
            SecureSettings secureSettings) {
        this(context, sfVsyncFrameProvider, settingsControllerCallback,  secureSettings, null);
            SecureSettings secureSettings,
            WindowManager windowManager) {
        this(context, sfVsyncFrameProvider, settingsControllerCallback,  secureSettings,
                windowManager, null);
    }

    @VisibleForTesting
@@ -70,6 +72,7 @@ public class MagnificationSettingsController implements ComponentCallbacks {
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            @NonNull Callback settingsControllerCallback,
            SecureSettings secureSettings,
            WindowManager windowManager,
            WindowMagnificationSettings windowMagnificationSettings) {
        mContext = context.createWindowContext(
                context.getDisplay(),
@@ -82,10 +85,9 @@ public class MagnificationSettingsController implements ComponentCallbacks {
        if (windowMagnificationSettings != null) {
            mWindowMagnificationSettings = windowMagnificationSettings;
        } else {
            WindowManager wm = mContext.getSystemService(WindowManager.class);
            mWindowMagnificationSettings = new WindowMagnificationSettings(mContext,
                    mWindowMagnificationSettingsCallback,
                    sfVsyncFrameProvider, secureSettings, wm);
                    sfVsyncFrameProvider, secureSettings, windowManager);
        }
    }

+4 −2
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.systemui.clipboardoverlay.IntentCreator;
import com.android.systemui.res.R;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.utils.windowmanager.WindowManagerProvider;

import dagger.Lazy;
import dagger.Module;
@@ -85,8 +86,9 @@ public interface ClipboardOverlayModule {
     */
    @Provides
    @OverlayWindowContext
    static WindowManager provideWindowManager(@OverlayWindowContext Context context) {
        return context.getSystemService(WindowManager.class);
    static WindowManager provideWindowManager(@OverlayWindowContext Context context,
            WindowManagerProvider windowManagerProvider) {
        return windowManagerProvider.getWindowManager(context);
    }

    @Provides
Loading