Merge "Return correct value at initDataInjection and avoid crash" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1c5b71ec1f
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.");
|
||||
|
||||
Reference in New Issue
Block a user