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

Commit c12a2446 authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android (Google) Code Review
Browse files

Merge "Use Map for DnsSd TXT record" into jb-dev

parents ff63d5cf 527ba07b
Loading
Loading
Loading
Loading
+2 −18
Original line number Diff line number Diff line
@@ -12705,22 +12705,6 @@ package android.net.http {
package android.net.nsd {
  public class DnsSdTxtRecord implements android.os.Parcelable {
    ctor public DnsSdTxtRecord();
    ctor public DnsSdTxtRecord(byte[]);
    ctor public DnsSdTxtRecord(android.net.nsd.DnsSdTxtRecord);
    method public boolean contains(java.lang.String);
    method public int describeContents();
    method public java.lang.String get(java.lang.String);
    method public byte[] getRawData();
    method public int keyCount();
    method public int remove(java.lang.String);
    method public void set(java.lang.String, java.lang.String);
    method public int size();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator CREATOR;
  }
  public final class NsdManager {
    method public void discoverServices(java.lang.String, int, android.net.nsd.NsdManager.DiscoveryListener);
    method public void registerService(android.net.nsd.NsdServiceInfo, int, android.net.nsd.NsdManager.RegistrationListener);
@@ -13342,7 +13326,7 @@ package android.net.wifi.p2p {
  }
  public static abstract interface WifiP2pManager.DnsSdTxtRecordListener {
    method public abstract void onDnsSdTxtRecordAvailable(java.lang.String, android.net.nsd.DnsSdTxtRecord, android.net.wifi.p2p.WifiP2pDevice);
    method public abstract void onDnsSdTxtRecordAvailable(java.lang.String, java.util.Map<java.lang.String, java.lang.String>, android.net.wifi.p2p.WifiP2pDevice);
  }
  public static abstract interface WifiP2pManager.GroupInfoListener {
@@ -13366,7 +13350,7 @@ package android.net.wifi.p2p {
package android.net.wifi.p2p.nsd {
  public class WifiP2pDnsSdServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo newInstance(java.lang.String, java.lang.String, android.net.nsd.DnsSdTxtRecord);
    method public static android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo newInstance(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
  }
  public class WifiP2pDnsSdServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import java.util.Arrays;
 *
 * The DnsSdTxtRecord object stores the entire TXT data as a single byte array, traversing it
 * as need be to implement its various methods.
 * @hide
 *
 */
public class DnsSdTxtRecord implements Parcelable {
+3 −3
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.annotation.SdkConstant.SdkConstantType;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.IConnectivityManager;
import android.net.nsd.DnsSdTxtRecord;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceResponse;
import android.net.wifi.p2p.nsd.WifiP2pServiceInfo;
@@ -46,6 +45,7 @@ import com.android.internal.util.Protocol;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * This class provides the API for managing Wi-Fi peer-to-peer connectivity. This lets an
@@ -585,11 +585,11 @@ public class WifiP2pManager {
         *
         * @param fullDomainName full domain name. <br>
         * e.g) "MyPrinter._ipp._tcp.local.".
         * @param record txt record.
         * @param txtRecordMap TXT record data as a map of key/value pairs
         * @param srcDevice source device.
         */
        public void onDnsSdTxtRecordAvailable(String fullDomainName,
                DnsSdTxtRecord record,
                Map<String, String> txtRecordMap,
                WifiP2pDevice srcDevice);
   }

+7 −4
Original line number Diff line number Diff line
@@ -83,19 +83,22 @@ public class WifiP2pDnsSdServiceInfo extends WifiP2pServiceInfo {
     *  e.g) "MyPrinter"
     * @param serviceType service type.<br>
     *  e.g) "_ipp._tcp"
     * @param txtRecord TXT record as defined at
     * @param txtMap TXT record with key/value pair in a map confirming to format defined at
     * http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt
     * @return Bonjour service information object
     */
    public static WifiP2pDnsSdServiceInfo newInstance(String instanceName,
            String serviceType, DnsSdTxtRecord txtRecord) {
            String serviceType, Map<String, String> txtMap) {
        if (TextUtils.isEmpty(instanceName) || TextUtils.isEmpty(serviceType)) {
            throw new IllegalArgumentException(
                    "instance name or service type cannot be empty");
        }

        if (txtRecord == null) {
            txtRecord = new DnsSdTxtRecord();
        DnsSdTxtRecord txtRecord = new DnsSdTxtRecord();
        if (txtMap != null) {
            for (String key : txtMap.keySet()) {
                txtRecord.set(key, txtMap.get(key));
            }
        }

        ArrayList<String> queries = new ArrayList<String>();
+12 −16
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.net.wifi.p2p.nsd;

import android.net.nsd.DnsSdTxtRecord;
import android.net.wifi.p2p.WifiP2pDevice;

import java.io.ByteArrayInputStream;
@@ -68,7 +67,7 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
     * This field is only used when the dns type equals to
     * {@link WifiP2pDnsSdServiceInfo#DNS_TYPE_TXT}.
     */
    private DnsSdTxtRecord mTxtRecord;
    private final HashMap<String, String> mTxtRecord = new HashMap<String, String>();

    /**
     * Virtual memory packet.
@@ -121,7 +120,7 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
     * Return TXT record data.
     * @return TXT record data.
     */
    public DnsSdTxtRecord getTxtRecord() {
    public Map<String, String> getTxtRecord() {
        return mTxtRecord;
    }

@@ -133,8 +132,9 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
        sbuf.append(" srcAddr:").append(mDevice.deviceAddress);
        sbuf.append(" version:").append(String.format("%02x", mVersion));
        sbuf.append(" dnsName:").append(mDnsQueryName);
        if (mTxtRecord != null) {
            sbuf.append(" TxtRecord:").append(mTxtRecord);
        sbuf.append(" TxtRecord:");
        for (String key : mTxtRecord.keySet()) {
            sbuf.append(" key:").append(key).append(" value:").append(mTxtRecord.get(key));
        }
        if (mInstanceName != null) {
            sbuf.append(" InsName:").append(mInstanceName);
@@ -205,10 +205,7 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
            mInstanceName = rData.substring(0,
                    rData.length() - mDnsQueryName.length() -1);
        } else if (mDnsType == WifiP2pDnsSdServiceInfo.DNS_TYPE_TXT) {
            mTxtRecord = readTxtData(dis);
            if (mTxtRecord == null) {
                return false;
            }
            return readTxtData(dis);
        } else {
            return false;
        }
@@ -261,10 +258,9 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
     * Read TXT record data.
     *
     * @param dis
     * @return TXT record data
     * @return true if TXT data is valid
     */
    private DnsSdTxtRecord readTxtData(DataInputStream dis) {
        DnsSdTxtRecord txtRecord = new DnsSdTxtRecord();
    private boolean readTxtData(DataInputStream dis) {
        try {
            while (dis.available() > 0) {
                int len = dis.readUnsignedByte();
@@ -275,15 +271,15 @@ public class WifiP2pDnsSdServiceResponse extends WifiP2pServiceResponse {
                dis.readFully(data);
                String[] keyVal = new String(data).split("=");
                if (keyVal.length != 2) {
                    return null;
                    return false;
                }
                txtRecord.set(keyVal[0], keyVal[1]);
                mTxtRecord.put(keyVal[0], keyVal[1]);
            }
            return txtRecord;
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
        return false;
    }

    /**