Added parsing all known for now types of parameters
parent
d1bacbb62c
commit
b58b7030cf
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.BasicElements;
|
||||
using WatchFace.Elements.ActivityElements;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.ActivityElements
|
||||
{
|
||||
public class FormattedNumber
|
||||
{
|
||||
public Number Number { get; set; }
|
||||
|
||||
public long SuffixImageIndex { get; set; }
|
||||
public long DecimalPointImageIndex { get; set; }
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class AnalogDialFace
|
||||
{
|
||||
public ClockHand Hours { get; set; }
|
||||
public ClockHand Minutes { get; set; }
|
||||
public ClockHand Seconds { get; set; }
|
||||
|
||||
public static AnalogDialFace Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new AnalogDialFace();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Hours = ClockHand.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Minutes = ClockHand.Parse(parameter.Children);
|
||||
break;
|
||||
case 3:
|
||||
result.Seconds = ClockHand.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class ClockHand
|
||||
{
|
||||
public long Unknown { get; set; }
|
||||
public long Color { get; set; }
|
||||
public Coordinates Center { get; set; }
|
||||
public List<Coordinates> Shape { get; set; }
|
||||
public Image CenterImage { get; set; }
|
||||
|
||||
public static ClockHand Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new ClockHand {Shape = new List<Coordinates>()};
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Unknown = parameter.Value;
|
||||
break;
|
||||
case 2:
|
||||
result.Color = parameter.Value;
|
||||
break;
|
||||
case 3:
|
||||
result.Center = Coordinates.Parse(parameter.Children);
|
||||
break;
|
||||
case 4:
|
||||
result.Shape.Add(Coordinates.Parse(parameter.Children));
|
||||
break;
|
||||
case 5:
|
||||
result.CenterImage = Image.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class Coordinates
|
||||
{
|
||||
public long X { get; set; }
|
||||
public long Y { get; set; }
|
||||
|
||||
public static Coordinates Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Coordinates();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.X = parameter.Value;
|
||||
break;
|
||||
case 2:
|
||||
result.Y = parameter.Value;
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class Image
|
||||
{
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class ImageSet
|
||||
{
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class Number
|
||||
{
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class Scale
|
||||
{
|
||||
public long StartImageIndex { get; set; }
|
||||
public List<Coordinates> Segments { get; set; }
|
||||
|
||||
public static Scale Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Scale {Segments = new List<Coordinates>()};
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.StartImageIndex = parameter.Value;
|
||||
break;
|
||||
case 2:
|
||||
result.Segments.Add(Coordinates.Parse(parameter.Children));
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.BasicElements
|
||||
{
|
||||
public class TwoDigits
|
||||
{
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class Battery
|
||||
{
|
||||
public Number Text { get; set; }
|
||||
public ImageSet Icon { get; set; }
|
||||
|
||||
public static Battery Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Battery();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Text = Number.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Icon = ImageSet.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.BasicElements;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Elements.DateElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
namespace WatchFace.Elements.DateElements
|
||||
{
|
||||
public class MonthAndDay
|
||||
{
|
||||
public SeparateMonthAndDay Separate { get; set; }
|
||||
public JoinedNumber Joined { get; set; }
|
||||
public OneLineMonthAndDay Joined { get; set; }
|
||||
public long Unknown1 { get; set; }
|
||||
public long Unknown2 { get; set; }
|
||||
|
||||
|
@ -25,7 +24,7 @@ namespace WatchFace.Elements
|
|||
result.Separate = SeparateMonthAndDay.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Joined = JoinedNumber.Parse(parameter.Children);
|
||||
result.Joined = OneLineMonthAndDay.Parse(parameter.Children);
|
||||
break;
|
||||
case 3:
|
||||
result.Unknown1 = parameter.Value;
|
|
@ -1,20 +1,21 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.DateElements
|
||||
{
|
||||
public class JoinedNumber
|
||||
public class OneLineMonthAndDay
|
||||
{
|
||||
public Number Number { get; set; }
|
||||
public long DelimiterImageIndex { get; set; }
|
||||
|
||||
public static JoinedNumber Parse(List<Parameter> descriptor)
|
||||
public static OneLineMonthAndDay Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new JoinedNumber();
|
||||
var result = new OneLineMonthAndDay();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
|
@ -1,9 +1,9 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.BasicElements;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
namespace WatchFace.Elements.DateElements
|
||||
{
|
||||
public class SeparateMonthAndDay
|
||||
{
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class Scales
|
||||
{
|
||||
public Scale Steps { get; set; }
|
||||
|
||||
public static Scales Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Scales();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 2:
|
||||
result.Steps = Scale.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.StatusElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class Status
|
||||
{
|
||||
public Switch Switch { get; set; }
|
||||
public Flag Alarm { get; set; }
|
||||
public Flag Lock { get; set; }
|
||||
public Flag DoNotDisturb { get; set; }
|
||||
|
||||
public static Status Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Status();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Switch = Switch.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Alarm = Flag.Parse(parameter.Children);
|
||||
break;
|
||||
case 3:
|
||||
result.Lock = Flag.Parse(parameter.Children);
|
||||
break;
|
||||
case 4:
|
||||
result.DoNotDisturb = Flag.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.StatusElements
|
||||
{
|
||||
public class Flag
|
||||
{
|
||||
public long ImageIndexOn { get; set; }
|
||||
public Coordinates Coordinates { get; set; }
|
||||
|
||||
public static Flag Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Flag();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Coordinates = Coordinates.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.ImageIndexOn = parameter.Value;
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.StatusElements
|
||||
{
|
||||
public class Switch
|
||||
{
|
||||
public long ImageIndexOn { get; set; }
|
||||
public long ImageIndexOff { get; set; }
|
||||
public Coordinates Coordinates { get; set; }
|
||||
|
||||
public static Switch Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Switch();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Coordinates = Coordinates.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.ImageIndexOn = parameter.Value;
|
||||
break;
|
||||
case 3:
|
||||
result.ImageIndexOff = parameter.Value;
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,13 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.BasicElements;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Elements.TimeElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class Time
|
||||
{
|
||||
public AmPmSwitch AmPm { get; set; }
|
||||
public AmPm AmPm { get; set; }
|
||||
public TwoDigits Hours { get; set; }
|
||||
public TwoDigits Minutes { get; set; }
|
||||
public TwoDigits Seconds { get; set; }
|
||||
|
@ -31,7 +32,7 @@ namespace WatchFace.Elements
|
|||
result.Seconds = TwoDigits.Parse(parameter.Children);
|
||||
break;
|
||||
case 4:
|
||||
result.AmPm = AmPmSwitch.Parse(parameter.Children);
|
||||
result.AmPm = AmPm.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.BasicElements
|
||||
namespace WatchFace.Elements.TimeElements
|
||||
{
|
||||
public class AmPmSwitch
|
||||
public class AmPm
|
||||
{
|
||||
public long ImageIndexPm { get; set; }
|
||||
public long ImageIndexAm { get; set; }
|
||||
public long X { get; set; }
|
||||
public long Y { get; set; }
|
||||
|
||||
public static AmPmSwitch Parse(List<Parameter> descriptor)
|
||||
public static AmPm Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new AmPmSwitch();
|
||||
var result = new AmPm();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.WeatherElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements
|
||||
{
|
||||
public class Weather
|
||||
{
|
||||
public WeatherIcon Icon { get; set; }
|
||||
public Temperature Temperature { get; set; }
|
||||
public AirPollution AirPollution { get; set; }
|
||||
|
||||
public static Weather Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Weather();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Icon = WeatherIcon.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Temperature = Temperature.Parse(parameter.Children);
|
||||
break;
|
||||
case 3:
|
||||
result.AirPollution = AirPollution.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class AirPollution
|
||||
{
|
||||
public ImageSet Icon { get; set; }
|
||||
|
||||
public static AirPollution Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new AirPollution();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 2:
|
||||
result.Icon = ImageSet.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class JoinedTemperature
|
||||
{
|
||||
public Number Number { get; set; }
|
||||
public long MinusSignImageIndex { get; set; }
|
||||
public long DelimiterImageIndex { get; set; }
|
||||
public long Unknown { get; set; }
|
||||
public long DegreesImageIndex { get; set; }
|
||||
|
||||
public static JoinedTemperature Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new JoinedTemperature();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Number = Number.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.MinusSignImageIndex = parameter.Value;
|
||||
break;
|
||||
case 3:
|
||||
result.DelimiterImageIndex = parameter.Value;
|
||||
break;
|
||||
case 4:
|
||||
result.Unknown = parameter.Value;
|
||||
break;
|
||||
case 5:
|
||||
result.DegreesImageIndex = parameter.Value;
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class SeparateTemperature
|
||||
{
|
||||
public SignedNumber Day { get; set; }
|
||||
public SignedNumber Night { get; set; }
|
||||
|
||||
public static SeparateTemperature Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new SeparateTemperature();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Day = SignedNumber.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Night = SignedNumber.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class SignedNumber
|
||||
{
|
||||
public Number Number { get; set; }
|
||||
public long MinusImageIndex { get; set; }
|
||||
|
||||
public static SignedNumber Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new SignedNumber();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Number = Number.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.MinusImageIndex = parameter.Value;
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class Temperature
|
||||
{
|
||||
public TextTemperature Text { get; set; }
|
||||
|
||||
public static Temperature Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new Temperature();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 2:
|
||||
result.Text = TextTemperature.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class TextTemperature
|
||||
{
|
||||
public SeparateTemperature Separate { get; set; }
|
||||
public JoinedTemperature Joined { get; set; }
|
||||
|
||||
public static TextTemperature Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new TextTemperature();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Separate = SeparateTemperature.Parse(parameter.Children);
|
||||
break;
|
||||
case 2:
|
||||
result.Joined = JoinedTemperature.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using WatchFace.Elements.BasicElements;
|
||||
using WatchFace.Models;
|
||||
|
||||
namespace WatchFace.Elements.WeatherElements
|
||||
{
|
||||
public class WeatherIcon
|
||||
{
|
||||
public Coordinates Coordinates { get; set; }
|
||||
|
||||
public static WeatherIcon Parse(List<Parameter> descriptor)
|
||||
{
|
||||
if (descriptor == null)
|
||||
throw new ArgumentNullException(nameof(descriptor));
|
||||
|
||||
var result = new WeatherIcon();
|
||||
foreach (var parameter in descriptor)
|
||||
switch (parameter.Id)
|
||||
{
|
||||
case 1:
|
||||
result.Coordinates = Coordinates.Parse(parameter.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(parameter);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,10 +7,15 @@ namespace WatchFace
|
|||
{
|
||||
public class WatchFace
|
||||
{
|
||||
public Background Background { get; private set; }
|
||||
public Time Time { get; private set; }
|
||||
public Date Date { get; private set; }
|
||||
public Activity Activity { get; private set; }
|
||||
public Background Background { get; set; }
|
||||
public Time Time { get; set; }
|
||||
public Date Date { get; set; }
|
||||
public Weather Weather { get; set; }
|
||||
public Activity Activity { get; set; }
|
||||
public Scales Scales { get; set; }
|
||||
public Status Status { get; set; }
|
||||
public Battery Battery { get; set; }
|
||||
public AnalogDialFace AnalogDialFace { get; set; }
|
||||
|
||||
public static WatchFace Parse(List<Parameter> descriptor)
|
||||
{
|
||||
|
@ -34,8 +39,23 @@ namespace WatchFace
|
|||
case 5:
|
||||
result.Date = Date.Parse(resource.Children);
|
||||
break;
|
||||
//default:
|
||||
// throw new InvalidParameterException(resource);
|
||||
case 6:
|
||||
result.Weather = Weather.Parse(resource.Children);
|
||||
break;
|
||||
case 7:
|
||||
result.Scales = Scales.Parse(resource.Children);
|
||||
break;
|
||||
case 8:
|
||||
result.Status = Status.Parse(resource.Children);
|
||||
break;
|
||||
case 9:
|
||||
result.Battery = Battery.Parse(resource.Children);
|
||||
break;
|
||||
case 10:
|
||||
result.AnalogDialFace = AnalogDialFace.Parse(resource.Children);
|
||||
break;
|
||||
default:
|
||||
throw new InvalidParameterException(resource);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Parsers\" />
|
||||
<Folder Include="Elements\AnalogDialFaceElements\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
Loading…
Reference in New Issue