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

Commit 508c5340 authored by Candice Lo's avatar Candice Lo Committed by Android (Google) Code Review
Browse files

Merge "fix(window magnification):Use SurfaceControlViewHost to create window magnifier" into main

parents 45553d62 08bc5976
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -538,8 +538,8 @@ public class SurfaceControlViewHost {
    }

    private void addWindowToken(WindowManager.LayoutParams attrs) {
        final WindowManagerImpl wm =
                (WindowManagerImpl) mViewRoot.mContext.getSystemService(Context.WINDOW_SERVICE);
        final WindowManager wm =
                (WindowManager) mViewRoot.mContext.getSystemService(Context.WINDOW_SERVICE);
        attrs.token = wm.getDefaultToken();
    }

+8 −0
Original line number Diff line number Diff line
@@ -6109,4 +6109,12 @@ public interface WindowManager extends ViewManager {
        throw new UnsupportedOperationException(
                "getSurfaceControlInputClientToken is not implemented");
    }

    /**
     * @hide
     */
    default @NonNull IBinder getDefaultToken() {
        throw new UnsupportedOperationException(
                "getDefaultToken is not implemented");
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -458,7 +458,9 @@ public final class WindowManagerImpl implements WindowManager {
        return null;
    }

    IBinder getDefaultToken() {
    @Override
    @NonNull
    public IBinder getDefaultToken() {
        return mDefaultToken;
    }

+26 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ import android.util.ArrayMap;
import android.util.Log;
import android.util.SparseArray;
import android.view.IWindow;
import android.view.SurfaceControl;
import android.view.View;
import android.view.accessibility.AccessibilityEvent.EventType;

@@ -2404,4 +2405,29 @@ public final class AccessibilityManager {
            throw re.rethrowFromSystemServer();
        }
    }


    /**
     * Attaches a {@link android.view.SurfaceControl} containing an accessibility overlay to the
     * specified display.
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.INTERNAL_SYSTEM_WINDOW)
    public void attachAccessibilityOverlayToDisplay(
            int displayId, @NonNull SurfaceControl surfaceControl) {
        final IAccessibilityManager service;
        synchronized (mLock) {
            service = getServiceLocked();
            if (service == null) {
                return;
            }
        }
        try {
            service.attachAccessibilityOverlayToDisplay_enforcePermission(
                    displayId, surfaceControl);
        } catch (RemoteException re) {
            throw re.rethrowFromSystemServer();
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.view.accessibility.IMagnificationConnection;
import android.view.InputEvent;
import android.view.IWindow;
import android.view.MagnificationSpec;
import android.view.SurfaceControl;

/**
 * Interface implemented by the AccessibilityManagerService called by
@@ -136,4 +137,7 @@ interface IAccessibilityManager {
        MagnificationSpec magnificationSpec;
    }
    WindowTransformationSpec getWindowTransformationSpec(int windowId);

    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.INTERNAL_SYSTEM_WINDOW)")
    void attachAccessibilityOverlayToDisplay_enforcePermission(int displayId, in SurfaceControl surfaceControl);
}
Loading