DomainNameElement.java revision 8ca4ac971a9b862fbd69c57af3a3c0029a6b9f4d
1package com.android.server.wifi.hotspot2.anqp;
2
3import java.net.ProtocolException;
4import java.nio.ByteBuffer;
5import java.nio.charset.StandardCharsets;
6import java.util.ArrayList;
7import java.util.Collections;
8import java.util.List;
9
10/**
11 * The Domain Name ANQP Element, IEEE802.11-2012 section 8.4.4.15
12 */
13public class DomainNameElement extends ANQPElement {
14    private final List<String> mDomains;
15
16    public DomainNameElement(Constants.ANQPElementType infoID, ByteBuffer payload)
17            throws ProtocolException {
18        super(infoID);
19        mDomains = new ArrayList<>();
20
21        while (payload.hasRemaining()) {
22            // Use latin-1 to decode for now - safe for ASCII and retains encoding
23            mDomains.add(Constants.getPrefixedString(payload, 1, StandardCharsets.ISO_8859_1));
24        }
25    }
26
27    public List<String> getDomains() {
28        return Collections.unmodifiableList(mDomains);
29    }
30
31    @Override
32    public String toString() {
33        return "DomainName{" +
34                "mDomains=" + mDomains +
35                '}';
36    }
37}
38