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

Commit 29001bba authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android Git Automerger
Browse files

am 43f863ba: am c12a2446: Merge "Use Map for DnsSd TXT record" into jb-dev

* commit '43f863ba':
  Use Map for DnsSd TXT record
parents 602d977e 43f863ba
Loading
Loading
Loading
Loading
+2 −18
Original line number Original line Diff line number Diff line
@@ -12723,22 +12723,6 @@ package android.net.http {
package android.net.nsd {
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 {
  public final class NsdManager {
    method public void discoverServices(java.lang.String, int, android.net.nsd.NsdManager.DiscoveryListener);
    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);
    method public void registerService(android.net.nsd.NsdServiceInfo, int, android.net.nsd.NsdManager.RegistrationListener);
@@ -13360,7 +13344,7 @@ package android.net.wifi.p2p {
  }
  }
  public static abstract interface WifiP2pManager.DnsSdTxtRecordListener {
  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 {
  public static abstract interface WifiP2pManager.GroupInfoListener {
@@ -13384,7 +13368,7 @@ package android.net.wifi.p2p {
package android.net.wifi.p2p.nsd {
package android.net.wifi.p2p.nsd {
  public class WifiP2pDnsSdServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
  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 {
  public class WifiP2pDnsSdServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
+1 −0
Original line number Original line 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
 * The DnsSdTxtRecord object stores the entire TXT data as a single byte array, traversing it
 * as need be to implement its various methods.
 * as need be to implement its various methods.
 * @hide
 *
 *
 */
 */
public class DnsSdTxtRecord implements Parcelable {
public class DnsSdTxtRecord implements Parcelable {
+3 −3
Original line number Original line Diff line number Diff line
@@ -21,7 +21,6 @@ import android.annotation.SdkConstant.SdkConstantType;
import android.content.Context;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager;
import android.net.IConnectivityManager;
import android.net.IConnectivityManager;
import android.net.nsd.DnsSdTxtRecord;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceResponse;
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceResponse;
import android.net.wifi.p2p.nsd.WifiP2pServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pServiceInfo;
@@ -46,6 +45,7 @@ import com.android.internal.util.Protocol;


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


/**
/**
 * This class provides the API for managing Wi-Fi peer-to-peer connectivity. This lets an
 * 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>
         * @param fullDomainName full domain name. <br>
         * e.g) "MyPrinter._ipp._tcp.local.".
         * 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.
         * @param srcDevice source device.
         */
         */
        public void onDnsSdTxtRecordAvailable(String fullDomainName,
        public void onDnsSdTxtRecordAvailable(String fullDomainName,
                DnsSdTxtRecord record,
                Map<String, String> txtRecordMap,
                WifiP2pDevice srcDevice);
                WifiP2pDevice srcDevice);
   }
   }


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


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


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


package android.net.wifi.p2p.nsd;
package android.net.wifi.p2p.nsd;


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


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


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


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


    /**
    /**