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

Commit 5c99851d authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge \"Add state for loading/unloading apps\" into nyc-mr1-dev am:...

Merge "Merge \"Add state for loading/unloading apps\" into nyc-mr1-dev am: 2e42020e" into nyc-mr1-dev-plus-aosp
parents 51649da5 d9a081e2
Loading
Loading
Loading
Loading
+53 −27
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -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;
@@ -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;
        }

@@ -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());
    }
@@ -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;
@@ -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);
+503 −91

File changed.

Preview size limit exceeded, changes collapsed.