Loading core/java/android/app/ContextImpl.java +10 −10 Original line number Diff line number Diff line Loading @@ -1914,10 +1914,8 @@ class ContextImpl extends Context { @Override public Object getSystemService(String name) { if (vmIncorrectContextUseEnabled()) { // We may override this API from outer context. final boolean isUiContext = isUiContext() || isOuterUiContext(); // Check incorrect Context usage. if (isUiComponent(name) && !isUiContext) { if (isUiComponent(name) && !isSelfOrOuterUiContext()) { final String errorMessage = "Tried to access visual service " + SystemServiceRegistry.getSystemServiceClassName(name) + " from a non-visual Context:" + getOuterContext(); Loading @@ -1934,15 +1932,17 @@ class ContextImpl extends Context { return SystemServiceRegistry.getSystemService(this, name); } private boolean isOuterUiContext() { return getOuterContext() != null && getOuterContext().isUiContext(); } @Override public String getSystemServiceName(Class<?> serviceClass) { return SystemServiceRegistry.getSystemServiceName(serviceClass); } // TODO(b/149463653): check if we still need this method after migrating IMS to WindowContext. private boolean isSelfOrOuterUiContext() { // We may override outer context's isUiContext return isUiContext() || getOuterContext() != null && getOuterContext().isUiContext(); } /** @hide */ @Override public boolean isUiContext() { Loading Loading @@ -2389,7 +2389,7 @@ class ContextImpl extends Context { context.setResources(createResources(mToken, mPackageInfo, mSplitName, displayId, overrideConfiguration, getDisplayAdjustments(displayId).getCompatibilityInfo(), mResources.getLoaders())); context.mIsUiContext = isUiContext() || isOuterUiContext(); context.mIsUiContext = isSelfOrOuterUiContext(); return context; } Loading Loading @@ -2494,7 +2494,7 @@ class ContextImpl extends Context { @Override public Display getDisplay() { if (!mIsSystemOrSystemUiContext && !mIsAssociatedWithDisplay) { if (!mIsSystemOrSystemUiContext && !mIsAssociatedWithDisplay && !isSelfOrOuterUiContext()) { throw new UnsupportedOperationException("Tried to obtain display from a Context not " + "associated with one. Only visual Contexts (such as Activity or one created " + "with Context#createWindowContext) or ones created with " Loading Loading
core/java/android/app/ContextImpl.java +10 −10 Original line number Diff line number Diff line Loading @@ -1914,10 +1914,8 @@ class ContextImpl extends Context { @Override public Object getSystemService(String name) { if (vmIncorrectContextUseEnabled()) { // We may override this API from outer context. final boolean isUiContext = isUiContext() || isOuterUiContext(); // Check incorrect Context usage. if (isUiComponent(name) && !isUiContext) { if (isUiComponent(name) && !isSelfOrOuterUiContext()) { final String errorMessage = "Tried to access visual service " + SystemServiceRegistry.getSystemServiceClassName(name) + " from a non-visual Context:" + getOuterContext(); Loading @@ -1934,15 +1932,17 @@ class ContextImpl extends Context { return SystemServiceRegistry.getSystemService(this, name); } private boolean isOuterUiContext() { return getOuterContext() != null && getOuterContext().isUiContext(); } @Override public String getSystemServiceName(Class<?> serviceClass) { return SystemServiceRegistry.getSystemServiceName(serviceClass); } // TODO(b/149463653): check if we still need this method after migrating IMS to WindowContext. private boolean isSelfOrOuterUiContext() { // We may override outer context's isUiContext return isUiContext() || getOuterContext() != null && getOuterContext().isUiContext(); } /** @hide */ @Override public boolean isUiContext() { Loading Loading @@ -2389,7 +2389,7 @@ class ContextImpl extends Context { context.setResources(createResources(mToken, mPackageInfo, mSplitName, displayId, overrideConfiguration, getDisplayAdjustments(displayId).getCompatibilityInfo(), mResources.getLoaders())); context.mIsUiContext = isUiContext() || isOuterUiContext(); context.mIsUiContext = isSelfOrOuterUiContext(); return context; } Loading Loading @@ -2494,7 +2494,7 @@ class ContextImpl extends Context { @Override public Display getDisplay() { if (!mIsSystemOrSystemUiContext && !mIsAssociatedWithDisplay) { if (!mIsSystemOrSystemUiContext && !mIsAssociatedWithDisplay && !isSelfOrOuterUiContext()) { throw new UnsupportedOperationException("Tried to obtain display from a Context not " + "associated with one. Only visual Contexts (such as Activity or one created " + "with Context#createWindowContext) or ones created with " Loading