Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / remoting / android / java / src / org / chromium / chromoting / HostInfo.java
blobebc08299f79dc277ad2c0362a7de63b99f42f4fc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.chromium.chromoting;
7 import org.json.JSONArray;
8 import org.json.JSONException;
9 import org.json.JSONObject;
11 import java.util.ArrayList;
13 /** Class to represent a Host returned by {@link HostListLoader}. */
14 public class HostInfo {
15 public final String name;
16 public final String id;
17 public final String jabberId;
18 public final String publicKey;
19 public final boolean isOnline;
20 private final ArrayList<String> mTokenUrlPatterns;
22 public HostInfo(String name,
23 String id,
24 String jabberId,
25 String publicKey,
26 ArrayList<String> tokenUrlPatterns,
27 boolean isOnline) {
28 this.name = name;
29 this.id = id;
30 this.jabberId = jabberId;
31 this.publicKey = publicKey;
32 this.mTokenUrlPatterns = tokenUrlPatterns;
33 this.isOnline = isOnline;
36 public ArrayList<String> getTokenUrlPatterns() {
37 return new ArrayList<String>(mTokenUrlPatterns);
40 public static HostInfo create(JSONObject json) throws JSONException {
41 assert json != null;
43 ArrayList<String> tokenUrlPatterns = new ArrayList<String>();
44 JSONArray jsonPatterns = json.optJSONArray("tokenUrlPatterns");
46 if (jsonPatterns != null) {
47 for (int i = 0; i < jsonPatterns.length(); i++) {
48 String pattern = jsonPatterns.getString(i);
49 if (pattern != null && !pattern.isEmpty()) {
50 tokenUrlPatterns.add(pattern);
54 return new HostInfo(
55 json.getString("hostName"),
56 json.getString("hostId"),
57 json.optString("jabberId"),
58 json.optString("publicKey"),
59 tokenUrlPatterns,
60 json.optString("status").equals("ONLINE"));