Merge "Merge "Inform SurfaceFlinger of which Surface is the RoundedCorners overlay." into oc-dr1-dev am: 48ed8aa4d0 am: e64d0028ae" into oc-mr1-dev-plus-aosp

This commit is contained in:
Android Build Merger (Role)
2017-08-03 13:03:34 +00:00
committed by Android (Google) Code Review
5 changed files with 21 additions and 6 deletions

View File

@@ -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>

View File

@@ -1413,11 +1413,12 @@ public interface WindowManager extends ViewManager {
public static final int PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS = 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.

View File

@@ -119,7 +119,7 @@ public class RoundedCorners extends SystemUI implements Tunable {
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
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;

View File

@@ -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;
}

View File

@@ -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,