From 30eab1f43074590fb08dd48de0bf786561622eff Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Thu, 24 May 2018 18:25:25 -0700 Subject: [PATCH] Added TestApi to ActivityInfo.isTranslucentOrFloating This would be use to determine the right activity state during CTS test for products that have windowSwipeToDismiss set. Also, dump ActivityRecord.fullscreen to proto for the same reason. Bug: 76207986 Bug: 79167358 Test: atest CtsActivityManagerDeviceTestCases:ActivityLifecycleTests Test: atest CtsActivityManagerDeviceTestCases:ActivityManagerAssistantStackTests Change-Id: Iadc088e9129be088b8a083ebbafd8d20fe26b673 --- api/test-current.txt | 1 + core/java/android/content/pm/ActivityInfo.java | 1 + core/proto/android/server/activitymanagerservice.proto | 1 + services/core/java/com/android/server/am/ActivityRecord.java | 2 ++ 4 files changed, 5 insertions(+) diff --git a/api/test-current.txt b/api/test-current.txt index f0017b93fa811..ba2e4ecd53be6 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -232,6 +232,7 @@ package android.content { package android.content.pm { public class ActivityInfo extends android.content.pm.ComponentInfo implements android.os.Parcelable { + method public static boolean isTranslucentOrFloating(android.content.res.TypedArray); field public static final int RESIZE_MODE_RESIZEABLE = 2; // 0x2 } diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java index 14617116bc7f7..0e91a2927c796 100644 --- a/core/java/android/content/pm/ActivityInfo.java +++ b/core/java/android/content/pm/ActivityInfo.java @@ -1188,6 +1188,7 @@ public class ActivityInfo extends ComponentInfo implements Parcelable { * Determines whether the {@link Activity} is considered translucent or floating. * @hide */ + @TestApi public static boolean isTranslucentOrFloating(TypedArray attributes) { final boolean isTranslucent = attributes.getBoolean(com.android.internal.R.styleable.Window_windowIsTranslucent, diff --git a/core/proto/android/server/activitymanagerservice.proto b/core/proto/android/server/activitymanagerservice.proto index 418e15be8504c..9d2458863c9f4 100644 --- a/core/proto/android/server/activitymanagerservice.proto +++ b/core/proto/android/server/activitymanagerservice.proto @@ -117,6 +117,7 @@ message ActivityRecordProto { optional bool visible = 4; optional bool front_of_task = 5; optional int32 proc_id = 6; + optional bool translucent = 7; } message KeyguardControllerProto { diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java index ef5a5a322aa8f..16f4585c6095e 100644 --- a/services/core/java/com/android/server/am/ActivityRecord.java +++ b/services/core/java/com/android/server/am/ActivityRecord.java @@ -115,6 +115,7 @@ import static com.android.server.am.ActivityRecordProto.FRONT_OF_TASK; import static com.android.server.am.ActivityRecordProto.IDENTIFIER; import static com.android.server.am.ActivityRecordProto.PROC_ID; import static com.android.server.am.ActivityRecordProto.STATE; +import static com.android.server.am.ActivityRecordProto.TRANSLUCENT; import static com.android.server.am.ActivityRecordProto.VISIBLE; import static com.android.server.policy.WindowManagerPolicy.NAV_BAR_LEFT; import static com.android.server.wm.IdentifierProto.HASH_CODE; @@ -2980,6 +2981,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo if (app != null) { proto.write(PROC_ID, app.pid); } + proto.write(TRANSLUCENT, !fullscreen); proto.end(token); } }