private void addDataChannelToLocalPeer()

in src/main/java/com/amazonaws/kinesisvideo/demoapp/activity/WebRtcActivity.java [675:714]


    private void addDataChannelToLocalPeer() {
        Log.d(TAG, "Data channel addDataChannelToLocalPeer");
        DataChannel localDataChannel = localPeer.createDataChannel("data-channel-of-" + mClientId, new DataChannel.Init());
        localDataChannel.registerObserver(new DataChannel.Observer() {
            @Override
            public void onBufferedAmountChange(long l) {
                Log.d(TAG, "Local Data Channel onBufferedAmountChange called with amount " + l);
            }

            @Override
            public void onStateChange() {
                Log.d(TAG, "Local Data Channel onStateChange: state: " + localDataChannel.state().toString());

                if (sendDataChannelButton != null) {
                    runOnUiThread(() -> {
                        if (localDataChannel.state() == DataChannel.State.OPEN) {
                            sendDataChannelButton.setEnabled(true);
                        } else {
                            sendDataChannelButton.setEnabled(false);
                        }
                    });
                }
            }

            @Override
            public void onMessage(DataChannel.Buffer buffer) {
                // Send out data, no op on sender side
            }
        });

        sendDataChannelButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                localDataChannel.send(new DataChannel.Buffer(
                        ByteBuffer.wrap(dataChannelText.getText().toString()
                                .getBytes(Charset.defaultCharset())), false));
                dataChannelText.setText("");
            }
        });
    }