|
3 | 3 | import android.content.Context;
|
4 | 4 | import android.os.Parcel;
|
5 | 5 | import android.os.Parcelable;
|
| 6 | +import android.util.JsonReader; |
| 7 | +import android.util.JsonWriter; |
6 | 8 |
|
| 9 | +import java.io.IOException; |
7 | 10 | import java.util.ArrayList;
|
8 | 11 | import java.util.List;
|
9 | 12 | import java.util.UUID;
|
@@ -62,7 +65,7 @@ public DeviceInfo(Context cx) {
|
62 | 65 | this();
|
63 | 66 | DeviceName = cx.getResources().getString(R.string.default_device_name);
|
64 | 67 | SendPort = SharedPrefs.getDefaultSendPort(cx);
|
65 |
| - ReceivePort = SharedPrefs.getDefaultRecvPort(cx); |
| 68 | + ReceivePort = SharedPrefs.getDefaultReceivePort(cx); |
66 | 69 | }
|
67 | 70 |
|
68 | 71 | public DeviceInfo(DeviceInfo other) {
|
@@ -152,4 +155,63 @@ public void updateByDeviceCommand(DeviceCommand c) {
|
152 | 155 | oi.State = c.getIsOn(oi.OutletNumber);
|
153 | 156 | }
|
154 | 157 | }
|
| 158 | + |
| 159 | + public static DeviceInfo fromJSON(JsonReader reader) throws IOException { |
| 160 | + reader.beginObject(); |
| 161 | + DeviceInfo di = new DeviceInfo(); |
| 162 | + while (reader.hasNext()) { |
| 163 | + String name = reader.nextName(); |
| 164 | + if (name.equals("uuid")) { |
| 165 | + di.uuid = UUID.fromString(reader.nextString()); |
| 166 | + } else if (name.equals("DeviceName")) { |
| 167 | + di.DeviceName = reader.nextString(); |
| 168 | + } else if (name.equals("HostName")) { |
| 169 | + di.HostName = reader.nextString(); |
| 170 | + } else if (name.equals("MacAddress")) { |
| 171 | + di.MacAddress = reader.nextString(); |
| 172 | + } else if (name.equals("UserName")) { |
| 173 | + di.UserName = reader.nextString(); |
| 174 | + } else if (name.equals("Password")) { |
| 175 | + di.Password = reader.nextString(); |
| 176 | + } else if (name.equals("DefaultPorts")) { |
| 177 | + di.DefaultPorts = reader.nextBoolean(); |
| 178 | + } else if (name.equals("SendPort")) { |
| 179 | + di.SendPort = reader.nextInt(); |
| 180 | + } else if (name.equals("ReceivePort")) { |
| 181 | + di.ReceivePort = reader.nextInt(); |
| 182 | + } else if (name.equals("Outlets")) { |
| 183 | + di.Outlets = new ArrayList<OutletInfo>(); |
| 184 | + reader.beginArray(); |
| 185 | + while (reader.hasNext()) { |
| 186 | + di.Outlets.add(OutletInfo.fromJSON(reader, di)); |
| 187 | + } |
| 188 | + reader.endArray(); |
| 189 | + } else { |
| 190 | + reader.skipValue(); |
| 191 | + } |
| 192 | + } |
| 193 | + |
| 194 | + di.Configured = true; |
| 195 | + reader.endObject(); |
| 196 | + return di; |
| 197 | + } |
| 198 | + |
| 199 | + public void toJSON(JsonWriter writer) throws IOException { |
| 200 | + writer.beginObject(); |
| 201 | + writer.name("uuid").value(uuid.toString()); |
| 202 | + writer.name("DeviceName").value(DeviceName); |
| 203 | + writer.name("HostName").value(HostName); |
| 204 | + writer.name("MacAddress").value(MacAddress); |
| 205 | + writer.name("UserName").value(UserName); |
| 206 | + writer.name("Password").value(Password); |
| 207 | + writer.name("DefaultPorts").value(DefaultPorts); |
| 208 | + writer.name("SendPort").value(SendPort); |
| 209 | + writer.name("ReceivePort").value(ReceivePort); |
| 210 | + writer.name("Outlets").beginArray(); |
| 211 | + for (OutletInfo oi : Outlets) { |
| 212 | + oi.toJSON(writer); |
| 213 | + } |
| 214 | + writer.endArray(); |
| 215 | + writer.endObject(); |
| 216 | + } |
155 | 217 | }
|
0 commit comments