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

Commit a9920b8e authored by Arthur Ishiguro's avatar Arthur Ishiguro
Browse files

Plumb attribution tag from Sensor Manager

Bug: 171922082
Test: Compile
Change-Id: I50a9ea96a9cfb17634942939f95b7a45b4d6f426
parent d196216e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -667,7 +667,7 @@ public class SystemSensorManager extends SensorManager {
    private abstract static class BaseEventQueue {
        private static native long nativeInitBaseEventQueue(long nativeManager,
                WeakReference<BaseEventQueue> eventQWeak, MessageQueue msgQ,
                String packageName, int mode, String opPackageName);
                String packageName, int mode, String opPackageName, String attributionTag);
        private static native int nativeEnableSensor(long eventQ, int handle, int rateUs,
                int maxBatchReportLatencyUs);
        private static native int nativeDisableSensor(long eventQ, int handle);
@@ -689,7 +689,8 @@ public class SystemSensorManager extends SensorManager {
            if (packageName == null) packageName = "";
            mNativeSensorEventQueue = nativeInitBaseEventQueue(manager.mNativeInstance,
                    new WeakReference<>(this), looper.getQueue(),
                    packageName, mode, manager.mContext.getOpPackageName());
                    packageName, mode, manager.mContext.getOpPackageName(),
                    manager.mContext.getAttributionTag());
            mCloseGuard.open("dispose");
            mManager = manager;
        }
+18 −20
Original line number Diff line number Diff line
@@ -421,11 +421,18 @@ private:
};

static jlong nativeInitSensorEventQueue(JNIEnv *env, jclass clazz, jlong sensorManager,
        jobject eventQWeak, jobject msgQ, jstring packageName, jint mode) {
                                        jobject eventQWeak, jobject msgQ, jstring packageName,
                                        jint mode, jstring opPackageName, jstring attributionTag) {
    SensorManager* mgr = reinterpret_cast<SensorManager*>(sensorManager);
    ScopedUtfChars packageUtf(env, packageName);
    String8 clientName(packageUtf.c_str());
    sp<SensorEventQueue> queue(mgr->createEventQueue(clientName, mode));

    String16 attributionTagName("");
    if (attributionTag != nullptr) {
        ScopedUtfChars attrUtf(env, attributionTag);
        attributionTagName = String16(attrUtf.c_str());
    }
    sp<SensorEventQueue> queue(mgr->createEventQueue(clientName, mode, attributionTagName));

    if (queue == NULL) {
        jniThrowRuntimeException(env, "Cannot construct native SensorEventQueue.");
@@ -518,28 +525,19 @@ static const JNINativeMethod gSystemSensorManagerMethods[] = {

static const JNINativeMethod gBaseEventQueueMethods[] = {
        {"nativeInitBaseEventQueue",
             "(JLjava/lang/ref/WeakReference;Landroid/os/MessageQueue;Ljava/lang/String;ILjava/lang/String;)J",
         "(JLjava/lang/ref/WeakReference;Landroid/os/MessageQueue;Ljava/lang/String;ILjava/lang/"
         "String;Ljava/lang/String;)J",
         (void *)nativeInitSensorEventQueue},

    {"nativeEnableSensor",
            "(JIII)I",
            (void*)nativeEnableSensor },
        {"nativeEnableSensor", "(JIII)I", (void *)nativeEnableSensor},

    {"nativeDisableSensor",
            "(JI)I",
            (void*)nativeDisableSensor },
        {"nativeDisableSensor", "(JI)I", (void *)nativeDisableSensor},

    {"nativeDestroySensorEventQueue",
            "(J)V",
            (void*)nativeDestroySensorEventQueue },
        {"nativeDestroySensorEventQueue", "(J)V", (void *)nativeDestroySensorEventQueue},

    {"nativeFlushSensor",
            "(J)I",
            (void*)nativeFlushSensor },
        {"nativeFlushSensor", "(J)I", (void *)nativeFlushSensor},

    {"nativeInjectSensorData",
            "(JI[FIJ)I",
            (void*)nativeInjectSensorData },
        {"nativeInjectSensorData", "(JI[FIJ)I", (void *)nativeInjectSensorData},
};

} //unnamed namespace