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

Commit 235c7199 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge changes from topic "sfinput3"

* changes:
  WindowManager: Communicate with input system by WindowTokens.
  Plumbing for SurfaceControl#setInputWindowInfo.
parents 42c6a1c5 e0a353c6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.input;
package android.view;

/**
 * Functions as a handle for an application that can receive input.
+16 −5
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.view;

import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.os.IBinder;
import android.os.Parcelable;
import android.util.Slog;

@@ -58,6 +59,8 @@ public final class InputChannel implements Parcelable {
    private native void nativeReadFromParcel(Parcel parcel);
    private native void nativeWriteToParcel(Parcel parcel);
    private native void nativeDup(InputChannel target);
    private native IBinder nativeGetToken();
    private native void nativeSetToken(IBinder token);

    private native String nativeGetName();

@@ -169,4 +172,12 @@ public final class InputChannel implements Parcelable {
    public String toString() {
        return getName();
    }

    public IBinder getToken() {
        return nativeGetToken();
    }

    public void setToken(IBinder token) {
        nativeSetToken(token);
    }
}
+2 −6
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.input;
package android.view;

import android.graphics.Region;
import android.view.IWindow;
@@ -34,9 +34,6 @@ public final class InputWindowHandle {
    // The input application handle.
    public final InputApplicationHandle inputApplicationHandle;

    // The window manager's window state.
    public final Object windowState;

    // The client window.
    public final IWindow clientWindow;

@@ -97,9 +94,8 @@ public final class InputWindowHandle {
    private native void nativeDispose();

    public InputWindowHandle(InputApplicationHandle inputApplicationHandle,
            Object windowState, IWindow clientWindow, int displayId) {
            IWindow clientWindow, int displayId) {
        this.inputApplicationHandle = inputApplicationHandle;
        this.windowState = windowState;
        this.clientWindow = clientWindow;
        this.displayId = displayId;
    }
+9 −0
Original line number Diff line number Diff line
@@ -153,6 +153,9 @@ public class SurfaceControl implements Parcelable {

    private static native Display.HdrCapabilities nativeGetHdrCapabilities(IBinder displayToken);

    private static native void nativeSetInputWindowInfo(long transactionObj, long nativeObject,
            InputWindowHandle handle);


    private final CloseGuard mCloseGuard = CloseGuard.get();
    private final String mName;
@@ -1459,6 +1462,12 @@ public class SurfaceControl implements Parcelable {
            return this;
        }

        public Transaction setInputWindowInfo(SurfaceControl sc, InputWindowHandle handle) {
            sc.checkNotReleased();
            nativeSetInputWindowInfo(mNativeObject, sc.mNativeObject, handle);
            return this;
        }

        @UnsupportedAppUsage
        public Transaction setMatrix(SurfaceControl sc,
                float dsdx, float dtdx, float dtdy, float dsdy) {
+2 −2
Original line number Diff line number Diff line
@@ -135,13 +135,13 @@ static const JNINativeMethod gInputApplicationHandleMethods[] = {
        LOG_FATAL_IF(! (var), "Unable to find field " fieldName);

int register_android_server_InputApplicationHandle(JNIEnv* env) {
    int res = jniRegisterNativeMethods(env, "com/android/server/input/InputApplicationHandle",
    int res = jniRegisterNativeMethods(env, "android/view/InputApplicationHandle",
            gInputApplicationHandleMethods, NELEM(gInputApplicationHandleMethods));
    (void) res;  // Faked use when LOG_NDEBUG.
    LOG_FATAL_IF(res < 0, "Unable to register native methods.");

    jclass clazz;
    FIND_CLASS(clazz, "com/android/server/input/InputApplicationHandle");
    FIND_CLASS(clazz, "android/view/InputApplicationHandle");

    GET_FIELD_ID(gInputApplicationHandleClassInfo.ptr, clazz,
            "ptr", "J");
Loading