diff --git a/core/java/com/android/internal/policy/DecorContext.java b/core/java/com/android/internal/policy/DecorContext.java index 01bedb7b0fc6e..51b41198e272f 100644 --- a/core/java/com/android/internal/policy/DecorContext.java +++ b/core/java/com/android/internal/policy/DecorContext.java @@ -118,4 +118,13 @@ public class DecorContext extends ContextThemeWrapper { } return null; } + + @Override + public boolean isUiContext() { + Context context = mContext.get(); + if (context != null) { + return context.isUiContext(); + } + return false; + } } diff --git a/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java b/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java index 2764a16de33cf..02870a53773e9 100644 --- a/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java +++ b/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java @@ -19,6 +19,7 @@ package com.android.internal.policy; import static android.view.Display.DEFAULT_DISPLAY; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import android.app.Activity; import android.app.EmptyActivity; @@ -102,4 +103,14 @@ public final class DecorContextTest { assertEquals(expectedWm.mContext, actualWm.mContext); }); } + + @Test + public void testIsUiContextFromVisualDecorContext() throws Throwable { + mActivityRule.runOnUiThread(() -> { + Activity activity = mActivityRule.getActivity(); + final DecorContext decorContext = new DecorContext(mContext.getApplicationContext(), + (PhoneWindow) activity.getWindow()); + assertTrue(decorContext.isUiContext()); + }); + } }