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

Commit fbd5b1ed authored by Archisha Baranwal's avatar Archisha Baranwal Committed by Android (Google) Code Review
Browse files

Merge "Adding ViewCaptureAwareWindowManager to WindowMagnificationController." into main

parents 7f93443c 32baa63a
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -100,17 +100,20 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        private final WindowMagnifierCallback mWindowMagnifierCallback;
        private final SysUiState mSysUiState;
        private final SecureSettings mSecureSettings;
        private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;

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

        @Override
@@ -137,7 +140,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
                    mSecureSettings,
                    scvhSupplier,
                    new SfVsyncFrameCallbackProvider(),
                    WindowManagerGlobal::getWindowSession);
                    WindowManagerGlobal::getWindowSession,
                    mViewCaptureAwareWindowManager);
        }
    }

@@ -267,7 +271,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks
        mA11yLogger = a11yLogger;
        mWindowMagnificationControllerSupplier = new WindowMagnificationControllerSupplier(context,
                mHandler, mWindowMagnifierCallback,
                displayManager, sysUiState, secureSettings);
                displayManager, sysUiState, secureSettings, viewCaptureAwareWindowManager);
        mFullscreenMagnificationControllerSupplier = new FullscreenMagnificationControllerSupplier(
                context, displayManager, mHandler, mExecutor, iWindowManager);
        mMagnificationSettingsSupplier = new SettingsSupplier(context,
+7 −3
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ import android.widget.ImageView;
import androidx.annotation.UiThread;
import androidx.core.math.MathUtils;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.accessibility.common.MagnificationConstants;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
@@ -126,6 +127,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
    private final SurfaceControl.Transaction mTransaction;

    private final WindowManager mWm;
    private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;

    private float mScale;
    private int mSettingsButtonIndex = MagnificationSize.DEFAULT;
@@ -258,7 +260,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
            SecureSettings secureSettings,
            Supplier<SurfaceControlViewHost> scvhSupplier,
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            Supplier<IWindowSession> globalWindowSessionSupplier) {
            Supplier<IWindowSession> globalWindowSessionSupplier,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
        mContext = context;
        mHandler = handler;
        mAnimationController = animationController;
@@ -280,6 +283,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold

        mWm = context.getSystemService(WindowManager.class);
        mWindowBounds = new Rect(mWm.getCurrentWindowMetrics().getBounds());
        mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager;

        mResources = mContext.getResources();
        mScale = secureSettings.getFloatForUser(
@@ -510,7 +514,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
            mHandler.removeCallbacks(mMirrorViewRunnable);
            mMirrorView.removeOnLayoutChangeListener(mMirrorViewLayoutChangeListener);
            if (!Flags.createWindowlessWindowMagnifier()) {
                mWm.removeView(mMirrorView);
                mViewCaptureAwareWindowManager.removeView(mMirrorView);
            }
            mMirrorView = null;
        }
@@ -722,7 +726,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
            return v.onApplyWindowInsets(insets);
        });

        mWm.addView(mMirrorView, params);
        mViewCaptureAwareWindowManager.addView(mMirrorView, params);

        SurfaceHolder holder = mMirrorSurfaceView.getHolder();
        holder.addCallback(this);
+9 −3
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import android.window.InputTransferToken;

import androidx.test.filters.LargeTest;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.Flags;
import com.android.systemui.SysuiTestCase;
@@ -112,6 +113,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
    SysUiState mSysUiState;
    @Mock
    SecureSettings mSecureSettings;
    @Mock
    ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;
    private SpyWindowMagnificationController mController;
    private WindowMagnificationController mSpyController;
    private WindowMagnificationAnimationController mWindowMagnificationAnimationController;
@@ -164,7 +167,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
                mSysUiState,
                mSecureSettings,
                scvhSupplier,
                mSfVsyncFrameProvider);
                mSfVsyncFrameProvider,
                mViewCaptureAwareWindowManager);

        mSpyController = mController.getSpyController();
    }
@@ -1015,7 +1019,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
                SysUiState sysUiState,
                SecureSettings secureSettings,
                Supplier<SurfaceControlViewHost> scvhSupplier,
                SfVsyncFrameCallbackProvider sfVsyncFrameProvider) {
                SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
                ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
            super(
                    context,
                    handler,
@@ -1027,7 +1032,8 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
                    secureSettings,
                    scvhSupplier,
                    sfVsyncFrameProvider,
                    WindowManagerGlobal::getWindowSession);
                    WindowManagerGlobal::getWindowSession,
                    viewCaptureAwareWindowManager);
            mSpyController = Mockito.mock(WindowMagnificationController.class);
        }

+11 −1
Original line number Diff line number Diff line
@@ -92,6 +92,8 @@ import androidx.test.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;

import com.android.app.viewcapture.ViewCapture;
import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.Flags;
import com.android.systemui.SysuiTestCase;
@@ -107,6 +109,8 @@ import com.android.systemui.utils.os.FakeHandler;

import com.google.common.util.concurrent.AtomicDouble;

import kotlin.Lazy;

import org.junit.After;
import org.junit.Assume;
import org.junit.Before;
@@ -150,6 +154,8 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
    private SurfaceControl.Transaction mTransaction = new SurfaceControl.Transaction();
    @Mock
    private SecureSettings mSecureSettings;
    @Mock
    private Lazy<ViewCapture> mLazyViewCapture;

    private long mWaitAnimationDuration;
    private long mWaitBounceEffectDuration;
@@ -226,6 +232,9 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
        when(mContext.getSharedPreferences(
                eq("window_magnification_preferences"), anyInt()))
                .thenReturn(mSharedPreferences);
        ViewCaptureAwareWindowManager viewCaptureAwareWindowManager = new
                ViewCaptureAwareWindowManager(mWindowManager, mLazyViewCapture,
                /* isViewCaptureEnabled= */ false);
        mWindowMagnificationController =
                new WindowMagnificationController(
                        mContext,
@@ -238,7 +247,8 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
                        mSecureSettings,
                        /* scvhSupplier= */ () -> null,
                        mSfVsyncFrameProvider,
                        /* globalWindowSessionSupplier= */ () -> mWindowSessionSpy);
                        /* globalWindowSessionSupplier= */ () -> mWindowSessionSpy,
                        viewCaptureAwareWindowManager);

        verify(mMirrorWindowControl).setWindowDelegate(
                any(MirrorWindowControl.MirrorWindowDelegate.class));
+5 −1
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import androidx.test.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.systemui.Flags;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.AnimatorTestRule;
@@ -144,6 +145,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
    private SurfaceControl.Transaction mTransaction;
    @Mock
    private SecureSettings mSecureSettings;
    @Mock
    private ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;

    private long mWaitAnimationDuration;
    private long mWaitBounceEffectDuration;
@@ -240,7 +243,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
                        mSecureSettings,
                        scvhSupplier,
                        /* sfVsyncFrameProvider= */ null,
                        /* globalWindowSessionSupplier= */ null);
                        /* globalWindowSessionSupplier= */ null,
                        mViewCaptureAwareWindowManager);

        verify(mMirrorWindowControl).setWindowDelegate(
                any(MirrorWindowControl.MirrorWindowDelegate.class));