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

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

Remove explicit ViewCaptureAwareWindowManager usage in MagnificationModeSwitch window.

We change this due to the restructure of ViewCaptureAwareWindowManager  (go/wm-for-viewcapture)

Bug: 364461638
Flag: com.android.systemui.enable_view_capture_tracing
Test: tested locally

Change-Id: I6797ab9d5a9d0ff26d9ce999214e6040f01e3e95
parent 09e70173
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -73,14 +73,10 @@ import android.widget.ImageView;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;

import com.android.app.viewcapture.ViewCapture;
import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.res.R;

import kotlin.Lazy;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -108,8 +104,6 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
    private SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
    @Mock
    private MagnificationModeSwitch.ClickListener mClickListener;
    @Mock
    private Lazy<ViewCapture> mLazyViewCapture;
    private TestableWindowManager mWindowManager;
    private ViewPropertyAnimator mViewPropertyAnimator;
    private MagnificationModeSwitch mMagnificationModeSwitch;
@@ -123,7 +117,6 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
        mContext = Mockito.spy(getContext());
        final WindowManager wm = mContext.getSystemService(WindowManager.class);
        mWindowManager = spy(new TestableWindowManager(wm));
        mContext.addMockSystemService(Context.WINDOW_SERVICE, mWindowManager);
        mContext.addMockSystemService(Context.ACCESSIBILITY_SERVICE, mAccessibilityManager);
        mSpyImageView = Mockito.spy(new ImageView(mContext));
        mViewPropertyAnimator = Mockito.spy(mSpyImageView.animate());
@@ -139,10 +132,8 @@ public class MagnificationModeSwitchTest extends SysuiTestCase {
            return null;
        }).when(mSfVsyncFrameProvider).postFrameCallback(
                any(Choreographer.FrameCallback.class));
        ViewCaptureAwareWindowManager vwm = new ViewCaptureAwareWindowManager(mWindowManager,
                mLazyViewCapture, false);
        mMagnificationModeSwitch = new MagnificationModeSwitch(mContext, mSpyImageView,
                mSfVsyncFrameProvider, mClickListener, vwm);
        mMagnificationModeSwitch = new MagnificationModeSwitch(mContext, mWindowManager,
                mSpyImageView, mSfVsyncFrameProvider, mClickListener);
        assertNotNull(mTouchListener);
    }

+4 −5
Original line number Diff line number Diff line
@@ -24,11 +24,11 @@ import android.provider.Settings;
import android.testing.TestableLooper;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;

import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.systemui.SysuiTestCase;

import org.junit.After;
@@ -51,8 +51,6 @@ public class ModeSwitchesControllerTest extends SysuiTestCase {
    private View mSpyView;
    @Mock
    private MagnificationModeSwitch.ClickListener mListener;
    @Mock
    private ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;


    @Before
@@ -61,8 +59,9 @@ public class ModeSwitchesControllerTest extends SysuiTestCase {
        mSupplier = new FakeSwitchSupplier(mContext.getSystemService(DisplayManager.class));
        mModeSwitchesController = new ModeSwitchesController(mSupplier);
        mModeSwitchesController.setClickListenerDelegate(mListener);
        mModeSwitch = Mockito.spy(new MagnificationModeSwitch(mContext, mModeSwitchesController,
                mViewCaptureAwareWindowManager));
        WindowManager wm = mContext.getSystemService(WindowManager.class);
        mModeSwitch = Mockito.spy(new MagnificationModeSwitch(mContext, wm,
                mModeSwitchesController));
        mSpyView = Mockito.spy(new View(mContext));
    }

+10 −13
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.widget.ImageView;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.res.R;
@@ -77,7 +76,6 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
    private final Context mContext;
    private final AccessibilityManager mAccessibilityManager;
    private final WindowManager mWindowManager;
    private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;
    private final ImageView mImageView;
    private final Runnable mWindowInsetChangeRunnable;
    private final SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
@@ -101,21 +99,20 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
        void onClick(int displayId);
    }

    MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
        this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener,
                viewCaptureAwareWindowManager);
    MagnificationModeSwitch(@UiContext Context context, WindowManager windowManager,
            ClickListener clickListener) {
        this(context, windowManager, createView(context), new SfVsyncFrameCallbackProvider(),
                clickListener);
    }

    @VisibleForTesting
    MagnificationModeSwitch(Context context, @NonNull ImageView imageView,
            SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
    MagnificationModeSwitch(Context context, WindowManager windowManager,
            @NonNull ImageView imageView, SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
            ClickListener clickListener) {
        mContext = context;
        mConfiguration = new Configuration(context.getResources().getConfiguration());
        mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
        mWindowManager = mContext.getSystemService(WindowManager.class);
        mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager;
        mWindowManager = windowManager;
        mSfVsyncFrameProvider = sfVsyncFrameProvider;
        mClickListener = clickListener;
        mParams = createLayoutParams(context);
@@ -282,7 +279,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
        mImageView.animate().cancel();
        mIsFadeOutAnimating = false;
        mImageView.setAlpha(0f);
        mViewCaptureAwareWindowManager.removeView(mImageView);
        mWindowManager.removeView(mImageView);
        mContext.unregisterComponentCallbacks(this);
        mIsVisible = false;
    }
@@ -316,7 +313,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
                mParams.y = mDraggableWindowBounds.bottom;
                mToLeftScreenEdge = false;
            }
            mViewCaptureAwareWindowManager.addView(mImageView, mParams);
            mWindowManager.addView(mImageView, mParams);
            // Exclude magnification switch button from system gesture area.
            setSystemGestureExclusion();
            mIsVisible = true;
+10 −9
Original line number Diff line number Diff line
@@ -24,10 +24,11 @@ import android.annotation.MainThread;
import android.content.Context;
import android.hardware.display.DisplayManager;
import android.view.Display;
import android.view.WindowManager;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.utils.windowmanager.WindowManagerProvider;

import javax.inject.Inject;

@@ -49,9 +50,9 @@ public class ModeSwitchesController implements ClickListener {

    @Inject
    public ModeSwitchesController(Context context, DisplayManager displayManager,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
            WindowManagerProvider windowManagerProvider) {
        mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick,
                viewCaptureAwareWindowManager);
                windowManagerProvider);
    }

    @VisibleForTesting
@@ -118,7 +119,7 @@ public class ModeSwitchesController implements ClickListener {

        private final Context mContext;
        private final ClickListener mClickListener;
        private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager;
        private final WindowManagerProvider mWindowManagerProvider;

        /**
         * Supplies the switch for the given display.
@@ -128,20 +129,20 @@ public class ModeSwitchesController implements ClickListener {
         * @param clickListener The callback that will run when the switch is clicked
         */
        SwitchSupplier(Context context, DisplayManager displayManager,
                ClickListener clickListener,
                ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) {
                ClickListener clickListener, WindowManagerProvider windowManagerProvider) {
            super(displayManager);
            mContext = context;
            mClickListener = clickListener;
            mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager;
            mWindowManagerProvider = windowManagerProvider;
        }

        @Override
        protected MagnificationModeSwitch createInstance(Display display) {
            final Context uiContext = mContext.createWindowContext(display,
                    TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
            return new MagnificationModeSwitch(uiContext, mClickListener,
                    mViewCaptureAwareWindowManager);
            final WindowManager uiWindowManager = mWindowManagerProvider
                    .getWindowManager(uiContext);
            return new MagnificationModeSwitch(uiContext, uiWindowManager, mClickListener);
        }
    }
}