Merge "Return correct value at initDataInjection and avoid crash" into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-25 23:18:19 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 3 deletions

View File

@@ -285,17 +285,22 @@ public class SystemSensorManager extends SensorManager {
}
// Initialize a client for data_injection.
if (sInjectEventQueue == null) {
sInjectEventQueue = new InjectEventQueue(mMainLooper, this,
mContext.getPackageName());
try {
sInjectEventQueue = new InjectEventQueue(
mMainLooper, this, mContext.getPackageName());
} catch (RuntimeException e) {
Log.e(TAG, "Cannot create InjectEventQueue: " + e);
}
}
return sInjectEventQueue != null;
} else {
// If data injection is being disabled clean up the native resources.
if (sInjectEventQueue != null) {
sInjectEventQueue.dispose();
sInjectEventQueue = null;
}
return true;
}
return true;
}
}

View File

@@ -427,6 +427,11 @@ static jlong nativeInitSensorEventQueue(JNIEnv *env, jclass clazz, jlong sensorM
String8 clientName(packageUtf.c_str());
sp<SensorEventQueue> queue(mgr->createEventQueue(clientName, mode));
if (queue == NULL) {
jniThrowRuntimeException(env, "Cannot construct native SensorEventQueue.");
return 0;
}
sp<MessageQueue> messageQueue = android_os_MessageQueue_getMessageQueue(env, msgQ);
if (messageQueue == NULL) {
jniThrowRuntimeException(env, "MessageQueue is not initialized.");