androidx.annotation.VisibleForTesting#PROTECTED源码实例Demo

下面列出了androidx.annotation.VisibleForTesting#PROTECTED 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Android-nRF-Mesh-Library   文件: AccessLayer.java
/**
 * Creates an access message
 *
 * @param accessMessage Access message containing the required opcodes and parameters to create access message pdu.
 */
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
final void createAccessMessage(@NonNull final AccessMessage accessMessage) {
    final byte[] opCodes = MeshParserUtils.getOpCode(accessMessage.getOpCode());
    final byte[] parameters = accessMessage.getParameters();
    final ByteBuffer accessMessageBuffer;
    if (parameters != null) {
        accessMessageBuffer = ByteBuffer.allocate(opCodes.length + parameters.length);
        accessMessageBuffer.put(opCodes).put(parameters);
    } else {
        accessMessageBuffer = ByteBuffer.allocate(opCodes.length);
        accessMessageBuffer.put(opCodes);
    }
    final byte[] accessPdu = accessMessageBuffer.array();

    Log.v(TAG, "Created Access PDU " + MeshParserUtils.bytesToHex(accessPdu, false));
    accessMessage.setAccessPdu(accessMessageBuffer.array());
}
 
源代码2 项目: Android-nRF-Mesh-Library   文件: AccessLayer.java
/**
 * Creates an access message
 *
 * @param accessMessage Access message containing the required opcodes and parameters to create access message pdu.
 */
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
final void createCustomAccessMessage(@NonNull final AccessMessage accessMessage) {
    final byte[] parameters = accessMessage.getParameters();
    final byte[] vendorOpcode = MeshParserUtils.createVendorOpCode(accessMessage.getOpCode(),
            accessMessage.getCompanyIdentifier());
    final ByteBuffer accessMessageBuffer;
    if (parameters != null) {
        accessMessageBuffer = ByteBuffer.allocate(vendorOpcode.length + parameters.length);
        accessMessageBuffer.put(vendorOpcode);
        accessMessageBuffer.put(parameters);
    } else {
        accessMessageBuffer = ByteBuffer.allocate(vendorOpcode.length);
        accessMessageBuffer.put(vendorOpcode);
    }
    final byte[] accessPdu = accessMessageBuffer.array();
    Log.v(TAG, "Created Access PDU " + MeshParserUtils.bytesToHex(accessPdu, false));
    accessMessage.setAccessPdu(accessPdu);
}
 
@Override
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
public final void createLowerTransportAccessPDU(@NonNull final AccessMessage message) {
    final byte[] upperTransportPDU = message.getUpperTransportPdu();
    final SparseArray<byte[]> lowerTransportAccessPduMap;
    if (upperTransportPDU.length <= MAX_SEGMENTED_ACCESS_PAYLOAD_LENGTH) {
        message.setSegmented(false);
        final byte[] lowerTransportPDU = createUnsegmentedAccessMessage(message);
        lowerTransportAccessPduMap = new SparseArray<>();
        lowerTransportAccessPduMap.put(0, lowerTransportPDU);
    } else {
        message.setSegmented(true);
        lowerTransportAccessPduMap = createSegmentedAccessMessage(message);
    }

    message.setLowerTransportAccessPdu(lowerTransportAccessPduMap);
}
 
@Override
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
public final void createLowerTransportControlPDU(@NonNull final ControlMessage message) {
    switch (message.getPduType()) {
        case MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION:
            final SparseArray<byte[]> lowerTransportControlPduArray = new SparseArray<>();
            lowerTransportControlPduArray.put(0, message.getTransportControlPdu());
            message.setLowerTransportControlPdu(lowerTransportControlPduArray);
            break;
        case MeshManagerApi.PDU_TYPE_NETWORK:
            final byte[] transportControlPdu = message.getTransportControlPdu();
            if (transportControlPdu.length <= MAX_UNSEGMENTED_CONTROL_PAYLOAD_LENGTH) {
                Log.v(TAG, "Creating unsegmented transport control");
                createUnsegmentedControlMessage(message);
            } else {
                Log.v(TAG, "Creating segmented transport control");
                createSegmentedControlMessage(message);
            }
    }
}
 
