Add binder interfaces for metadata APIs

Bug: 121051445
Test: build pass

Change-Id: Icd51b7cc0a4dec5a2bffec4ded67caffeedb126b
diff --git a/binder/Android.bp b/binder/Android.bp
index deeac28..cff166b 100644
--- a/binder/Android.bp
+++ b/binder/Android.bp
@@ -35,6 +35,7 @@
         "android/bluetooth/IBluetoothHidDeviceCallback.aidl",
         "android/bluetooth/IBluetoothGatt.aidl",
         "android/bluetooth/IBluetoothGattCallback.aidl",
+        "android/bluetooth/IBluetoothMetadataListener.aidl",
         "android/bluetooth/IBluetoothGattServerCallback.aidl",
         "android/bluetooth/le/IAdvertisingSetCallback.aidl",
         "android/bluetooth/le/IPeriodicAdvertisingCallback.aidl",
@@ -107,6 +108,7 @@
         "android/bluetooth/IBluetoothHidDeviceCallback.aidl",
         "android/bluetooth/IBluetoothGatt.aidl",
         "android/bluetooth/IBluetoothGattCallback.aidl",
+        "android/bluetooth/IBluetoothMetadataListener.aidl",
         "android/bluetooth/IBluetoothGattServerCallback.aidl",
         "android/bluetooth/le/IAdvertisingSetCallback.aidl",
         "android/bluetooth/le/IPeriodicAdvertisingCallback.aidl",
diff --git a/binder/android/bluetooth/IBluetooth.aidl b/binder/android/bluetooth/IBluetooth.aidl
index 25bb828..40a2db4 100644
--- a/binder/android/bluetooth/IBluetooth.aidl
+++ b/binder/android/bluetooth/IBluetooth.aidl
@@ -17,6 +17,7 @@
 package android.bluetooth;
 
 import android.bluetooth.IBluetoothCallback;
+import android.bluetooth.IBluetoothMetadataListener;
 import android.bluetooth.IBluetoothSocketManager;
 import android.bluetooth.IBluetoothStateChangeCallback;
 import android.bluetooth.BluetoothActivityEnergyInfo;
@@ -120,6 +121,13 @@
     int getLeMaximumAdvertisingDataLength();
     BluetoothActivityEnergyInfo reportActivityInfo();
 
+    // For Metadata
+    boolean registerMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device);
+    boolean unregisterMetadataListener(in BluetoothDevice device);
+    boolean setMetadata(in BluetoothDevice device, in int key, in String value);
+    String getMetadata(in BluetoothDevice device, in int key);
+
+
     /**
      * Requests the controller activity info asynchronously.
      * The implementor is expected to reply with the
diff --git a/binder/android/bluetooth/IBluetoothMetadataListener.aidl b/binder/android/bluetooth/IBluetoothMetadataListener.aidl
new file mode 100644
index 0000000..13b5799
--- /dev/null
+++ b/binder/android/bluetooth/IBluetoothMetadataListener.aidl
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.bluetooth;
+
+import android.os.ParcelUuid;
+import android.bluetooth.BluetoothDevice;
+
+/**
+ * Callback definitions for interacting with database change
+ * @hide
+ */
+oneway interface IBluetoothMetadataListener {
+    void onMetadataChanged(in BluetoothDevice devices, in int key, in String value);
+}