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

Commit 66cb2c03 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add possibility to inject broadcast code while adding broadcast source"

parents e3929d79 234704bc
Loading
Loading
Loading
Loading
+53 −3
Original line number Diff line number Diff line
@@ -22,9 +22,14 @@ import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastMetadata;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.widget.Toast;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -72,9 +77,54 @@ public class BroadcastScanActivity extends AppCompatActivity {

            // Set broadcast source on peer only if scan delegator device context is available
            if (device != null) {
                // Start Dialog with the broadcast input details
                AlertDialog.Builder alert = new AlertDialog.Builder(this);
                LayoutInflater inflater = getLayoutInflater();
                alert.setTitle("Add the Broadcast:");

                View alertView =
                        inflater.inflate(R.layout.broadcast_scan_add_encrypted_source_dialog,
                                         null);
                final EditText code_input_text =
                        alertView.findViewById(R.id.broadcast_code_input);
                BluetoothLeBroadcastMetadata.Builder builder = new
                        BluetoothLeBroadcastMetadata.Builder(broadcast);

                alert.setView(alertView).setNegativeButton("Cancel", (dialog, which) -> {
                    // Do nothing
                }).setPositiveButton("Add", (dialog, which) -> {
                    BluetoothLeBroadcastMetadata metadata;
                    if (code_input_text.getText() == null) {
                        Toast.makeText(recyclerView.getContext(), "Invalid broadcast code",
                                Toast.LENGTH_SHORT).show();
                        return;
                    }
                    if (code_input_text.getText().length() == 0) {
                        Toast.makeText(recyclerView.getContext(), "Adding not encrypted broadcast "
                                       + "source broadcastId="
                                       + broadcastId, Toast.LENGTH_SHORT).show();
                        metadata = builder.setEncrypted(false).build();
                    } else {
                        if (code_input_text.getText().length() != 16) {
                            Toast.makeText(recyclerView.getContext(),
                                           "Invalid Broadcast code length",
                                           Toast.LENGTH_SHORT).show();

                            return;
                        }

                        metadata = builder.setBroadcastCode(
                                        code_input_text.getText().toString().getBytes())
                               .setEncrypted(true)
                               .build();
                    }

                    Toast.makeText(recyclerView.getContext(), "Adding broadcast source"
                                    + " broadcastId=" + broadcastId, Toast.LENGTH_SHORT).show();
                mViewModel.addBroadcastSource(device, broadcast);
                    mViewModel.addBroadcastSource(device, metadata);
                });

                alert.show();
            }
        });
        recyclerView.setAdapter(adapter);
+32 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/broadcast_scan_add_encrypted_source_dialog"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="8dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textView22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Broadcast code:" />

        <EditText
            android:id="@+id/broadcast_code_input"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:gravity="start|top"
            android:maxLength="16"
            android:inputType="textMultiLine|textFilter" />
    </LinearLayout>

</LinearLayout>