Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71b8a045 authored by Alistair Delva's avatar Alistair Delva
Browse files

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
parent d2fd037a
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -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;
    }

+2 −3
Original line number Diff line number Diff line
@@ -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);