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

Commit f78537af authored by Martin Brabham's avatar Martin Brabham
Browse files

OOB: Return local adapter name in generated OOB Data

Bug: 192475074
Test: Manual, test app.
Tag: #feature
Change-Id: Iee9e0685da998c52d4d20aebb649106625690357
Merged-In: Iee9e0685da998c52d4d20aebb649106625690357
parent 0d1dc0fe
Loading
Loading
Loading
Loading
+38 −0
Original line number Original line Diff line number Diff line
@@ -436,6 +436,25 @@ static jobject createClassicOobDataObject(JNIEnv* env, bt_oob_data_t oob_data) {
  oobDataClassicBuilder =
  oobDataClassicBuilder =
      env->CallObjectMethod(oobDataClassicBuilder, setRMethod, randomizerHash);
      env->CallObjectMethod(oobDataClassicBuilder, setRMethod, randomizerHash);


  jmethodID setNameMethod =
      env->GetMethodID(classicBuilderClass, "setDeviceName",
                       "([B)Landroid/bluetooth/OobData$ClassicBuilder;");

  int name_char_count = 0;
  for (int i = 0; i < OOB_NAME_MAX_SIZE; i++) {
    if (oob_data.device_name[i] == 0) {
      name_char_count = i;
      break;
    }
  }

  jbyteArray deviceName = env->NewByteArray(name_char_count);
  env->SetByteArrayRegion(deviceName, 0, name_char_count,
                          reinterpret_cast<jbyte*>(oob_data.device_name));

  oobDataClassicBuilder =
      env->CallObjectMethod(oobDataClassicBuilder, setNameMethod, deviceName);

  jmethodID buildMethod = env->GetMethodID(classicBuilderClass, "build",
  jmethodID buildMethod = env->GetMethodID(classicBuilderClass, "build",
                                           "()Landroid/bluetooth/OobData;");
                                           "()Landroid/bluetooth/OobData;");


@@ -473,6 +492,25 @@ static jobject createLeOobDataObject(JNIEnv* env, bt_oob_data_t oob_data) {
  oobDataLeBuilder =
  oobDataLeBuilder =
      env->CallObjectMethod(oobDataLeBuilder, setRMethod, randomizerHash);
      env->CallObjectMethod(oobDataLeBuilder, setRMethod, randomizerHash);


  jmethodID setNameMethod =
      env->GetMethodID(leBuilderClass, "setDeviceName",
                       "([B)Landroid/bluetooth/OobData$LeBuilder;");

  int name_char_count = 0;
  for (int i = 0; i < OOB_NAME_MAX_SIZE; i++) {
    if (oob_data.device_name[i] == 0) {
      name_char_count = i;
      break;
    }
  }

  jbyteArray deviceName = env->NewByteArray(name_char_count);
  env->SetByteArrayRegion(deviceName, 0, name_char_count,
                          reinterpret_cast<jbyte*>(oob_data.device_name));

  oobDataLeBuilder =
      env->CallObjectMethod(oobDataLeBuilder, setNameMethod, deviceName);

  jmethodID buildMethod = env->GetMethodID(leBuilderClass, "build",
  jmethodID buildMethod = env->GetMethodID(leBuilderClass, "build",
                                           "()Landroid/bluetooth/OobData;");
                                           "()Landroid/bluetooth/OobData;");