diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 2 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TaskTests.java | 38 |
2 files changed, 40 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index fe478c60bc32..37a1ebfb76ab 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5119,6 +5119,7 @@ class Task extends TaskFragment { mTranslucentActivityWaiting = r; mPendingConvertFromTranslucentActivity = r; mUndrawnActivitiesBelowTopTranslucent.clear(); + updateTaskDescription(); mHandler.sendEmptyMessageDelayed(TRANSLUCENT_TIMEOUT_MSG, TRANSLUCENT_CONVERSION_TIMEOUT); } @@ -5128,6 +5129,7 @@ class Task extends TaskFragment { + " but is " + r); } mPendingConvertFromTranslucentActivity = null; + updateTaskDescription(); } /** diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java index 1febc9fb4742..1357c216ae4f 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskTests.java @@ -92,6 +92,7 @@ import android.util.Xml; import android.view.Display; import android.view.DisplayInfo; import android.view.SurfaceControl; +import android.view.WindowInsetsController; import android.window.TaskFragmentOrganizer; import androidx.test.filters.MediumTest; @@ -2111,6 +2112,43 @@ public class TaskTests extends WindowTestsBase { assertEquals(Color.RED, task.getTaskDescription().getBackgroundColor()); } + @Test + public void testUpdateTopOpaqueSystemBarsAppearanceWhenActivityBecomesTransparent() { + final Task task = createTask(mDisplayContent); + final ActivityRecord activity = createActivityRecord(task); + final ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(); + td.setSystemBarsAppearance( + WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND); + activity.setTaskDescription(td); + + assertEquals(WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND, + task.getTaskDescription().getTopOpaqueSystemBarsAppearance()); + + activity.setOccludesParent(false); + + assertEquals(0, task.getTaskDescription().getTopOpaqueSystemBarsAppearance()); + } + + @Test + public void testUpdateTopOpaqueSystemBarsAppearanceWhenActivityBecomesOpaque() { + final Task task = createTask(mDisplayContent); + final ActivityRecord activity = createActivityRecord(task); + activity.setOccludesParent(false); + + final ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(); + td.setSystemBarsAppearance( + WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND); + activity.setTaskDescription(td); + + assertEquals(0, task.getTaskDescription().getTopOpaqueSystemBarsAppearance()); + + activity.setOccludesParent(true); + + assertEquals(WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND, + task.getTaskDescription().getTopOpaqueSystemBarsAppearance()); + + } + private Task getTestTask() { return new TaskBuilder(mSupervisor).setCreateActivity(true).build(); } |