From a9920b8e8d81c9c4862bc6876be35ee8c3a19e13 Mon Sep 17 00:00:00 2001 From: Arthur Ishiguro Date: Thu, 18 Feb 2021 15:16:41 -0800 Subject: [PATCH] Plumb attribution tag from Sensor Manager Bug: 171922082 Test: Compile Change-Id: I50a9ea96a9cfb17634942939f95b7a45b4d6f426 --- .../android/hardware/SystemSensorManager.java | 5 ++- core/jni/android_hardware_SensorManager.cpp | 38 +++++++++---------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java index 1ffd18fc1ac8c..788afe3bdb8ef 100644 --- a/core/java/android/hardware/SystemSensorManager.java +++ b/core/java/android/hardware/SystemSensorManager.java @@ -667,7 +667,7 @@ public class SystemSensorManager extends SensorManager { private abstract static class BaseEventQueue { private static native long nativeInitBaseEventQueue(long nativeManager, WeakReference 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; } diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp index 5b327d40ac69d..d0504fb481ca9 100644 --- a/core/jni/android_hardware_SensorManager.cpp +++ b/core/jni/android_hardware_SensorManager.cpp @@ -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); ScopedUtfChars packageUtf(env, packageName); String8 clientName(packageUtf.c_str()); - sp queue(mgr->createEventQueue(clientName, mode)); + + String16 attributionTagName(""); + if (attributionTag != nullptr) { + ScopedUtfChars attrUtf(env, attributionTag); + attributionTagName = String16(attrUtf.c_str()); + } + sp queue(mgr->createEventQueue(clientName, mode, attributionTagName)); if (queue == NULL) { jniThrowRuntimeException(env, "Cannot construct native SensorEventQueue."); @@ -517,29 +524,20 @@ static const JNINativeMethod gSystemSensorManagerMethods[] = { }; static const JNINativeMethod gBaseEventQueueMethods[] = { - {"nativeInitBaseEventQueue", - "(JLjava/lang/ref/WeakReference;Landroid/os/MessageQueue;Ljava/lang/String;ILjava/lang/String;)J", - (void*)nativeInitSensorEventQueue }, + {"nativeInitBaseEventQueue", + "(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