Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +11 −5 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ 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; Loading Loading @@ -76,6 +77,7 @@ 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; Loading @@ -99,17 +101,21 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL void onClick(int displayId); } MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener) { this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener); MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener, viewCaptureAwareWindowManager); } @VisibleForTesting MagnificationModeSwitch(Context context, @NonNull ImageView imageView, SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener) { SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { mContext = context; mConfiguration = new Configuration(context.getResources().getConfiguration()); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager; mSfVsyncFrameProvider = sfVsyncFrameProvider; mClickListener = clickListener; mParams = createLayoutParams(context); Loading Loading @@ -276,7 +282,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL mImageView.animate().cancel(); mIsFadeOutAnimating = false; mImageView.setAlpha(0f); mWindowManager.removeView(mImageView); mViewCaptureAwareWindowManager.removeView(mImageView); mContext.unregisterComponentCallbacks(this); mIsVisible = false; } Loading Loading @@ -310,7 +316,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL mParams.y = mDraggableWindowBounds.bottom; mToLeftScreenEdge = false; } mWindowManager.addView(mImageView, mParams); mViewCaptureAwareWindowManager.addView(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); mIsVisible = true; Loading packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java +11 −4 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.hardware.display.DisplayManager; import android.view.Display; import com.android.app.viewcapture.ViewCaptureAwareWindowManager; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.dagger.SysUISingleton; Loading @@ -47,8 +48,10 @@ public class ModeSwitchesController implements ClickListener { private ClickListener mClickListenerDelegate; @Inject public ModeSwitchesController(Context context, DisplayManager displayManager) { mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick); public ModeSwitchesController(Context context, DisplayManager displayManager, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick, viewCaptureAwareWindowManager); } @VisibleForTesting Loading Loading @@ -115,6 +118,7 @@ public class ModeSwitchesController implements ClickListener { private final Context mContext; private final ClickListener mClickListener; private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager; /** * Supplies the switch for the given display. Loading @@ -124,17 +128,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) { ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { super(displayManager); mContext = context; mClickListener = clickListener; mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager; } @Override protected MagnificationModeSwitch createInstance(Display display) { final Context uiContext = mContext.createWindowContext(display, TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null); return new MagnificationModeSwitch(uiContext, mClickListener); return new MagnificationModeSwitch(uiContext, mClickListener, mViewCaptureAwareWindowManager); } } } packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -73,10 +73,14 @@ 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; Loading Loading @@ -104,6 +108,8 @@ 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; Loading Loading @@ -133,8 +139,10 @@ 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); mSfVsyncFrameProvider, mClickListener, vwm); assertNotNull(mTouchListener); } Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/ModeSwitchesControllerTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.View; 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; Loading @@ -50,6 +51,8 @@ public class ModeSwitchesControllerTest extends SysuiTestCase { private View mSpyView; @Mock private MagnificationModeSwitch.ClickListener mListener; @Mock private ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager; @Before Loading @@ -58,7 +61,8 @@ 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)); mModeSwitch = Mockito.spy(new MagnificationModeSwitch(mContext, mModeSwitchesController, mViewCaptureAwareWindowManager)); mSpyView = Mockito.spy(new View(mContext)); } Loading Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +11 −5 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ 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; Loading Loading @@ -76,6 +77,7 @@ 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; Loading @@ -99,17 +101,21 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL void onClick(int displayId); } MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener) { this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener); MagnificationModeSwitch(@UiContext Context context, ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { this(context, createView(context), new SfVsyncFrameCallbackProvider(), clickListener, viewCaptureAwareWindowManager); } @VisibleForTesting MagnificationModeSwitch(Context context, @NonNull ImageView imageView, SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener) { SfVsyncFrameCallbackProvider sfVsyncFrameProvider, ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { mContext = context; mConfiguration = new Configuration(context.getResources().getConfiguration()); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager; mSfVsyncFrameProvider = sfVsyncFrameProvider; mClickListener = clickListener; mParams = createLayoutParams(context); Loading Loading @@ -276,7 +282,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL mImageView.animate().cancel(); mIsFadeOutAnimating = false; mImageView.setAlpha(0f); mWindowManager.removeView(mImageView); mViewCaptureAwareWindowManager.removeView(mImageView); mContext.unregisterComponentCallbacks(this); mIsVisible = false; } Loading Loading @@ -310,7 +316,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL mParams.y = mDraggableWindowBounds.bottom; mToLeftScreenEdge = false; } mWindowManager.addView(mImageView, mParams); mViewCaptureAwareWindowManager.addView(mImageView, mParams); // Exclude magnification switch button from system gesture area. setSystemGestureExclusion(); mIsVisible = true; Loading
packages/SystemUI/src/com/android/systemui/accessibility/ModeSwitchesController.java +11 −4 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.hardware.display.DisplayManager; import android.view.Display; import com.android.app.viewcapture.ViewCaptureAwareWindowManager; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.dagger.SysUISingleton; Loading @@ -47,8 +48,10 @@ public class ModeSwitchesController implements ClickListener { private ClickListener mClickListenerDelegate; @Inject public ModeSwitchesController(Context context, DisplayManager displayManager) { mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick); public ModeSwitchesController(Context context, DisplayManager displayManager, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { mSwitchSupplier = new SwitchSupplier(context, displayManager, this::onClick, viewCaptureAwareWindowManager); } @VisibleForTesting Loading Loading @@ -115,6 +118,7 @@ public class ModeSwitchesController implements ClickListener { private final Context mContext; private final ClickListener mClickListener; private final ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager; /** * Supplies the switch for the given display. Loading @@ -124,17 +128,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) { ClickListener clickListener, ViewCaptureAwareWindowManager viewCaptureAwareWindowManager) { super(displayManager); mContext = context; mClickListener = clickListener; mViewCaptureAwareWindowManager = viewCaptureAwareWindowManager; } @Override protected MagnificationModeSwitch createInstance(Display display) { final Context uiContext = mContext.createWindowContext(display, TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null); return new MagnificationModeSwitch(uiContext, mClickListener); return new MagnificationModeSwitch(uiContext, mClickListener, mViewCaptureAwareWindowManager); } } }
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -73,10 +73,14 @@ 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; Loading Loading @@ -104,6 +108,8 @@ 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; Loading Loading @@ -133,8 +139,10 @@ 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); mSfVsyncFrameProvider, mClickListener, vwm); assertNotNull(mTouchListener); } Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/ModeSwitchesControllerTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.view.View; 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; Loading @@ -50,6 +51,8 @@ public class ModeSwitchesControllerTest extends SysuiTestCase { private View mSpyView; @Mock private MagnificationModeSwitch.ClickListener mListener; @Mock private ViewCaptureAwareWindowManager mViewCaptureAwareWindowManager; @Before Loading @@ -58,7 +61,8 @@ 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)); mModeSwitch = Mockito.spy(new MagnificationModeSwitch(mContext, mModeSwitchesController, mViewCaptureAwareWindowManager)); mSpyView = Mockito.spy(new View(mContext)); } Loading