Home | History | Annotate | Download | only in chromoting
      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 
     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 
     36     public ArrayList<String> getTokenUrlPatterns() {
     37         return new ArrayList<String>(mTokenUrlPatterns);
     38     }
     39 
     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