Merge "Change context to WindowContext for non-activity window" into sc-dev

This commit is contained in:
Ryan Lin
2021-03-18 06:34:55 +00:00
committed by Android (Google) Code Review
5 changed files with 18 additions and 13 deletions

View File

@@ -19,6 +19,7 @@ package com.android.systemui.accessibility;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
import android.annotation.NonNull;
import android.annotation.UiContext;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.PixelFormat;
@@ -69,7 +70,7 @@ class MagnificationModeSwitch implements MagnificationGestureDetector.OnGestureL
private final MagnificationGestureDetector mGestureDetector;
private boolean mSingleTapDetected = false;
MagnificationModeSwitch(Context context) {
MagnificationModeSwitch(@UiContext Context context) {
this(context, createView(context));
}

View File

@@ -16,6 +16,8 @@
package com.android.systemui.accessibility;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
import android.annotation.MainThread;
import android.content.Context;
import android.hardware.display.DisplayManager;
@@ -106,10 +108,9 @@ public class ModeSwitchesController {
@Override
protected MagnificationModeSwitch createInstance(Display display) {
final Context context = (display.getDisplayId() == Display.DEFAULT_DISPLAY)
? mContext
: mContext.createDisplayContext(display);
return new MagnificationModeSwitch(context);
final Context uiContext = mContext.createWindowContext(display,
TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
return new MagnificationModeSwitch(uiContext);
}
}
}

View File

@@ -16,6 +16,8 @@
package com.android.systemui.accessibility;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY;
import android.annotation.MainThread;
import android.annotation.Nullable;
import android.content.Context;
@@ -82,9 +84,8 @@ public class WindowMagnification extends SystemUI implements WindowMagnifierCall
@Override
protected WindowMagnificationAnimationController createInstance(Display display) {
final Context context = (display.getDisplayId() == Display.DEFAULT_DISPLAY)
? mContext
: mContext.createDisplayContext(display);
final Context windowContext = mContext.createWindowContext(display,
TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
final WindowMagnificationController controller = new WindowMagnificationController(
mContext,
mHandler, new SfVsyncFrameCallbackProvider(), null,
@@ -92,7 +93,7 @@ public class WindowMagnification extends SystemUI implements WindowMagnifierCall
final int navBarMode = mNavigationModeController.addListener(
controller::onNavigationModeChanged);
controller.onNavigationModeChanged(navBarMode);
return new WindowMagnificationAnimationController(context, controller);
return new WindowMagnificationAnimationController(windowContext, controller);
}
}

View File

@@ -20,6 +20,7 @@ import android.animation.Animator;
import android.animation.ValueAnimator;
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.annotation.UiContext;
import android.content.Context;
import android.content.res.Resources;
import android.os.RemoteException;
@@ -69,8 +70,8 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
@MagnificationState
private int mState = STATE_DISABLED;
WindowMagnificationAnimationController(
Context context, WindowMagnificationController controller) {
WindowMagnificationAnimationController(@UiContext Context context,
WindowMagnificationController controller) {
this(context, controller, newValueAnimator(context.getResources()));
}

View File

@@ -24,6 +24,7 @@ import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UiContext;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
@@ -134,7 +135,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
@Nullable
private MirrorWindowControl mMirrorWindowControl;
WindowMagnificationController(Context context, @NonNull Handler handler,
WindowMagnificationController(@UiContext Context context, @NonNull Handler handler,
SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
MirrorWindowControl mirrorWindowControl, SurfaceControl.Transaction transaction,
@NonNull WindowMagnifierCallback callback) {
@@ -147,7 +148,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
mDisplayId = mContext.getDisplayId();
mRotation = display.getRotation();
mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mWm = context.getSystemService(WindowManager.class);
mResources = mContext.getResources();
mScale = mResources.getInteger(R.integer.magnification_default_scale);