源代码5 项目: bitgatt   文件: GattConnection.java
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
synchronized void finish() {
    BluetoothGatt localGatt = this.gatt;
    if (localGatt != null) {
        closeClientIf(localGatt);
        gatt = null;
    }
    clientQueue.stop();
    asynchronousEventListeners.clear();
}
 
/**
 * Creates an unsegmented control.
 *
 * @param message control message.
 */
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
private void createUnsegmentedControlMessage(@NonNull final ControlMessage message) {
    int pduLength;
    final ByteBuffer lowerTransportBuffer;
    message.setSegmented(false);
    final int opCode = message.getOpCode();
    final byte[] parameters = message.getParameters();
    final byte[] upperTransportControlPDU = message.getTransportControlPdu();
    final int header = (byte) ((UNSEGMENTED_HEADER << 7) | opCode);
    if (parameters != null) {
        pduLength = UNSEGMENTED_MESSAGE_HEADER_LENGTH + parameters.length + upperTransportControlPDU.length;
        lowerTransportBuffer = ByteBuffer.allocate(pduLength).order(ByteOrder.BIG_ENDIAN);
        lowerTransportBuffer.put((byte) header);
        lowerTransportBuffer.put(parameters);
    } else {
        pduLength = UNSEGMENTED_MESSAGE_HEADER_LENGTH + upperTransportControlPDU.length;
        lowerTransportBuffer = ByteBuffer.allocate(pduLength).order(ByteOrder.BIG_ENDIAN);
        lowerTransportBuffer.put((byte) header);
    }

    lowerTransportBuffer.put(upperTransportControlPDU);
    final byte[] lowerTransportPDU = lowerTransportBuffer.array();
    Log.v(TAG, "Unsegmented Lower transport control PDU " + MeshParserUtils.bytesToHex(lowerTransportPDU, false));
    final SparseArray<byte[]> lowerTransportControlPduMap = new SparseArray<>();
    lowerTransportControlPduMap.put(0, lowerTransportPDU);
    message.setLowerTransportControlPdu(lowerTransportControlPduMap);
}
 
/**
 * Creates the upper transport access pdu
 *
 * @param message The message required to create the encrypted upper transport pdu
 */
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
void createUpperTransportPDU(@NonNull final Message message) {
    if (message instanceof AccessMessage) {
        //Access message
        final AccessMessage accessMessage = (AccessMessage) message;
        final byte[] encryptedTransportPDU = encryptUpperTransportPDU(accessMessage);
        Log.v(TAG, "Encrypted upper transport pdu: " + MeshParserUtils.bytesToHex(encryptedTransportPDU, false));
        accessMessage.setUpperTransportPdu(encryptedTransportPDU);
    } else {
        final ControlMessage controlMessage = (ControlMessage) message;
        final int opCode = controlMessage.getOpCode();
        final byte[] parameters = controlMessage.getParameters();
        final ByteBuffer accessMessageBuffer;
        if (parameters != null) {
            accessMessageBuffer = ByteBuffer.allocate(PROXY_CONFIG_OPCODE_LENGTH + parameters.length)
                    .order(ByteOrder.BIG_ENDIAN)
                    .put((byte) opCode)
                    .put(parameters);
        } else {
            accessMessageBuffer = ByteBuffer.allocate(PROXY_CONFIG_OPCODE_LENGTH);
            accessMessageBuffer.put((byte) opCode);
        }
        final byte[] accessPdu = accessMessageBuffer.array();

        Log.v(TAG, "Created Transport Control PDU " + MeshParserUtils.bytesToHex(accessPdu, false));
        controlMessage.setTransportControlPdu(accessPdu);
    }
}
 
源代码8 项目: Android-nRF-Mesh-Library   文件: MeshTransport.java
/**
 * Constructs MeshTransport
 *
 * @param context Context
 * @param node    Mesh node
 */
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
MeshTransport(@NonNull final Context context, @NonNull final ProvisionedMeshNode node) {
    super();
    this.mContext = context;
    this.mMeshNode = node;
    initHandler();
}
 
源代码9 项目: bitgatt   文件: GattServerConnection.java
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
synchronized void finish() {
    if(serverQueue != null) {
        serverQueue.stop();
    }
}
 
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
@RestrictTo(RestrictTo.Scope.LIBRARY)
public ProvisionedMeshNode() { }
 
