From 71b8a0456ca34726803ad8ada2d37da1720bc408 Mon Sep 17 00:00:00 2001 From: Alistair Delva Date: Wed, 24 Jun 2020 22:14:29 +0000 Subject: [PATCH] Revert "Enable IMS and its config context to obtain UI component" Revert "Verify IMS to get display and WM" Revert submission 11823238-ims_ui_context Reason for revert: Broke the following tests: android.os.cts.StrictModeTest#testIncorrectContextUse_GetDisplay android.os.cts.StrictModeTest#testIncorrectContextUse_GetSystemService android.os.cts.StrictModeTest#testIncorrectContextUse_GetViewConfiguration But was submitted with a bypass. Reverted Changes: I688b46a92:Verify IMS to get display and WM I172ceb2e1:Enable IMS and its config context to obtain UI com... Bug: 157027563 Bug: 159795597 Change-Id: Id309faac0ac8f60ee0d92c26767a89f450ddc455 --- core/java/android/app/ContextImpl.java | 7 ++----- core/java/android/view/ViewConfiguration.java | 5 ++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index a828aac78dede..86a3579effe1f 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -1900,13 +1900,11 @@ class ContextImpl extends Context { @Override public Object getSystemService(String name) { - // We may override this API from outer context. - final boolean isUiContext = isUiContext() || getOuterContext().isUiContext(); // Check incorrect Context usage. - if (isUiComponent(name) && !isUiContext && vmIncorrectContextUseEnabled()) { + if (isUiComponent(name) && !isUiContext() && vmIncorrectContextUseEnabled()) { final String errorMessage = "Tried to access visual service " + SystemServiceRegistry.getSystemServiceClassName(name) - + " from a non-visual Context:" + getOuterContext(); + + " from a non-visual Context. "; final String message = "Visual services, such as WindowManager, WallpaperService or " + "LayoutInflater should be accessed from Activity or other visual Context. " + "Use an Activity or a Context created with " @@ -2371,7 +2369,6 @@ class ContextImpl extends Context { context.setResources(createResources(mToken, mPackageInfo, mSplitName, displayId, overrideConfiguration, getDisplayAdjustments(displayId).getCompatibilityInfo(), mResources.getLoaders())); - context.mIsUiContext = isUiContext() || getOuterContext().isUiContext(); return context; } diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index ffeeb806ba54f..0d2d4d13eb387 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -500,13 +500,12 @@ public class ViewConfiguration { */ public static ViewConfiguration get(Context context) { if (!context.isUiContext() && vmIncorrectContextUseEnabled()) { - final String errorMessage = "Tried to access UI constants from a non-visual Context:" - + context; + final String errorMessage = "Tried to access UI constants from a non-visual Context."; final String message = "UI constants, such as display metrics or window metrics, " + "must be accessed from Activity or other visual Context. " + "Use an Activity or a Context created with " + "Context#createWindowContext(int, Bundle), which are adjusted to the " - + "configuration and visual bounds of an area on screen"; + + "configuration and visual bounds of an area on screen."; final Exception exception = new IllegalArgumentException(errorMessage); StrictMode.onIncorrectContextUsed(message, exception); Log.e(TAG, errorMessage + message, exception);