mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-16 06:59:29 +01:00
32a6049207
fixup! huamni: send windspeed in beaufort BipS: send windspeed as km/h huami: Always send sunrise and sunset There is no need to look at send_sunrise_sunset, this is peble spesific because it could be annoying on that platform (an extra line in the timeline). On huami devices, the watchface desides what to show. Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be> Mi5: set supportsSunriseSunsetWindHumidity to true Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be> huamni: send windspeed in beaufort Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be> Co-authored-by: Robbert Gurdeep Singh <git@beardhatcode.be> Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2247 Co-Authored-By: beardhatcode <beardhatcode@noreply.codeberg.org> Co-Committed-By: beardhatcode <beardhatcode@noreply.codeberg.org>
157 lines
4.8 KiB
Java
157 lines
4.8 KiB
Java
/* Copyright (C) 2016-2020 Andreas Shimokawa, Carsten Pfeiffer, Daniele
|
|
Gobbetti
|
|
|
|
This file is part of Gadgetbridge.
|
|
|
|
Gadgetbridge is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as published
|
|
by the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Gadgetbridge is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
package nodomain.freeyourgadget.gadgetbridge.model;
|
|
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
|
|
// FIXME: document me and my fields, including units
|
|
public class WeatherSpec implements Parcelable {
|
|
public static final Creator<WeatherSpec> CREATOR = new Creator<WeatherSpec>() {
|
|
@Override
|
|
public WeatherSpec createFromParcel(Parcel in) {
|
|
return new WeatherSpec(in);
|
|
}
|
|
|
|
@Override
|
|
public WeatherSpec[] newArray(int size) {
|
|
return new WeatherSpec[size];
|
|
}
|
|
};
|
|
public static final int VERSION = 2;
|
|
public int timestamp;
|
|
public String location;
|
|
public int currentTemp;
|
|
public int currentConditionCode = 3200;
|
|
public String currentCondition;
|
|
public int currentHumidity;
|
|
public int todayMaxTemp;
|
|
public int todayMinTemp;
|
|
public float windSpeed; //km per hour
|
|
public int windDirection; //deg
|
|
|
|
public ArrayList<Forecast> forecasts = new ArrayList<>();
|
|
|
|
public WeatherSpec() {
|
|
|
|
}
|
|
|
|
// Lower bounds of beaufort regions 1 to 12
|
|
// Values from https://en.wikipedia.org/wiki/Beaufort_scale
|
|
static final float[] beaufort = new float[] { 2, 6, 12, 20, 29, 39, 50, 62, 75, 89, 103, 118 };
|
|
// level: 0 1 2 3 4 5 6 7 8 9 10 11 12
|
|
|
|
public int windSpeedAsBeaufort() {
|
|
int l = 0;
|
|
while (l < beaufort.length && beaufort[l] < this.windSpeed) {
|
|
l++;
|
|
}
|
|
return l;
|
|
}
|
|
|
|
protected WeatherSpec(Parcel in) {
|
|
int version = in.readInt();
|
|
if (version == VERSION) {
|
|
timestamp = in.readInt();
|
|
location = in.readString();
|
|
currentTemp = in.readInt();
|
|
currentConditionCode = in.readInt();
|
|
currentCondition = in.readString();
|
|
currentHumidity = in.readInt();
|
|
todayMaxTemp = in.readInt();
|
|
todayMinTemp = in.readInt();
|
|
windSpeed = in.readFloat();
|
|
windDirection = in.readInt();
|
|
in.readList(forecasts, Forecast.class.getClassLoader());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel dest, int flags) {
|
|
dest.writeInt(VERSION);
|
|
dest.writeInt(timestamp);
|
|
dest.writeString(location);
|
|
dest.writeInt(currentTemp);
|
|
dest.writeInt(currentConditionCode);
|
|
dest.writeString(currentCondition);
|
|
dest.writeInt(currentHumidity);
|
|
dest.writeInt(todayMaxTemp);
|
|
dest.writeInt(todayMinTemp);
|
|
dest.writeFloat(windSpeed);
|
|
dest.writeInt(windDirection);
|
|
dest.writeList(forecasts);
|
|
}
|
|
|
|
public static class Forecast implements Parcelable {
|
|
public static final Creator<Forecast> CREATOR = new Creator<Forecast>() {
|
|
@Override
|
|
public Forecast createFromParcel(Parcel in) {
|
|
return new Forecast(in);
|
|
}
|
|
|
|
@Override
|
|
public Forecast[] newArray(int size) {
|
|
return new Forecast[size];
|
|
}
|
|
};
|
|
public int minTemp;
|
|
public int maxTemp;
|
|
public int conditionCode;
|
|
public int humidity;
|
|
|
|
public Forecast() {
|
|
}
|
|
|
|
public Forecast(int minTemp, int maxTemp, int conditionCode, int humidity) {
|
|
this.minTemp = minTemp;
|
|
this.maxTemp = maxTemp;
|
|
this.conditionCode = conditionCode;
|
|
this.humidity = humidity;
|
|
}
|
|
|
|
Forecast(Parcel in) {
|
|
minTemp = in.readInt();
|
|
maxTemp = in.readInt();
|
|
conditionCode = in.readInt();
|
|
humidity = in.readInt();
|
|
}
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel dest, int flags) {
|
|
dest.writeInt(minTemp);
|
|
dest.writeInt(maxTemp);
|
|
dest.writeInt(conditionCode);
|
|
dest.writeInt(humidity);
|
|
}
|
|
}
|
|
}
|