Loading core/java/android/hardware/location/ContextHubService.java +53 −27 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package android.hardware.location; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; Loading Loading @@ -53,10 +58,14 @@ public class ContextHubService extends IContextHubService.Stub { private static final int PRE_LOADED_APP_MEM_REQ = 0; private static final int MSG_HEADER_SIZE = 4; private static final int MSG_FIELD_TYPE = 0; private static final int MSG_FIELD_VERSION = 1; private static final int MSG_FIELD_HUB_HANDLE = 2; private static final int MSG_FIELD_APP_INSTANCE = 3; private static final int HEADER_FIELD_MSG_TYPE = 0; private static final int HEADER_FIELD_MSG_VERSION = 1; private static final int HEADER_FIELD_HUB_HANDLE = 2; private static final int HEADER_FIELD_APP_INSTANCE = 3; private static final int HEADER_FIELD_LOAD_APP_ID_LO = MSG_HEADER_SIZE; private static final int HEADER_FIELD_LOAD_APP_ID_HI = MSG_HEADER_SIZE + 1; private static final int MSG_LOAD_APP_HEADER_SIZE = MSG_HEADER_SIZE + 2; private static final int OS_APP_INSTANCE = -1; Loading Loading @@ -146,11 +155,16 @@ public class ContextHubService extends IContextHubService.Stub { return -1; } int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = contextHubHandle; msgHeader[MSG_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_TYPE] = MSG_LOAD_NANO_APP; int[] msgHeader = new int[MSG_LOAD_APP_HEADER_SIZE]; msgHeader[HEADER_FIELD_HUB_HANDLE] = contextHubHandle; msgHeader[HEADER_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_MSG_TYPE] = MSG_LOAD_NANO_APP; long appId = app.getAppId(); msgHeader[HEADER_FIELD_LOAD_APP_ID_LO] = (int)(appId & 0xFFFFFFFF); msgHeader[HEADER_FIELD_LOAD_APP_ID_HI] = (int)((appId >> 32) & 0xFFFFFFFF); if (nativeSendMessage(msgHeader, app.getAppBinary()) != 0) { return -1; Loading @@ -169,12 +183,14 @@ public class ContextHubService extends IContextHubService.Stub { // Call Native interface here int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[MSG_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_TYPE] = MSG_UNLOAD_NANO_APP; msgHeader[HEADER_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[HEADER_FIELD_APP_INSTANCE] = nanoAppInstanceHandle; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_MSG_TYPE] = MSG_UNLOAD_NANO_APP; if (nativeSendMessage(msgHeader, null) != 0) { byte msg[] = new byte[0]; if (nativeSendMessage(msgHeader, msg) != 0) { return -1; } Loading Loading @@ -222,10 +238,10 @@ public class ContextHubService extends IContextHubService.Stub { checkPermissions(); int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = hubHandle; msgHeader[MSG_FIELD_APP_INSTANCE] = nanoAppHandle; msgHeader[MSG_FIELD_VERSION] = msg.getVersion(); msgHeader[MSG_FIELD_TYPE] = msg.getMsgType(); msgHeader[HEADER_FIELD_HUB_HANDLE] = hubHandle; msgHeader[HEADER_FIELD_APP_INSTANCE] = nanoAppHandle; msgHeader[HEADER_FIELD_MSG_VERSION] = msg.getVersion(); msgHeader[HEADER_FIELD_MSG_TYPE] = msg.getMsgType(); return nativeSendMessage(msgHeader, msg.getData()); } Loading Loading @@ -269,15 +285,17 @@ public class ContextHubService extends IContextHubService.Stub { Log.v(TAG, "No message callbacks registered."); return 0; } ContextHubMessage message = new ContextHubMessage(header[MSG_FIELD_TYPE], header[MSG_FIELD_VERSION], data); ContextHubMessage msg = new ContextHubMessage(header[HEADER_FIELD_MSG_TYPE], header[HEADER_FIELD_MSG_VERSION], data); for (int i = 0; i < callbacksCount; ++i) { IContextHubCallback callback = mCallbacksList.getBroadcastItem(i); try { callback.onMessageReceipt( header[MSG_FIELD_HUB_HANDLE], header[MSG_FIELD_APP_INSTANCE], message); header[HEADER_FIELD_HUB_HANDLE], header[HEADER_FIELD_APP_INSTANCE], msg); } catch (RemoteException e) { Log.i(TAG, "Exception (" + e + ") calling remote callback (" + callback + ")."); continue; Loading Loading @@ -308,12 +326,20 @@ public class ContextHubService extends IContextHubService.Stub { return 0; } private int deleteAppInstance(int appInstanceHandle) { if (mNanoAppHash.remove(appInstanceHandle) == null) { return -1; } return 0; } private void sendVrStateChangeMessageToApp(NanoAppInstanceInfo app, boolean vrModeEnabled) { int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_TYPE] = 0; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[MSG_FIELD_APP_INSTANCE] = app.getHandle(); msgHeader[HEADER_FIELD_MSG_TYPE] = 0; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[HEADER_FIELD_APP_INSTANCE] = app.getHandle(); byte[] data = new byte[1]; data[0] = (byte) ((vrModeEnabled) ? 1 : 0); Loading core/jni/android_hardware_location_ContextHubService.cpp +502 −91 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/hardware/location/ContextHubService.java +53 −27 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package android.hardware.location; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; Loading Loading @@ -53,10 +58,14 @@ public class ContextHubService extends IContextHubService.Stub { private static final int PRE_LOADED_APP_MEM_REQ = 0; private static final int MSG_HEADER_SIZE = 4; private static final int MSG_FIELD_TYPE = 0; private static final int MSG_FIELD_VERSION = 1; private static final int MSG_FIELD_HUB_HANDLE = 2; private static final int MSG_FIELD_APP_INSTANCE = 3; private static final int HEADER_FIELD_MSG_TYPE = 0; private static final int HEADER_FIELD_MSG_VERSION = 1; private static final int HEADER_FIELD_HUB_HANDLE = 2; private static final int HEADER_FIELD_APP_INSTANCE = 3; private static final int HEADER_FIELD_LOAD_APP_ID_LO = MSG_HEADER_SIZE; private static final int HEADER_FIELD_LOAD_APP_ID_HI = MSG_HEADER_SIZE + 1; private static final int MSG_LOAD_APP_HEADER_SIZE = MSG_HEADER_SIZE + 2; private static final int OS_APP_INSTANCE = -1; Loading Loading @@ -146,11 +155,16 @@ public class ContextHubService extends IContextHubService.Stub { return -1; } int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = contextHubHandle; msgHeader[MSG_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_TYPE] = MSG_LOAD_NANO_APP; int[] msgHeader = new int[MSG_LOAD_APP_HEADER_SIZE]; msgHeader[HEADER_FIELD_HUB_HANDLE] = contextHubHandle; msgHeader[HEADER_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_MSG_TYPE] = MSG_LOAD_NANO_APP; long appId = app.getAppId(); msgHeader[HEADER_FIELD_LOAD_APP_ID_LO] = (int)(appId & 0xFFFFFFFF); msgHeader[HEADER_FIELD_LOAD_APP_ID_HI] = (int)((appId >> 32) & 0xFFFFFFFF); if (nativeSendMessage(msgHeader, app.getAppBinary()) != 0) { return -1; Loading @@ -169,12 +183,14 @@ public class ContextHubService extends IContextHubService.Stub { // Call Native interface here int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[MSG_FIELD_APP_INSTANCE] = OS_APP_INSTANCE; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_TYPE] = MSG_UNLOAD_NANO_APP; msgHeader[HEADER_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[HEADER_FIELD_APP_INSTANCE] = nanoAppInstanceHandle; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_MSG_TYPE] = MSG_UNLOAD_NANO_APP; if (nativeSendMessage(msgHeader, null) != 0) { byte msg[] = new byte[0]; if (nativeSendMessage(msgHeader, msg) != 0) { return -1; } Loading Loading @@ -222,10 +238,10 @@ public class ContextHubService extends IContextHubService.Stub { checkPermissions(); int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_HUB_HANDLE] = hubHandle; msgHeader[MSG_FIELD_APP_INSTANCE] = nanoAppHandle; msgHeader[MSG_FIELD_VERSION] = msg.getVersion(); msgHeader[MSG_FIELD_TYPE] = msg.getMsgType(); msgHeader[HEADER_FIELD_HUB_HANDLE] = hubHandle; msgHeader[HEADER_FIELD_APP_INSTANCE] = nanoAppHandle; msgHeader[HEADER_FIELD_MSG_VERSION] = msg.getVersion(); msgHeader[HEADER_FIELD_MSG_TYPE] = msg.getMsgType(); return nativeSendMessage(msgHeader, msg.getData()); } Loading Loading @@ -269,15 +285,17 @@ public class ContextHubService extends IContextHubService.Stub { Log.v(TAG, "No message callbacks registered."); return 0; } ContextHubMessage message = new ContextHubMessage(header[MSG_FIELD_TYPE], header[MSG_FIELD_VERSION], data); ContextHubMessage msg = new ContextHubMessage(header[HEADER_FIELD_MSG_TYPE], header[HEADER_FIELD_MSG_VERSION], data); for (int i = 0; i < callbacksCount; ++i) { IContextHubCallback callback = mCallbacksList.getBroadcastItem(i); try { callback.onMessageReceipt( header[MSG_FIELD_HUB_HANDLE], header[MSG_FIELD_APP_INSTANCE], message); header[HEADER_FIELD_HUB_HANDLE], header[HEADER_FIELD_APP_INSTANCE], msg); } catch (RemoteException e) { Log.i(TAG, "Exception (" + e + ") calling remote callback (" + callback + ")."); continue; Loading Loading @@ -308,12 +326,20 @@ public class ContextHubService extends IContextHubService.Stub { return 0; } private int deleteAppInstance(int appInstanceHandle) { if (mNanoAppHash.remove(appInstanceHandle) == null) { return -1; } return 0; } private void sendVrStateChangeMessageToApp(NanoAppInstanceInfo app, boolean vrModeEnabled) { int[] msgHeader = new int[MSG_HEADER_SIZE]; msgHeader[MSG_FIELD_TYPE] = 0; msgHeader[MSG_FIELD_VERSION] = 0; msgHeader[MSG_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[MSG_FIELD_APP_INSTANCE] = app.getHandle(); msgHeader[HEADER_FIELD_MSG_TYPE] = 0; msgHeader[HEADER_FIELD_MSG_VERSION] = 0; msgHeader[HEADER_FIELD_HUB_HANDLE] = ANY_HUB; msgHeader[HEADER_FIELD_APP_INSTANCE] = app.getHandle(); byte[] data = new byte[1]; data[0] = (byte) ((vrModeEnabled) ? 1 : 0); Loading
core/jni/android_hardware_location_ContextHubService.cpp +502 −91 File changed.Preview size limit exceeded, changes collapsed. Show changes