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

Commit f9b87e74 authored by Jerome Gaillard's avatar Jerome Gaillard Committed by Android (Google) Code Review
Browse files

Merge "Add input-related file to all host builds of runtime" into main

parents 63a13362 ee91cd99
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -82,6 +82,13 @@ cc_library_shared_for_libandroid_runtime {
        "android_util_StringBlock.cpp",
        "android_util_XmlBlock.cpp",
        "android_util_jar_StrictJarFile.cpp",
        "android_view_InputDevice.cpp",
        "android_view_KeyCharacterMap.cpp",
        "android_view_KeyEvent.cpp",
        "android_view_MotionEvent.cpp",
        "android_view_VelocityTracker.cpp",
        "android_view_VerifiedKeyEvent.cpp",
        "android_view_VerifiedMotionEvent.cpp",
        "com_android_internal_util_VirtualRefBasePtr.cpp",
        "core_jni_helpers.cpp",
        ":deviceproductinfoconstants_aidl",
@@ -158,13 +165,9 @@ cc_library_shared_for_libandroid_runtime {
                "android_view_CompositionSamplingListener.cpp",
                "android_view_DisplayEventReceiver.cpp",
                "android_view_InputChannel.cpp",
                "android_view_InputDevice.cpp",
                "android_view_InputEventReceiver.cpp",
                "android_view_InputEventSender.cpp",
                "android_view_InputQueue.cpp",
                "android_view_KeyCharacterMap.cpp",
                "android_view_KeyEvent.cpp",
                "android_view_MotionEvent.cpp",
                "android_view_MotionPredictor.cpp",
                "android_view_PointerIcon.cpp",
                "android_view_Surface.cpp",
@@ -175,9 +178,6 @@ cc_library_shared_for_libandroid_runtime {
                "android_view_SurfaceSession.cpp",
                "android_view_TextureView.cpp",
                "android_view_TunnelModeEnabledListener.cpp",
                "android_view_VelocityTracker.cpp",
                "android_view_VerifiedKeyEvent.cpp",
                "android_view_VerifiedMotionEvent.cpp",
                "android_text_Hyphenator.cpp",
                "android_os_Debug.cpp",
                "android_os_GraphicsEnvironment.cpp",
@@ -394,7 +394,7 @@ cc_library_shared_for_libandroid_runtime {
                "-Wno-unused-function",
            ],
            srcs: [
                "LayoutlibLoader.cpp",
                "platform/host/HostRuntime.cpp",
            ],
            include_dirs: [
                "external/vulkan-headers/include",
@@ -414,6 +414,7 @@ cc_library_shared_for_libandroid_runtime {
                "libhostgraphics",
                "libhwui",
                "libimage_type_recognition",
                "libinput",
                "libjpeg",
                "libpiex",
                "libpng",
@@ -441,16 +442,9 @@ cc_library_shared_for_libandroid_runtime {
                "android_os_MessageQueue.cpp",
                "android_os_Parcel.cpp",

                "android_view_KeyCharacterMap.cpp",
                "android_view_KeyEvent.cpp",
                "android_view_InputChannel.cpp",
                "android_view_InputDevice.cpp",
                "android_view_InputEventReceiver.cpp",
                "android_view_InputEventSender.cpp",
                "android_view_MotionEvent.cpp",
                "android_view_VelocityTracker.cpp",
                "android_view_VerifiedKeyEvent.cpp",
                "android_view_VerifiedMotionEvent.cpp",

                "android_util_AssetManager.cpp",
                "android_util_Binder.cpp",
@@ -458,7 +452,6 @@ cc_library_shared_for_libandroid_runtime {
                "android_util_FileObserver.cpp",
            ],
            static_libs: [
                "libinput",
                "libbinderthreadstateutils",
                "libsqlite",
                "libgui_window_info_static",
+64 −38
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#include <nativehelper/JNIHelp.h>
#include <nativehelper/ScopedUtfChars.h>

#include <sstream>

#include "android_os_Parcel.h"
#include "android_util_Binder.h"
#include "core_jni_helpers.h"
@@ -598,8 +600,8 @@ static void android_view_MotionEvent_nativeApplyTransform(JNIEnv* env, jclass cl

// ----------------- @CriticalNative ------------------------------

static jlong android_view_MotionEvent_nativeCopy(jlong destNativePtr, jlong sourceNativePtr,
        jboolean keepHistory) {
static jlong android_view_MotionEvent_nativeCopy(CRITICAL_JNI_PARAMS_COMMA jlong destNativePtr,
                                                 jlong sourceNativePtr, jboolean keepHistory) {
    MotionEvent* destEvent = reinterpret_cast<MotionEvent*>(destNativePtr);
    if (!destEvent) {
        destEvent = new MotionEvent();
@@ -609,8 +611,8 @@ static jlong android_view_MotionEvent_nativeCopy(jlong destNativePtr, jlong sour
    return reinterpret_cast<jlong>(destEvent);
}

static jlong android_view_MotionEvent_nativeSplit(jlong destNativePtr, jlong sourceNativePtr,
                                                  jint idBits) {
static jlong android_view_MotionEvent_nativeSplit(CRITICAL_JNI_PARAMS_COMMA jlong destNativePtr,
                                                  jlong sourceNativePtr, jint idBits) {
    MotionEvent* destEvent = reinterpret_cast<MotionEvent*>(destNativePtr);
    if (!destEvent) {
        destEvent = new MotionEvent();
@@ -621,168 +623,192 @@ static jlong android_view_MotionEvent_nativeSplit(jlong destNativePtr, jlong sou
    return reinterpret_cast<jlong>(destEvent);
}

static jint android_view_MotionEvent_nativeGetId(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetId(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getId();
}

static jint android_view_MotionEvent_nativeGetDeviceId(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetDeviceId(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getDeviceId();
}

static jint android_view_MotionEvent_nativeGetSource(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetSource(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getSource();
}

static void android_view_MotionEvent_nativeSetSource(jlong nativePtr, jint source) {
static void android_view_MotionEvent_nativeSetSource(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                     jint source) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setSource(source);
}

static jint android_view_MotionEvent_nativeGetDisplayId(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetDisplayId(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getDisplayId();
}

static void android_view_MotionEvent_nativeSetDisplayId(jlong nativePtr, jint displayId) {
static void android_view_MotionEvent_nativeSetDisplayId(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                        jint displayId) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->setDisplayId(displayId);
}

static jint android_view_MotionEvent_nativeGetAction(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetAction(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getAction();
}

static void android_view_MotionEvent_nativeSetAction(jlong nativePtr, jint action) {
static void android_view_MotionEvent_nativeSetAction(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                     jint action) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setAction(action);
}

static int android_view_MotionEvent_nativeGetActionButton(jlong nativePtr) {
static int android_view_MotionEvent_nativeGetActionButton(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getActionButton();
}

static void android_view_MotionEvent_nativeSetActionButton(jlong nativePtr, jint button) {
static void android_view_MotionEvent_nativeSetActionButton(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr, jint button) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setActionButton(button);
}

static jboolean android_view_MotionEvent_nativeIsTouchEvent(jlong nativePtr) {
static jboolean android_view_MotionEvent_nativeIsTouchEvent(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->isTouchEvent();
}

static jint android_view_MotionEvent_nativeGetFlags(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetFlags(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getFlags();
}

static void android_view_MotionEvent_nativeSetFlags(jlong nativePtr, jint flags) {
static void android_view_MotionEvent_nativeSetFlags(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                    jint flags) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setFlags(flags);
}

static jint android_view_MotionEvent_nativeGetEdgeFlags(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetEdgeFlags(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getEdgeFlags();
}

static void android_view_MotionEvent_nativeSetEdgeFlags(jlong nativePtr, jint edgeFlags) {
static void android_view_MotionEvent_nativeSetEdgeFlags(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                        jint edgeFlags) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setEdgeFlags(edgeFlags);
}

static jint android_view_MotionEvent_nativeGetMetaState(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetMetaState(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getMetaState();
}

static jint android_view_MotionEvent_nativeGetButtonState(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetButtonState(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getButtonState();
}

static void android_view_MotionEvent_nativeSetButtonState(jlong nativePtr, jint buttonState) {
static void android_view_MotionEvent_nativeSetButtonState(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                          jint buttonState) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setButtonState(buttonState);
}

static jint android_view_MotionEvent_nativeGetClassification(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetClassification(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return static_cast<jint>(event->getClassification());
}

static void android_view_MotionEvent_nativeOffsetLocation(jlong nativePtr, jfloat deltaX,
        jfloat deltaY) {
static void android_view_MotionEvent_nativeOffsetLocation(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                          jfloat deltaX, jfloat deltaY) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->offsetLocation(deltaX, deltaY);
}

static jfloat android_view_MotionEvent_nativeGetRawXOffset(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetRawXOffset(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getRawXOffset();
}

static jfloat android_view_MotionEvent_nativeGetRawYOffset(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetRawYOffset(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getRawYOffset();
}

static jfloat android_view_MotionEvent_nativeGetXPrecision(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetXPrecision(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getXPrecision();
}

static jfloat android_view_MotionEvent_nativeGetYPrecision(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetYPrecision(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getYPrecision();
}

static jfloat android_view_MotionEvent_nativeGetXCursorPosition(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetXCursorPosition(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getXCursorPosition();
}

static jfloat android_view_MotionEvent_nativeGetYCursorPosition(jlong nativePtr) {
static jfloat android_view_MotionEvent_nativeGetYCursorPosition(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getYCursorPosition();
}

static void android_view_MotionEvent_nativeSetCursorPosition(jlong nativePtr, jfloat x, jfloat y) {
static void android_view_MotionEvent_nativeSetCursorPosition(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr, jfloat x, jfloat y) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setCursorPosition(x, y);
}

static jlong android_view_MotionEvent_nativeGetDownTimeNanos(jlong nativePtr) {
static jlong android_view_MotionEvent_nativeGetDownTimeNanos(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return event->getDownTime();
}

static void android_view_MotionEvent_nativeSetDownTimeNanos(jlong nativePtr, jlong downTimeNanos) {
static void android_view_MotionEvent_nativeSetDownTimeNanos(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr, jlong downTimeNanos) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->setDownTime(downTimeNanos);
}

static jint android_view_MotionEvent_nativeGetPointerCount(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetPointerCount(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return jint(event->getPointerCount());
}

static jint android_view_MotionEvent_nativeFindPointerIndex(jlong nativePtr, jint pointerId) {
static jint android_view_MotionEvent_nativeFindPointerIndex(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr, jint pointerId) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return jint(event->findPointerIndex(pointerId));
}

static jint android_view_MotionEvent_nativeGetHistorySize(jlong nativePtr) {
static jint android_view_MotionEvent_nativeGetHistorySize(
        CRITICAL_JNI_PARAMS_COMMA jlong nativePtr) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    return jint(event->getHistorySize());
}

static void android_view_MotionEvent_nativeScale(jlong nativePtr, jfloat scale) {
static void android_view_MotionEvent_nativeScale(CRITICAL_JNI_PARAMS_COMMA jlong nativePtr,
                                                 jfloat scale) {
    MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
    event->scale(scale);
}
+4 −0
Original line number Diff line number Diff line
include /graphics/java/android/graphics/OWNERS

diegoperez@google.com
jgaillard@google.com
+19 −17
Original line number Diff line number Diff line
@@ -108,13 +108,15 @@ extern int register_android_graphics_HardwareBufferRenderer(JNIEnv* env);
extern int register_android_view_VelocityTracker(JNIEnv* env);
extern int register_com_android_internal_util_VirtualRefBasePtr(JNIEnv* env);

#define REG_JNI(name)      { name }
#define REG_JNI(name) \
    { name }
struct RegJNIRec {
    int (*mProc)(JNIEnv*);
};

// Map of all possible class names to register to their corresponding JNI registration function pointer
// The actual list of registered classes will be determined at runtime via the 'native_classes' System property
// Map of all possible class names to register to their corresponding JNI registration function
// pointer The actual list of registered classes will be determined at runtime via the
// 'native_classes' System property
static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {
        {"android.animation.PropertyValuesHolder",
         REG_JNI(register_android_animation_PropertyValuesHolder)},
@@ -155,7 +157,6 @@ static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {

static int register_jni_procs(const std::unordered_map<std::string, RegJNIRec>& jniRegMap,
                              const vector<string>& classesToRegister, JNIEnv* env) {

    for (const string& className : classesToRegister) {
        if (jniRegMap.at(className).mProc(env) < 0) {
            return -1;
@@ -169,15 +170,14 @@ static int register_jni_procs(const std::unordered_map<std::string, RegJNIRec>&
    return 0;
}

int AndroidRuntime::registerNativeMethods(JNIEnv* env,
        const char* className, const JNINativeMethod* gMethods, int numMethods) {
int AndroidRuntime::registerNativeMethods(JNIEnv* env, const char* className,
                                          const JNINativeMethod* gMethods, int numMethods) {
    return jniRegisterNativeMethods(env, className, gMethods, numMethods);
}

JNIEnv* AndroidRuntime::getJNIEnv() {
    JNIEnv* env;
    if (javaVM->GetEnv((void**) &env, JNI_VERSION_1_6) != JNI_OK)
        return nullptr;
    if (javaVM->GetEnv((void**)&env, JNI_VERSION_1_6) != JNI_OK) return nullptr;
    return env;
}

@@ -189,8 +189,7 @@ static vector<string> parseCsv(const string& csvString) {
    vector<string> result;
    istringstream stream(csvString);
    string segment;
    while(getline(stream, segment, ','))
    {
    while (getline(stream, segment, ',')) {
        result.push_back(segment);
    }
    return result;
@@ -274,7 +273,9 @@ static void* mmapFile(const char* dataFilePath) {
    }

    struct CloseHandleWrapper {
        void operator()(HANDLE h) { CloseHandle(h); }
        void operator()(HANDLE h) {
            CloseHandle(h);
        }
    };
    std::unique_ptr<void, CloseHandleWrapper> mmapHandle(
            CreateFileMapping(file, nullptr, PAGE_READONLY, 0, 0, nullptr));
@@ -384,7 +385,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) {
    // Configuration is stored as java System properties.
    // Get a reference to System.getProperty
    jclass system = FindClassOrDie(env, "java/lang/System");
    jmethodID getPropertyMethod = GetStaticMethodIDOrDie(env, system, "getProperty",
    jmethodID getPropertyMethod =
            GetStaticMethodIDOrDie(env, system, "getProperty",
                                   "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");

    // Java system properties that contain LayoutLib config. The initial values in the map