Merge "Inform SurfaceFlinger of which Surface is the RoundedCorners overlay." into oc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
48ed8aa4d0
@@ -271,6 +271,15 @@ public class SurfaceControl {
|
||||
*/
|
||||
public static final int POWER_MODE_DOZE_SUSPEND = 3;
|
||||
|
||||
/**
|
||||
* A value for windowType used to indicate that the window should be omitted from screenshots
|
||||
* and display mirroring. A temporary workaround until we express such things with
|
||||
* the hierarchy.
|
||||
* TODO: b/64227542
|
||||
* @hide
|
||||
*/
|
||||
public static final int WINDOW_TYPE_DONT_SCREENSHOT = 441731;
|
||||
|
||||
/**
|
||||
* Create a surface with a name.
|
||||
* <p>
|
||||
|
||||
@@ -1405,11 +1405,12 @@ public interface WindowManager extends ViewManager {
|
||||
public static final int PRIVATE_FLAG_TASK_SNAPSHOT = 0x00080000;
|
||||
|
||||
/**
|
||||
* Flag to indicate that this window should be ignored when determining what parts of the
|
||||
* screen can be magnified.
|
||||
* Indicates that this window is the rounded corners overlay present on some
|
||||
* devices this means that it will be excluded from: screenshots,
|
||||
* screen magnification, and mirroring.
|
||||
* @hide
|
||||
*/
|
||||
public static final int PRIVATE_FLAG_NO_MAGNIFICATION_REGION_EFFECT = 0x00100000;
|
||||
public static final int PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY = 0x00100000;
|
||||
|
||||
/**
|
||||
* Control flags that are private to the platform.
|
||||
|
||||
@@ -121,7 +121,7 @@ public class RoundedCorners extends SystemUI implements Tunable {
|
||||
,
|
||||
PixelFormat.TRANSLUCENT);
|
||||
lp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS
|
||||
| WindowManager.LayoutParams.PRIVATE_FLAG_NO_MAGNIFICATION_REGION_EFFECT;
|
||||
| WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
|
||||
lp.setTitle("RoundedOverlay");
|
||||
lp.gravity = Gravity.TOP;
|
||||
return lp;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package com.android.server.wm;
|
||||
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_MAGNIFICATION_OVERLAY;
|
||||
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MAGNIFICATION_REGION_EFFECT;
|
||||
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
|
||||
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
|
||||
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
|
||||
@@ -539,7 +539,7 @@ final class AccessibilityController {
|
||||
WindowState windowState = visibleWindows.valueAt(i);
|
||||
if ((windowState.mAttrs.type == TYPE_MAGNIFICATION_OVERLAY)
|
||||
|| ((windowState.mAttrs.privateFlags
|
||||
& PRIVATE_FLAG_NO_MAGNIFICATION_REGION_EFFECT) != 0)) {
|
||||
& PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY) != 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import static android.app.ActivityManager.StackId;
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
|
||||
import static android.view.WindowManager.LayoutParams.FLAG_SCALED;
|
||||
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
|
||||
@@ -631,6 +632,10 @@ class WindowStateAnimator {
|
||||
return mSurfaceController;
|
||||
}
|
||||
|
||||
if ((mWin.mAttrs.privateFlags & PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY) != 0) {
|
||||
windowType = SurfaceControl.WINDOW_TYPE_DONT_SCREENSHOT;
|
||||
}
|
||||
|
||||
w.setHasSurface(false);
|
||||
|
||||
if (DEBUG_ANIM || DEBUG_ORIENTATION) Slog.i(TAG,
|
||||
|
||||
Reference in New Issue
Block a user