源代码11 项目: Android-nRF-Mesh-Library   文件: NetworkLayer.java
@SuppressWarnings("ConstantConditions")
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
final Message createRetransmitNetworkLayerPDU(@NonNull final Message message, final int segment) {
    final SecureUtils.K2Output k2Output = getK2Output(message);
    final int nid = k2Output.getNid();
    final byte[] encryptionKey = k2Output.getEncryptionKey();
    Log.v(TAG, "Encryption key: " + MeshParserUtils.bytesToHex(encryptionKey, false));

    final byte[] privacyKey = k2Output.getPrivacyKey();
    Log.v(TAG, "Privacy key: " + MeshParserUtils.bytesToHex(privacyKey, false));
    final int ctl = message.getCtl();
    final int ttl = message.getTtl();
    final int ivi = message.getIvIndex()[3] & 0x01; // least significant bit of IV Index
    final byte iviNID = (byte) ((ivi << 7) | nid);
    final byte ctlTTL = (byte) ((ctl << 7) | ttl);

    final int src = message.getSrc();
    final SparseArray<byte[]> lowerTransportPduMap;
    if (message instanceof AccessMessage) {
        lowerTransportPduMap = ((AccessMessage) message).getLowerTransportAccessPdu();
    } else {
        lowerTransportPduMap = ((ControlMessage) message).getLowerTransportControlPdu();
    }

    byte[] encryptedNetworkPayload = null;
    final int pduType = message.getPduType();
    if (message.getPduType() == MeshManagerApi.PDU_TYPE_NETWORK) {
        final ProvisionedMeshNode node = mUpperTransportLayerCallbacks.getNode(message.getSrc());
        final byte[] lowerTransportPdu = lowerTransportPduMap.get(segment);
        node.setSequenceNumber(MeshParserUtils.getSequenceNumber(message.getSequenceNumber()));
        //final int sequenceNumber = node.incrementSequenceNumber();//incrementSequenceNumber(mNetworkLayerCallbacks.getProvisioner(), message.getSequenceNumber());
        final byte[] sequenceNum = MeshParserUtils.getSequenceNumberBytes(node.incrementSequenceNumber());
        message.setSequenceNumber(sequenceNum);

        Log.v(TAG, "Sequence Number: " + MeshParserUtils.bytesToHex(sequenceNum, false));

        final byte[] nonce = createNetworkNonce(ctlTTL, sequenceNum, src, message.getIvIndex());
        encryptedNetworkPayload = encryptPdu(lowerTransportPdu, encryptionKey, nonce, message.getDst(), SecureUtils.getNetMicLength(message.getCtl()));
        if (encryptedNetworkPayload == null)
            return null;
        Log.v(TAG, "Encrypted Network payload: " + MeshParserUtils.bytesToHex(encryptedNetworkPayload, false));
    }

    final SparseArray<byte[]> pduArray = new SparseArray<>();
    if (encryptedNetworkPayload == null)
        return null;

    final byte[] privacyRandom = createPrivacyRandom(encryptedNetworkPayload);
    //Next we create the PECB
    final byte[] pecb = createPECB(message.getIvIndex(), privacyRandom, privacyKey);

    final byte[] header = obfuscateNetworkHeader(ctlTTL, message.getSequenceNumber(), src, pecb);
    final byte[] pdu = ByteBuffer.allocate(1 + 1 + header.length + encryptedNetworkPayload.length).order(ByteOrder.BIG_ENDIAN)
            .put((byte) pduType)
            .put(iviNID)
            .put(header)
            .put(encryptedNetworkPayload)
            .array();
    pduArray.put(segment, pdu);
    message.setNetworkLayerPdu(pduArray);
    return message;
}
 
源代码12 项目: react-native-navigation   文件: ViewController.java
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
public ParentController getParentController() {
    return parentController;
}
 
源代码13 项目: react-native-navigation   文件: AttachMode.java
@VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
public void attach(ViewController tab) {
    ViewGroup view = tab.getView();
    view.setVisibility(tab == initialTab ? View.VISIBLE : View.INVISIBLE);
    parent.addView(view, matchParentWithBehaviour(new BottomTabsBehaviour(tab.getParentController())));
}