16a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistpackage com.android.server.wifi.anqp; 26a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 36a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.net.ProtocolException; 46a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.nio.ByteBuffer; 56a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.nio.charset.StandardCharsets; 66a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.util.ArrayList; 76a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.util.Collections; 86a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistimport java.util.List; 96a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 106a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist/** 116a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist * The Domain Name ANQP Element, IEEE802.11-2012 section 8.4.4.15 126a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist */ 136a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvistpublic class DomainNameElement extends ANQPElement { 146a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist private final List<String> mDomains; 156a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 166a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public DomainNameElement(Constants.ANQPElementType infoID, ByteBuffer payload) 176a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist throws ProtocolException { 186a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist super(infoID); 1905d2f4e6f26834a94b53187e6121379a16749088Jan Nordqvist mDomains = new ArrayList<>(); 206a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 216a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist while (payload.hasRemaining()) { 226a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist // Use latin-1 to decode for now - safe for ASCII and retains encoding 236a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist mDomains.add(Constants.getPrefixedString(payload, 1, StandardCharsets.ISO_8859_1)); 246a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 256a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 266a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 276a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public List<String> getDomains() { 286a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist return Collections.unmodifiableList(mDomains); 296a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 306a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist 316a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist @Override 326a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist public String toString() { 3377f2b82a2e80af8da52c22d69a76def6d4209757Jan Nordqvist return "DomainName{" + 346a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist "mDomains=" + mDomains + 356a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist '}'; 366a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist } 376a3903fed590e369b576bddbe1ae2d788768ddfeJan Nordqvist} 38