• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 package org.chromium.chromoting;
6 
7 import org.json.JSONArray;
8 import org.json.JSONException;
9 import org.json.JSONObject;
10 
11 import java.util.ArrayList;
12 
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;
21 
HostInfo(String name, String id, String jabberId, String publicKey, ArrayList<String> tokenUrlPatterns, boolean isOnline)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;
34     }
35 
getTokenUrlPatterns()36     public ArrayList<String> getTokenUrlPatterns() {
37         return new ArrayList<String>(mTokenUrlPatterns);
38     }
39 
create(JSONObject json)40     public static HostInfo create(JSONObject json) throws JSONException {
41         assert json != null;
42 
43         ArrayList<String> tokenUrlPatterns = new ArrayList<String>();
44         JSONArray jsonPatterns = json.optJSONArray("tokenUrlPatterns");
45 
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);
51                 }
52             }
53         }
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"));
61     }
62 }
63